DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000012_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000012_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_000012_PKG                                        |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |     Package generated From Product Accounting Definition              |
13 |      Name    : Federal Payables AAD                                   |
14 |      Code    : FV_PAYABLES_AAD                                        |
15 |      Owner   : PRODUCT                                                |
16 |      Version :                                                        |
17 |      AMB Context Code: DEFAULT                                        |
18 | HISTORY                                                               |
19 |     Generated at 30-03-2009 at 06:03:47 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_000012_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_000012_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_000012_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_000012_PKG.GetMeaning');
228 END GetMeaning;
229 --
230 
231 ---------------------------------------
232 --
233 -- PRIVATE FUNCTION
234 --         Description_1
235 --
236 ---------------------------------------
237 FUNCTION Description_1 (
238   p_application_id      IN NUMBER
239 , p_ae_header_id        IN NUMBER DEFAULT NULL 
240 )
241 RETURN VARCHAR2
242 IS
243 l_component_type        VARCHAR2(80)   ;
244 l_component_code        VARCHAR2(30)   ;
245 l_component_type_code   VARCHAR2(1)    ;
246 l_component_appl_id     INTEGER        ;
247 l_amb_context_code      VARCHAR2(30)   ;
248 l_ledger_language       VARCHAR2(30)   ;
249 l_source                VARCHAR2(1996) ;
250 l_description           VARCHAR2(2000) ;
251 l_log_module            VARCHAR2(240)  ;
252 BEGIN
253 IF g_log_enabled THEN
254       l_log_module := C_DEFAULT_MODULE||'.Description_1';
255 END IF;
256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
257       trace
258          (p_msg      => 'BEGIN of Description_1'
259          ,p_level    => C_LEVEL_PROCEDURE
260          ,p_module   => l_log_module);
261 END IF;
262 
263 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
264 l_component_type        := 'AMB_DESCRIPTION';
265 l_component_code        := 'JE_INVOICE_DESCRIPTION';
266 l_component_type_code   := 'S';
267 l_component_appl_id     :=  200;
268 l_amb_context_code      := 'DEFAULT';
269 l_source                := NULL;
270 l_description           := NULL;
271 
272 
273 l_description := null;
274  l_description := SUBSTR(l_description,1,1996);
275   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
276         trace
277            (p_msg      => 'END of Description_1'
278            ,p_level    => C_LEVEL_PROCEDURE
279            ,p_module   => l_log_module);
280 
281   END IF;
282   RETURN l_description;
283 
284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
285       trace
286          (p_msg      => 'END of Description_1'
287          ,p_level    => C_LEVEL_PROCEDURE
288          ,p_module   => l_log_module);
289 END IF;
290 RETURN NULL;
291 EXCEPTION
292   WHEN VALUE_ERROR THEN
293      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
294             trace
295                (p_msg      => 'ERROR: '||sqlerrm
296                ,p_level    => C_LEVEL_EXCEPTION
297                ,p_module   => l_log_module);
298      END IF;
299      RAISE;
300  WHEN xla_exceptions_pkg.application_exception THEN
301       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
302       trace
303          (p_msg      => 'ERROR: '||sqlerrm
304          ,p_level    => C_LEVEL_EXCEPTION
305          ,p_module   => l_log_module);
306       END IF;
307       RAISE;
308  WHEN OTHERS THEN
309        xla_exceptions_pkg.raise_message
310            (p_location => 'XLA_00200_AAD_S_000012_PKG.Description_1');
311 END Description_1;
312 
313 ---------------------------------------
314 --
315 -- PRIVATE FUNCTION
316 --         Description_2
317 --
318 ---------------------------------------
319 FUNCTION Description_2 (
320   p_application_id      IN NUMBER
321 , p_ae_header_id        IN NUMBER DEFAULT NULL 
322 --Invoice Distribution Description
323  , p_source_1            IN VARCHAR2
324 )
325 RETURN VARCHAR2
326 IS
327 l_component_type        VARCHAR2(80)   ;
328 l_component_code        VARCHAR2(30)   ;
329 l_component_type_code   VARCHAR2(1)    ;
330 l_component_appl_id     INTEGER        ;
331 l_amb_context_code      VARCHAR2(30)   ;
332 l_ledger_language       VARCHAR2(30)   ;
333 l_source                VARCHAR2(1996) ;
334 l_description           VARCHAR2(2000) ;
335 l_log_module            VARCHAR2(240)  ;
336 BEGIN
337 IF g_log_enabled THEN
338       l_log_module := C_DEFAULT_MODULE||'.Description_2';
339 END IF;
340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
341       trace
342          (p_msg      => 'BEGIN of Description_2'
343          ,p_level    => C_LEVEL_PROCEDURE
344          ,p_module   => l_log_module);
345 END IF;
346 
347 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
348 l_component_type        := 'AMB_DESCRIPTION';
349 l_component_code        := 'JE_INV_DIST_DESCRIPTION';
350 l_component_type_code   := 'S';
351 l_component_appl_id     :=  200;
352 l_amb_context_code      := 'DEFAULT';
353 l_source                := NULL;
354 l_description           := NULL;
355 
356 
357   
358   l_source := SUBSTR(p_source_1,1,1996);
359   IF l_source IS NOT NULL THEN
360     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
361     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
362   END IF; 
363  l_description := SUBSTR(l_description,1,1996);
364   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
365         trace
366            (p_msg      => 'END of Description_2'
367            ,p_level    => C_LEVEL_PROCEDURE
368            ,p_module   => l_log_module);
369 
373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
370   END IF;
371   RETURN l_description;
372 
374       trace
375          (p_msg      => 'END of Description_2'
376          ,p_level    => C_LEVEL_PROCEDURE
377          ,p_module   => l_log_module);
378 END IF;
379 RETURN NULL;
380 EXCEPTION
381   WHEN VALUE_ERROR THEN
382      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
383             trace
384                (p_msg      => 'ERROR: '||sqlerrm
385                ,p_level    => C_LEVEL_EXCEPTION
386                ,p_module   => l_log_module);
387      END IF;
388      RAISE;
389  WHEN xla_exceptions_pkg.application_exception THEN
390       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
391       trace
392          (p_msg      => 'ERROR: '||sqlerrm
393          ,p_level    => C_LEVEL_EXCEPTION
394          ,p_module   => l_log_module);
395       END IF;
396       RAISE;
397  WHEN OTHERS THEN
398        xla_exceptions_pkg.raise_message
399            (p_location => 'XLA_00200_AAD_S_000012_PKG.Description_2');
400 END Description_2;
401 
402 ---------------------------------------
403 --
404 -- PRIVATE FUNCTION
405 --         Description_3
406 --
407 ---------------------------------------
408 FUNCTION Description_3 (
409   p_application_id      IN NUMBER
410 , p_ae_header_id        IN NUMBER DEFAULT NULL 
411 --Document Sequence Name
412  , p_source_3            IN VARCHAR2
413 --Payment Document Voucher Number
414  , p_source_4            IN NUMBER
415 --Payment Transaction Number
416  , p_source_5            IN NUMBER
417 --Payment Document Date
418  , p_source_6            IN DATE
419 --Bank Account Name
420  , p_source_7            IN VARCHAR2
421 --Payment Currency Code
422  , p_source_8            IN VARCHAR2
423 )
424 RETURN VARCHAR2
425 IS
426 l_component_type        VARCHAR2(80)   ;
427 l_component_code        VARCHAR2(30)   ;
428 l_component_type_code   VARCHAR2(1)    ;
429 l_component_appl_id     INTEGER        ;
430 l_amb_context_code      VARCHAR2(30)   ;
431 l_ledger_language       VARCHAR2(30)   ;
432 l_source                VARCHAR2(1996) ;
433 l_description           VARCHAR2(2000) ;
434 l_log_module            VARCHAR2(240)  ;
435 BEGIN
436 IF g_log_enabled THEN
437       l_log_module := C_DEFAULT_MODULE||'.Description_3';
438 END IF;
439 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
440       trace
441          (p_msg      => 'BEGIN of Description_3'
442          ,p_level    => C_LEVEL_PROCEDURE
443          ,p_module   => l_log_module);
444 END IF;
445 
446 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
447 l_component_type        := 'AMB_DESCRIPTION';
448 l_component_code        := 'JE_PAYMENT_HEADER_DESC';
449 l_component_type_code   := 'S';
450 l_component_appl_id     :=  200;
451 l_amb_context_code      := 'DEFAULT';
452 l_source                := NULL;
453 l_description           := NULL;
454 
455 
456  IF p_source_4 IS NOT NULL 
457  THEN 
458   
459   l_source := SUBSTR(
460 xla_ae_sources_pkg.GetSystemSourceChar(
461    p_source_code           => 'XLA_EVENT_TYPE_NAME'
462  , p_source_type_code      => 'Y'
463  , p_source_application_id =>  602
464 ),1,1996);
465   IF l_source IS NOT NULL THEN
466     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
467     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
468   END IF;  
469  IF 
470 l_ledger_language = 'US' THEN
471     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
472     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
473  END IF;  
474  IF 
475 l_ledger_language = 'US' THEN
476     l_description :=  SUBSTR(CONCAT(l_description,'Payment Document Sequence Name:'),1,2000);
477     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
478  END IF;   
479   l_source := SUBSTR(p_source_3,1,1996);
480   IF l_source IS NOT NULL THEN
481     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
482     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
483   END IF;  
484  IF 
485 l_ledger_language = 'US' THEN
486     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
487     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
488  END IF;  
489  IF 
490 l_ledger_language = 'US' THEN
491     l_description :=  SUBSTR(CONCAT(l_description,'Payment Document Sequence Number:'),1,2000);
492     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
493  END IF;   
494   l_source := SUBSTR(TO_CHAR(p_source_4),1,1996);
495   IF l_source IS NOT NULL THEN
496     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
497     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
498   END IF;  
499  IF 
500 l_ledger_language = 'US' THEN
501     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
502     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
503  END IF;  
504  IF 
505 l_ledger_language = 'US' THEN
506     l_description :=  SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
507     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
508  END IF;   
512     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
509   l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
510   IF l_source IS NOT NULL THEN
511     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
513   END IF;  
514  IF 
515 l_ledger_language = 'US' THEN
516     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
517     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
518  END IF;  
519  IF 
520 l_ledger_language = 'US' THEN
521     l_description :=  SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
522     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
523  END IF;   
524   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_6,
525                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
526   IF l_source IS NOT NULL THEN
527     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
528     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
529   END IF;  
530  IF 
531 l_ledger_language = 'US' THEN
532     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
533     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
534  END IF;  
535  IF 
536 l_ledger_language = 'US' THEN
537     l_description :=  SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
538     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
539  END IF;   
540   l_source := SUBSTR(p_source_7,1,1996);
541   IF l_source IS NOT NULL THEN
542     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
543     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
544   END IF;  
545  IF 
546 l_ledger_language = 'US' THEN
547     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
548     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
549  END IF;  
550  IF 
551 l_ledger_language = 'US' THEN
552     l_description :=  SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
553     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
554  END IF;   
555   l_source := SUBSTR(p_source_8,1,1996);
556   IF l_source IS NOT NULL THEN
557     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
558     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
559   END IF; 
560  l_description := SUBSTR(l_description,1,1996);
561   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
562         trace
563            (p_msg      => 'END of Description_3'
564            ,p_level    => C_LEVEL_PROCEDURE
565            ,p_module   => l_log_module);
566 
567   END IF;
568   RETURN l_description;
569 
570  ELSIF p_source_4 IS NULL 
571  THEN 
572   
573   l_source := SUBSTR(
574 xla_ae_sources_pkg.GetSystemSourceChar(
575    p_source_code           => 'XLA_EVENT_TYPE_NAME'
576  , p_source_type_code      => 'Y'
577  , p_source_application_id =>  602
578 ),1,1996);
579   IF l_source IS NOT NULL THEN
580     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
581     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
582   END IF;  
583  IF 
584 l_ledger_language = 'US' THEN
585     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
586     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
587  END IF;  
588  IF 
589 l_ledger_language = 'US' THEN
590     l_description :=  SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
591     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
592  END IF;   
593   l_source := SUBSTR(TO_CHAR(p_source_5),1,1996);
594   IF l_source IS NOT NULL THEN
595     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
596     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
597   END IF;  
598  IF 
599 l_ledger_language = 'US' THEN
600     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
601     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
602  END IF;  
603  IF 
604 l_ledger_language = 'US' THEN
605     l_description :=  SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
606     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
607  END IF;   
608   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_6,
609                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
610   IF l_source IS NOT NULL THEN
611     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
612     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
613   END IF;  
614  IF 
615 l_ledger_language = 'US' THEN
616     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
617     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
618  END IF;  
619  IF 
620 l_ledger_language = 'US' THEN
621     l_description :=  SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
622     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
623  END IF;   
624   l_source := SUBSTR(p_source_7,1,1996);
625   IF l_source IS NOT NULL THEN
626     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
627     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
628   END IF;  
629  IF 
630 l_ledger_language = 'US' THEN
631     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
632     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
633  END IF;  
634  IF 
635 l_ledger_language = 'US' THEN
639   l_source := SUBSTR(p_source_8,1,1996);
636     l_description :=  SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
637     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
638  END IF;   
640   IF l_source IS NOT NULL THEN
641     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
642     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
643   END IF; 
644  l_description := SUBSTR(l_description,1,1996);
645   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
646         trace
647            (p_msg      => 'END of Description_3'
648            ,p_level    => C_LEVEL_PROCEDURE
649            ,p_module   => l_log_module);
650 
651   END IF;
652   RETURN l_description;
653 
654  END IF;
655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
656       trace
657          (p_msg      => 'END of Description_3'
658          ,p_level    => C_LEVEL_PROCEDURE
659          ,p_module   => l_log_module);
660 END IF;
661 RETURN NULL;
662 EXCEPTION
663   WHEN VALUE_ERROR THEN
664      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
665             trace
666                (p_msg      => 'ERROR: '||sqlerrm
667                ,p_level    => C_LEVEL_EXCEPTION
668                ,p_module   => l_log_module);
669      END IF;
670      RAISE;
671  WHEN xla_exceptions_pkg.application_exception THEN
672       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
673       trace
674          (p_msg      => 'ERROR: '||sqlerrm
675          ,p_level    => C_LEVEL_EXCEPTION
676          ,p_module   => l_log_module);
677       END IF;
678       RAISE;
679  WHEN OTHERS THEN
680        xla_exceptions_pkg.raise_message
681            (p_location => 'XLA_00200_AAD_S_000012_PKG.Description_3');
682 END Description_3;
683 
684 ---------------------------------------
685 --
686 -- PRIVATE FUNCTION
687 --         AcctDerRule_4
688 --
689 ---------------------------------------
690 FUNCTION AcctDerRule_4 (
691   p_application_id             IN NUMBER
692 , p_ae_header_id               IN NUMBER
693 , p_side                       IN VARCHAR2
694 , p_override_seg_flag          IN VARCHAR2 
695 --Bank Charges Account
696  , p_source_9            IN NUMBER
697 --Automatic Offsets Value
698  , p_source_10            IN VARCHAR2
699  , p_source_10_meaning    IN VARCHAR2
700 , x_transaction_coa_id         OUT NOCOPY NUMBER
701 , x_accounting_coa_id          OUT NOCOPY NUMBER
702 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
703 , x_flex_value_set_id          OUT NOCOPY NUMBER
704 , x_value_type_code            OUT NOCOPY VARCHAR2
705 , x_value_combination_id       OUT NOCOPY NUMBER
706 , x_value_segment_code         OUT NOCOPY VARCHAR2
707 )
708 RETURN VARCHAR2
709 IS
710 l_component_type       VARCHAR2(80)  ;
711 l_component_code       VARCHAR2(30)  ;
712 l_component_type_code  VARCHAR2(1)   ;
713 l_component_appl_id    INTEGER       ;
714 l_amb_context_code     VARCHAR2(30)  ;
715 l_log_module           VARCHAR2(240) ;
716 l_output_value         VARCHAR2(30)  ;
717 BEGIN
718 IF g_log_enabled THEN
719       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
720 END IF;
721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
722 
723       trace
724          (p_msg      => 'BEGIN of AcctDerRule_4'
725          ,p_level    => C_LEVEL_PROCEDURE
726          ,p_module   => l_log_module);
727 
728 END IF;
729 
730 l_component_type         := 'AMB_ADR';
731 l_component_code         := 'AP_BANK_CHARGES_NAT_ACCT_SEG';
732 l_component_type_code    := 'S';
733 l_component_appl_id      :=  200;
734 l_amb_context_code       := 'DEFAULT';
735 x_transaction_coa_id     :=  null;
736 x_accounting_coa_id      :=  null;
737 x_flexfield_segment_code := 'GL_ACCOUNT';
738 x_flex_value_set_id      :=  null ;
739 
740 
741  IF NVL(p_source_10,'
742 ') =  'ACCOUNT_SEGMENT_VALUE'
743  THEN 
744 --
745   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
746 
747       trace
748          (p_msg      => 'END of AcctDerRule_4'
749          ,p_level    => C_LEVEL_PROCEDURE
750          ,p_module   => l_log_module);
751 
752   END IF;
753   x_value_combination_id  := TO_NUMBER(p_source_9) ;
754   x_value_segment_code    := 'GL_ACCOUNT' ;
755   x_value_type_code       := 'S';
756   l_output_value          :=  null;
757   RETURN l_output_value;
758 
759  ELSE 
760     IF p_override_seg_flag = 'Y' THEN 
761        RETURN '#$NO_OVERRIDE#$';
762     END IF;
763  END IF;
764 
765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
766 
767       trace
768          (p_msg      => 'END of AcctDerRule_4(invalid)'
769          ,p_level    => C_LEVEL_PROCEDURE
770          ,p_module   => l_log_module);
771 
772 END IF;
773 
774 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
775 x_value_combination_id  := null;
776 x_value_segment_code    := null;
777 x_value_type_code       := null;
778 l_output_value          := null;
779 xla_accounting_err_pkg.build_message
780                  (p_appli_s_name            => 'XLA'
781                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
782                  ,p_token_1                 => 'COMPONENT_NAME'
783                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
787                                                           , l_component_appl_id
784                                                             l_component_type
785                                                           , l_component_code
786                                                           , l_component_type_code
788                                                           , l_amb_context_code
789                                                           )
790                  ,p_token_2                 => 'OWNER'
791                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
792                                                         'XLA_OWNER_TYPE'
793                                                         ,l_component_type_code
794                                                         )
795                  ,p_token_3                 => 'PAD_NAME'
796                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
797                  ,p_token_4                 => 'PAD_OWNER'
798                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
799                                                         'XLA_OWNER_TYPE'
800                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
801                                                         )
802                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
803                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
804                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
805                  ,p_ae_header_id            => NULL
806 );
807 RETURN l_output_value;
808 EXCEPTION
809   WHEN xla_exceptions_pkg.application_exception THEN
810       RAISE;
811   WHEN OTHERS THEN
812        xla_exceptions_pkg.raise_message
813            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_4');
814 END AcctDerRule_4;
815 --
816 
817 ---------------------------------------
818 --
819 -- PRIVATE FUNCTION
820 --         AcctDerRule_5
821 --
822 ---------------------------------------
823 FUNCTION AcctDerRule_5 (
824   p_application_id             IN NUMBER
825 , p_ae_header_id               IN NUMBER
826 , p_side                       IN VARCHAR2
827 , p_override_seg_flag          IN VARCHAR2 
828 --Automatic Offsets Value
829  , p_source_10            IN VARCHAR2
830  , p_source_10_meaning    IN VARCHAR2
831 --Bank Errors Account
832  , p_source_11            IN NUMBER
833 , x_transaction_coa_id         OUT NOCOPY NUMBER
834 , x_accounting_coa_id          OUT NOCOPY NUMBER
835 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
836 , x_flex_value_set_id          OUT NOCOPY NUMBER
837 , x_value_type_code            OUT NOCOPY VARCHAR2
838 , x_value_combination_id       OUT NOCOPY NUMBER
839 , x_value_segment_code         OUT NOCOPY VARCHAR2
840 )
841 RETURN VARCHAR2
842 IS
843 l_component_type       VARCHAR2(80)  ;
844 l_component_code       VARCHAR2(30)  ;
845 l_component_type_code  VARCHAR2(1)   ;
846 l_component_appl_id    INTEGER       ;
847 l_amb_context_code     VARCHAR2(30)  ;
848 l_log_module           VARCHAR2(240) ;
849 l_output_value         VARCHAR2(30)  ;
850 BEGIN
851 IF g_log_enabled THEN
852       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
853 END IF;
854 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
855 
856       trace
857          (p_msg      => 'BEGIN of AcctDerRule_5'
858          ,p_level    => C_LEVEL_PROCEDURE
859          ,p_module   => l_log_module);
860 
861 END IF;
862 
863 l_component_type         := 'AMB_ADR';
864 l_component_code         := 'AP_BANK_ERRORS_NAT_ACCT_SEG';
865 l_component_type_code    := 'S';
866 l_component_appl_id      :=  200;
867 l_amb_context_code       := 'DEFAULT';
868 x_transaction_coa_id     :=  null;
869 x_accounting_coa_id      :=  null;
870 x_flexfield_segment_code := 'GL_ACCOUNT';
871 x_flex_value_set_id      :=  null ;
872 
873 
874  IF NVL(p_source_10,'
875 ') =  'ACCOUNT_SEGMENT_VALUE'
876  THEN 
877 --
878   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
879 
880       trace
881          (p_msg      => 'END of AcctDerRule_5'
882          ,p_level    => C_LEVEL_PROCEDURE
883          ,p_module   => l_log_module);
884 
885   END IF;
886   x_value_combination_id  := TO_NUMBER(p_source_11) ;
887   x_value_segment_code    := 'GL_ACCOUNT' ;
888   x_value_type_code       := 'S';
889   l_output_value          :=  null;
890   RETURN l_output_value;
891 
892  ELSE 
893     IF p_override_seg_flag = 'Y' THEN 
894        RETURN '#$NO_OVERRIDE#$';
895     END IF;
896  END IF;
897 
898 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
899 
900       trace
901          (p_msg      => 'END of AcctDerRule_5(invalid)'
902          ,p_level    => C_LEVEL_PROCEDURE
903          ,p_module   => l_log_module);
904 
905 END IF;
906 
907 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
908 x_value_combination_id  := null;
909 x_value_segment_code    := null;
910 x_value_type_code       := null;
911 l_output_value          := null;
912 xla_accounting_err_pkg.build_message
913                  (p_appli_s_name            => 'XLA'
914                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
918                                                           , l_component_code
915                  ,p_token_1                 => 'COMPONENT_NAME'
916                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
917                                                             l_component_type
919                                                           , l_component_type_code
920                                                           , l_component_appl_id
921                                                           , l_amb_context_code
922                                                           )
923                  ,p_token_2                 => 'OWNER'
924                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
925                                                         'XLA_OWNER_TYPE'
926                                                         ,l_component_type_code
927                                                         )
928                  ,p_token_3                 => 'PAD_NAME'
929                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
930                  ,p_token_4                 => 'PAD_OWNER'
931                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
932                                                         'XLA_OWNER_TYPE'
933                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
934                                                         )
935                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
936                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
937                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
938                  ,p_ae_header_id            => NULL
939 );
940 RETURN l_output_value;
941 EXCEPTION
942   WHEN xla_exceptions_pkg.application_exception THEN
943       RAISE;
944   WHEN OTHERS THEN
945        xla_exceptions_pkg.raise_message
946            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_5');
947 END AcctDerRule_5;
948 --
949 
950 ---------------------------------------
951 --
952 -- PRIVATE FUNCTION
953 --         AcctDerRule_6
954 --
955 ---------------------------------------
956 FUNCTION AcctDerRule_6 (
957   p_application_id             IN NUMBER
958 , p_ae_header_id               IN NUMBER
959 , p_side                       IN VARCHAR2
960 , p_override_seg_flag          IN VARCHAR2 
961 --Bank Cash Account
962  , p_source_12            IN NUMBER
963 , x_transaction_coa_id         OUT NOCOPY NUMBER
964 , x_accounting_coa_id          OUT NOCOPY NUMBER
965 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
966 , x_flex_value_set_id          OUT NOCOPY NUMBER
967 , x_value_type_code            OUT NOCOPY VARCHAR2
968 , x_value_combination_id       OUT NOCOPY NUMBER
969 , x_value_segment_code         OUT NOCOPY VARCHAR2
970 )
971 RETURN VARCHAR2
972 IS
973 l_component_type       VARCHAR2(80)  ;
974 l_component_code       VARCHAR2(30)  ;
975 l_component_type_code  VARCHAR2(1)   ;
976 l_component_appl_id    INTEGER       ;
977 l_amb_context_code     VARCHAR2(30)  ;
978 l_log_module           VARCHAR2(240) ;
979 l_output_value         VARCHAR2(30)  ;
980 BEGIN
981 IF g_log_enabled THEN
982       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
983 END IF;
984 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
985 
986       trace
987          (p_msg      => 'BEGIN of AcctDerRule_6'
988          ,p_level    => C_LEVEL_PROCEDURE
989          ,p_module   => l_log_module);
990 
991 END IF;
992 
993 l_component_type         := 'AMB_ADR';
994 l_component_code         := 'AP_CASH_NATURAL_ACCT_SEG';
995 l_component_type_code    := 'S';
996 l_component_appl_id      :=  200;
997 l_amb_context_code       := 'DEFAULT';
998 x_transaction_coa_id     :=  null;
999 x_accounting_coa_id      :=  null;
1000 x_flexfield_segment_code := 'GL_ACCOUNT';
1001 x_flex_value_set_id      :=  null ;
1002 
1003 
1004 --
1005   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1006 
1007       trace
1008          (p_msg      => 'END of AcctDerRule_6'
1009          ,p_level    => C_LEVEL_PROCEDURE
1010          ,p_module   => l_log_module);
1011 
1012   END IF;
1013   x_value_combination_id  := TO_NUMBER(p_source_12) ;
1014   x_value_segment_code    := 'GL_ACCOUNT' ;
1015   x_value_type_code       := 'S';
1016   l_output_value          :=  null;
1017   RETURN l_output_value;
1018 
1019 
1020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1021 
1022       trace
1023          (p_msg      => 'END of AcctDerRule_6(invalid)'
1024          ,p_level    => C_LEVEL_PROCEDURE
1025          ,p_module   => l_log_module);
1026 
1027 END IF;
1028 
1029 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1030 x_value_combination_id  := null;
1031 x_value_segment_code    := null;
1032 x_value_type_code       := null;
1033 l_output_value          := null;
1034 xla_accounting_err_pkg.build_message
1035                  (p_appli_s_name            => 'XLA'
1036                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1037                  ,p_token_1                 => 'COMPONENT_NAME'
1038                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1039                                                             l_component_type
1043                                                           , l_amb_context_code
1040                                                           , l_component_code
1041                                                           , l_component_type_code
1042                                                           , l_component_appl_id
1044                                                           )
1045                  ,p_token_2                 => 'OWNER'
1046                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1047                                                         'XLA_OWNER_TYPE'
1048                                                         ,l_component_type_code
1049                                                         )
1050                  ,p_token_3                 => 'PAD_NAME'
1051                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1052                  ,p_token_4                 => 'PAD_OWNER'
1053                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1054                                                         'XLA_OWNER_TYPE'
1055                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1056                                                         )
1057                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1058                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1059                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1060                  ,p_ae_header_id            => NULL
1061 );
1062 RETURN l_output_value;
1063 EXCEPTION
1064   WHEN xla_exceptions_pkg.application_exception THEN
1065       RAISE;
1066   WHEN OTHERS THEN
1067        xla_exceptions_pkg.raise_message
1068            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_6');
1069 END AcctDerRule_6;
1070 --
1071 
1072 ---------------------------------------
1073 --
1074 -- PRIVATE FUNCTION
1075 --         AcctDerRule_7
1076 --
1077 ---------------------------------------
1078 FUNCTION AcctDerRule_7 (
1079   p_application_id             IN NUMBER
1080 , p_ae_header_id               IN NUMBER
1081 , p_side                       IN VARCHAR2
1082 , p_override_seg_flag          IN VARCHAR2 
1083 --Automatic Offsets Value
1084  , p_source_10            IN VARCHAR2
1085  , p_source_10_meaning    IN VARCHAR2
1086 --System Discount Account
1087  , p_source_13            IN NUMBER
1088 --Discount Distribution Method
1089  , p_source_14            IN VARCHAR2
1090  , p_source_14_meaning    IN VARCHAR2
1091 , x_transaction_coa_id         OUT NOCOPY NUMBER
1092 , x_accounting_coa_id          OUT NOCOPY NUMBER
1093 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1094 , x_flex_value_set_id          OUT NOCOPY NUMBER
1095 , x_value_type_code            OUT NOCOPY VARCHAR2
1096 , x_value_combination_id       OUT NOCOPY NUMBER
1097 , x_value_segment_code         OUT NOCOPY VARCHAR2
1098 )
1099 RETURN VARCHAR2
1100 IS
1101 l_component_type       VARCHAR2(80)  ;
1102 l_component_code       VARCHAR2(30)  ;
1103 l_component_type_code  VARCHAR2(1)   ;
1104 l_component_appl_id    INTEGER       ;
1105 l_amb_context_code     VARCHAR2(30)  ;
1106 l_log_module           VARCHAR2(240) ;
1107 l_output_value         VARCHAR2(30)  ;
1108 BEGIN
1109 IF g_log_enabled THEN
1110       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1111 END IF;
1112 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1113 
1114       trace
1115          (p_msg      => 'BEGIN of AcctDerRule_7'
1116          ,p_level    => C_LEVEL_PROCEDURE
1117          ,p_module   => l_log_module);
1118 
1119 END IF;
1120 
1121 l_component_type         := 'AMB_ADR';
1122 l_component_code         := 'AP_DISCOUNT_NAT_ACCT_SEG';
1123 l_component_type_code    := 'S';
1124 l_component_appl_id      :=  200;
1125 l_amb_context_code       := 'DEFAULT';
1126 x_transaction_coa_id     :=  null;
1127 x_accounting_coa_id      :=  null;
1128 x_flexfield_segment_code := 'GL_ACCOUNT';
1129 x_flex_value_set_id      :=  null ;
1130 
1131 
1132  IF NVL(p_source_14,'
1133 ') =  'SYSTEM' AND 
1134 NVL(p_source_10,'
1135 ') =  'ACCOUNT_SEGMENT_VALUE'
1136  THEN 
1137 --
1138   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1139 
1140       trace
1141          (p_msg      => 'END of AcctDerRule_7'
1142          ,p_level    => C_LEVEL_PROCEDURE
1143          ,p_module   => l_log_module);
1144 
1145   END IF;
1146   x_value_combination_id  := TO_NUMBER(p_source_13) ;
1147   x_value_segment_code    := 'GL_ACCOUNT' ;
1148   x_value_type_code       := 'S';
1149   l_output_value          :=  null;
1150   RETURN l_output_value;
1151 
1152  ELSE 
1153     IF p_override_seg_flag = 'Y' THEN 
1154        RETURN '#$NO_OVERRIDE#$';
1155     END IF;
1156  END IF;
1157 
1158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1159 
1160       trace
1161          (p_msg      => 'END of AcctDerRule_7(invalid)'
1162          ,p_level    => C_LEVEL_PROCEDURE
1163          ,p_module   => l_log_module);
1164 
1165 END IF;
1166 
1167 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1168 x_value_combination_id  := null;
1169 x_value_segment_code    := null;
1170 x_value_type_code       := null;
1171 l_output_value          := null;
1172 xla_accounting_err_pkg.build_message
1173                  (p_appli_s_name            => 'XLA'
1177                                                             l_component_type
1174                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1175                  ,p_token_1                 => 'COMPONENT_NAME'
1176                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1178                                                           , l_component_code
1179                                                           , l_component_type_code
1180                                                           , l_component_appl_id
1181                                                           , l_amb_context_code
1182                                                           )
1183                  ,p_token_2                 => 'OWNER'
1184                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1185                                                         'XLA_OWNER_TYPE'
1186                                                         ,l_component_type_code
1187                                                         )
1188                  ,p_token_3                 => 'PAD_NAME'
1189                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1190                  ,p_token_4                 => 'PAD_OWNER'
1191                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1192                                                         'XLA_OWNER_TYPE'
1193                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1194                                                         )
1195                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1196                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1197                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1198                  ,p_ae_header_id            => NULL
1199 );
1200 RETURN l_output_value;
1201 EXCEPTION
1202   WHEN xla_exceptions_pkg.application_exception THEN
1203       RAISE;
1204   WHEN OTHERS THEN
1205        xla_exceptions_pkg.raise_message
1206            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_7');
1207 END AcctDerRule_7;
1208 --
1209 
1210 ---------------------------------------
1211 --
1212 -- PRIVATE FUNCTION
1213 --         AcctDerRule_8
1214 --
1215 ---------------------------------------
1216 FUNCTION AcctDerRule_8 (
1217   p_application_id             IN NUMBER
1218 , p_ae_header_id               IN NUMBER
1219 , p_side                       IN VARCHAR2
1220 , p_override_seg_flag          IN VARCHAR2 
1221 --Automatic Offsets Value
1222  , p_source_10            IN VARCHAR2
1223  , p_source_10_meaning    IN VARCHAR2
1224 --Purchase Order Rate Variance Gain Account
1225  , p_source_15            IN NUMBER
1226 --Invoice Distribution Ledger Amount
1227  , p_source_16            IN NUMBER
1228 --Destination Type of the PO Distribution
1229  , p_source_17            IN VARCHAR2
1230  , p_source_17_meaning    IN VARCHAR2
1231 --Purchase Order Rate Variance Loss Account
1232  , p_source_18            IN NUMBER
1233 , x_transaction_coa_id         OUT NOCOPY NUMBER
1234 , x_accounting_coa_id          OUT NOCOPY NUMBER
1235 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1236 , x_flex_value_set_id          OUT NOCOPY NUMBER
1237 , x_value_type_code            OUT NOCOPY VARCHAR2
1238 , x_value_combination_id       OUT NOCOPY NUMBER
1239 , x_value_segment_code         OUT NOCOPY VARCHAR2
1240 )
1241 RETURN VARCHAR2
1242 IS
1243 l_component_type       VARCHAR2(80)  ;
1244 l_component_code       VARCHAR2(30)  ;
1245 l_component_type_code  VARCHAR2(1)   ;
1246 l_component_appl_id    INTEGER       ;
1247 l_amb_context_code     VARCHAR2(30)  ;
1248 l_log_module           VARCHAR2(240) ;
1249 l_output_value         VARCHAR2(30)  ;
1250 BEGIN
1251 IF g_log_enabled THEN
1252       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1253 END IF;
1254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1255 
1256       trace
1257          (p_msg      => 'BEGIN of AcctDerRule_8'
1258          ,p_level    => C_LEVEL_PROCEDURE
1259          ,p_module   => l_log_module);
1260 
1261 END IF;
1262 
1263 l_component_type         := 'AMB_ADR';
1264 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
1265 l_component_type_code    := 'S';
1266 l_component_appl_id      :=  200;
1267 l_amb_context_code       := 'DEFAULT';
1268 x_transaction_coa_id     :=  null;
1269 x_accounting_coa_id      :=  null;
1270 x_flexfield_segment_code := 'GL_ACCOUNT';
1271 x_flex_value_set_id      :=  null ;
1272 
1273 
1274  IF NVL(p_source_10,'
1275 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1276 p_source_16 <  0 AND 
1277 NVL(p_source_17,'
1278 ') =  'INVENTORY'
1279  THEN 
1280 --
1281   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1282 
1283       trace
1284          (p_msg      => 'END of AcctDerRule_8'
1285          ,p_level    => C_LEVEL_PROCEDURE
1286          ,p_module   => l_log_module);
1287 
1288   END IF;
1289   x_value_combination_id  := TO_NUMBER(p_source_15) ;
1290   x_value_segment_code    := 'GL_ACCOUNT' ;
1291   x_value_type_code       := 'S';
1292   l_output_value          :=  null;
1293   RETURN l_output_value;
1294 
1295  ELSIF NVL(p_source_10,'
1296 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1297 p_source_16 >  0 AND 
1298 NVL(p_source_17,'
1299 ') =  'INVENTORY'
1300  THEN 
1301 --
1302   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1306          ,p_level    => C_LEVEL_PROCEDURE
1303 
1304       trace
1305          (p_msg      => 'END of AcctDerRule_8'
1307          ,p_module   => l_log_module);
1308 
1309   END IF;
1310   x_value_combination_id  := TO_NUMBER(p_source_18) ;
1311   x_value_segment_code    := 'GL_ACCOUNT' ;
1312   x_value_type_code       := 'S';
1313   l_output_value          :=  null;
1314   RETURN l_output_value;
1315 
1316  ELSE 
1317     IF p_override_seg_flag = 'Y' THEN 
1318        RETURN '#$NO_OVERRIDE#$';
1319     END IF;
1320  END IF;
1321 
1322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1323 
1324       trace
1325          (p_msg      => 'END of AcctDerRule_8(invalid)'
1326          ,p_level    => C_LEVEL_PROCEDURE
1327          ,p_module   => l_log_module);
1328 
1329 END IF;
1330 
1331 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1332 x_value_combination_id  := null;
1333 x_value_segment_code    := null;
1334 x_value_type_code       := null;
1335 l_output_value          := null;
1336 xla_accounting_err_pkg.build_message
1337                  (p_appli_s_name            => 'XLA'
1338                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1339                  ,p_token_1                 => 'COMPONENT_NAME'
1340                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1341                                                             l_component_type
1342                                                           , l_component_code
1343                                                           , l_component_type_code
1344                                                           , l_component_appl_id
1345                                                           , l_amb_context_code
1346                                                           )
1347                  ,p_token_2                 => 'OWNER'
1348                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1349                                                         'XLA_OWNER_TYPE'
1350                                                         ,l_component_type_code
1351                                                         )
1352                  ,p_token_3                 => 'PAD_NAME'
1353                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1354                  ,p_token_4                 => 'PAD_OWNER'
1355                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1356                                                         'XLA_OWNER_TYPE'
1357                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1358                                                         )
1359                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1360                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1361                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1362                  ,p_ae_header_id            => NULL
1363 );
1364 RETURN l_output_value;
1365 EXCEPTION
1366   WHEN xla_exceptions_pkg.application_exception THEN
1367       RAISE;
1368   WHEN OTHERS THEN
1369        xla_exceptions_pkg.raise_message
1370            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_8');
1371 END AcctDerRule_8;
1372 --
1373 
1374 ---------------------------------------
1375 --
1376 -- PRIVATE FUNCTION
1377 --         AcctDerRule_9
1378 --
1379 ---------------------------------------
1380 FUNCTION AcctDerRule_9 (
1381   p_application_id             IN NUMBER
1382 , p_ae_header_id               IN NUMBER
1383 , p_side                       IN VARCHAR2
1384 , p_override_seg_flag          IN VARCHAR2 
1385 --Automatic Offsets Value
1386  , p_source_10            IN VARCHAR2
1387  , p_source_10_meaning    IN VARCHAR2
1388 --Purchase Order Rate Variance Gain Account
1389  , p_source_15            IN NUMBER
1390 --Destination Type of the PO Distribution
1391  , p_source_17            IN VARCHAR2
1392  , p_source_17_meaning    IN VARCHAR2
1393 , x_transaction_coa_id         OUT NOCOPY NUMBER
1394 , x_accounting_coa_id          OUT NOCOPY NUMBER
1395 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1396 , x_flex_value_set_id          OUT NOCOPY NUMBER
1397 , x_value_type_code            OUT NOCOPY VARCHAR2
1398 , x_value_combination_id       OUT NOCOPY NUMBER
1399 , x_value_segment_code         OUT NOCOPY VARCHAR2
1400 )
1401 RETURN VARCHAR2
1402 IS
1403 l_component_type       VARCHAR2(80)  ;
1404 l_component_code       VARCHAR2(30)  ;
1405 l_component_type_code  VARCHAR2(1)   ;
1406 l_component_appl_id    INTEGER       ;
1407 l_amb_context_code     VARCHAR2(30)  ;
1408 l_log_module           VARCHAR2(240) ;
1409 l_output_value         VARCHAR2(30)  ;
1410 BEGIN
1411 IF g_log_enabled THEN
1412       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1413 END IF;
1414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1415 
1416       trace
1417          (p_msg      => 'BEGIN of AcctDerRule_9'
1418          ,p_level    => C_LEVEL_PROCEDURE
1419          ,p_module   => l_log_module);
1420 
1421 END IF;
1422 
1423 l_component_type         := 'AMB_ADR';
1424 l_component_code         := 'AP_ERV_GAIN_NAT_ACCT_SEG';
1425 l_component_type_code    := 'S';
1426 l_component_appl_id      :=  200;
1427 l_amb_context_code       := 'DEFAULT';
1428 x_transaction_coa_id     :=  null;
1429 x_accounting_coa_id      :=  null;
1433 
1430 x_flexfield_segment_code := 'GL_ACCOUNT';
1431 x_flex_value_set_id      :=  null ;
1432 
1434  IF NVL(p_source_10,'
1435 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1436 NVL(p_source_17,'
1437 ') =  'INVENTORY'
1438  THEN 
1439 --
1440   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1441 
1442       trace
1443          (p_msg      => 'END of AcctDerRule_9'
1444          ,p_level    => C_LEVEL_PROCEDURE
1445          ,p_module   => l_log_module);
1446 
1447   END IF;
1448   x_value_combination_id  := TO_NUMBER(p_source_15) ;
1449   x_value_segment_code    := 'GL_ACCOUNT' ;
1450   x_value_type_code       := 'S';
1451   l_output_value          :=  null;
1452   RETURN l_output_value;
1453 
1454  ELSE 
1455     IF p_override_seg_flag = 'Y' THEN 
1456        RETURN '#$NO_OVERRIDE#$';
1457     END IF;
1458  END IF;
1459 
1460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1461 
1462       trace
1463          (p_msg      => 'END of AcctDerRule_9(invalid)'
1464          ,p_level    => C_LEVEL_PROCEDURE
1465          ,p_module   => l_log_module);
1466 
1467 END IF;
1468 
1469 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1470 x_value_combination_id  := null;
1471 x_value_segment_code    := null;
1472 x_value_type_code       := null;
1473 l_output_value          := null;
1474 xla_accounting_err_pkg.build_message
1475                  (p_appli_s_name            => 'XLA'
1476                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1477                  ,p_token_1                 => 'COMPONENT_NAME'
1478                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1479                                                             l_component_type
1480                                                           , l_component_code
1481                                                           , l_component_type_code
1482                                                           , l_component_appl_id
1483                                                           , l_amb_context_code
1484                                                           )
1485                  ,p_token_2                 => 'OWNER'
1486                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1487                                                         'XLA_OWNER_TYPE'
1488                                                         ,l_component_type_code
1489                                                         )
1490                  ,p_token_3                 => 'PAD_NAME'
1491                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1492                  ,p_token_4                 => 'PAD_OWNER'
1493                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1494                                                         'XLA_OWNER_TYPE'
1495                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1496                                                         )
1497                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1498                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1499                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1500                  ,p_ae_header_id            => NULL
1501 );
1502 RETURN l_output_value;
1503 EXCEPTION
1504   WHEN xla_exceptions_pkg.application_exception THEN
1505       RAISE;
1506   WHEN OTHERS THEN
1507        xla_exceptions_pkg.raise_message
1508            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_9');
1509 END AcctDerRule_9;
1510 --
1511 
1512 ---------------------------------------
1513 --
1514 -- PRIVATE FUNCTION
1515 --         AcctDerRule_10
1516 --
1517 ---------------------------------------
1518 FUNCTION AcctDerRule_10 (
1519   p_application_id             IN NUMBER
1520 , p_ae_header_id               IN NUMBER
1521 , p_side                       IN VARCHAR2
1522 , p_override_seg_flag          IN VARCHAR2 
1523 --Automatic Offsets Value
1524  , p_source_10            IN VARCHAR2
1525  , p_source_10_meaning    IN VARCHAR2
1526 --Destination Type of the PO Distribution
1527  , p_source_17            IN VARCHAR2
1528  , p_source_17_meaning    IN VARCHAR2
1529 --Purchase Order Rate Variance Loss Account
1530  , p_source_18            IN NUMBER
1531 , x_transaction_coa_id         OUT NOCOPY NUMBER
1532 , x_accounting_coa_id          OUT NOCOPY NUMBER
1533 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1534 , x_flex_value_set_id          OUT NOCOPY NUMBER
1535 , x_value_type_code            OUT NOCOPY VARCHAR2
1536 , x_value_combination_id       OUT NOCOPY NUMBER
1537 , x_value_segment_code         OUT NOCOPY VARCHAR2
1538 )
1539 RETURN VARCHAR2
1540 IS
1541 l_component_type       VARCHAR2(80)  ;
1542 l_component_code       VARCHAR2(30)  ;
1543 l_component_type_code  VARCHAR2(1)   ;
1544 l_component_appl_id    INTEGER       ;
1545 l_amb_context_code     VARCHAR2(30)  ;
1546 l_log_module           VARCHAR2(240) ;
1547 l_output_value         VARCHAR2(30)  ;
1548 BEGIN
1549 IF g_log_enabled THEN
1550       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1551 END IF;
1552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1553 
1554       trace
1555          (p_msg      => 'BEGIN of AcctDerRule_10'
1556          ,p_level    => C_LEVEL_PROCEDURE
1557          ,p_module   => l_log_module);
1558 
1559 END IF;
1563 l_component_type_code    := 'S';
1560 
1561 l_component_type         := 'AMB_ADR';
1562 l_component_code         := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1564 l_component_appl_id      :=  200;
1565 l_amb_context_code       := 'DEFAULT';
1566 x_transaction_coa_id     :=  null;
1567 x_accounting_coa_id      :=  null;
1568 x_flexfield_segment_code := 'GL_ACCOUNT';
1569 x_flex_value_set_id      :=  null ;
1570 
1571 
1572  IF NVL(p_source_10,'
1573 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1574 NVL(p_source_17,'
1575 ') =  'INVENTORY'
1576  THEN 
1577 --
1578   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1579 
1580       trace
1581          (p_msg      => 'END of AcctDerRule_10'
1582          ,p_level    => C_LEVEL_PROCEDURE
1583          ,p_module   => l_log_module);
1584 
1585   END IF;
1586   x_value_combination_id  := TO_NUMBER(p_source_18) ;
1587   x_value_segment_code    := 'GL_ACCOUNT' ;
1588   x_value_type_code       := 'S';
1589   l_output_value          :=  null;
1590   RETURN l_output_value;
1591 
1592  ELSE 
1593     IF p_override_seg_flag = 'Y' THEN 
1594        RETURN '#$NO_OVERRIDE#$';
1595     END IF;
1596  END IF;
1597 
1598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1599 
1600       trace
1601          (p_msg      => 'END of AcctDerRule_10(invalid)'
1602          ,p_level    => C_LEVEL_PROCEDURE
1603          ,p_module   => l_log_module);
1604 
1605 END IF;
1606 
1607 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1608 x_value_combination_id  := null;
1609 x_value_segment_code    := null;
1610 x_value_type_code       := null;
1611 l_output_value          := null;
1612 xla_accounting_err_pkg.build_message
1613                  (p_appli_s_name            => 'XLA'
1614                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1615                  ,p_token_1                 => 'COMPONENT_NAME'
1616                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1617                                                             l_component_type
1618                                                           , l_component_code
1619                                                           , l_component_type_code
1620                                                           , l_component_appl_id
1621                                                           , l_amb_context_code
1622                                                           )
1623                  ,p_token_2                 => 'OWNER'
1624                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1625                                                         'XLA_OWNER_TYPE'
1626                                                         ,l_component_type_code
1627                                                         )
1628                  ,p_token_3                 => 'PAD_NAME'
1629                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1630                  ,p_token_4                 => 'PAD_OWNER'
1631                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1632                                                         'XLA_OWNER_TYPE'
1633                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1634                                                         )
1635                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1636                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1637                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1638                  ,p_ae_header_id            => NULL
1639 );
1640 RETURN l_output_value;
1641 EXCEPTION
1642   WHEN xla_exceptions_pkg.application_exception THEN
1643       RAISE;
1644   WHEN OTHERS THEN
1645        xla_exceptions_pkg.raise_message
1646            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_10');
1647 END AcctDerRule_10;
1648 --
1649 
1650 ---------------------------------------
1651 --
1652 -- PRIVATE FUNCTION
1653 --         AcctDerRule_11
1654 --
1655 ---------------------------------------
1656 FUNCTION AcctDerRule_11 (
1657   p_application_id             IN NUMBER
1658 , p_ae_header_id               IN NUMBER
1659 , p_side                       IN VARCHAR2
1660 , p_override_seg_flag          IN VARCHAR2 
1661 --Automatic Offsets Value
1662  , p_source_10            IN VARCHAR2
1663  , p_source_10_meaning    IN VARCHAR2
1664 --Bank Future Dated Payment Account
1665  , p_source_19            IN NUMBER
1666 --Future Dated Payment Account Source Option
1667  , p_source_20            IN VARCHAR2
1668  , p_source_20_meaning    IN VARCHAR2
1669 --Financials Options Future Dated Payment Account
1670  , p_source_21            IN NUMBER
1671 --Supplier Site Future Dated Payment Account
1672  , p_source_22            IN NUMBER
1673 , x_transaction_coa_id         OUT NOCOPY NUMBER
1674 , x_accounting_coa_id          OUT NOCOPY NUMBER
1675 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1676 , x_flex_value_set_id          OUT NOCOPY NUMBER
1677 , x_value_type_code            OUT NOCOPY VARCHAR2
1678 , x_value_combination_id       OUT NOCOPY NUMBER
1679 , x_value_segment_code         OUT NOCOPY VARCHAR2
1680 )
1681 RETURN VARCHAR2
1682 IS
1683 l_component_type       VARCHAR2(80)  ;
1684 l_component_code       VARCHAR2(30)  ;
1688 l_log_module           VARCHAR2(240) ;
1685 l_component_type_code  VARCHAR2(1)   ;
1686 l_component_appl_id    INTEGER       ;
1687 l_amb_context_code     VARCHAR2(30)  ;
1689 l_output_value         VARCHAR2(30)  ;
1690 BEGIN
1691 IF g_log_enabled THEN
1692       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1693 END IF;
1694 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1695 
1696       trace
1697          (p_msg      => 'BEGIN of AcctDerRule_11'
1698          ,p_level    => C_LEVEL_PROCEDURE
1699          ,p_module   => l_log_module);
1700 
1701 END IF;
1702 
1703 l_component_type         := 'AMB_ADR';
1704 l_component_code         := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1705 l_component_type_code    := 'S';
1706 l_component_appl_id      :=  200;
1707 l_amb_context_code       := 'DEFAULT';
1708 x_transaction_coa_id     :=  null;
1709 x_accounting_coa_id      :=  null;
1710 x_flexfield_segment_code := 'GL_ACCOUNT';
1711 x_flex_value_set_id      :=  null ;
1712 
1713 
1714  IF (NVL(p_source_10,'
1715 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1716 NVL(p_source_20,'
1717 ') =  'BANK ACCOUNT') AND 
1718 TO_NUMBER(p_source_19) IS NOT NULL 
1719  THEN 
1720 --
1721   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1722 
1723       trace
1724          (p_msg      => 'END of AcctDerRule_11'
1725          ,p_level    => C_LEVEL_PROCEDURE
1726          ,p_module   => l_log_module);
1727 
1728   END IF;
1729   x_value_combination_id  := TO_NUMBER(p_source_19) ;
1730   x_value_segment_code    := 'GL_ACCOUNT' ;
1731   x_value_type_code       := 'S';
1732   l_output_value          :=  null;
1733   RETURN l_output_value;
1734 
1735  ELSIF NVL(p_source_10,'
1736 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1737 NVL(p_source_20,'
1738 ') =  'BANK ACCOUNT'
1739  THEN 
1740 --
1741   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1742 
1743       trace
1744          (p_msg      => 'END of AcctDerRule_11'
1745          ,p_level    => C_LEVEL_PROCEDURE
1746          ,p_module   => l_log_module);
1747 
1748   END IF;
1749   x_value_combination_id  := TO_NUMBER(p_source_21) ;
1750   x_value_segment_code    := 'GL_ACCOUNT' ;
1751   x_value_type_code       := 'S';
1752   l_output_value          :=  null;
1753   RETURN l_output_value;
1754 
1755  ELSIF NVL(p_source_10,'
1756 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1757 NVL(p_source_20,'
1758 ') =  'SUPPLIER SITE' AND 
1759 TO_NUMBER(p_source_22) IS NOT NULL 
1760  THEN 
1761 --
1762   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1763 
1764       trace
1765          (p_msg      => 'END of AcctDerRule_11'
1766          ,p_level    => C_LEVEL_PROCEDURE
1767          ,p_module   => l_log_module);
1768 
1769   END IF;
1770   x_value_combination_id  := TO_NUMBER(p_source_22) ;
1771   x_value_segment_code    := 'GL_ACCOUNT' ;
1772   x_value_type_code       := 'S';
1773   l_output_value          :=  null;
1774   RETURN l_output_value;
1775 
1776  ELSIF NVL(p_source_10,'
1777 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1778 NVL(p_source_20,'
1779 ') =  'SUPPLIER SITE'
1780  THEN 
1781 --
1782   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1783 
1784       trace
1785          (p_msg      => 'END of AcctDerRule_11'
1786          ,p_level    => C_LEVEL_PROCEDURE
1787          ,p_module   => l_log_module);
1788 
1789   END IF;
1790   x_value_combination_id  := TO_NUMBER(p_source_21) ;
1791   x_value_segment_code    := 'GL_ACCOUNT' ;
1792   x_value_type_code       := 'S';
1793   l_output_value          :=  null;
1794   RETURN l_output_value;
1795 
1796  ELSE 
1797     IF p_override_seg_flag = 'Y' THEN 
1798        RETURN '#$NO_OVERRIDE#$';
1799     END IF;
1800  END IF;
1801 
1802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1803 
1804       trace
1805          (p_msg      => 'END of AcctDerRule_11(invalid)'
1806          ,p_level    => C_LEVEL_PROCEDURE
1807          ,p_module   => l_log_module);
1808 
1809 END IF;
1810 
1811 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1812 x_value_combination_id  := null;
1813 x_value_segment_code    := null;
1814 x_value_type_code       := null;
1815 l_output_value          := null;
1816 xla_accounting_err_pkg.build_message
1817                  (p_appli_s_name            => 'XLA'
1818                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1819                  ,p_token_1                 => 'COMPONENT_NAME'
1820                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1821                                                             l_component_type
1822                                                           , l_component_code
1823                                                           , l_component_type_code
1824                                                           , l_component_appl_id
1825                                                           , l_amb_context_code
1826                                                           )
1827                  ,p_token_2                 => 'OWNER'
1828                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1829                                                         'XLA_OWNER_TYPE'
1830                                                         ,l_component_type_code
1831                                                         )
1835                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1832                  ,p_token_3                 => 'PAD_NAME'
1833                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1834                  ,p_token_4                 => 'PAD_OWNER'
1836                                                         'XLA_OWNER_TYPE'
1837                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1838                                                         )
1839                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1840                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1841                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1842                  ,p_ae_header_id            => NULL
1843 );
1844 RETURN l_output_value;
1845 EXCEPTION
1846   WHEN xla_exceptions_pkg.application_exception THEN
1847       RAISE;
1848   WHEN OTHERS THEN
1849        xla_exceptions_pkg.raise_message
1850            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_11');
1851 END AcctDerRule_11;
1852 --
1853 
1854 ---------------------------------------
1855 --
1856 -- PRIVATE FUNCTION
1857 --         AcctDerRule_12
1858 --
1859 ---------------------------------------
1860 FUNCTION AcctDerRule_12 (
1861   p_application_id             IN NUMBER
1862 , p_ae_header_id               IN NUMBER
1863 , p_side                       IN VARCHAR2
1864 , p_override_seg_flag          IN VARCHAR2 
1865 --Interest Account
1866  , p_source_23            IN NUMBER
1867 --Prorate Interest Invoice Across Distributions Option
1868  , p_source_24            IN VARCHAR2
1869 , x_transaction_coa_id         OUT NOCOPY NUMBER
1870 , x_accounting_coa_id          OUT NOCOPY NUMBER
1871 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1872 , x_flex_value_set_id          OUT NOCOPY NUMBER
1873 , x_value_type_code            OUT NOCOPY VARCHAR2
1874 , x_value_combination_id       OUT NOCOPY NUMBER
1875 , x_value_segment_code         OUT NOCOPY VARCHAR2
1876 )
1877 RETURN VARCHAR2
1878 IS
1879 l_component_type       VARCHAR2(80)  ;
1880 l_component_code       VARCHAR2(30)  ;
1881 l_component_type_code  VARCHAR2(1)   ;
1882 l_component_appl_id    INTEGER       ;
1883 l_amb_context_code     VARCHAR2(30)  ;
1884 l_log_module           VARCHAR2(240) ;
1885 l_output_value         VARCHAR2(30)  ;
1886 BEGIN
1887 IF g_log_enabled THEN
1888       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1889 END IF;
1890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1891 
1892       trace
1893          (p_msg      => 'BEGIN of AcctDerRule_12'
1894          ,p_level    => C_LEVEL_PROCEDURE
1895          ,p_module   => l_log_module);
1896 
1897 END IF;
1898 
1899 l_component_type         := 'AMB_ADR';
1900 l_component_code         := 'AP_INTEREST_NAT_ACCT_SEG';
1901 l_component_type_code    := 'S';
1902 l_component_appl_id      :=  200;
1903 l_amb_context_code       := 'DEFAULT';
1904 x_transaction_coa_id     :=  null;
1905 x_accounting_coa_id      :=  null;
1906 x_flexfield_segment_code := 'GL_ACCOUNT';
1907 x_flex_value_set_id      :=  null ;
1908 
1909 
1910  IF NVL(p_source_24,'
1911 ') =  'Y'
1912  THEN 
1913 --
1914   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1915 
1916       trace
1917          (p_msg      => 'END of AcctDerRule_12'
1918          ,p_level    => C_LEVEL_PROCEDURE
1919          ,p_module   => l_log_module);
1920 
1921   END IF;
1922   x_value_combination_id  := TO_NUMBER(p_source_23) ;
1923   x_value_segment_code    := 'GL_ACCOUNT' ;
1924   x_value_type_code       := 'S';
1925   l_output_value          :=  null;
1926   RETURN l_output_value;
1927 
1928  ELSE 
1929     IF p_override_seg_flag = 'Y' THEN 
1930        RETURN '#$NO_OVERRIDE#$';
1931     END IF;
1932  END IF;
1933 
1934 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1935 
1936       trace
1937          (p_msg      => 'END of AcctDerRule_12(invalid)'
1938          ,p_level    => C_LEVEL_PROCEDURE
1939          ,p_module   => l_log_module);
1940 
1941 END IF;
1942 
1943 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1944 x_value_combination_id  := null;
1945 x_value_segment_code    := null;
1946 x_value_type_code       := null;
1947 l_output_value          := null;
1948 xla_accounting_err_pkg.build_message
1949                  (p_appli_s_name            => 'XLA'
1950                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1951                  ,p_token_1                 => 'COMPONENT_NAME'
1952                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1953                                                             l_component_type
1954                                                           , l_component_code
1955                                                           , l_component_type_code
1956                                                           , l_component_appl_id
1957                                                           , l_amb_context_code
1958                                                           )
1959                  ,p_token_2                 => 'OWNER'
1960                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1961                                                         'XLA_OWNER_TYPE'
1962                                                         ,l_component_type_code
1966                  ,p_token_4                 => 'PAD_OWNER'
1963                                                         )
1964                  ,p_token_3                 => 'PAD_NAME'
1965                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1967                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1968                                                         'XLA_OWNER_TYPE'
1969                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1970                                                         )
1971                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1972                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1973                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1974                  ,p_ae_header_id            => NULL
1975 );
1976 RETURN l_output_value;
1977 EXCEPTION
1978   WHEN xla_exceptions_pkg.application_exception THEN
1979       RAISE;
1980   WHEN OTHERS THEN
1981        xla_exceptions_pkg.raise_message
1982            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_12');
1983 END AcctDerRule_12;
1984 --
1985 
1986 ---------------------------------------
1987 --
1988 -- PRIVATE FUNCTION
1989 --         AcctDerRule_13
1990 --
1991 ---------------------------------------
1992 FUNCTION AcctDerRule_13 (
1993   p_application_id             IN NUMBER
1994 , p_ae_header_id               IN NUMBER
1995 , p_side                       IN VARCHAR2
1996 , p_override_seg_flag          IN VARCHAR2 
1997 --Invoice Distribution Account
1998  , p_source_25            IN NUMBER
1999 --Prepaid Expense Account Source Option
2000  , p_source_26            IN VARCHAR2
2001  , p_source_26_meaning    IN VARCHAR2
2002 --Purchase Order Number
2003  , p_source_27            IN VARCHAR2
2004 --Invoice Distribution Type
2005  , p_source_28            IN VARCHAR2
2006  , p_source_28_meaning    IN VARCHAR2
2007 , x_transaction_coa_id         OUT NOCOPY NUMBER
2008 , x_accounting_coa_id          OUT NOCOPY NUMBER
2009 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2010 , x_flex_value_set_id          OUT NOCOPY NUMBER
2011 , x_value_type_code            OUT NOCOPY VARCHAR2
2012 , x_value_combination_id       OUT NOCOPY NUMBER
2013 , x_value_segment_code         OUT NOCOPY VARCHAR2
2014 )
2015 RETURN VARCHAR2
2016 IS
2017 l_component_type       VARCHAR2(80)  ;
2018 l_component_code       VARCHAR2(30)  ;
2019 l_component_type_code  VARCHAR2(1)   ;
2020 l_component_appl_id    INTEGER       ;
2021 l_amb_context_code     VARCHAR2(30)  ;
2022 l_log_module           VARCHAR2(240) ;
2023 l_output_value         VARCHAR2(30)  ;
2024 BEGIN
2025 IF g_log_enabled THEN
2026       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
2027 END IF;
2028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2029 
2030       trace
2031          (p_msg      => 'BEGIN of AcctDerRule_13'
2032          ,p_level    => C_LEVEL_PROCEDURE
2033          ,p_module   => l_log_module);
2034 
2035 END IF;
2036 
2037 l_component_type         := 'AMB_ADR';
2038 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
2039 l_component_type_code    := 'S';
2040 l_component_appl_id      :=  200;
2041 l_amb_context_code       := 'DEFAULT';
2042 x_transaction_coa_id     :=  null;
2043 x_accounting_coa_id      :=  null;
2044 x_flexfield_segment_code := 'GL_ACCOUNT';
2045 x_flex_value_set_id      :=  null ;
2046 
2047 
2048  IF NVL(p_source_26,'
2049 ') =  'Y' AND 
2050 p_source_27 IS NOT NULL AND 
2051 NVL(p_source_28,'
2052 ') =  'ITEM'
2053  THEN 
2054 --
2055   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2056 
2057       trace
2058          (p_msg      => 'END of AcctDerRule_13'
2059          ,p_level    => C_LEVEL_PROCEDURE
2060          ,p_module   => l_log_module);
2061 
2062   END IF;
2063   x_value_combination_id  := TO_NUMBER(p_source_25) ;
2064   x_value_segment_code    := 'GL_ACCOUNT' ;
2065   x_value_type_code       := 'S';
2066   l_output_value          :=  null;
2067   RETURN l_output_value;
2068 
2069  ELSE 
2070     IF p_override_seg_flag = 'Y' THEN 
2071        RETURN '#$NO_OVERRIDE#$';
2072     END IF;
2073  END IF;
2074 
2075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2076 
2077       trace
2078          (p_msg      => 'END of AcctDerRule_13(invalid)'
2079          ,p_level    => C_LEVEL_PROCEDURE
2080          ,p_module   => l_log_module);
2081 
2082 END IF;
2083 
2084 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2085 x_value_combination_id  := null;
2086 x_value_segment_code    := null;
2087 x_value_type_code       := null;
2088 l_output_value          := null;
2089 xla_accounting_err_pkg.build_message
2090                  (p_appli_s_name            => 'XLA'
2091                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2092                  ,p_token_1                 => 'COMPONENT_NAME'
2093                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2094                                                             l_component_type
2095                                                           , l_component_code
2099                                                           )
2096                                                           , l_component_type_code
2097                                                           , l_component_appl_id
2098                                                           , l_amb_context_code
2100                  ,p_token_2                 => 'OWNER'
2101                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2102                                                         'XLA_OWNER_TYPE'
2103                                                         ,l_component_type_code
2104                                                         )
2105                  ,p_token_3                 => 'PAD_NAME'
2106                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2107                  ,p_token_4                 => 'PAD_OWNER'
2108                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2109                                                         'XLA_OWNER_TYPE'
2110                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2111                                                         )
2112                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2113                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2114                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2115                  ,p_ae_header_id            => NULL
2116 );
2117 RETURN l_output_value;
2118 EXCEPTION
2119   WHEN xla_exceptions_pkg.application_exception THEN
2120       RAISE;
2121   WHEN OTHERS THEN
2122        xla_exceptions_pkg.raise_message
2123            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_13');
2124 END AcctDerRule_13;
2125 --
2126 
2127 ---------------------------------------
2128 --
2129 -- PRIVATE FUNCTION
2130 --         AcctDerRule_14
2131 --
2132 ---------------------------------------
2133 FUNCTION AcctDerRule_14 (
2134   p_application_id             IN NUMBER
2135 , p_ae_header_id               IN NUMBER
2136 , p_side                       IN VARCHAR2
2137 , p_override_seg_flag          IN VARCHAR2 
2138 --Automatic Offsets Value
2139  , p_source_10            IN VARCHAR2
2140  , p_source_10_meaning    IN VARCHAR2
2141 --Invoice Distribution Account
2142  , p_source_25            IN NUMBER
2143 , x_transaction_coa_id         OUT NOCOPY NUMBER
2144 , x_accounting_coa_id          OUT NOCOPY NUMBER
2145 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2146 , x_flex_value_set_id          OUT NOCOPY NUMBER
2147 , x_value_type_code            OUT NOCOPY VARCHAR2
2148 , x_value_combination_id       OUT NOCOPY NUMBER
2149 , x_value_segment_code         OUT NOCOPY VARCHAR2
2150 )
2151 RETURN VARCHAR2
2152 IS
2153 l_component_type       VARCHAR2(80)  ;
2154 l_component_code       VARCHAR2(30)  ;
2155 l_component_type_code  VARCHAR2(1)   ;
2156 l_component_appl_id    INTEGER       ;
2157 l_amb_context_code     VARCHAR2(30)  ;
2158 l_log_module           VARCHAR2(240) ;
2159 l_output_value         VARCHAR2(30)  ;
2160 BEGIN
2161 IF g_log_enabled THEN
2162       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2163 END IF;
2164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2165 
2166       trace
2167          (p_msg      => 'BEGIN of AcctDerRule_14'
2168          ,p_level    => C_LEVEL_PROCEDURE
2169          ,p_module   => l_log_module);
2170 
2171 END IF;
2172 
2173 l_component_type         := 'AMB_ADR';
2174 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
2175 l_component_type_code    := 'S';
2176 l_component_appl_id      :=  200;
2177 l_amb_context_code       := 'DEFAULT';
2178 x_transaction_coa_id     :=  null;
2179 x_accounting_coa_id      :=  null;
2180 x_flexfield_segment_code := 'GL_ACCOUNT';
2181 x_flex_value_set_id      :=  null ;
2182 
2183 
2184  IF NVL(p_source_10,'
2185 ') =  'ACCOUNT_SEGMENT_VALUE'
2186  THEN 
2187 --
2188   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2189 
2190       trace
2191          (p_msg      => 'END of AcctDerRule_14'
2192          ,p_level    => C_LEVEL_PROCEDURE
2193          ,p_module   => l_log_module);
2194 
2195   END IF;
2196   x_value_combination_id  := TO_NUMBER(p_source_25) ;
2197   x_value_segment_code    := 'GL_ACCOUNT' ;
2198   x_value_type_code       := 'S';
2199   l_output_value          :=  null;
2200   RETURN l_output_value;
2201 
2202  ELSE 
2203     IF p_override_seg_flag = 'Y' THEN 
2204        RETURN '#$NO_OVERRIDE#$';
2205     END IF;
2206  END IF;
2207 
2208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2209 
2210       trace
2211          (p_msg      => 'END of AcctDerRule_14(invalid)'
2212          ,p_level    => C_LEVEL_PROCEDURE
2213          ,p_module   => l_log_module);
2214 
2215 END IF;
2216 
2217 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2218 x_value_combination_id  := null;
2219 x_value_segment_code    := null;
2220 x_value_type_code       := null;
2221 l_output_value          := null;
2222 xla_accounting_err_pkg.build_message
2223                  (p_appli_s_name            => 'XLA'
2224                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2225                  ,p_token_1                 => 'COMPONENT_NAME'
2229                                                           , l_component_type_code
2226                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2227                                                             l_component_type
2228                                                           , l_component_code
2230                                                           , l_component_appl_id
2231                                                           , l_amb_context_code
2232                                                           )
2233                  ,p_token_2                 => 'OWNER'
2234                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2235                                                         'XLA_OWNER_TYPE'
2236                                                         ,l_component_type_code
2237                                                         )
2238                  ,p_token_3                 => 'PAD_NAME'
2239                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2240                  ,p_token_4                 => 'PAD_OWNER'
2241                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2242                                                         'XLA_OWNER_TYPE'
2243                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2244                                                         )
2245                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2246                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2247                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2248                  ,p_ae_header_id            => NULL
2249 );
2250 RETURN l_output_value;
2251 EXCEPTION
2252   WHEN xla_exceptions_pkg.application_exception THEN
2253       RAISE;
2254   WHEN OTHERS THEN
2255        xla_exceptions_pkg.raise_message
2256            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_14');
2257 END AcctDerRule_14;
2258 --
2259 
2260 ---------------------------------------
2261 --
2262 -- PRIVATE FUNCTION
2263 --         AcctDerRule_15
2264 --
2265 ---------------------------------------
2266 FUNCTION AcctDerRule_15 (
2267   p_application_id             IN NUMBER
2268 , p_ae_header_id               IN NUMBER
2269 , p_side                       IN VARCHAR2
2270 , p_override_seg_flag          IN VARCHAR2 
2271 --Invoice Liability Account
2272  , p_source_29            IN NUMBER
2273 , x_transaction_coa_id         OUT NOCOPY NUMBER
2274 , x_accounting_coa_id          OUT NOCOPY NUMBER
2275 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2276 , x_flex_value_set_id          OUT NOCOPY NUMBER
2277 , x_value_type_code            OUT NOCOPY VARCHAR2
2278 , x_value_combination_id       OUT NOCOPY NUMBER
2279 , x_value_segment_code         OUT NOCOPY VARCHAR2
2280 )
2281 RETURN VARCHAR2
2282 IS
2283 l_component_type       VARCHAR2(80)  ;
2284 l_component_code       VARCHAR2(30)  ;
2285 l_component_type_code  VARCHAR2(1)   ;
2286 l_component_appl_id    INTEGER       ;
2287 l_amb_context_code     VARCHAR2(30)  ;
2288 l_log_module           VARCHAR2(240) ;
2289 l_output_value         VARCHAR2(30)  ;
2290 BEGIN
2291 IF g_log_enabled THEN
2292       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2293 END IF;
2294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2295 
2296       trace
2297          (p_msg      => 'BEGIN of AcctDerRule_15'
2298          ,p_level    => C_LEVEL_PROCEDURE
2299          ,p_module   => l_log_module);
2300 
2301 END IF;
2302 
2303 l_component_type         := 'AMB_ADR';
2304 l_component_code         := 'AP_LIAB_NAT_ACCT_SEG';
2305 l_component_type_code    := 'S';
2306 l_component_appl_id      :=  200;
2307 l_amb_context_code       := 'DEFAULT';
2308 x_transaction_coa_id     :=  null;
2309 x_accounting_coa_id      :=  null;
2310 x_flexfield_segment_code := 'GL_ACCOUNT';
2311 x_flex_value_set_id      :=  null ;
2312 
2313 
2314 --
2315   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2316 
2317       trace
2318          (p_msg      => 'END of AcctDerRule_15'
2319          ,p_level    => C_LEVEL_PROCEDURE
2320          ,p_module   => l_log_module);
2321 
2322   END IF;
2323   x_value_combination_id  := TO_NUMBER(p_source_29) ;
2324   x_value_segment_code    := 'GL_ACCOUNT' ;
2325   x_value_type_code       := 'S';
2326   l_output_value          :=  null;
2327   RETURN l_output_value;
2328 
2329 
2330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2331 
2332       trace
2333          (p_msg      => 'END of AcctDerRule_15(invalid)'
2334          ,p_level    => C_LEVEL_PROCEDURE
2335          ,p_module   => l_log_module);
2336 
2337 END IF;
2338 
2339 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2340 x_value_combination_id  := null;
2341 x_value_segment_code    := null;
2342 x_value_type_code       := null;
2343 l_output_value          := null;
2344 xla_accounting_err_pkg.build_message
2345                  (p_appli_s_name            => 'XLA'
2346                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2347                  ,p_token_1                 => 'COMPONENT_NAME'
2348                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2349                                                             l_component_type
2353                                                           , l_amb_context_code
2350                                                           , l_component_code
2351                                                           , l_component_type_code
2352                                                           , l_component_appl_id
2354                                                           )
2355                  ,p_token_2                 => 'OWNER'
2356                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2357                                                         'XLA_OWNER_TYPE'
2358                                                         ,l_component_type_code
2359                                                         )
2360                  ,p_token_3                 => 'PAD_NAME'
2361                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2362                  ,p_token_4                 => 'PAD_OWNER'
2363                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2364                                                         'XLA_OWNER_TYPE'
2365                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2366                                                         )
2367                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2368                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2369                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2370                  ,p_ae_header_id            => NULL
2371 );
2372 RETURN l_output_value;
2373 EXCEPTION
2374   WHEN xla_exceptions_pkg.application_exception THEN
2375       RAISE;
2376   WHEN OTHERS THEN
2377        xla_exceptions_pkg.raise_message
2378            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_15');
2379 END AcctDerRule_15;
2380 --
2381 
2382 ---------------------------------------
2383 --
2384 -- PRIVATE FUNCTION
2385 --         AcctDerRule_16
2386 --
2387 ---------------------------------------
2388 FUNCTION AcctDerRule_16 (
2389   p_application_id             IN NUMBER
2390 , p_ae_header_id               IN NUMBER
2391 , p_side                       IN VARCHAR2
2392 , p_override_seg_flag          IN VARCHAR2 
2393 --Bank Cash Clearing Account
2394  , p_source_30            IN NUMBER
2395 , x_transaction_coa_id         OUT NOCOPY NUMBER
2396 , x_accounting_coa_id          OUT NOCOPY NUMBER
2397 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2398 , x_flex_value_set_id          OUT NOCOPY NUMBER
2399 , x_value_type_code            OUT NOCOPY VARCHAR2
2400 , x_value_combination_id       OUT NOCOPY NUMBER
2401 , x_value_segment_code         OUT NOCOPY VARCHAR2
2402 )
2403 RETURN VARCHAR2
2404 IS
2405 l_component_type       VARCHAR2(80)  ;
2406 l_component_code       VARCHAR2(30)  ;
2407 l_component_type_code  VARCHAR2(1)   ;
2408 l_component_appl_id    INTEGER       ;
2409 l_amb_context_code     VARCHAR2(30)  ;
2410 l_log_module           VARCHAR2(240) ;
2411 l_output_value         VARCHAR2(30)  ;
2412 BEGIN
2413 IF g_log_enabled THEN
2414       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2415 END IF;
2416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2417 
2418       trace
2419          (p_msg      => 'BEGIN of AcctDerRule_16'
2420          ,p_level    => C_LEVEL_PROCEDURE
2421          ,p_module   => l_log_module);
2422 
2423 END IF;
2424 
2425 l_component_type         := 'AMB_ADR';
2426 l_component_code         := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
2427 l_component_type_code    := 'S';
2428 l_component_appl_id      :=  200;
2429 l_amb_context_code       := 'DEFAULT';
2430 x_transaction_coa_id     :=  null;
2431 x_accounting_coa_id      :=  null;
2432 x_flexfield_segment_code := 'GL_ACCOUNT';
2433 x_flex_value_set_id      :=  null ;
2434 
2435 
2436 --
2437   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2438 
2439       trace
2440          (p_msg      => 'END of AcctDerRule_16'
2441          ,p_level    => C_LEVEL_PROCEDURE
2442          ,p_module   => l_log_module);
2443 
2444   END IF;
2445   x_value_combination_id  := TO_NUMBER(p_source_30) ;
2446   x_value_segment_code    := 'GL_ACCOUNT' ;
2447   x_value_type_code       := 'S';
2448   l_output_value          :=  null;
2449   RETURN l_output_value;
2450 
2451 
2452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2453 
2454       trace
2455          (p_msg      => 'END of AcctDerRule_16(invalid)'
2456          ,p_level    => C_LEVEL_PROCEDURE
2457          ,p_module   => l_log_module);
2458 
2459 END IF;
2460 
2461 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2462 x_value_combination_id  := null;
2463 x_value_segment_code    := null;
2464 x_value_type_code       := null;
2465 l_output_value          := null;
2466 xla_accounting_err_pkg.build_message
2467                  (p_appli_s_name            => 'XLA'
2468                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2469                  ,p_token_1                 => 'COMPONENT_NAME'
2470                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2471                                                             l_component_type
2472                                                           , l_component_code
2473                                                           , l_component_type_code
2474                                                           , l_component_appl_id
2475                                                           , l_amb_context_code
2476                                                           )
2480                                                         ,l_component_type_code
2477                  ,p_token_2                 => 'OWNER'
2478                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2479                                                         'XLA_OWNER_TYPE'
2481                                                         )
2482                  ,p_token_3                 => 'PAD_NAME'
2483                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2484                  ,p_token_4                 => 'PAD_OWNER'
2485                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2486                                                         'XLA_OWNER_TYPE'
2487                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2488                                                         )
2489                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2490                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2491                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2492                  ,p_ae_header_id            => NULL
2493 );
2494 RETURN l_output_value;
2495 EXCEPTION
2496   WHEN xla_exceptions_pkg.application_exception THEN
2497       RAISE;
2498   WHEN OTHERS THEN
2499        xla_exceptions_pkg.raise_message
2500            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_16');
2501 END AcctDerRule_16;
2502 --
2503 
2504 ---------------------------------------
2505 --
2506 -- PRIVATE FUNCTION
2507 --         AcctDerRule_17
2508 --
2509 ---------------------------------------
2510 FUNCTION AcctDerRule_17 (
2511   p_application_id             IN NUMBER
2512 , p_ae_header_id               IN NUMBER
2513 , p_side                       IN VARCHAR2
2514 , p_override_seg_flag          IN VARCHAR2 
2515 --Automatic Offsets Value
2516  , p_source_10            IN VARCHAR2
2517  , p_source_10_meaning    IN VARCHAR2
2518 --Internal Realized Gain Account
2519  , p_source_31            IN NUMBER
2520 --Bank Gain Account
2521  , p_source_32            IN NUMBER
2522 , x_transaction_coa_id         OUT NOCOPY NUMBER
2523 , x_accounting_coa_id          OUT NOCOPY NUMBER
2524 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2525 , x_flex_value_set_id          OUT NOCOPY NUMBER
2526 , x_value_type_code            OUT NOCOPY VARCHAR2
2527 , x_value_combination_id       OUT NOCOPY NUMBER
2528 , x_value_segment_code         OUT NOCOPY VARCHAR2
2529 )
2530 RETURN VARCHAR2
2531 IS
2532 l_component_type       VARCHAR2(80)  ;
2533 l_component_code       VARCHAR2(30)  ;
2534 l_component_type_code  VARCHAR2(1)   ;
2535 l_component_appl_id    INTEGER       ;
2536 l_amb_context_code     VARCHAR2(30)  ;
2537 l_log_module           VARCHAR2(240) ;
2538 l_output_value         VARCHAR2(30)  ;
2539 BEGIN
2540 IF g_log_enabled THEN
2541       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2542 END IF;
2543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2544 
2545       trace
2546          (p_msg      => 'BEGIN of AcctDerRule_17'
2547          ,p_level    => C_LEVEL_PROCEDURE
2548          ,p_module   => l_log_module);
2549 
2550 END IF;
2551 
2552 l_component_type         := 'AMB_ADR';
2553 l_component_code         := 'AP_REAL_GAIN_NAT_ACCT_SEG';
2554 l_component_type_code    := 'S';
2555 l_component_appl_id      :=  200;
2556 l_amb_context_code       := 'DEFAULT';
2557 x_transaction_coa_id     :=  null;
2558 x_accounting_coa_id      :=  null;
2559 x_flexfield_segment_code := 'GL_ACCOUNT';
2560 x_flex_value_set_id      :=  null ;
2561 
2562 
2563  IF NVL(p_source_10,'
2564 ') =  'ACCOUNT_SEGMENT_VALUE'
2565  THEN 
2566 --
2567   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2568 
2569       trace
2570          (p_msg      => 'END of AcctDerRule_17'
2571          ,p_level    => C_LEVEL_PROCEDURE
2572          ,p_module   => l_log_module);
2573 
2574   END IF;
2575   x_value_combination_id  := TO_NUMBER(p_source_31) ;
2576   x_value_segment_code    := 'GL_ACCOUNT' ;
2577   x_value_type_code       := 'S';
2578   l_output_value          :=  null;
2579   RETURN l_output_value;
2580 
2581  ELSIF NVL(p_source_10,'
2582 ') =  'ACCOUNT_SEGMENT_VALUE'
2583  THEN 
2584 --
2585   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2586 
2587       trace
2588          (p_msg      => 'END of AcctDerRule_17'
2589          ,p_level    => C_LEVEL_PROCEDURE
2590          ,p_module   => l_log_module);
2591 
2592   END IF;
2593   x_value_combination_id  := TO_NUMBER(p_source_32) ;
2594   x_value_segment_code    := 'GL_ACCOUNT' ;
2595   x_value_type_code       := 'S';
2596   l_output_value          :=  null;
2597   RETURN l_output_value;
2598 
2599  ELSE 
2600     IF p_override_seg_flag = 'Y' THEN 
2601        RETURN '#$NO_OVERRIDE#$';
2602     END IF;
2603  END IF;
2604 
2605 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2606 
2607       trace
2608          (p_msg      => 'END of AcctDerRule_17(invalid)'
2609          ,p_level    => C_LEVEL_PROCEDURE
2610          ,p_module   => l_log_module);
2611 
2612 END IF;
2613 
2614 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2615 x_value_combination_id  := null;
2616 x_value_segment_code    := null;
2620                  (p_appli_s_name            => 'XLA'
2617 x_value_type_code       := null;
2618 l_output_value          := null;
2619 xla_accounting_err_pkg.build_message
2621                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2622                  ,p_token_1                 => 'COMPONENT_NAME'
2623                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2624                                                             l_component_type
2625                                                           , l_component_code
2626                                                           , l_component_type_code
2627                                                           , l_component_appl_id
2628                                                           , l_amb_context_code
2629                                                           )
2630                  ,p_token_2                 => 'OWNER'
2631                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2632                                                         'XLA_OWNER_TYPE'
2633                                                         ,l_component_type_code
2634                                                         )
2635                  ,p_token_3                 => 'PAD_NAME'
2636                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2637                  ,p_token_4                 => 'PAD_OWNER'
2638                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2639                                                         'XLA_OWNER_TYPE'
2640                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2641                                                         )
2642                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2643                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2644                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2645                  ,p_ae_header_id            => NULL
2646 );
2647 RETURN l_output_value;
2648 EXCEPTION
2649   WHEN xla_exceptions_pkg.application_exception THEN
2650       RAISE;
2651   WHEN OTHERS THEN
2652        xla_exceptions_pkg.raise_message
2653            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_17');
2654 END AcctDerRule_17;
2655 --
2656 
2657 ---------------------------------------
2658 --
2659 -- PRIVATE FUNCTION
2660 --         AcctDerRule_18
2661 --
2662 ---------------------------------------
2663 FUNCTION AcctDerRule_18 (
2664   p_application_id             IN NUMBER
2665 , p_ae_header_id               IN NUMBER
2666 , p_side                       IN VARCHAR2
2667 , p_override_seg_flag          IN VARCHAR2 
2668 --Automatic Offsets Value
2669  , p_source_10            IN VARCHAR2
2670  , p_source_10_meaning    IN VARCHAR2
2671 --Internal Realized Loss Account
2672  , p_source_33            IN NUMBER
2673 --Bank Loss Account
2674  , p_source_34            IN NUMBER
2675 , x_transaction_coa_id         OUT NOCOPY NUMBER
2676 , x_accounting_coa_id          OUT NOCOPY NUMBER
2677 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2678 , x_flex_value_set_id          OUT NOCOPY NUMBER
2679 , x_value_type_code            OUT NOCOPY VARCHAR2
2680 , x_value_combination_id       OUT NOCOPY NUMBER
2681 , x_value_segment_code         OUT NOCOPY VARCHAR2
2682 )
2683 RETURN VARCHAR2
2684 IS
2685 l_component_type       VARCHAR2(80)  ;
2686 l_component_code       VARCHAR2(30)  ;
2687 l_component_type_code  VARCHAR2(1)   ;
2688 l_component_appl_id    INTEGER       ;
2689 l_amb_context_code     VARCHAR2(30)  ;
2690 l_log_module           VARCHAR2(240) ;
2691 l_output_value         VARCHAR2(30)  ;
2692 BEGIN
2693 IF g_log_enabled THEN
2694       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2695 END IF;
2696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2697 
2698       trace
2699          (p_msg      => 'BEGIN of AcctDerRule_18'
2700          ,p_level    => C_LEVEL_PROCEDURE
2701          ,p_module   => l_log_module);
2702 
2703 END IF;
2704 
2705 l_component_type         := 'AMB_ADR';
2706 l_component_code         := 'AP_REAL_LOSS_NAT_ACCT_SEG';
2707 l_component_type_code    := 'S';
2708 l_component_appl_id      :=  200;
2709 l_amb_context_code       := 'DEFAULT';
2710 x_transaction_coa_id     :=  null;
2711 x_accounting_coa_id      :=  null;
2712 x_flexfield_segment_code := 'GL_ACCOUNT';
2713 x_flex_value_set_id      :=  null ;
2714 
2715 
2716  IF NVL(p_source_10,'
2717 ') =  'ACCOUNT_SEGMENT_VALUE'
2718  THEN 
2719 --
2720   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2721 
2722       trace
2723          (p_msg      => 'END of AcctDerRule_18'
2724          ,p_level    => C_LEVEL_PROCEDURE
2725          ,p_module   => l_log_module);
2726 
2727   END IF;
2728   x_value_combination_id  := TO_NUMBER(p_source_33) ;
2729   x_value_segment_code    := 'GL_ACCOUNT' ;
2730   x_value_type_code       := 'S';
2731   l_output_value          :=  null;
2732   RETURN l_output_value;
2733 
2734  ELSIF NVL(p_source_10,'
2735 ') =  'ACCOUNT_SEGMENT_VALUE'
2736  THEN 
2737 --
2738   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2739 
2740       trace
2741          (p_msg      => 'END of AcctDerRule_18'
2742          ,p_level    => C_LEVEL_PROCEDURE
2743          ,p_module   => l_log_module);
2744 
2745   END IF;
2746   x_value_combination_id  := TO_NUMBER(p_source_34) ;
2750   RETURN l_output_value;
2747   x_value_segment_code    := 'GL_ACCOUNT' ;
2748   x_value_type_code       := 'S';
2749   l_output_value          :=  null;
2751 
2752  ELSE 
2753     IF p_override_seg_flag = 'Y' THEN 
2754        RETURN '#$NO_OVERRIDE#$';
2755     END IF;
2756  END IF;
2757 
2758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2759 
2760       trace
2761          (p_msg      => 'END of AcctDerRule_18(invalid)'
2762          ,p_level    => C_LEVEL_PROCEDURE
2763          ,p_module   => l_log_module);
2764 
2765 END IF;
2766 
2767 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2768 x_value_combination_id  := null;
2769 x_value_segment_code    := null;
2770 x_value_type_code       := null;
2771 l_output_value          := null;
2772 xla_accounting_err_pkg.build_message
2773                  (p_appli_s_name            => 'XLA'
2774                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2775                  ,p_token_1                 => 'COMPONENT_NAME'
2776                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2777                                                             l_component_type
2778                                                           , l_component_code
2779                                                           , l_component_type_code
2780                                                           , l_component_appl_id
2781                                                           , l_amb_context_code
2782                                                           )
2783                  ,p_token_2                 => 'OWNER'
2784                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2785                                                         'XLA_OWNER_TYPE'
2786                                                         ,l_component_type_code
2787                                                         )
2788                  ,p_token_3                 => 'PAD_NAME'
2789                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2790                  ,p_token_4                 => 'PAD_OWNER'
2791                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2792                                                         'XLA_OWNER_TYPE'
2793                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2794                                                         )
2795                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2796                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2797                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2798                  ,p_ae_header_id            => NULL
2799 );
2800 RETURN l_output_value;
2801 EXCEPTION
2802   WHEN xla_exceptions_pkg.application_exception THEN
2803       RAISE;
2804   WHEN OTHERS THEN
2805        xla_exceptions_pkg.raise_message
2806            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_18');
2807 END AcctDerRule_18;
2808 --
2809 
2810 ---------------------------------------
2811 --
2812 -- PRIVATE FUNCTION
2813 --         AcctDerRule_19
2814 --
2815 ---------------------------------------
2816 FUNCTION AcctDerRule_19 (
2817   p_application_id             IN NUMBER
2818 , p_ae_header_id               IN NUMBER
2819 , p_side                       IN VARCHAR2
2820 , p_override_seg_flag          IN VARCHAR2 
2821 --Retainage Account
2822  , p_source_35            IN NUMBER
2823 , x_transaction_coa_id         OUT NOCOPY NUMBER
2824 , x_accounting_coa_id          OUT NOCOPY NUMBER
2825 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2826 , x_flex_value_set_id          OUT NOCOPY NUMBER
2827 , x_value_type_code            OUT NOCOPY VARCHAR2
2828 , x_value_combination_id       OUT NOCOPY NUMBER
2829 , x_value_segment_code         OUT NOCOPY VARCHAR2
2830 )
2831 RETURN VARCHAR2
2832 IS
2833 l_component_type       VARCHAR2(80)  ;
2834 l_component_code       VARCHAR2(30)  ;
2835 l_component_type_code  VARCHAR2(1)   ;
2836 l_component_appl_id    INTEGER       ;
2837 l_amb_context_code     VARCHAR2(30)  ;
2838 l_log_module           VARCHAR2(240) ;
2839 l_output_value         VARCHAR2(30)  ;
2840 BEGIN
2841 IF g_log_enabled THEN
2842       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2843 END IF;
2844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2845 
2846       trace
2847          (p_msg      => 'BEGIN of AcctDerRule_19'
2848          ,p_level    => C_LEVEL_PROCEDURE
2849          ,p_module   => l_log_module);
2850 
2851 END IF;
2852 
2853 l_component_type         := 'AMB_ADR';
2854 l_component_code         := 'AP_RETAIN_NAT_ACCT_SEG';
2855 l_component_type_code    := 'S';
2856 l_component_appl_id      :=  200;
2857 l_amb_context_code       := 'DEFAULT';
2858 x_transaction_coa_id     :=  null;
2859 x_accounting_coa_id      :=  null;
2860 x_flexfield_segment_code := 'GL_ACCOUNT';
2861 x_flex_value_set_id      :=  null ;
2862 
2863 
2864 --
2865   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2866 
2867       trace
2868          (p_msg      => 'END of AcctDerRule_19'
2869          ,p_level    => C_LEVEL_PROCEDURE
2870          ,p_module   => l_log_module);
2871 
2872   END IF;
2873   x_value_combination_id  := TO_NUMBER(p_source_35) ;
2877   RETURN l_output_value;
2874   x_value_segment_code    := 'GL_ACCOUNT' ;
2875   x_value_type_code       := 'S';
2876   l_output_value          :=  null;
2878 
2879 
2880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2881 
2882       trace
2883          (p_msg      => 'END of AcctDerRule_19(invalid)'
2884          ,p_level    => C_LEVEL_PROCEDURE
2885          ,p_module   => l_log_module);
2886 
2887 END IF;
2888 
2889 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2890 x_value_combination_id  := null;
2891 x_value_segment_code    := null;
2892 x_value_type_code       := null;
2893 l_output_value          := null;
2894 xla_accounting_err_pkg.build_message
2895                  (p_appli_s_name            => 'XLA'
2896                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2897                  ,p_token_1                 => 'COMPONENT_NAME'
2898                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2899                                                             l_component_type
2900                                                           , l_component_code
2901                                                           , l_component_type_code
2902                                                           , l_component_appl_id
2903                                                           , l_amb_context_code
2904                                                           )
2905                  ,p_token_2                 => 'OWNER'
2906                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2907                                                         'XLA_OWNER_TYPE'
2908                                                         ,l_component_type_code
2909                                                         )
2910                  ,p_token_3                 => 'PAD_NAME'
2911                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2912                  ,p_token_4                 => 'PAD_OWNER'
2913                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2914                                                         'XLA_OWNER_TYPE'
2915                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2916                                                         )
2917                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2918                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2919                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2920                  ,p_ae_header_id            => NULL
2921 );
2922 RETURN l_output_value;
2923 EXCEPTION
2924   WHEN xla_exceptions_pkg.application_exception THEN
2925       RAISE;
2926   WHEN OTHERS THEN
2927        xla_exceptions_pkg.raise_message
2928            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_19');
2929 END AcctDerRule_19;
2930 --
2931 
2932 ---------------------------------------
2933 --
2934 -- PRIVATE FUNCTION
2935 --         AcctDerRule_20
2936 --
2937 ---------------------------------------
2938 FUNCTION AcctDerRule_20 (
2939   p_application_id             IN NUMBER
2940 , p_ae_header_id               IN NUMBER
2941 , p_side                       IN VARCHAR2
2942 , p_override_seg_flag          IN VARCHAR2 
2943 --Payables Options Tax Difference Account
2944  , p_source_36            IN NUMBER
2945 , x_transaction_coa_id         OUT NOCOPY NUMBER
2946 , x_accounting_coa_id          OUT NOCOPY NUMBER
2947 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2948 , x_flex_value_set_id          OUT NOCOPY NUMBER
2949 , x_value_type_code            OUT NOCOPY VARCHAR2
2950 , x_value_combination_id       OUT NOCOPY NUMBER
2951 , x_value_segment_code         OUT NOCOPY VARCHAR2
2952 )
2953 RETURN VARCHAR2
2954 IS
2955 l_component_type       VARCHAR2(80)  ;
2956 l_component_code       VARCHAR2(30)  ;
2957 l_component_type_code  VARCHAR2(1)   ;
2958 l_component_appl_id    INTEGER       ;
2959 l_amb_context_code     VARCHAR2(30)  ;
2960 l_log_module           VARCHAR2(240) ;
2961 l_output_value         VARCHAR2(30)  ;
2962 BEGIN
2963 IF g_log_enabled THEN
2964       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
2965 END IF;
2966 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2967 
2968       trace
2969          (p_msg      => 'BEGIN of AcctDerRule_20'
2970          ,p_level    => C_LEVEL_PROCEDURE
2971          ,p_module   => l_log_module);
2972 
2973 END IF;
2974 
2975 l_component_type         := 'AMB_ADR';
2976 l_component_code         := 'AP_TAX_DIFFERENCE_NAT_ACCT';
2977 l_component_type_code    := 'S';
2978 l_component_appl_id      :=  200;
2979 l_amb_context_code       := 'DEFAULT';
2980 x_transaction_coa_id     :=  null;
2981 x_accounting_coa_id      :=  null;
2982 x_flexfield_segment_code := 'GL_ACCOUNT';
2983 x_flex_value_set_id      :=  null ;
2984 
2985 
2986 --
2987   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2988 
2989       trace
2990          (p_msg      => 'END of AcctDerRule_20'
2991          ,p_level    => C_LEVEL_PROCEDURE
2992          ,p_module   => l_log_module);
2993 
2994   END IF;
2995   x_value_combination_id  := TO_NUMBER(p_source_36) ;
2996   x_value_segment_code    := 'GL_ACCOUNT' ;
2997   x_value_type_code       := 'S';
2998   l_output_value          :=  null;
2999   RETURN l_output_value;
3000 
3001 
3005          (p_msg      => 'END of AcctDerRule_20(invalid)'
3002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3003 
3004       trace
3006          ,p_level    => C_LEVEL_PROCEDURE
3007          ,p_module   => l_log_module);
3008 
3009 END IF;
3010 
3011 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3012 x_value_combination_id  := null;
3013 x_value_segment_code    := null;
3014 x_value_type_code       := null;
3015 l_output_value          := null;
3016 xla_accounting_err_pkg.build_message
3017                  (p_appli_s_name            => 'XLA'
3018                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3019                  ,p_token_1                 => 'COMPONENT_NAME'
3020                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3021                                                             l_component_type
3022                                                           , l_component_code
3023                                                           , l_component_type_code
3024                                                           , l_component_appl_id
3025                                                           , l_amb_context_code
3026                                                           )
3027                  ,p_token_2                 => 'OWNER'
3028                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3029                                                         'XLA_OWNER_TYPE'
3030                                                         ,l_component_type_code
3031                                                         )
3032                  ,p_token_3                 => 'PAD_NAME'
3033                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3034                  ,p_token_4                 => 'PAD_OWNER'
3035                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3036                                                         'XLA_OWNER_TYPE'
3037                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3038                                                         )
3039                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3040                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3041                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3042                  ,p_ae_header_id            => NULL
3043 );
3044 RETURN l_output_value;
3045 EXCEPTION
3046   WHEN xla_exceptions_pkg.application_exception THEN
3047       RAISE;
3048   WHEN OTHERS THEN
3049        xla_exceptions_pkg.raise_message
3050            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_20');
3051 END AcctDerRule_20;
3052 --
3053 
3054 ---------------------------------------
3055 --
3056 -- PRIVATE FUNCTION
3057 --         AcctDerRule_21
3058 --
3059 ---------------------------------------
3060 FUNCTION AcctDerRule_21 (
3061   p_application_id             IN NUMBER
3062 , p_ae_header_id               IN NUMBER
3063 , p_side                       IN VARCHAR2
3064 , p_override_seg_flag          IN VARCHAR2 
3065 --Federal DIT Confirm Account
3066  , p_source_37            IN VARCHAR2
3067 , x_transaction_coa_id         OUT NOCOPY NUMBER
3068 , x_accounting_coa_id          OUT NOCOPY NUMBER
3069 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3070 , x_flex_value_set_id          OUT NOCOPY NUMBER
3071 , x_value_type_code            OUT NOCOPY VARCHAR2
3072 , x_value_combination_id       OUT NOCOPY NUMBER
3073 , x_value_segment_code         OUT NOCOPY VARCHAR2
3074 )
3075 RETURN VARCHAR2
3076 IS
3077 l_component_type       VARCHAR2(80)  ;
3078 l_component_code       VARCHAR2(30)  ;
3079 l_component_type_code  VARCHAR2(1)   ;
3080 l_component_appl_id    INTEGER       ;
3081 l_amb_context_code     VARCHAR2(30)  ;
3082 l_log_module           VARCHAR2(240) ;
3083 l_output_value         VARCHAR2(30)  ;
3084 BEGIN
3085 IF g_log_enabled THEN
3086       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
3087 END IF;
3088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3089 
3090       trace
3091          (p_msg      => 'BEGIN of AcctDerRule_21'
3092          ,p_level    => C_LEVEL_PROCEDURE
3093          ,p_module   => l_log_module);
3094 
3095 END IF;
3096 
3097 l_component_type         := 'AMB_ADR';
3098 l_component_code         := 'FV_TREASURY_CONFIRM_CASH_ACCT';
3099 l_component_type_code    := 'S';
3100 l_component_appl_id      :=  200;
3101 l_amb_context_code       := 'DEFAULT';
3102 x_transaction_coa_id     :=  null;
3103 x_accounting_coa_id      :=  null;
3104 x_flexfield_segment_code := 'GL_ACCOUNT';
3105 x_flex_value_set_id      :=  null ;
3106 
3107 
3108 --
3109   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3110 
3111       trace
3112          (p_msg      => 'END of AcctDerRule_21'
3113          ,p_level    => C_LEVEL_PROCEDURE
3114          ,p_module   => l_log_module);
3115 
3116   END IF;
3117   x_value_combination_id  :=  null ;
3118   x_value_segment_code    :=  null ;
3119   x_value_type_code       := 'S';
3120   l_output_value          := TO_CHAR(p_source_37);
3121   RETURN l_output_value;
3122 
3123 
3124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3125 
3126       trace
3127          (p_msg      => 'END of AcctDerRule_21(invalid)'
3128          ,p_level    => C_LEVEL_PROCEDURE
3132 
3129          ,p_module   => l_log_module);
3130 
3131 END IF;
3133 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3134 x_value_combination_id  := null;
3135 x_value_segment_code    := null;
3136 x_value_type_code       := null;
3137 l_output_value          := null;
3138 xla_accounting_err_pkg.build_message
3139                  (p_appli_s_name            => 'XLA'
3140                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3141                  ,p_token_1                 => 'COMPONENT_NAME'
3142                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3143                                                             l_component_type
3144                                                           , l_component_code
3145                                                           , l_component_type_code
3146                                                           , l_component_appl_id
3147                                                           , l_amb_context_code
3148                                                           )
3149                  ,p_token_2                 => 'OWNER'
3150                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3151                                                         'XLA_OWNER_TYPE'
3152                                                         ,l_component_type_code
3153                                                         )
3154                  ,p_token_3                 => 'PAD_NAME'
3155                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3156                  ,p_token_4                 => 'PAD_OWNER'
3157                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3158                                                         'XLA_OWNER_TYPE'
3159                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3160                                                         )
3161                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3162                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3163                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3164                  ,p_ae_header_id            => NULL
3165 );
3166 RETURN l_output_value;
3167 EXCEPTION
3168   WHEN xla_exceptions_pkg.application_exception THEN
3169       RAISE;
3170   WHEN OTHERS THEN
3171        xla_exceptions_pkg.raise_message
3172            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_21');
3173 END AcctDerRule_21;
3174 --
3175 
3176 ---------------------------------------
3177 --
3178 -- PRIVATE FUNCTION
3179 --         AcctDerRule_22
3180 --
3181 ---------------------------------------
3182 FUNCTION AcctDerRule_22 (
3183   p_application_id             IN NUMBER
3184 , p_ae_header_id               IN NUMBER
3185 , p_side                       IN VARCHAR2
3186 , p_override_seg_flag          IN VARCHAR2 
3187 --Automatic Offsets Value
3188  , p_source_10            IN VARCHAR2
3189  , p_source_10_meaning    IN VARCHAR2
3190 --Discount Distribution Method
3191  , p_source_14            IN VARCHAR2
3192  , p_source_14_meaning    IN VARCHAR2
3193 --Invoice Distribution Account
3194  , p_source_25            IN NUMBER
3195 , x_transaction_coa_id         OUT NOCOPY NUMBER
3196 , x_accounting_coa_id          OUT NOCOPY NUMBER
3197 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3198 , x_flex_value_set_id          OUT NOCOPY NUMBER
3199 , x_value_type_code            OUT NOCOPY VARCHAR2
3200 , x_value_combination_id       OUT NOCOPY NUMBER
3201 , x_value_segment_code         OUT NOCOPY VARCHAR2
3202 )
3203 RETURN VARCHAR2
3204 IS
3205 l_component_type       VARCHAR2(80)  ;
3206 l_component_code       VARCHAR2(30)  ;
3207 l_component_type_code  VARCHAR2(1)   ;
3208 l_component_appl_id    INTEGER       ;
3209 l_amb_context_code     VARCHAR2(30)  ;
3210 l_log_module           VARCHAR2(240) ;
3211 l_output_value         VARCHAR2(30)  ;
3212 BEGIN
3213 IF g_log_enabled THEN
3214       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3215 END IF;
3216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3217 
3218       trace
3219          (p_msg      => 'BEGIN of AcctDerRule_22'
3220          ,p_level    => C_LEVEL_PROCEDURE
3221          ,p_module   => l_log_module);
3222 
3223 END IF;
3224 
3225 l_component_type         := 'AMB_ADR';
3226 l_component_code         := 'AP_DISCOUNT_BAL_ACCT_SEG';
3227 l_component_type_code    := 'S';
3228 l_component_appl_id      :=  200;
3229 l_amb_context_code       := 'DEFAULT';
3230 x_transaction_coa_id     :=  null;
3231 x_accounting_coa_id      :=  null;
3232 x_flexfield_segment_code := 'GL_BALANCING';
3233 x_flex_value_set_id      :=  null ;
3234 
3235 
3236  IF NVL(p_source_14,'
3237 ') =  'SYSTEM' AND 
3238 NVL(p_source_10,'
3239 ') =  'BALANCING_SEGMENT'
3240  THEN 
3241 --
3242   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3243 
3244       trace
3245          (p_msg      => 'END of AcctDerRule_22'
3246          ,p_level    => C_LEVEL_PROCEDURE
3247          ,p_module   => l_log_module);
3248 
3249   END IF;
3250   x_value_combination_id  := TO_NUMBER(p_source_25) ;
3254   RETURN l_output_value;
3251   x_value_segment_code    := 'GL_BALANCING' ;
3252   x_value_type_code       := 'S';
3253   l_output_value          :=  null;
3255 
3256  ELSE 
3257     IF p_override_seg_flag = 'Y' THEN 
3258        RETURN '#$NO_OVERRIDE#$';
3259     END IF;
3260  END IF;
3261 
3262 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3263 
3264       trace
3265          (p_msg      => 'END of AcctDerRule_22(invalid)'
3266          ,p_level    => C_LEVEL_PROCEDURE
3267          ,p_module   => l_log_module);
3268 
3269 END IF;
3270 
3271 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3272 x_value_combination_id  := null;
3273 x_value_segment_code    := null;
3274 x_value_type_code       := null;
3275 l_output_value          := null;
3276 xla_accounting_err_pkg.build_message
3277                  (p_appli_s_name            => 'XLA'
3278                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3279                  ,p_token_1                 => 'COMPONENT_NAME'
3280                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3281                                                             l_component_type
3282                                                           , l_component_code
3283                                                           , l_component_type_code
3284                                                           , l_component_appl_id
3285                                                           , l_amb_context_code
3286                                                           )
3287                  ,p_token_2                 => 'OWNER'
3288                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3289                                                         'XLA_OWNER_TYPE'
3290                                                         ,l_component_type_code
3291                                                         )
3292                  ,p_token_3                 => 'PAD_NAME'
3293                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3294                  ,p_token_4                 => 'PAD_OWNER'
3295                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3296                                                         'XLA_OWNER_TYPE'
3297                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3298                                                         )
3299                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3300                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3301                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3302                  ,p_ae_header_id            => NULL
3303 );
3304 RETURN l_output_value;
3305 EXCEPTION
3306   WHEN xla_exceptions_pkg.application_exception THEN
3307       RAISE;
3308   WHEN OTHERS THEN
3309        xla_exceptions_pkg.raise_message
3310            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_22');
3311 END AcctDerRule_22;
3312 --
3313 
3314 ---------------------------------------
3315 --
3316 -- PRIVATE FUNCTION
3317 --         AcctDerRule_23
3318 --
3319 ---------------------------------------
3320 FUNCTION AcctDerRule_23 (
3321   p_application_id             IN NUMBER
3322 , p_ae_header_id               IN NUMBER
3323 , p_side                       IN VARCHAR2
3324 , p_override_seg_flag          IN VARCHAR2 
3325 --Automatic Offsets Value
3326  , p_source_10            IN VARCHAR2
3327  , p_source_10_meaning    IN VARCHAR2
3328 --Invoice Distribution Account
3329  , p_source_25            IN NUMBER
3330 , x_transaction_coa_id         OUT NOCOPY NUMBER
3331 , x_accounting_coa_id          OUT NOCOPY NUMBER
3332 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3333 , x_flex_value_set_id          OUT NOCOPY NUMBER
3334 , x_value_type_code            OUT NOCOPY VARCHAR2
3335 , x_value_combination_id       OUT NOCOPY NUMBER
3336 , x_value_segment_code         OUT NOCOPY VARCHAR2
3337 )
3338 RETURN VARCHAR2
3339 IS
3340 l_component_type       VARCHAR2(80)  ;
3341 l_component_code       VARCHAR2(30)  ;
3342 l_component_type_code  VARCHAR2(1)   ;
3343 l_component_appl_id    INTEGER       ;
3344 l_amb_context_code     VARCHAR2(30)  ;
3345 l_log_module           VARCHAR2(240) ;
3346 l_output_value         VARCHAR2(30)  ;
3347 BEGIN
3348 IF g_log_enabled THEN
3349       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3350 END IF;
3351 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3352 
3353       trace
3354          (p_msg      => 'BEGIN of AcctDerRule_23'
3355          ,p_level    => C_LEVEL_PROCEDURE
3356          ,p_module   => l_log_module);
3357 
3358 END IF;
3359 
3360 l_component_type         := 'AMB_ADR';
3361 l_component_code         := 'AP_INV_DIST_BAL_SEG';
3362 l_component_type_code    := 'S';
3363 l_component_appl_id      :=  200;
3364 l_amb_context_code       := 'DEFAULT';
3365 x_transaction_coa_id     :=  null;
3366 x_accounting_coa_id      :=  null;
3367 x_flexfield_segment_code := 'GL_BALANCING';
3368 x_flex_value_set_id      :=  null ;
3369 
3370 
3371  IF NVL(p_source_10,'
3372 ') =  'BALANCING_SEGMENT'
3373  THEN 
3374 --
3375   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3376 
3377       trace
3378          (p_msg      => 'END of AcctDerRule_23'
3379          ,p_level    => C_LEVEL_PROCEDURE
3383   x_value_combination_id  := TO_NUMBER(p_source_25) ;
3380          ,p_module   => l_log_module);
3381 
3382   END IF;
3384   x_value_segment_code    := 'GL_BALANCING' ;
3385   x_value_type_code       := 'S';
3386   l_output_value          :=  null;
3387   RETURN l_output_value;
3388 
3389  ELSE 
3390     IF p_override_seg_flag = 'Y' THEN 
3391        RETURN '#$NO_OVERRIDE#$';
3392     END IF;
3393  END IF;
3394 
3395 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3396 
3397       trace
3398          (p_msg      => 'END of AcctDerRule_23(invalid)'
3399          ,p_level    => C_LEVEL_PROCEDURE
3400          ,p_module   => l_log_module);
3401 
3402 END IF;
3403 
3404 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3405 x_value_combination_id  := null;
3406 x_value_segment_code    := null;
3407 x_value_type_code       := null;
3408 l_output_value          := null;
3409 xla_accounting_err_pkg.build_message
3410                  (p_appli_s_name            => 'XLA'
3411                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3412                  ,p_token_1                 => 'COMPONENT_NAME'
3413                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3414                                                             l_component_type
3415                                                           , l_component_code
3416                                                           , l_component_type_code
3417                                                           , l_component_appl_id
3418                                                           , l_amb_context_code
3419                                                           )
3420                  ,p_token_2                 => 'OWNER'
3421                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3422                                                         'XLA_OWNER_TYPE'
3423                                                         ,l_component_type_code
3424                                                         )
3425                  ,p_token_3                 => 'PAD_NAME'
3426                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3427                  ,p_token_4                 => 'PAD_OWNER'
3428                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3429                                                         'XLA_OWNER_TYPE'
3430                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3431                                                         )
3432                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3433                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3434                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3435                  ,p_ae_header_id            => NULL
3436 );
3437 RETURN l_output_value;
3438 EXCEPTION
3439   WHEN xla_exceptions_pkg.application_exception THEN
3440       RAISE;
3441   WHEN OTHERS THEN
3442        xla_exceptions_pkg.raise_message
3443            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_23');
3444 END AcctDerRule_23;
3445 --
3446 
3447 ---------------------------------------
3448 --
3449 -- PRIVATE FUNCTION
3450 --         AcctDerRule_24
3451 --
3452 ---------------------------------------
3453 FUNCTION AcctDerRule_24 (
3454   p_application_id             IN NUMBER
3455 , p_ae_header_id               IN NUMBER
3456 , p_side                       IN VARCHAR2
3457 , p_override_seg_flag          IN VARCHAR2 
3458 --Automatic Offsets Value
3459  , p_source_10            IN VARCHAR2
3460  , p_source_10_meaning    IN VARCHAR2
3461 --Destination Type of the PO Distribution
3462  , p_source_17            IN VARCHAR2
3463  , p_source_17_meaning    IN VARCHAR2
3464 --Invoice Distribution Account
3465  , p_source_25            IN NUMBER
3466 , x_transaction_coa_id         OUT NOCOPY NUMBER
3467 , x_accounting_coa_id          OUT NOCOPY NUMBER
3468 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3469 , x_flex_value_set_id          OUT NOCOPY NUMBER
3470 , x_value_type_code            OUT NOCOPY VARCHAR2
3471 , x_value_combination_id       OUT NOCOPY NUMBER
3472 , x_value_segment_code         OUT NOCOPY VARCHAR2
3473 )
3474 RETURN VARCHAR2
3475 IS
3476 l_component_type       VARCHAR2(80)  ;
3477 l_component_code       VARCHAR2(30)  ;
3478 l_component_type_code  VARCHAR2(1)   ;
3479 l_component_appl_id    INTEGER       ;
3480 l_amb_context_code     VARCHAR2(30)  ;
3481 l_log_module           VARCHAR2(240) ;
3482 l_output_value         VARCHAR2(30)  ;
3483 BEGIN
3484 IF g_log_enabled THEN
3485       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3486 END IF;
3487 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3488 
3489       trace
3490          (p_msg      => 'BEGIN of AcctDerRule_24'
3491          ,p_level    => C_LEVEL_PROCEDURE
3492          ,p_module   => l_log_module);
3493 
3494 END IF;
3495 
3496 l_component_type         := 'AMB_ADR';
3497 l_component_code         := 'AP_RELATED_DIST_BAL_SEG';
3498 l_component_type_code    := 'S';
3499 l_component_appl_id      :=  200;
3500 l_amb_context_code       := 'DEFAULT';
3501 x_transaction_coa_id     :=  null;
3502 x_accounting_coa_id      :=  null;
3503 x_flexfield_segment_code := 'GL_BALANCING';
3504 x_flex_value_set_id      :=  null ;
3505 
3509 NVL(p_source_17,'
3506 
3507  IF NVL(p_source_10,'
3508 ') =  'BALANCING_SEGMENT' AND 
3510 ') =  'INVENTORY'
3511  THEN 
3512 --
3513   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3514 
3515       trace
3516          (p_msg      => 'END of AcctDerRule_24'
3517          ,p_level    => C_LEVEL_PROCEDURE
3518          ,p_module   => l_log_module);
3519 
3520   END IF;
3521   x_value_combination_id  := TO_NUMBER(p_source_25) ;
3522   x_value_segment_code    := 'GL_BALANCING' ;
3523   x_value_type_code       := 'S';
3524   l_output_value          :=  null;
3525   RETURN l_output_value;
3526 
3527  ELSE 
3528     IF p_override_seg_flag = 'Y' THEN 
3529        RETURN '#$NO_OVERRIDE#$';
3530     END IF;
3531  END IF;
3532 
3533 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3534 
3535       trace
3536          (p_msg      => 'END of AcctDerRule_24(invalid)'
3537          ,p_level    => C_LEVEL_PROCEDURE
3538          ,p_module   => l_log_module);
3539 
3540 END IF;
3541 
3542 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3543 x_value_combination_id  := null;
3544 x_value_segment_code    := null;
3545 x_value_type_code       := null;
3546 l_output_value          := null;
3547 xla_accounting_err_pkg.build_message
3548                  (p_appli_s_name            => 'XLA'
3549                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3550                  ,p_token_1                 => 'COMPONENT_NAME'
3551                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3552                                                             l_component_type
3553                                                           , l_component_code
3554                                                           , l_component_type_code
3555                                                           , l_component_appl_id
3556                                                           , l_amb_context_code
3557                                                           )
3558                  ,p_token_2                 => 'OWNER'
3559                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3560                                                         'XLA_OWNER_TYPE'
3561                                                         ,l_component_type_code
3562                                                         )
3563                  ,p_token_3                 => 'PAD_NAME'
3564                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3565                  ,p_token_4                 => 'PAD_OWNER'
3566                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3567                                                         'XLA_OWNER_TYPE'
3568                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3569                                                         )
3570                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3571                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3572                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3573                  ,p_ae_header_id            => NULL
3574 );
3575 RETURN l_output_value;
3576 EXCEPTION
3577   WHEN xla_exceptions_pkg.application_exception THEN
3578       RAISE;
3579   WHEN OTHERS THEN
3580        xla_exceptions_pkg.raise_message
3581            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_24');
3582 END AcctDerRule_24;
3583 --
3584 
3585 ---------------------------------------
3586 --
3587 -- PRIVATE FUNCTION
3588 --         AcctDerRule_25
3589 --
3590 ---------------------------------------
3591 FUNCTION AcctDerRule_25 (
3592   p_application_id             IN NUMBER
3593 , p_ae_header_id               IN NUMBER
3594 , p_side                       IN VARCHAR2
3595 , p_override_seg_flag          IN VARCHAR2 
3596 --Automatic Offsets Value
3597  , p_source_10            IN VARCHAR2
3598  , p_source_10_meaning    IN VARCHAR2
3599 --Retainage Related Item Distribution Account
3600  , p_source_38            IN NUMBER
3601 , x_transaction_coa_id         OUT NOCOPY NUMBER
3602 , x_accounting_coa_id          OUT NOCOPY NUMBER
3603 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3604 , x_flex_value_set_id          OUT NOCOPY NUMBER
3605 , x_value_type_code            OUT NOCOPY VARCHAR2
3606 , x_value_combination_id       OUT NOCOPY NUMBER
3607 , x_value_segment_code         OUT NOCOPY VARCHAR2
3608 )
3609 RETURN VARCHAR2
3610 IS
3611 l_component_type       VARCHAR2(80)  ;
3612 l_component_code       VARCHAR2(30)  ;
3613 l_component_type_code  VARCHAR2(1)   ;
3614 l_component_appl_id    INTEGER       ;
3615 l_amb_context_code     VARCHAR2(30)  ;
3616 l_log_module           VARCHAR2(240) ;
3617 l_output_value         VARCHAR2(30)  ;
3618 BEGIN
3619 IF g_log_enabled THEN
3620       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3621 END IF;
3622 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3623 
3624       trace
3625          (p_msg      => 'BEGIN of AcctDerRule_25'
3626          ,p_level    => C_LEVEL_PROCEDURE
3627          ,p_module   => l_log_module);
3628 
3629 END IF;
3630 
3631 l_component_type         := 'AMB_ADR';
3632 l_component_code         := 'AP_RETAIN_RELATED_BAL_SEG';
3633 l_component_type_code    := 'S';
3634 l_component_appl_id      :=  200;
3638 x_flexfield_segment_code := 'GL_BALANCING';
3635 l_amb_context_code       := 'DEFAULT';
3636 x_transaction_coa_id     :=  null;
3637 x_accounting_coa_id      :=  null;
3639 x_flex_value_set_id      :=  null ;
3640 
3641 
3642  IF NVL(p_source_10,'
3643 ') =  'BALANCING_SEGMENT'
3644  THEN 
3645 --
3646   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3647 
3648       trace
3649          (p_msg      => 'END of AcctDerRule_25'
3650          ,p_level    => C_LEVEL_PROCEDURE
3651          ,p_module   => l_log_module);
3652 
3653   END IF;
3654   x_value_combination_id  := TO_NUMBER(p_source_38) ;
3655   x_value_segment_code    := 'GL_BALANCING' ;
3656   x_value_type_code       := 'S';
3657   l_output_value          :=  null;
3658   RETURN l_output_value;
3659 
3660  ELSE 
3661     IF p_override_seg_flag = 'Y' THEN 
3662        RETURN '#$NO_OVERRIDE#$';
3663     END IF;
3664  END IF;
3665 
3666 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3667 
3668       trace
3669          (p_msg      => 'END of AcctDerRule_25(invalid)'
3670          ,p_level    => C_LEVEL_PROCEDURE
3671          ,p_module   => l_log_module);
3672 
3673 END IF;
3674 
3675 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3676 x_value_combination_id  := null;
3677 x_value_segment_code    := null;
3678 x_value_type_code       := null;
3679 l_output_value          := null;
3680 xla_accounting_err_pkg.build_message
3681                  (p_appli_s_name            => 'XLA'
3682                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3683                  ,p_token_1                 => 'COMPONENT_NAME'
3684                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3685                                                             l_component_type
3686                                                           , l_component_code
3687                                                           , l_component_type_code
3688                                                           , l_component_appl_id
3689                                                           , l_amb_context_code
3690                                                           )
3691                  ,p_token_2                 => 'OWNER'
3692                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3693                                                         'XLA_OWNER_TYPE'
3694                                                         ,l_component_type_code
3695                                                         )
3696                  ,p_token_3                 => 'PAD_NAME'
3697                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3698                  ,p_token_4                 => 'PAD_OWNER'
3699                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3700                                                         'XLA_OWNER_TYPE'
3701                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3702                                                         )
3703                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3704                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3705                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3706                  ,p_ae_header_id            => NULL
3707 );
3708 RETURN l_output_value;
3709 EXCEPTION
3710   WHEN xla_exceptions_pkg.application_exception THEN
3711       RAISE;
3712   WHEN OTHERS THEN
3713        xla_exceptions_pkg.raise_message
3714            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_25');
3715 END AcctDerRule_25;
3716 --
3717 
3718 ---------------------------------------
3719 --
3720 -- PRIVATE FUNCTION
3721 --         AcctDerRule_26
3722 --
3723 ---------------------------------------
3724 FUNCTION AcctDerRule_26 (
3725   p_application_id             IN NUMBER
3726 , p_ae_header_id               IN NUMBER
3727 , p_side                       IN VARCHAR2
3728 , p_override_seg_flag          IN VARCHAR2 
3729 --Automatic Offsets Value
3730  , p_source_10            IN VARCHAR2
3731  , p_source_10_meaning    IN VARCHAR2
3732 --Withholding Related Distribution Account
3733  , p_source_39            IN NUMBER
3734 , x_transaction_coa_id         OUT NOCOPY NUMBER
3735 , x_accounting_coa_id          OUT NOCOPY NUMBER
3736 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3737 , x_flex_value_set_id          OUT NOCOPY NUMBER
3738 , x_value_type_code            OUT NOCOPY VARCHAR2
3739 , x_value_combination_id       OUT NOCOPY NUMBER
3740 , x_value_segment_code         OUT NOCOPY VARCHAR2
3741 )
3742 RETURN VARCHAR2
3743 IS
3744 l_component_type       VARCHAR2(80)  ;
3745 l_component_code       VARCHAR2(30)  ;
3746 l_component_type_code  VARCHAR2(1)   ;
3747 l_component_appl_id    INTEGER       ;
3748 l_amb_context_code     VARCHAR2(30)  ;
3749 l_log_module           VARCHAR2(240) ;
3750 l_output_value         VARCHAR2(30)  ;
3751 BEGIN
3752 IF g_log_enabled THEN
3753       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3754 END IF;
3755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3756 
3757       trace
3758          (p_msg      => 'BEGIN of AcctDerRule_26'
3759          ,p_level    => C_LEVEL_PROCEDURE
3760          ,p_module   => l_log_module);
3761 
3762 END IF;
3763 
3767 l_component_appl_id      :=  200;
3764 l_component_type         := 'AMB_ADR';
3765 l_component_code         := 'AP_WH_RELATED_DIST_BAL_SEG';
3766 l_component_type_code    := 'S';
3768 l_amb_context_code       := 'DEFAULT';
3769 x_transaction_coa_id     :=  null;
3770 x_accounting_coa_id      :=  null;
3771 x_flexfield_segment_code := 'GL_BALANCING';
3772 x_flex_value_set_id      :=  null ;
3773 
3774 
3775  IF NVL(p_source_10,'
3776 ') =  'BALANCING_SEGMENT'
3777  THEN 
3778 --
3779   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3780 
3781       trace
3782          (p_msg      => 'END of AcctDerRule_26'
3783          ,p_level    => C_LEVEL_PROCEDURE
3784          ,p_module   => l_log_module);
3785 
3786   END IF;
3787   x_value_combination_id  := TO_NUMBER(p_source_39) ;
3788   x_value_segment_code    := 'GL_BALANCING' ;
3789   x_value_type_code       := 'S';
3790   l_output_value          :=  null;
3791   RETURN l_output_value;
3792 
3793  ELSE 
3794     IF p_override_seg_flag = 'Y' THEN 
3795        RETURN '#$NO_OVERRIDE#$';
3796     END IF;
3797  END IF;
3798 
3799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3800 
3801       trace
3802          (p_msg      => 'END of AcctDerRule_26(invalid)'
3803          ,p_level    => C_LEVEL_PROCEDURE
3804          ,p_module   => l_log_module);
3805 
3806 END IF;
3807 
3808 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3809 x_value_combination_id  := null;
3810 x_value_segment_code    := null;
3811 x_value_type_code       := null;
3812 l_output_value          := null;
3813 xla_accounting_err_pkg.build_message
3814                  (p_appli_s_name            => 'XLA'
3815                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3816                  ,p_token_1                 => 'COMPONENT_NAME'
3817                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3818                                                             l_component_type
3819                                                           , l_component_code
3820                                                           , l_component_type_code
3821                                                           , l_component_appl_id
3822                                                           , l_amb_context_code
3823                                                           )
3824                  ,p_token_2                 => 'OWNER'
3825                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3826                                                         'XLA_OWNER_TYPE'
3827                                                         ,l_component_type_code
3828                                                         )
3829                  ,p_token_3                 => 'PAD_NAME'
3830                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3831                  ,p_token_4                 => 'PAD_OWNER'
3832                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3833                                                         'XLA_OWNER_TYPE'
3834                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3835                                                         )
3836                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3837                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3838                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3839                  ,p_ae_header_id            => NULL
3840 );
3841 RETURN l_output_value;
3842 EXCEPTION
3843   WHEN xla_exceptions_pkg.application_exception THEN
3844       RAISE;
3845   WHEN OTHERS THEN
3846        xla_exceptions_pkg.raise_message
3847            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_26');
3848 END AcctDerRule_26;
3849 --
3850 
3851 ---------------------------------------
3852 --
3853 -- PRIVATE FUNCTION
3854 --         AcctDerRule_27
3855 --
3856 ---------------------------------------
3857 FUNCTION AcctDerRule_27 (
3858   p_application_id             IN NUMBER
3859 , p_ae_header_id               IN NUMBER
3860 , p_side                       IN VARCHAR2
3861 , p_override_seg_flag          IN VARCHAR2 
3862 --Automatic Offsets Value
3863  , p_source_10            IN VARCHAR2
3864  , p_source_10_meaning    IN VARCHAR2
3865 --Invoice Distribution Account
3866  , p_source_25            IN NUMBER
3867 --Invoice Liability Account
3868  , p_source_29            IN NUMBER
3869 , x_transaction_coa_id         OUT NOCOPY NUMBER
3870 , x_accounting_coa_id          OUT NOCOPY NUMBER
3871 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3872 , x_flex_value_set_id          OUT NOCOPY NUMBER
3873 , x_value_type_code            OUT NOCOPY VARCHAR2
3874 , x_value_combination_id       OUT NOCOPY NUMBER
3875 , x_value_segment_code         OUT NOCOPY VARCHAR2
3876 )
3877 RETURN VARCHAR2
3878 IS
3879 l_component_type       VARCHAR2(80)  ;
3880 l_component_code       VARCHAR2(30)  ;
3881 l_component_type_code  VARCHAR2(1)   ;
3882 l_component_appl_id    INTEGER       ;
3883 l_amb_context_code     VARCHAR2(30)  ;
3884 l_log_module           VARCHAR2(240) ;
3885 l_output_value         VARCHAR2(30)  ;
3886 BEGIN
3887 IF g_log_enabled THEN
3888       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
3889 END IF;
3890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3891 
3895          ,p_module   => l_log_module);
3892       trace
3893          (p_msg      => 'BEGIN of AcctDerRule_27'
3894          ,p_level    => C_LEVEL_PROCEDURE
3896 
3897 END IF;
3898 
3899 l_component_type         := 'AMB_ADR';
3900 l_component_code         := 'FV_INV_PMT_BAL_SEG';
3901 l_component_type_code    := 'S';
3902 l_component_appl_id      :=  200;
3903 l_amb_context_code       := 'DEFAULT';
3904 x_transaction_coa_id     :=  null;
3905 x_accounting_coa_id      :=  null;
3906 x_flexfield_segment_code := 'GL_BALANCING';
3907 x_flex_value_set_id      :=  null ;
3908 
3909 
3910  IF NVL(p_source_10,'
3911 ') =  'ACCOUNT_SEGMENT_VALUE' OR 
3912 NVL(p_source_10,'
3913 ') =  'BALANCING_SEGMENT'
3914  THEN 
3915 --
3916   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3917 
3918       trace
3919          (p_msg      => 'END of AcctDerRule_27'
3920          ,p_level    => C_LEVEL_PROCEDURE
3921          ,p_module   => l_log_module);
3922 
3923   END IF;
3924   x_value_combination_id  := TO_NUMBER(p_source_25) ;
3925   x_value_segment_code    := 'GL_BALANCING' ;
3926   x_value_type_code       := 'S';
3927   l_output_value          :=  null;
3928   RETURN l_output_value;
3929 
3930  ELSIF NVL(p_source_10,'
3931 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
3932 NVL(p_source_10,'
3933 ') <>  'BALANCING_SEGMENT'
3934  THEN 
3935 --
3936   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3937 
3938       trace
3939          (p_msg      => 'END of AcctDerRule_27'
3940          ,p_level    => C_LEVEL_PROCEDURE
3941          ,p_module   => l_log_module);
3942 
3943   END IF;
3944   x_value_combination_id  := TO_NUMBER(p_source_29) ;
3945   x_value_segment_code    := 'GL_BALANCING' ;
3946   x_value_type_code       := 'S';
3947   l_output_value          :=  null;
3948   RETURN l_output_value;
3949 
3950  ELSE 
3951     IF p_override_seg_flag = 'Y' THEN 
3952        RETURN '#$NO_OVERRIDE#$';
3953     END IF;
3954  END IF;
3955 
3956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3957 
3958       trace
3959          (p_msg      => 'END of AcctDerRule_27(invalid)'
3960          ,p_level    => C_LEVEL_PROCEDURE
3961          ,p_module   => l_log_module);
3962 
3963 END IF;
3964 
3965 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3966 x_value_combination_id  := null;
3967 x_value_segment_code    := null;
3968 x_value_type_code       := null;
3969 l_output_value          := null;
3970 xla_accounting_err_pkg.build_message
3971                  (p_appli_s_name            => 'XLA'
3972                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3973                  ,p_token_1                 => 'COMPONENT_NAME'
3974                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3975                                                             l_component_type
3976                                                           , l_component_code
3977                                                           , l_component_type_code
3978                                                           , l_component_appl_id
3979                                                           , l_amb_context_code
3980                                                           )
3981                  ,p_token_2                 => 'OWNER'
3982                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3983                                                         'XLA_OWNER_TYPE'
3984                                                         ,l_component_type_code
3985                                                         )
3986                  ,p_token_3                 => 'PAD_NAME'
3987                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3988                  ,p_token_4                 => 'PAD_OWNER'
3989                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3990                                                         'XLA_OWNER_TYPE'
3991                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3992                                                         )
3993                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3994                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3995                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3996                  ,p_ae_header_id            => NULL
3997 );
3998 RETURN l_output_value;
3999 EXCEPTION
4000   WHEN xla_exceptions_pkg.application_exception THEN
4001       RAISE;
4002   WHEN OTHERS THEN
4003        xla_exceptions_pkg.raise_message
4004            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_27');
4005 END AcctDerRule_27;
4006 --
4007 
4008 ---------------------------------------
4009 --
4010 -- PRIVATE FUNCTION
4011 --         AcctDerRule_28
4012 --
4013 ---------------------------------------
4014 FUNCTION AcctDerRule_28 (
4015   p_application_id              IN NUMBER
4016 , p_ae_header_id                IN NUMBER
4017 , p_side                        IN VARCHAR2 
4018 --Bank Charges Account
4019  , p_source_9            IN NUMBER
4020 --Automatic Offsets Value
4021  , p_source_10            IN VARCHAR2
4022  , p_source_10_meaning    IN VARCHAR2
4023 --Invoice Distribution Account
4024  , p_source_25            IN NUMBER
4028 )
4025 , x_transaction_coa_id         OUT NOCOPY NUMBER
4026 , x_accounting_coa_id          OUT NOCOPY NUMBER
4027 , x_value_type_code            OUT NOCOPY VARCHAR2
4029 RETURN NUMBER
4030 IS
4031 l_component_type       VARCHAR2(80)  ;
4032 l_component_code       VARCHAR2(30)  ;
4033 l_component_type_code  VARCHAR2(1)   ;
4034 l_component_appl_id    INTEGER       ;
4035 l_amb_context_code     VARCHAR2(30)  ;
4036 l_log_module           VARCHAR2(240) ;
4037 l_output_value         NUMBER        ;
4038 BEGIN
4039 IF g_log_enabled THEN
4040       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
4041 END IF;
4042 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4043       trace
4044          (p_msg      => 'BEGIN of AcctDerRule_28'
4045          ,p_level    => C_LEVEL_PROCEDURE
4046          ,p_module   => l_log_module);
4047 END IF;
4048 --
4049 l_component_type         := 'AMB_ADR';
4050 l_component_code         := 'AP_BANK_CHARGES';
4051 l_component_type_code    := 'S';
4052 l_component_appl_id      :=  200;
4053 l_amb_context_code       := 'DEFAULT';
4054 x_transaction_coa_id     :=  null;
4055 x_accounting_coa_id      :=  null;
4056 --
4057 
4058  IF NVL(p_source_10,'
4059 ') <>  'ACCOUNT_SEGMENT_VALUE'
4060  THEN 
4061  --
4062   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4063       trace
4064          (p_msg      => 'END of AcctDerRule_28'
4065          ,p_level    => C_LEVEL_PROCEDURE
4066          ,p_module   => l_log_module);
4067   END IF;
4068   x_value_type_code := 'S';
4069   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_9));
4070   RETURN l_output_value;
4071 
4072  ELSIF NVL(p_source_10,'
4073 ') =  'ACCOUNT_SEGMENT_VALUE'
4074  THEN 
4075  --
4076   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4077       trace
4078          (p_msg      => 'END of AcctDerRule_28'
4079          ,p_level    => C_LEVEL_PROCEDURE
4080          ,p_module   => l_log_module);
4081   END IF;
4082   x_value_type_code := 'S';
4083   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4084   RETURN l_output_value;
4085 
4086  END IF;
4087 --
4088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4089       trace
4090          (p_msg      => 'END of AcctDerRule_28(invalid)'
4091          ,p_level    => C_LEVEL_PROCEDURE
4092          ,p_module   => l_log_module);
4093 END IF;
4094 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4095 x_value_type_code := null;
4096 l_output_value    := null;
4097 xla_accounting_err_pkg.build_message
4098                  (p_appli_s_name            => 'XLA'
4099                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4100                  ,p_token_1                 => 'COMPONENT_NAME'
4101                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4102                                                             l_component_type
4103                                                           , l_component_code
4104                                                           , l_component_type_code
4105                                                           , l_component_appl_id
4106                                                           , l_amb_context_code
4107                                                           )
4108                  ,p_token_2                 => 'OWNER'
4109                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4110                                                         'XLA_OWNER_TYPE'
4111                                                         ,l_component_type_code
4112                                                         )
4113                  ,p_token_3                 => 'PAD_NAME'
4114                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4115                  ,p_token_4                 => 'PAD_OWNER'
4116                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4117                                                         'XLA_OWNER_TYPE'
4118                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4119                                                         )
4120                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4121                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4122                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4123                  ,p_ae_header_id            => NULL
4124 );
4125 RETURN l_output_value;
4126 EXCEPTION
4127   WHEN xla_exceptions_pkg.application_exception THEN
4128       RAISE;
4129   WHEN OTHERS THEN
4130        xla_exceptions_pkg.raise_message
4131            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_28');
4132 END AcctDerRule_28;
4133 --
4134 
4135 ---------------------------------------
4136 --
4137 -- PRIVATE FUNCTION
4138 --         AcctDerRule_29
4139 --
4140 ---------------------------------------
4141 FUNCTION AcctDerRule_29 (
4142   p_application_id              IN NUMBER
4143 , p_ae_header_id                IN NUMBER
4144 , p_side                        IN VARCHAR2 
4145 --Automatic Offsets Value
4146  , p_source_10            IN VARCHAR2
4147  , p_source_10_meaning    IN VARCHAR2
4148 --Bank Errors Account
4149  , p_source_11            IN NUMBER
4150 --Invoice Distribution Account
4151  , p_source_25            IN NUMBER
4155 )
4152 , x_transaction_coa_id         OUT NOCOPY NUMBER
4153 , x_accounting_coa_id          OUT NOCOPY NUMBER
4154 , x_value_type_code            OUT NOCOPY VARCHAR2
4156 RETURN NUMBER
4157 IS
4158 l_component_type       VARCHAR2(80)  ;
4159 l_component_code       VARCHAR2(30)  ;
4160 l_component_type_code  VARCHAR2(1)   ;
4161 l_component_appl_id    INTEGER       ;
4162 l_amb_context_code     VARCHAR2(30)  ;
4163 l_log_module           VARCHAR2(240) ;
4164 l_output_value         NUMBER        ;
4165 BEGIN
4166 IF g_log_enabled THEN
4167       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4168 END IF;
4169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4170       trace
4171          (p_msg      => 'BEGIN of AcctDerRule_29'
4172          ,p_level    => C_LEVEL_PROCEDURE
4173          ,p_module   => l_log_module);
4174 END IF;
4175 --
4176 l_component_type         := 'AMB_ADR';
4177 l_component_code         := 'AP_BANK_ERRORS';
4178 l_component_type_code    := 'S';
4179 l_component_appl_id      :=  200;
4180 l_amb_context_code       := 'DEFAULT';
4181 x_transaction_coa_id     :=  null;
4182 x_accounting_coa_id      :=  null;
4183 --
4184 
4185  IF NVL(p_source_10,'
4186 ') <>  'ACCOUNT_SEGMENT_VALUE'
4187  THEN 
4188  --
4189   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4190       trace
4191          (p_msg      => 'END of AcctDerRule_29'
4192          ,p_level    => C_LEVEL_PROCEDURE
4193          ,p_module   => l_log_module);
4194   END IF;
4195   x_value_type_code := 'S';
4196   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_11));
4197   RETURN l_output_value;
4198 
4199  ELSIF NVL(p_source_10,'
4200 ') =  'ACCOUNT_SEGMENT_VALUE'
4201  THEN 
4202  --
4203   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4204       trace
4205          (p_msg      => 'END of AcctDerRule_29'
4206          ,p_level    => C_LEVEL_PROCEDURE
4207          ,p_module   => l_log_module);
4208   END IF;
4209   x_value_type_code := 'S';
4210   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4211   RETURN l_output_value;
4212 
4213  END IF;
4214 --
4215 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4216       trace
4217          (p_msg      => 'END of AcctDerRule_29(invalid)'
4218          ,p_level    => C_LEVEL_PROCEDURE
4219          ,p_module   => l_log_module);
4220 END IF;
4221 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4222 x_value_type_code := null;
4223 l_output_value    := null;
4224 xla_accounting_err_pkg.build_message
4225                  (p_appli_s_name            => 'XLA'
4226                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4227                  ,p_token_1                 => 'COMPONENT_NAME'
4228                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4229                                                             l_component_type
4230                                                           , l_component_code
4231                                                           , l_component_type_code
4232                                                           , l_component_appl_id
4233                                                           , l_amb_context_code
4234                                                           )
4235                  ,p_token_2                 => 'OWNER'
4236                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4237                                                         'XLA_OWNER_TYPE'
4238                                                         ,l_component_type_code
4239                                                         )
4240                  ,p_token_3                 => 'PAD_NAME'
4241                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4242                  ,p_token_4                 => 'PAD_OWNER'
4243                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4244                                                         'XLA_OWNER_TYPE'
4245                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4246                                                         )
4247                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4248                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4249                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4250                  ,p_ae_header_id            => NULL
4251 );
4252 RETURN l_output_value;
4253 EXCEPTION
4254   WHEN xla_exceptions_pkg.application_exception THEN
4255       RAISE;
4256   WHEN OTHERS THEN
4257        xla_exceptions_pkg.raise_message
4258            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_29');
4259 END AcctDerRule_29;
4260 --
4261 
4262 ---------------------------------------
4263 --
4264 -- PRIVATE FUNCTION
4265 --         AcctDerRule_30
4266 --
4267 ---------------------------------------
4268 FUNCTION AcctDerRule_30 (
4269   p_application_id              IN NUMBER
4270 , p_ae_header_id                IN NUMBER
4271 , p_side                        IN VARCHAR2 
4272 --Bank Cash Account
4273  , p_source_12            IN NUMBER
4274 , x_transaction_coa_id         OUT NOCOPY NUMBER
4275 , x_accounting_coa_id          OUT NOCOPY NUMBER
4276 , x_value_type_code            OUT NOCOPY VARCHAR2
4277 )
4278 RETURN NUMBER
4279 IS
4283 l_component_appl_id    INTEGER       ;
4280 l_component_type       VARCHAR2(80)  ;
4281 l_component_code       VARCHAR2(30)  ;
4282 l_component_type_code  VARCHAR2(1)   ;
4284 l_amb_context_code     VARCHAR2(30)  ;
4285 l_log_module           VARCHAR2(240) ;
4286 l_output_value         NUMBER        ;
4287 BEGIN
4288 IF g_log_enabled THEN
4289       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4290 END IF;
4291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4292       trace
4293          (p_msg      => 'BEGIN of AcctDerRule_30'
4294          ,p_level    => C_LEVEL_PROCEDURE
4295          ,p_module   => l_log_module);
4296 END IF;
4297 --
4298 l_component_type         := 'AMB_ADR';
4299 l_component_code         := 'AP_CASH';
4300 l_component_type_code    := 'S';
4301 l_component_appl_id      :=  200;
4302 l_amb_context_code       := 'DEFAULT';
4303 x_transaction_coa_id     :=  null;
4304 x_accounting_coa_id      :=  null;
4305 --
4306 
4307  --
4308   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4309       trace
4310          (p_msg      => 'END of AcctDerRule_30'
4311          ,p_level    => C_LEVEL_PROCEDURE
4312          ,p_module   => l_log_module);
4313   END IF;
4314   x_value_type_code := 'S';
4315   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_12));
4316   RETURN l_output_value;
4317 
4318 --
4319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4320       trace
4321          (p_msg      => 'END of AcctDerRule_30(invalid)'
4322          ,p_level    => C_LEVEL_PROCEDURE
4323          ,p_module   => l_log_module);
4324 END IF;
4325 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4326 x_value_type_code := null;
4327 l_output_value    := null;
4328 xla_accounting_err_pkg.build_message
4329                  (p_appli_s_name            => 'XLA'
4330                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4331                  ,p_token_1                 => 'COMPONENT_NAME'
4332                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4333                                                             l_component_type
4334                                                           , l_component_code
4335                                                           , l_component_type_code
4336                                                           , l_component_appl_id
4337                                                           , l_amb_context_code
4338                                                           )
4339                  ,p_token_2                 => 'OWNER'
4340                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4341                                                         'XLA_OWNER_TYPE'
4342                                                         ,l_component_type_code
4343                                                         )
4344                  ,p_token_3                 => 'PAD_NAME'
4345                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4346                  ,p_token_4                 => 'PAD_OWNER'
4347                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4348                                                         'XLA_OWNER_TYPE'
4349                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4350                                                         )
4351                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4352                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4353                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4354                  ,p_ae_header_id            => NULL
4355 );
4356 RETURN l_output_value;
4357 EXCEPTION
4358   WHEN xla_exceptions_pkg.application_exception THEN
4359       RAISE;
4360   WHEN OTHERS THEN
4361        xla_exceptions_pkg.raise_message
4362            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_30');
4363 END AcctDerRule_30;
4364 --
4365 
4366 ---------------------------------------
4367 --
4368 -- PRIVATE FUNCTION
4369 --         AcctDerRule_31
4370 --
4371 ---------------------------------------
4372 FUNCTION AcctDerRule_31 (
4373   p_application_id              IN NUMBER
4374 , p_ae_header_id                IN NUMBER
4375 , p_side                        IN VARCHAR2 
4376 --Automatic Offsets Value
4377  , p_source_10            IN VARCHAR2
4378  , p_source_10_meaning    IN VARCHAR2
4379 --System Discount Account
4380  , p_source_13            IN NUMBER
4381 --Discount Distribution Method
4382  , p_source_14            IN VARCHAR2
4383  , p_source_14_meaning    IN VARCHAR2
4384 --Invoice Distribution Account
4385  , p_source_25            IN NUMBER
4386 --Invoice Distribution Type
4387  , p_source_28            IN VARCHAR2
4388  , p_source_28_meaning    IN VARCHAR2
4389 --Discount Account
4390  , p_source_40            IN NUMBER
4391 --Purchase Order Charge Account
4392  , p_source_41            IN NUMBER
4393 --Purchase Order Variance Account
4394  , p_source_42            IN NUMBER
4395 , x_transaction_coa_id         OUT NOCOPY NUMBER
4396 , x_accounting_coa_id          OUT NOCOPY NUMBER
4397 , x_value_type_code            OUT NOCOPY VARCHAR2
4398 )
4399 RETURN NUMBER
4400 IS
4401 l_component_type       VARCHAR2(80)  ;
4402 l_component_code       VARCHAR2(30)  ;
4403 l_component_type_code  VARCHAR2(1)   ;
4407 l_output_value         NUMBER        ;
4404 l_component_appl_id    INTEGER       ;
4405 l_amb_context_code     VARCHAR2(30)  ;
4406 l_log_module           VARCHAR2(240) ;
4408 BEGIN
4409 IF g_log_enabled THEN
4410       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4411 END IF;
4412 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4413       trace
4414          (p_msg      => 'BEGIN of AcctDerRule_31'
4415          ,p_level    => C_LEVEL_PROCEDURE
4416          ,p_module   => l_log_module);
4417 END IF;
4418 --
4419 l_component_type         := 'AMB_ADR';
4420 l_component_code         := 'AP_DISCOUNT';
4421 l_component_type_code    := 'S';
4422 l_component_appl_id      :=  200;
4423 l_amb_context_code       := 'DEFAULT';
4424 x_transaction_coa_id     :=  null;
4425 x_accounting_coa_id      :=  null;
4426 --
4427 
4428  IF NVL(p_source_14,'
4429 ') =  'SYSTEM' AND 
4430 NVL(p_source_10,'
4431 ') <>  'ACCOUNT_SEGMENT_VALUE'
4432  THEN 
4433  --
4434   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4435       trace
4436          (p_msg      => 'END of AcctDerRule_31'
4437          ,p_level    => C_LEVEL_PROCEDURE
4438          ,p_module   => l_log_module);
4439   END IF;
4440   x_value_type_code := 'S';
4441   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_40));
4442   RETURN l_output_value;
4443 
4444  ELSIF NVL(p_source_14,'
4445 ') =  'SYSTEM' AND 
4446 NVL(p_source_10,'
4447 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4448 NVL(p_source_28,'
4449 ') <>  'ACCRUAL'
4450  THEN 
4451  --
4452   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4453       trace
4454          (p_msg      => 'END of AcctDerRule_31'
4455          ,p_level    => C_LEVEL_PROCEDURE
4456          ,p_module   => l_log_module);
4457   END IF;
4458   x_value_type_code := 'S';
4459   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4460   RETURN l_output_value;
4461 
4462  ELSIF NVL(p_source_14,'
4463 ') =  'SYSTEM' AND 
4464 NVL(p_source_10,'
4465 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4466 NVL(p_source_28,'
4467 ') =  'ACCRUAL'
4468  THEN 
4469  --
4470   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4471       trace
4472          (p_msg      => 'END of AcctDerRule_31'
4473          ,p_level    => C_LEVEL_PROCEDURE
4474          ,p_module   => l_log_module);
4475   END IF;
4476   x_value_type_code := 'S';
4477   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_41));
4478   RETURN l_output_value;
4479 
4480  ELSIF NVL(p_source_14,'
4481 ') =  'EXPENSE' AND 
4482 NVL(p_source_28,'
4483 ') <>  'ACCRUAL'
4484  THEN 
4485  --
4486   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4487       trace
4488          (p_msg      => 'END of AcctDerRule_31'
4489          ,p_level    => C_LEVEL_PROCEDURE
4490          ,p_module   => l_log_module);
4491   END IF;
4492   x_value_type_code := 'S';
4493   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4494   RETURN l_output_value;
4495 
4496  ELSIF NVL(p_source_14,'
4497 ') =  'EXPENSE' AND 
4498 NVL(p_source_28,'
4499 ') =  'ACCRUAL'
4500  THEN 
4501  --
4502   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4503       trace
4504          (p_msg      => 'END of AcctDerRule_31'
4505          ,p_level    => C_LEVEL_PROCEDURE
4506          ,p_module   => l_log_module);
4507   END IF;
4508   x_value_type_code := 'S';
4509   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_42));
4510   RETURN l_output_value;
4511 
4512  ELSIF NVL(p_source_14,'
4513 ') =  'TAX' AND 
4514 NVL(p_source_10,'
4515 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4516 (NVL(p_source_28,'
4517 ') =  'REC_TAX' OR 
4518 NVL(p_source_28,'
4519 ') =  'NONREC_TAX' OR 
4520 NVL(p_source_28,'
4521 ') =  'TIPV' OR 
4522 NVL(p_source_28,'
4523 ') =  'TRV')
4524  THEN 
4525  --
4526   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4527       trace
4528          (p_msg      => 'END of AcctDerRule_31'
4529          ,p_level    => C_LEVEL_PROCEDURE
4530          ,p_module   => l_log_module);
4531   END IF;
4532   x_value_type_code := 'S';
4533   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4534   RETURN l_output_value;
4535 
4536  ELSIF NVL(p_source_14,'
4537 ') =  'TAX' AND 
4538 NVL(p_source_10,'
4539 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4540 (NVL(p_source_28,'
4541 ') <>  'REC_TAX' OR 
4542 NVL(p_source_28,'
4543 ') <>  'NONREC_TAX' OR 
4544 NVL(p_source_28,'
4545 ') <>  'TIPV' OR 
4546 NVL(p_source_28,'
4547 ') <>  'TRV')
4548  THEN 
4549  --
4550   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4551       trace
4552          (p_msg      => 'END of AcctDerRule_31'
4553          ,p_level    => C_LEVEL_PROCEDURE
4554          ,p_module   => l_log_module);
4555   END IF;
4556   x_value_type_code := 'S';
4557   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_13));
4558   RETURN l_output_value;
4559 
4560  ELSIF NVL(p_source_14,'
4561 ') =  'TAX' AND 
4562 NVL(p_source_10,'
4563 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4564 NVL(p_source_28,'
4565 ') <>  'ACCRUAL'
4566  THEN 
4567  --
4568   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4569       trace
4570          (p_msg      => 'END of AcctDerRule_31'
4571          ,p_level    => C_LEVEL_PROCEDURE
4572          ,p_module   => l_log_module);
4573   END IF;
4577 
4574   x_value_type_code := 'S';
4575   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4576   RETURN l_output_value;
4578  ELSIF NVL(p_source_14,'
4579 ') =  'TAX' AND 
4580 NVL(p_source_10,'
4581 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4582 NVL(p_source_28,'
4583 ') =  'ACCRUAL'
4584  THEN 
4585  --
4586   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4587       trace
4588          (p_msg      => 'END of AcctDerRule_31'
4589          ,p_level    => C_LEVEL_PROCEDURE
4590          ,p_module   => l_log_module);
4591   END IF;
4592   x_value_type_code := 'S';
4593   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_41));
4594   RETURN l_output_value;
4595 
4596  END IF;
4597 --
4598 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4599       trace
4600          (p_msg      => 'END of AcctDerRule_31(invalid)'
4601          ,p_level    => C_LEVEL_PROCEDURE
4602          ,p_module   => l_log_module);
4603 END IF;
4604 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4605 x_value_type_code := null;
4606 l_output_value    := null;
4607 xla_accounting_err_pkg.build_message
4608                  (p_appli_s_name            => 'XLA'
4609                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4610                  ,p_token_1                 => 'COMPONENT_NAME'
4611                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4612                                                             l_component_type
4613                                                           , l_component_code
4614                                                           , l_component_type_code
4615                                                           , l_component_appl_id
4616                                                           , l_amb_context_code
4617                                                           )
4618                  ,p_token_2                 => 'OWNER'
4619                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4620                                                         'XLA_OWNER_TYPE'
4621                                                         ,l_component_type_code
4622                                                         )
4623                  ,p_token_3                 => 'PAD_NAME'
4624                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4625                  ,p_token_4                 => 'PAD_OWNER'
4626                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4627                                                         'XLA_OWNER_TYPE'
4628                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4629                                                         )
4630                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4631                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4632                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4633                  ,p_ae_header_id            => NULL
4634 );
4635 RETURN l_output_value;
4636 EXCEPTION
4637   WHEN xla_exceptions_pkg.application_exception THEN
4638       RAISE;
4639   WHEN OTHERS THEN
4640        xla_exceptions_pkg.raise_message
4641            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_31');
4642 END AcctDerRule_31;
4643 --
4644 
4645 ---------------------------------------
4646 --
4647 -- PRIVATE FUNCTION
4648 --         AcctDerRule_32
4649 --
4650 ---------------------------------------
4651 FUNCTION AcctDerRule_32 (
4652   p_application_id              IN NUMBER
4653 , p_ae_header_id                IN NUMBER
4654 , p_side                        IN VARCHAR2 
4655 --Automatic Offsets Value
4656  , p_source_10            IN VARCHAR2
4657  , p_source_10_meaning    IN VARCHAR2
4658 --Purchase Order Rate Variance Gain Account
4659  , p_source_15            IN NUMBER
4660 --Invoice Distribution Ledger Amount
4661  , p_source_16            IN NUMBER
4662 --Destination Type of the PO Distribution
4663  , p_source_17            IN VARCHAR2
4664  , p_source_17_meaning    IN VARCHAR2
4665 --Purchase Order Rate Variance Loss Account
4666  , p_source_18            IN NUMBER
4667 --Invoice Distribution Account
4668  , p_source_25            IN NUMBER
4669 --Automatic Offsets Flag
4670  , p_source_43            IN VARCHAR2
4671  , p_source_43_meaning    IN VARCHAR2
4672 , x_transaction_coa_id         OUT NOCOPY NUMBER
4673 , x_accounting_coa_id          OUT NOCOPY NUMBER
4674 , x_value_type_code            OUT NOCOPY VARCHAR2
4675 )
4676 RETURN NUMBER
4677 IS
4678 l_component_type       VARCHAR2(80)  ;
4679 l_component_code       VARCHAR2(30)  ;
4680 l_component_type_code  VARCHAR2(1)   ;
4681 l_component_appl_id    INTEGER       ;
4682 l_amb_context_code     VARCHAR2(30)  ;
4683 l_log_module           VARCHAR2(240) ;
4684 l_output_value         NUMBER        ;
4685 BEGIN
4686 IF g_log_enabled THEN
4687       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4688 END IF;
4689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4690       trace
4691          (p_msg      => 'BEGIN of AcctDerRule_32'
4692          ,p_level    => C_LEVEL_PROCEDURE
4693          ,p_module   => l_log_module);
4694 END IF;
4695 --
4696 l_component_type         := 'AMB_ADR';
4697 l_component_code         := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
4701 x_transaction_coa_id     :=  null;
4698 l_component_type_code    := 'S';
4699 l_component_appl_id      :=  200;
4700 l_amb_context_code       := 'DEFAULT';
4702 x_accounting_coa_id      :=  null;
4703 --
4704 
4705  IF NVL(p_source_17,'
4706 ') =  'EXPENSE' OR 
4707 (NVL(p_source_17,'
4708 ') =  'INVENTORY' AND 
4709 NVL(p_source_10,'
4710 ') =  'ACCOUNT_SEGMENT_VALUE')
4711  THEN 
4712  --
4713   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4714       trace
4715          (p_msg      => 'END of AcctDerRule_32'
4716          ,p_level    => C_LEVEL_PROCEDURE
4717          ,p_module   => l_log_module);
4718   END IF;
4719   x_value_type_code := 'S';
4720   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4721   RETURN l_output_value;
4722 
4723  ELSIF NVL(p_source_17,'
4724 ') <>  'EXPENSE' AND 
4725 p_source_16 <=  0 AND 
4726 (NVL(p_source_43,'
4727 ') =  'N' OR 
4728 NVL(p_source_10,'
4729 ') =  'BALANCING_SEGMENT')
4730  THEN 
4731  --
4732   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4733       trace
4734          (p_msg      => 'END of AcctDerRule_32'
4735          ,p_level    => C_LEVEL_PROCEDURE
4736          ,p_module   => l_log_module);
4737   END IF;
4738   x_value_type_code := 'S';
4739   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_15));
4740   RETURN l_output_value;
4741 
4742  ELSIF NVL(p_source_17,'
4743 ') <>  'EXPENSE' AND 
4744 p_source_16 >  0 AND 
4745 (NVL(p_source_43,'
4746 ') =  'N' OR 
4747 NVL(p_source_10,'
4748 ') =  'BALANCING_SEGMENT')
4749  THEN 
4750  --
4751   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4752       trace
4753          (p_msg      => 'END of AcctDerRule_32'
4754          ,p_level    => C_LEVEL_PROCEDURE
4755          ,p_module   => l_log_module);
4756   END IF;
4757   x_value_type_code := 'S';
4758   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4759   RETURN l_output_value;
4760 
4761  END IF;
4762 --
4763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4764       trace
4765          (p_msg      => 'END of AcctDerRule_32(invalid)'
4766          ,p_level    => C_LEVEL_PROCEDURE
4767          ,p_module   => l_log_module);
4768 END IF;
4769 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4770 x_value_type_code := null;
4771 l_output_value    := null;
4772 xla_accounting_err_pkg.build_message
4773                  (p_appli_s_name            => 'XLA'
4774                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4775                  ,p_token_1                 => 'COMPONENT_NAME'
4776                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4777                                                             l_component_type
4778                                                           , l_component_code
4779                                                           , l_component_type_code
4780                                                           , l_component_appl_id
4781                                                           , l_amb_context_code
4782                                                           )
4783                  ,p_token_2                 => 'OWNER'
4784                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4785                                                         'XLA_OWNER_TYPE'
4786                                                         ,l_component_type_code
4787                                                         )
4788                  ,p_token_3                 => 'PAD_NAME'
4789                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4790                  ,p_token_4                 => 'PAD_OWNER'
4791                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4792                                                         'XLA_OWNER_TYPE'
4793                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4794                                                         )
4795                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4796                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4797                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4798                  ,p_ae_header_id            => NULL
4799 );
4800 RETURN l_output_value;
4801 EXCEPTION
4802   WHEN xla_exceptions_pkg.application_exception THEN
4803       RAISE;
4804   WHEN OTHERS THEN
4805        xla_exceptions_pkg.raise_message
4806            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_32');
4807 END AcctDerRule_32;
4808 --
4809 
4810 ---------------------------------------
4811 --
4812 -- PRIVATE FUNCTION
4813 --         AcctDerRule_33
4814 --
4815 ---------------------------------------
4816 FUNCTION AcctDerRule_33 (
4817   p_application_id              IN NUMBER
4818 , p_ae_header_id                IN NUMBER
4819 , p_side                        IN VARCHAR2 
4820 --Automatic Offsets Value
4821  , p_source_10            IN VARCHAR2
4822  , p_source_10_meaning    IN VARCHAR2
4823 --Bank Future Dated Payment Account
4824  , p_source_19            IN NUMBER
4825 --Future Dated Payment Account Source Option
4826  , p_source_20            IN VARCHAR2
4827  , p_source_20_meaning    IN VARCHAR2
4831  , p_source_22            IN NUMBER
4828 --Financials Options Future Dated Payment Account
4829  , p_source_21            IN NUMBER
4830 --Supplier Site Future Dated Payment Account
4832 --Invoice Distribution Account
4833  , p_source_25            IN NUMBER
4834 , x_transaction_coa_id         OUT NOCOPY NUMBER
4835 , x_accounting_coa_id          OUT NOCOPY NUMBER
4836 , x_value_type_code            OUT NOCOPY VARCHAR2
4837 )
4838 RETURN NUMBER
4839 IS
4840 l_component_type       VARCHAR2(80)  ;
4841 l_component_code       VARCHAR2(30)  ;
4842 l_component_type_code  VARCHAR2(1)   ;
4843 l_component_appl_id    INTEGER       ;
4844 l_amb_context_code     VARCHAR2(30)  ;
4845 l_log_module           VARCHAR2(240) ;
4846 l_output_value         NUMBER        ;
4847 BEGIN
4848 IF g_log_enabled THEN
4849       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
4850 END IF;
4851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4852       trace
4853          (p_msg      => 'BEGIN of AcctDerRule_33'
4854          ,p_level    => C_LEVEL_PROCEDURE
4855          ,p_module   => l_log_module);
4856 END IF;
4857 --
4858 l_component_type         := 'AMB_ADR';
4859 l_component_code         := 'AP_FUTURE_DATED_PMT';
4860 l_component_type_code    := 'S';
4861 l_component_appl_id      :=  200;
4862 l_amb_context_code       := 'DEFAULT';
4863 x_transaction_coa_id     :=  null;
4864 x_accounting_coa_id      :=  null;
4865 --
4866 
4867  IF NVL(p_source_10,'
4868 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4869 NVL(p_source_20,'
4870 ') =  'BANK ACCOUNT' AND 
4871 TO_NUMBER(p_source_19) IS NOT NULL 
4872  THEN 
4873  --
4874   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4875       trace
4876          (p_msg      => 'END of AcctDerRule_33'
4877          ,p_level    => C_LEVEL_PROCEDURE
4878          ,p_module   => l_log_module);
4879   END IF;
4880   x_value_type_code := 'S';
4881   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_19));
4882   RETURN l_output_value;
4883 
4884  ELSIF NVL(p_source_10,'
4885 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4886 NVL(p_source_20,'
4887 ') =  'BANK ACCOUNT'
4888  THEN 
4889  --
4890   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4891       trace
4892          (p_msg      => 'END of AcctDerRule_33'
4893          ,p_level    => C_LEVEL_PROCEDURE
4894          ,p_module   => l_log_module);
4895   END IF;
4896   x_value_type_code := 'S';
4897   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_21));
4898   RETURN l_output_value;
4899 
4900  ELSIF NVL(p_source_10,'
4901 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4902 NVL(p_source_20,'
4903 ') =  'SUPPLIER SITE' AND 
4904 TO_NUMBER(p_source_22) IS NOT NULL 
4905  THEN 
4906  --
4907   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4908       trace
4909          (p_msg      => 'END of AcctDerRule_33'
4910          ,p_level    => C_LEVEL_PROCEDURE
4911          ,p_module   => l_log_module);
4912   END IF;
4913   x_value_type_code := 'S';
4914   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_22));
4915   RETURN l_output_value;
4916 
4917  ELSIF NVL(p_source_10,'
4918 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4919 NVL(p_source_20,'
4920 ') =  'SUPPLIER SITE'
4921  THEN 
4922  --
4923   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4924       trace
4925          (p_msg      => 'END of AcctDerRule_33'
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_21));
4931   RETURN l_output_value;
4932 
4933  ELSIF NVL(p_source_10,'
4934 ') =  'ACCOUNT_SEGMENT_VALUE'
4935  THEN 
4936  --
4937   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4938       trace
4939          (p_msg      => 'END of AcctDerRule_33'
4940          ,p_level    => C_LEVEL_PROCEDURE
4941          ,p_module   => l_log_module);
4942   END IF;
4943   x_value_type_code := 'S';
4944   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
4945   RETURN l_output_value;
4946 
4947  END IF;
4948 --
4949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4950       trace
4951          (p_msg      => 'END of AcctDerRule_33(invalid)'
4952          ,p_level    => C_LEVEL_PROCEDURE
4953          ,p_module   => l_log_module);
4954 END IF;
4955 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4956 x_value_type_code := null;
4957 l_output_value    := null;
4958 xla_accounting_err_pkg.build_message
4959                  (p_appli_s_name            => 'XLA'
4960                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4961                  ,p_token_1                 => 'COMPONENT_NAME'
4962                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4963                                                             l_component_type
4964                                                           , l_component_code
4965                                                           , l_component_type_code
4966                                                           , l_component_appl_id
4967                                                           , l_amb_context_code
4968                                                           )
4969                  ,p_token_2                 => 'OWNER'
4970                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4971                                                         'XLA_OWNER_TYPE'
4972                                                         ,l_component_type_code
4976                  ,p_token_4                 => 'PAD_OWNER'
4973                                                         )
4974                  ,p_token_3                 => 'PAD_NAME'
4975                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4977                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4978                                                         'XLA_OWNER_TYPE'
4979                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4980                                                         )
4981                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4982                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4983                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4984                  ,p_ae_header_id            => NULL
4985 );
4986 RETURN l_output_value;
4987 EXCEPTION
4988   WHEN xla_exceptions_pkg.application_exception THEN
4989       RAISE;
4990   WHEN OTHERS THEN
4991        xla_exceptions_pkg.raise_message
4992            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_33');
4993 END AcctDerRule_33;
4994 --
4995 
4996 ---------------------------------------
4997 --
4998 -- PRIVATE FUNCTION
4999 --         AcctDerRule_34
5000 --
5001 ---------------------------------------
5002 FUNCTION AcctDerRule_34 (
5003   p_application_id              IN NUMBER
5004 , p_ae_header_id                IN NUMBER
5005 , p_side                        IN VARCHAR2 
5006 --Interest Account
5007  , p_source_23            IN NUMBER
5008 --Prorate Interest Invoice Across Distributions Option
5009  , p_source_24            IN VARCHAR2
5010 --Invoice Distribution Account
5011  , p_source_25            IN NUMBER
5012 , x_transaction_coa_id         OUT NOCOPY NUMBER
5013 , x_accounting_coa_id          OUT NOCOPY NUMBER
5014 , x_value_type_code            OUT NOCOPY VARCHAR2
5015 )
5016 RETURN NUMBER
5017 IS
5018 l_component_type       VARCHAR2(80)  ;
5019 l_component_code       VARCHAR2(30)  ;
5020 l_component_type_code  VARCHAR2(1)   ;
5021 l_component_appl_id    INTEGER       ;
5022 l_amb_context_code     VARCHAR2(30)  ;
5023 l_log_module           VARCHAR2(240) ;
5024 l_output_value         NUMBER        ;
5025 BEGIN
5026 IF g_log_enabled THEN
5027       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
5028 END IF;
5029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5030       trace
5031          (p_msg      => 'BEGIN of AcctDerRule_34'
5032          ,p_level    => C_LEVEL_PROCEDURE
5033          ,p_module   => l_log_module);
5034 END IF;
5035 --
5036 l_component_type         := 'AMB_ADR';
5037 l_component_code         := 'AP_INTEREST';
5038 l_component_type_code    := 'S';
5039 l_component_appl_id      :=  200;
5040 l_amb_context_code       := 'DEFAULT';
5041 x_transaction_coa_id     :=  null;
5042 x_accounting_coa_id      :=  null;
5043 --
5044 
5045  IF NVL(p_source_24,'
5046 ') =  'N'
5047  THEN 
5048  --
5049   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5050       trace
5051          (p_msg      => 'END of AcctDerRule_34'
5052          ,p_level    => C_LEVEL_PROCEDURE
5053          ,p_module   => l_log_module);
5054   END IF;
5055   x_value_type_code := 'S';
5056   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_23));
5057   RETURN l_output_value;
5058 
5059  ELSIF NVL(p_source_24,'
5060 ') =  'Y'
5061  THEN 
5062  --
5063   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5064       trace
5065          (p_msg      => 'END of AcctDerRule_34'
5066          ,p_level    => C_LEVEL_PROCEDURE
5067          ,p_module   => l_log_module);
5068   END IF;
5069   x_value_type_code := 'S';
5070   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
5071   RETURN l_output_value;
5072 
5073  END IF;
5074 --
5075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5076       trace
5077          (p_msg      => 'END of AcctDerRule_34(invalid)'
5078          ,p_level    => C_LEVEL_PROCEDURE
5079          ,p_module   => l_log_module);
5080 END IF;
5081 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5082 x_value_type_code := null;
5083 l_output_value    := null;
5084 xla_accounting_err_pkg.build_message
5085                  (p_appli_s_name            => 'XLA'
5086                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5087                  ,p_token_1                 => 'COMPONENT_NAME'
5088                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5089                                                             l_component_type
5090                                                           , l_component_code
5091                                                           , l_component_type_code
5092                                                           , l_component_appl_id
5093                                                           , l_amb_context_code
5094                                                           )
5095                  ,p_token_2                 => 'OWNER'
5096                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5097                                                         'XLA_OWNER_TYPE'
5098                                                         ,l_component_type_code
5102                  ,p_token_4                 => 'PAD_OWNER'
5099                                                         )
5100                  ,p_token_3                 => 'PAD_NAME'
5101                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5103                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5104                                                         'XLA_OWNER_TYPE'
5105                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5106                                                         )
5107                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5108                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5109                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5110                  ,p_ae_header_id            => NULL
5111 );
5112 RETURN l_output_value;
5113 EXCEPTION
5114   WHEN xla_exceptions_pkg.application_exception THEN
5115       RAISE;
5116   WHEN OTHERS THEN
5117        xla_exceptions_pkg.raise_message
5118            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_34');
5119 END AcctDerRule_34;
5120 --
5121 
5122 ---------------------------------------
5123 --
5124 -- PRIVATE FUNCTION
5125 --         AcctDerRule_35
5126 --
5127 ---------------------------------------
5128 FUNCTION AcctDerRule_35 (
5129   p_application_id              IN NUMBER
5130 , p_ae_header_id                IN NUMBER
5131 , p_side                        IN VARCHAR2 
5132 --Invoice Distribution Account
5133  , p_source_25            IN NUMBER
5134 , x_transaction_coa_id         OUT NOCOPY NUMBER
5135 , x_accounting_coa_id          OUT NOCOPY NUMBER
5136 , x_value_type_code            OUT NOCOPY VARCHAR2
5137 )
5138 RETURN NUMBER
5139 IS
5140 l_component_type       VARCHAR2(80)  ;
5141 l_component_code       VARCHAR2(30)  ;
5142 l_component_type_code  VARCHAR2(1)   ;
5143 l_component_appl_id    INTEGER       ;
5144 l_amb_context_code     VARCHAR2(30)  ;
5145 l_log_module           VARCHAR2(240) ;
5146 l_output_value         NUMBER        ;
5147 BEGIN
5148 IF g_log_enabled THEN
5149       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
5150 END IF;
5151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5152       trace
5153          (p_msg      => 'BEGIN of AcctDerRule_35'
5154          ,p_level    => C_LEVEL_PROCEDURE
5155          ,p_module   => l_log_module);
5156 END IF;
5157 --
5158 l_component_type         := 'AMB_ADR';
5159 l_component_code         := 'AP_INVOICE_DIST';
5160 l_component_type_code    := 'S';
5161 l_component_appl_id      :=  200;
5162 l_amb_context_code       := 'DEFAULT';
5163 x_transaction_coa_id     :=  null;
5164 x_accounting_coa_id      :=  null;
5165 --
5166 
5167  --
5168   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5169       trace
5170          (p_msg      => 'END of AcctDerRule_35'
5171          ,p_level    => C_LEVEL_PROCEDURE
5172          ,p_module   => l_log_module);
5173   END IF;
5174   x_value_type_code := 'S';
5175   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
5176   RETURN l_output_value;
5177 
5178 --
5179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5180       trace
5181          (p_msg      => 'END of AcctDerRule_35(invalid)'
5182          ,p_level    => C_LEVEL_PROCEDURE
5183          ,p_module   => l_log_module);
5184 END IF;
5185 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5186 x_value_type_code := null;
5187 l_output_value    := null;
5188 xla_accounting_err_pkg.build_message
5189                  (p_appli_s_name            => 'XLA'
5190                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5191                  ,p_token_1                 => 'COMPONENT_NAME'
5192                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5193                                                             l_component_type
5194                                                           , l_component_code
5195                                                           , l_component_type_code
5196                                                           , l_component_appl_id
5197                                                           , l_amb_context_code
5198                                                           )
5199                  ,p_token_2                 => 'OWNER'
5200                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5201                                                         'XLA_OWNER_TYPE'
5202                                                         ,l_component_type_code
5203                                                         )
5204                  ,p_token_3                 => 'PAD_NAME'
5205                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5206                  ,p_token_4                 => 'PAD_OWNER'
5207                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5208                                                         'XLA_OWNER_TYPE'
5209                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5210                                                         )
5211                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5212                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5216 RETURN l_output_value;
5213                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5214                  ,p_ae_header_id            => NULL
5215 );
5217 EXCEPTION
5218   WHEN xla_exceptions_pkg.application_exception THEN
5219       RAISE;
5220   WHEN OTHERS THEN
5221        xla_exceptions_pkg.raise_message
5222            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_35');
5223 END AcctDerRule_35;
5224 --
5225 
5226 ---------------------------------------
5227 --
5228 -- PRIVATE FUNCTION
5229 --         AcctDerRule_36
5230 --
5231 ---------------------------------------
5232 FUNCTION AcctDerRule_36 (
5233   p_application_id              IN NUMBER
5234 , p_ae_header_id                IN NUMBER
5235 , p_side                        IN VARCHAR2 
5236 --Invoice Liability Account
5237  , p_source_29            IN NUMBER
5238 , x_transaction_coa_id         OUT NOCOPY NUMBER
5239 , x_accounting_coa_id          OUT NOCOPY NUMBER
5240 , x_value_type_code            OUT NOCOPY VARCHAR2
5241 )
5242 RETURN NUMBER
5243 IS
5244 l_component_type       VARCHAR2(80)  ;
5245 l_component_code       VARCHAR2(30)  ;
5246 l_component_type_code  VARCHAR2(1)   ;
5247 l_component_appl_id    INTEGER       ;
5248 l_amb_context_code     VARCHAR2(30)  ;
5249 l_log_module           VARCHAR2(240) ;
5250 l_output_value         NUMBER        ;
5251 BEGIN
5252 IF g_log_enabled THEN
5253       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5254 END IF;
5255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5256       trace
5257          (p_msg      => 'BEGIN of AcctDerRule_36'
5258          ,p_level    => C_LEVEL_PROCEDURE
5259          ,p_module   => l_log_module);
5260 END IF;
5261 --
5262 l_component_type         := 'AMB_ADR';
5263 l_component_code         := 'AP_LIAB';
5264 l_component_type_code    := 'S';
5265 l_component_appl_id      :=  200;
5266 l_amb_context_code       := 'DEFAULT';
5267 x_transaction_coa_id     :=  null;
5268 x_accounting_coa_id      :=  null;
5269 --
5270 
5271  --
5272   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5273       trace
5274          (p_msg      => 'END of AcctDerRule_36'
5275          ,p_level    => C_LEVEL_PROCEDURE
5276          ,p_module   => l_log_module);
5277   END IF;
5278   x_value_type_code := 'S';
5279   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_29));
5280   RETURN l_output_value;
5281 
5282 --
5283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5284       trace
5285          (p_msg      => 'END of AcctDerRule_36(invalid)'
5286          ,p_level    => C_LEVEL_PROCEDURE
5287          ,p_module   => l_log_module);
5288 END IF;
5289 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5290 x_value_type_code := null;
5291 l_output_value    := null;
5292 xla_accounting_err_pkg.build_message
5293                  (p_appli_s_name            => 'XLA'
5294                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5295                  ,p_token_1                 => 'COMPONENT_NAME'
5296                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5297                                                             l_component_type
5298                                                           , l_component_code
5299                                                           , l_component_type_code
5300                                                           , l_component_appl_id
5301                                                           , l_amb_context_code
5302                                                           )
5303                  ,p_token_2                 => 'OWNER'
5304                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5305                                                         'XLA_OWNER_TYPE'
5306                                                         ,l_component_type_code
5307                                                         )
5308                  ,p_token_3                 => 'PAD_NAME'
5309                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5310                  ,p_token_4                 => 'PAD_OWNER'
5311                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5312                                                         'XLA_OWNER_TYPE'
5313                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5314                                                         )
5315                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5316                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5317                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5318                  ,p_ae_header_id            => NULL
5319 );
5320 RETURN l_output_value;
5321 EXCEPTION
5322   WHEN xla_exceptions_pkg.application_exception THEN
5323       RAISE;
5324   WHEN OTHERS THEN
5325        xla_exceptions_pkg.raise_message
5326            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_36');
5327 END AcctDerRule_36;
5328 --
5329 
5330 ---------------------------------------
5331 --
5332 -- PRIVATE FUNCTION
5333 --         AcctDerRule_37
5334 --
5335 ---------------------------------------
5336 FUNCTION AcctDerRule_37 (
5337   p_application_id              IN NUMBER
5341  , p_source_44            IN NUMBER
5338 , p_ae_header_id                IN NUMBER
5339 , p_side                        IN VARCHAR2 
5340 --Payment Card Accrued Account
5342 , x_transaction_coa_id         OUT NOCOPY NUMBER
5343 , x_accounting_coa_id          OUT NOCOPY NUMBER
5344 , x_value_type_code            OUT NOCOPY VARCHAR2
5345 )
5346 RETURN NUMBER
5347 IS
5348 l_component_type       VARCHAR2(80)  ;
5349 l_component_code       VARCHAR2(30)  ;
5350 l_component_type_code  VARCHAR2(1)   ;
5351 l_component_appl_id    INTEGER       ;
5352 l_amb_context_code     VARCHAR2(30)  ;
5353 l_log_module           VARCHAR2(240) ;
5354 l_output_value         NUMBER        ;
5355 BEGIN
5356 IF g_log_enabled THEN
5357       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5358 END IF;
5359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5360       trace
5361          (p_msg      => 'BEGIN of AcctDerRule_37'
5362          ,p_level    => C_LEVEL_PROCEDURE
5363          ,p_module   => l_log_module);
5364 END IF;
5365 --
5366 l_component_type         := 'AMB_ADR';
5367 l_component_code         := 'AP_PAYCARD_ACCRUED_ADR';
5368 l_component_type_code    := 'S';
5369 l_component_appl_id      :=  200;
5370 l_amb_context_code       := 'DEFAULT';
5371 x_transaction_coa_id     :=  null;
5372 x_accounting_coa_id      :=  null;
5373 --
5374 
5375  --
5376   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5377       trace
5378          (p_msg      => 'END of AcctDerRule_37'
5379          ,p_level    => C_LEVEL_PROCEDURE
5380          ,p_module   => l_log_module);
5381   END IF;
5382   x_value_type_code := 'S';
5383   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_44));
5384   RETURN l_output_value;
5385 
5386 --
5387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5388       trace
5389          (p_msg      => 'END of AcctDerRule_37(invalid)'
5390          ,p_level    => C_LEVEL_PROCEDURE
5391          ,p_module   => l_log_module);
5392 END IF;
5393 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5394 x_value_type_code := null;
5395 l_output_value    := null;
5396 xla_accounting_err_pkg.build_message
5397                  (p_appli_s_name            => 'XLA'
5398                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5399                  ,p_token_1                 => 'COMPONENT_NAME'
5400                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5401                                                             l_component_type
5402                                                           , l_component_code
5403                                                           , l_component_type_code
5404                                                           , l_component_appl_id
5405                                                           , l_amb_context_code
5406                                                           )
5407                  ,p_token_2                 => 'OWNER'
5408                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5409                                                         'XLA_OWNER_TYPE'
5410                                                         ,l_component_type_code
5411                                                         )
5412                  ,p_token_3                 => 'PAD_NAME'
5413                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5414                  ,p_token_4                 => 'PAD_OWNER'
5415                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5416                                                         'XLA_OWNER_TYPE'
5417                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5418                                                         )
5419                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5420                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5421                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5422                  ,p_ae_header_id            => NULL
5423 );
5424 RETURN l_output_value;
5425 EXCEPTION
5426   WHEN xla_exceptions_pkg.application_exception THEN
5427       RAISE;
5428   WHEN OTHERS THEN
5429        xla_exceptions_pkg.raise_message
5430            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_37');
5431 END AcctDerRule_37;
5432 --
5433 
5434 ---------------------------------------
5435 --
5436 -- PRIVATE FUNCTION
5437 --         AcctDerRule_38
5438 --
5439 ---------------------------------------
5440 FUNCTION AcctDerRule_38 (
5441   p_application_id              IN NUMBER
5442 , p_ae_header_id                IN NUMBER
5443 , p_side                        IN VARCHAR2 
5444 --Bank Cash Clearing Account
5445  , p_source_30            IN NUMBER
5446 , x_transaction_coa_id         OUT NOCOPY NUMBER
5447 , x_accounting_coa_id          OUT NOCOPY NUMBER
5448 , x_value_type_code            OUT NOCOPY VARCHAR2
5449 )
5450 RETURN NUMBER
5451 IS
5452 l_component_type       VARCHAR2(80)  ;
5453 l_component_code       VARCHAR2(30)  ;
5454 l_component_type_code  VARCHAR2(1)   ;
5455 l_component_appl_id    INTEGER       ;
5456 l_amb_context_code     VARCHAR2(30)  ;
5457 l_log_module           VARCHAR2(240) ;
5458 l_output_value         NUMBER        ;
5459 BEGIN
5460 IF g_log_enabled THEN
5461       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_38';
5465          (p_msg      => 'BEGIN of AcctDerRule_38'
5462 END IF;
5463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5464       trace
5466          ,p_level    => C_LEVEL_PROCEDURE
5467          ,p_module   => l_log_module);
5468 END IF;
5469 --
5470 l_component_type         := 'AMB_ADR';
5471 l_component_code         := 'AP_PMT_CASH_CLEAR';
5472 l_component_type_code    := 'S';
5473 l_component_appl_id      :=  200;
5474 l_amb_context_code       := 'DEFAULT';
5475 x_transaction_coa_id     :=  null;
5476 x_accounting_coa_id      :=  null;
5477 --
5478 
5479  --
5480   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5481       trace
5482          (p_msg      => 'END of AcctDerRule_38'
5483          ,p_level    => C_LEVEL_PROCEDURE
5484          ,p_module   => l_log_module);
5485   END IF;
5486   x_value_type_code := 'S';
5487   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5488   RETURN l_output_value;
5489 
5490 --
5491 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5492       trace
5493          (p_msg      => 'END of AcctDerRule_38(invalid)'
5494          ,p_level    => C_LEVEL_PROCEDURE
5495          ,p_module   => l_log_module);
5496 END IF;
5497 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5498 x_value_type_code := null;
5499 l_output_value    := null;
5500 xla_accounting_err_pkg.build_message
5501                  (p_appli_s_name            => 'XLA'
5502                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5503                  ,p_token_1                 => 'COMPONENT_NAME'
5504                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5505                                                             l_component_type
5506                                                           , l_component_code
5507                                                           , l_component_type_code
5508                                                           , l_component_appl_id
5509                                                           , l_amb_context_code
5510                                                           )
5511                  ,p_token_2                 => 'OWNER'
5512                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5513                                                         'XLA_OWNER_TYPE'
5514                                                         ,l_component_type_code
5515                                                         )
5516                  ,p_token_3                 => 'PAD_NAME'
5517                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5518                  ,p_token_4                 => 'PAD_OWNER'
5519                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5520                                                         'XLA_OWNER_TYPE'
5521                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5522                                                         )
5523                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5524                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5525                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5526                  ,p_ae_header_id            => NULL
5527 );
5528 RETURN l_output_value;
5529 EXCEPTION
5530   WHEN xla_exceptions_pkg.application_exception THEN
5531       RAISE;
5532   WHEN OTHERS THEN
5533        xla_exceptions_pkg.raise_message
5534            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_38');
5535 END AcctDerRule_38;
5536 --
5537 
5538 ---------------------------------------
5539 --
5540 -- PRIVATE FUNCTION
5541 --         AcctDerRule_39
5542 --
5543 ---------------------------------------
5544 FUNCTION AcctDerRule_39 (
5545   p_application_id              IN NUMBER
5546 , p_ae_header_id                IN NUMBER
5547 , p_side                        IN VARCHAR2 
5548 --Invoice Distribution Account
5549  , p_source_25            IN NUMBER
5550 --Prepaid Expense Account Source Option
5551  , p_source_26            IN VARCHAR2
5552  , p_source_26_meaning    IN VARCHAR2
5553 --Purchase Order Number
5554  , p_source_27            IN VARCHAR2
5555 --Invoice Distribution Type
5556  , p_source_28            IN VARCHAR2
5557  , p_source_28_meaning    IN VARCHAR2
5558 --Purchase Order Charge Account
5559  , p_source_41            IN NUMBER
5560 , x_transaction_coa_id         OUT NOCOPY NUMBER
5561 , x_accounting_coa_id          OUT NOCOPY NUMBER
5562 , x_value_type_code            OUT NOCOPY VARCHAR2
5563 )
5564 RETURN NUMBER
5565 IS
5566 l_component_type       VARCHAR2(80)  ;
5567 l_component_code       VARCHAR2(30)  ;
5568 l_component_type_code  VARCHAR2(1)   ;
5569 l_component_appl_id    INTEGER       ;
5570 l_amb_context_code     VARCHAR2(30)  ;
5571 l_log_module           VARCHAR2(240) ;
5572 l_output_value         NUMBER        ;
5573 BEGIN
5574 IF g_log_enabled THEN
5575       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_39';
5576 END IF;
5577 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5578       trace
5579          (p_msg      => 'BEGIN of AcctDerRule_39'
5580          ,p_level    => C_LEVEL_PROCEDURE
5581          ,p_module   => l_log_module);
5582 END IF;
5583 --
5584 l_component_type         := 'AMB_ADR';
5585 l_component_code         := 'AP_PREPAY_INVOICE_DIST';
5586 l_component_type_code    := 'S';
5587 l_component_appl_id      :=  200;
5588 l_amb_context_code       := 'DEFAULT';
5589 x_transaction_coa_id     :=  null;
5590 x_accounting_coa_id      :=  null;
5591 --
5592 
5596 ') =  'Y' AND 
5593  IF NVL(p_source_26,'
5594 ') <>  'Y' OR 
5595 (NVL(p_source_26,'
5597 p_source_27 IS NULL )
5598  THEN 
5599  --
5600   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5601       trace
5602          (p_msg      => 'END of AcctDerRule_39'
5603          ,p_level    => C_LEVEL_PROCEDURE
5604          ,p_module   => l_log_module);
5605   END IF;
5606   x_value_type_code := 'S';
5607   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
5608   RETURN l_output_value;
5609 
5610  ELSIF NVL(p_source_26,'
5611 ') =  'Y' AND 
5612 p_source_27 IS NOT NULL AND 
5613 NVL(p_source_28,'
5614 ') =  'ITEM'
5615  THEN 
5616  --
5617   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5618       trace
5619          (p_msg      => 'END of AcctDerRule_39'
5620          ,p_level    => C_LEVEL_PROCEDURE
5621          ,p_module   => l_log_module);
5622   END IF;
5623   x_value_type_code := 'S';
5624   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_41));
5625   RETURN l_output_value;
5626 
5627  END IF;
5628 --
5629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5630       trace
5631          (p_msg      => 'END of AcctDerRule_39(invalid)'
5632          ,p_level    => C_LEVEL_PROCEDURE
5633          ,p_module   => l_log_module);
5634 END IF;
5635 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5636 x_value_type_code := null;
5637 l_output_value    := null;
5638 xla_accounting_err_pkg.build_message
5639                  (p_appli_s_name            => 'XLA'
5640                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5641                  ,p_token_1                 => 'COMPONENT_NAME'
5642                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5643                                                             l_component_type
5644                                                           , l_component_code
5645                                                           , l_component_type_code
5646                                                           , l_component_appl_id
5647                                                           , l_amb_context_code
5648                                                           )
5649                  ,p_token_2                 => 'OWNER'
5650                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5651                                                         'XLA_OWNER_TYPE'
5652                                                         ,l_component_type_code
5653                                                         )
5654                  ,p_token_3                 => 'PAD_NAME'
5655                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5656                  ,p_token_4                 => 'PAD_OWNER'
5657                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5658                                                         'XLA_OWNER_TYPE'
5659                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5660                                                         )
5661                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5662                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5663                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5664                  ,p_ae_header_id            => NULL
5665 );
5666 RETURN l_output_value;
5667 EXCEPTION
5668   WHEN xla_exceptions_pkg.application_exception THEN
5669       RAISE;
5670   WHEN OTHERS THEN
5671        xla_exceptions_pkg.raise_message
5672            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_39');
5673 END AcctDerRule_39;
5674 --
5675 
5676 ---------------------------------------
5677 --
5678 -- PRIVATE FUNCTION
5679 --         AcctDerRule_40
5680 --
5681 ---------------------------------------
5682 FUNCTION AcctDerRule_40 (
5683   p_application_id              IN NUMBER
5684 , p_ae_header_id                IN NUMBER
5685 , p_side                        IN VARCHAR2 
5686 --Automatic Offsets Value
5687  , p_source_10            IN VARCHAR2
5688  , p_source_10_meaning    IN VARCHAR2
5689 --Invoice Distribution Account
5690  , p_source_25            IN NUMBER
5691 --Internal Realized Gain Account
5692  , p_source_31            IN NUMBER
5693 --Bank Gain Account
5694  , p_source_32            IN NUMBER
5695 , x_transaction_coa_id         OUT NOCOPY NUMBER
5696 , x_accounting_coa_id          OUT NOCOPY NUMBER
5697 , x_value_type_code            OUT NOCOPY VARCHAR2
5698 )
5699 RETURN NUMBER
5700 IS
5701 l_component_type       VARCHAR2(80)  ;
5702 l_component_code       VARCHAR2(30)  ;
5703 l_component_type_code  VARCHAR2(1)   ;
5704 l_component_appl_id    INTEGER       ;
5705 l_amb_context_code     VARCHAR2(30)  ;
5706 l_log_module           VARCHAR2(240) ;
5707 l_output_value         NUMBER        ;
5708 BEGIN
5709 IF g_log_enabled THEN
5710       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_40';
5711 END IF;
5712 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5713       trace
5714          (p_msg      => 'BEGIN of AcctDerRule_40'
5715          ,p_level    => C_LEVEL_PROCEDURE
5716          ,p_module   => l_log_module);
5717 END IF;
5718 --
5719 l_component_type         := 'AMB_ADR';
5720 l_component_code         := 'AP_REAL_GAIN';
5721 l_component_type_code    := 'S';
5722 l_component_appl_id      :=  200;
5723 l_amb_context_code       := 'DEFAULT';
5724 x_transaction_coa_id     :=  null;
5728  IF NVL(p_source_10,'
5725 x_accounting_coa_id      :=  null;
5726 --
5727 
5729 ') <>  'ACCOUNT_SEGMENT_VALUE'
5730  THEN 
5731  --
5732   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5733       trace
5734          (p_msg      => 'END of AcctDerRule_40'
5735          ,p_level    => C_LEVEL_PROCEDURE
5736          ,p_module   => l_log_module);
5737   END IF;
5738   x_value_type_code := 'S';
5739   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_31));
5740   RETURN l_output_value;
5741 
5742  ELSIF NVL(p_source_10,'
5743 ') <>  'ACCOUNT_SEGMENT_VALUE'
5744  THEN 
5745  --
5746   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5747       trace
5748          (p_msg      => 'END of AcctDerRule_40'
5749          ,p_level    => C_LEVEL_PROCEDURE
5750          ,p_module   => l_log_module);
5751   END IF;
5752   x_value_type_code := 'S';
5753   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_32));
5754   RETURN l_output_value;
5755 
5756  ELSIF NVL(p_source_10,'
5757 ') =  'ACCOUNT_SEGMENT_VALUE'
5758  THEN 
5759  --
5760   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5761       trace
5762          (p_msg      => 'END of AcctDerRule_40'
5763          ,p_level    => C_LEVEL_PROCEDURE
5764          ,p_module   => l_log_module);
5765   END IF;
5766   x_value_type_code := 'S';
5767   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
5768   RETURN l_output_value;
5769 
5770  END IF;
5771 --
5772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5773       trace
5774          (p_msg      => 'END of AcctDerRule_40(invalid)'
5775          ,p_level    => C_LEVEL_PROCEDURE
5776          ,p_module   => l_log_module);
5777 END IF;
5778 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5779 x_value_type_code := null;
5780 l_output_value    := null;
5781 xla_accounting_err_pkg.build_message
5782                  (p_appli_s_name            => 'XLA'
5783                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5784                  ,p_token_1                 => 'COMPONENT_NAME'
5785                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5786                                                             l_component_type
5787                                                           , l_component_code
5788                                                           , l_component_type_code
5789                                                           , l_component_appl_id
5790                                                           , l_amb_context_code
5791                                                           )
5792                  ,p_token_2                 => 'OWNER'
5793                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5794                                                         'XLA_OWNER_TYPE'
5795                                                         ,l_component_type_code
5796                                                         )
5797                  ,p_token_3                 => 'PAD_NAME'
5798                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5799                  ,p_token_4                 => 'PAD_OWNER'
5800                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5801                                                         'XLA_OWNER_TYPE'
5802                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5803                                                         )
5804                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5805                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5806                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5807                  ,p_ae_header_id            => NULL
5808 );
5809 RETURN l_output_value;
5810 EXCEPTION
5811   WHEN xla_exceptions_pkg.application_exception THEN
5812       RAISE;
5813   WHEN OTHERS THEN
5814        xla_exceptions_pkg.raise_message
5815            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_40');
5816 END AcctDerRule_40;
5817 --
5818 
5819 ---------------------------------------
5820 --
5821 -- PRIVATE FUNCTION
5822 --         AcctDerRule_41
5823 --
5824 ---------------------------------------
5825 FUNCTION AcctDerRule_41 (
5826   p_application_id              IN NUMBER
5827 , p_ae_header_id                IN NUMBER
5828 , p_side                        IN VARCHAR2 
5829 --Automatic Offsets Value
5830  , p_source_10            IN VARCHAR2
5831  , p_source_10_meaning    IN VARCHAR2
5832 --Invoice Distribution Account
5833  , p_source_25            IN NUMBER
5834 --Internal Realized Loss Account
5835  , p_source_33            IN NUMBER
5836 --Bank Loss Account
5837  , p_source_34            IN NUMBER
5838 , x_transaction_coa_id         OUT NOCOPY NUMBER
5839 , x_accounting_coa_id          OUT NOCOPY NUMBER
5840 , x_value_type_code            OUT NOCOPY VARCHAR2
5841 )
5842 RETURN NUMBER
5843 IS
5844 l_component_type       VARCHAR2(80)  ;
5845 l_component_code       VARCHAR2(30)  ;
5846 l_component_type_code  VARCHAR2(1)   ;
5847 l_component_appl_id    INTEGER       ;
5848 l_amb_context_code     VARCHAR2(30)  ;
5849 l_log_module           VARCHAR2(240) ;
5850 l_output_value         NUMBER        ;
5851 BEGIN
5852 IF g_log_enabled THEN
5856       trace
5853       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_41';
5854 END IF;
5855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5857          (p_msg      => 'BEGIN of AcctDerRule_41'
5858          ,p_level    => C_LEVEL_PROCEDURE
5859          ,p_module   => l_log_module);
5860 END IF;
5861 --
5862 l_component_type         := 'AMB_ADR';
5863 l_component_code         := 'AP_REAL_LOSS';
5864 l_component_type_code    := 'S';
5865 l_component_appl_id      :=  200;
5866 l_amb_context_code       := 'DEFAULT';
5867 x_transaction_coa_id     :=  null;
5868 x_accounting_coa_id      :=  null;
5869 --
5870 
5871  IF NVL(p_source_10,'
5872 ') <>  'ACCOUNT_SEGMENT_VALUE'
5873  THEN 
5874  --
5875   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5876       trace
5877          (p_msg      => 'END of AcctDerRule_41'
5878          ,p_level    => C_LEVEL_PROCEDURE
5879          ,p_module   => l_log_module);
5880   END IF;
5881   x_value_type_code := 'S';
5882   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_33));
5883   RETURN l_output_value;
5884 
5885  ELSIF NVL(p_source_10,'
5886 ') <>  'ACCOUNT_SEGMENT_VALUE'
5887  THEN 
5888  --
5889   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5890       trace
5891          (p_msg      => 'END of AcctDerRule_41'
5892          ,p_level    => C_LEVEL_PROCEDURE
5893          ,p_module   => l_log_module);
5894   END IF;
5895   x_value_type_code := 'S';
5896   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_34));
5897   RETURN l_output_value;
5898 
5899  ELSIF NVL(p_source_10,'
5900 ') =  'ACCOUNT_SEGMENT_VALUE'
5901  THEN 
5902  --
5903   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5904       trace
5905          (p_msg      => 'END of AcctDerRule_41'
5906          ,p_level    => C_LEVEL_PROCEDURE
5907          ,p_module   => l_log_module);
5908   END IF;
5909   x_value_type_code := 'S';
5910   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
5911   RETURN l_output_value;
5912 
5913  END IF;
5914 --
5915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5916       trace
5917          (p_msg      => 'END of AcctDerRule_41(invalid)'
5918          ,p_level    => C_LEVEL_PROCEDURE
5919          ,p_module   => l_log_module);
5920 END IF;
5921 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5922 x_value_type_code := null;
5923 l_output_value    := null;
5924 xla_accounting_err_pkg.build_message
5925                  (p_appli_s_name            => 'XLA'
5926                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5927                  ,p_token_1                 => 'COMPONENT_NAME'
5928                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5929                                                             l_component_type
5930                                                           , l_component_code
5931                                                           , l_component_type_code
5932                                                           , l_component_appl_id
5933                                                           , l_amb_context_code
5934                                                           )
5935                  ,p_token_2                 => 'OWNER'
5936                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5937                                                         'XLA_OWNER_TYPE'
5938                                                         ,l_component_type_code
5939                                                         )
5940                  ,p_token_3                 => 'PAD_NAME'
5941                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5942                  ,p_token_4                 => 'PAD_OWNER'
5943                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5944                                                         'XLA_OWNER_TYPE'
5945                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5946                                                         )
5947                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5948                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5949                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5950                  ,p_ae_header_id            => NULL
5951 );
5952 RETURN l_output_value;
5953 EXCEPTION
5954   WHEN xla_exceptions_pkg.application_exception THEN
5955       RAISE;
5956   WHEN OTHERS THEN
5957        xla_exceptions_pkg.raise_message
5958            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_41');
5959 END AcctDerRule_41;
5960 --
5961 
5962 ---------------------------------------
5963 --
5964 -- PRIVATE FUNCTION
5965 --         AcctDerRule_42
5966 --
5967 ---------------------------------------
5968 FUNCTION AcctDerRule_42 (
5969   p_application_id              IN NUMBER
5970 , p_ae_header_id                IN NUMBER
5971 , p_side                        IN VARCHAR2 
5972 --Automatic Offsets Value
5973  , p_source_10            IN VARCHAR2
5974  , p_source_10_meaning    IN VARCHAR2
5975 --Invoice Distribution Account
5976  , p_source_25            IN NUMBER
5977 --Retainage Related Item Distribution Account
5978  , p_source_38            IN NUMBER
5979 , x_transaction_coa_id         OUT NOCOPY NUMBER
5980 , x_accounting_coa_id          OUT NOCOPY NUMBER
5981 , x_value_type_code            OUT NOCOPY VARCHAR2
5982 )
5986 l_component_code       VARCHAR2(30)  ;
5983 RETURN NUMBER
5984 IS
5985 l_component_type       VARCHAR2(80)  ;
5987 l_component_type_code  VARCHAR2(1)   ;
5988 l_component_appl_id    INTEGER       ;
5989 l_amb_context_code     VARCHAR2(30)  ;
5990 l_log_module           VARCHAR2(240) ;
5991 l_output_value         NUMBER        ;
5992 BEGIN
5993 IF g_log_enabled THEN
5994       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_42';
5995 END IF;
5996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5997       trace
5998          (p_msg      => 'BEGIN of AcctDerRule_42'
5999          ,p_level    => C_LEVEL_PROCEDURE
6000          ,p_module   => l_log_module);
6001 END IF;
6002 --
6003 l_component_type         := 'AMB_ADR';
6004 l_component_code         := 'AP_RETAINAGE';
6005 l_component_type_code    := 'S';
6006 l_component_appl_id      :=  200;
6007 l_amb_context_code       := 'DEFAULT';
6008 x_transaction_coa_id     :=  null;
6009 x_accounting_coa_id      :=  null;
6010 --
6011 
6012  IF NVL(p_source_10,'
6013 ') <>  'ACCOUNT_SEGMENT_VALUE'
6014  THEN 
6015  --
6016   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6017       trace
6018          (p_msg      => 'END of AcctDerRule_42'
6019          ,p_level    => C_LEVEL_PROCEDURE
6020          ,p_module   => l_log_module);
6021   END IF;
6022   x_value_type_code := 'S';
6023   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
6024   RETURN l_output_value;
6025 
6026  ELSIF NVL(p_source_10,'
6027 ') =  'ACCOUNT_SEGMENT_VALUE'
6028  THEN 
6029  --
6030   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6031       trace
6032          (p_msg      => 'END of AcctDerRule_42'
6033          ,p_level    => C_LEVEL_PROCEDURE
6034          ,p_module   => l_log_module);
6035   END IF;
6036   x_value_type_code := 'S';
6037   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_38));
6038   RETURN l_output_value;
6039 
6040  END IF;
6041 --
6042 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6043       trace
6044          (p_msg      => 'END of AcctDerRule_42(invalid)'
6045          ,p_level    => C_LEVEL_PROCEDURE
6046          ,p_module   => l_log_module);
6047 END IF;
6048 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6049 x_value_type_code := null;
6050 l_output_value    := null;
6051 xla_accounting_err_pkg.build_message
6052                  (p_appli_s_name            => 'XLA'
6053                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6054                  ,p_token_1                 => 'COMPONENT_NAME'
6055                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6056                                                             l_component_type
6057                                                           , l_component_code
6058                                                           , l_component_type_code
6059                                                           , l_component_appl_id
6060                                                           , l_amb_context_code
6061                                                           )
6062                  ,p_token_2                 => 'OWNER'
6063                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6064                                                         'XLA_OWNER_TYPE'
6065                                                         ,l_component_type_code
6066                                                         )
6067                  ,p_token_3                 => 'PAD_NAME'
6068                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6069                  ,p_token_4                 => 'PAD_OWNER'
6070                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6071                                                         'XLA_OWNER_TYPE'
6072                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6073                                                         )
6074                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6075                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6076                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6077                  ,p_ae_header_id            => NULL
6078 );
6079 RETURN l_output_value;
6080 EXCEPTION
6081   WHEN xla_exceptions_pkg.application_exception THEN
6082       RAISE;
6083   WHEN OTHERS THEN
6084        xla_exceptions_pkg.raise_message
6085            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_42');
6086 END AcctDerRule_42;
6087 --
6088 
6089 ---------------------------------------
6090 --
6091 -- PRIVATE FUNCTION
6092 --         AcctDerRule_43
6093 --
6094 ---------------------------------------
6095 FUNCTION AcctDerRule_43 (
6096   p_application_id              IN NUMBER
6097 , p_ae_header_id                IN NUMBER
6098 , p_side                        IN VARCHAR2 
6099 --Automatic Offsets Value
6100  , p_source_10            IN VARCHAR2
6101  , p_source_10_meaning    IN VARCHAR2
6102 --Invoice Distribution Account
6103  , p_source_25            IN NUMBER
6104 --Payables Options Rounding Account
6105  , p_source_45            IN NUMBER
6106 , x_transaction_coa_id         OUT NOCOPY NUMBER
6107 , x_accounting_coa_id          OUT NOCOPY NUMBER
6108 , x_value_type_code            OUT NOCOPY VARCHAR2
6109 )
6110 RETURN NUMBER
6114 l_component_type_code  VARCHAR2(1)   ;
6111 IS
6112 l_component_type       VARCHAR2(80)  ;
6113 l_component_code       VARCHAR2(30)  ;
6115 l_component_appl_id    INTEGER       ;
6116 l_amb_context_code     VARCHAR2(30)  ;
6117 l_log_module           VARCHAR2(240) ;
6118 l_output_value         NUMBER        ;
6119 BEGIN
6120 IF g_log_enabled THEN
6121       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_43';
6122 END IF;
6123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6124       trace
6125          (p_msg      => 'BEGIN of AcctDerRule_43'
6126          ,p_level    => C_LEVEL_PROCEDURE
6127          ,p_module   => l_log_module);
6128 END IF;
6129 --
6130 l_component_type         := 'AMB_ADR';
6131 l_component_code         := 'AP_ROUNDING';
6132 l_component_type_code    := 'S';
6133 l_component_appl_id      :=  200;
6134 l_amb_context_code       := 'DEFAULT';
6135 x_transaction_coa_id     :=  null;
6136 x_accounting_coa_id      :=  null;
6137 --
6138 
6139  IF NVL(p_source_10,'
6140 ') <>  'ACCOUNT_SEGMENT_VALUE'
6141  THEN 
6142  --
6143   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6144       trace
6145          (p_msg      => 'END of AcctDerRule_43'
6146          ,p_level    => C_LEVEL_PROCEDURE
6147          ,p_module   => l_log_module);
6148   END IF;
6149   x_value_type_code := 'S';
6150   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_45));
6151   RETURN l_output_value;
6152 
6153  ELSIF NVL(p_source_10,'
6154 ') =  'ACCOUNT_SEGMENT_VALUE'
6155  THEN 
6156  --
6157   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6158       trace
6159          (p_msg      => 'END of AcctDerRule_43'
6160          ,p_level    => C_LEVEL_PROCEDURE
6161          ,p_module   => l_log_module);
6162   END IF;
6163   x_value_type_code := 'S';
6164   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
6165   RETURN l_output_value;
6166 
6167  END IF;
6168 --
6169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6170       trace
6171          (p_msg      => 'END of AcctDerRule_43(invalid)'
6172          ,p_level    => C_LEVEL_PROCEDURE
6173          ,p_module   => l_log_module);
6174 END IF;
6175 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6176 x_value_type_code := null;
6177 l_output_value    := null;
6178 xla_accounting_err_pkg.build_message
6179                  (p_appli_s_name            => 'XLA'
6180                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6181                  ,p_token_1                 => 'COMPONENT_NAME'
6182                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6183                                                             l_component_type
6184                                                           , l_component_code
6185                                                           , l_component_type_code
6186                                                           , l_component_appl_id
6187                                                           , l_amb_context_code
6188                                                           )
6189                  ,p_token_2                 => 'OWNER'
6190                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6191                                                         'XLA_OWNER_TYPE'
6192                                                         ,l_component_type_code
6193                                                         )
6194                  ,p_token_3                 => 'PAD_NAME'
6195                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6196                  ,p_token_4                 => 'PAD_OWNER'
6197                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6198                                                         'XLA_OWNER_TYPE'
6199                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6200                                                         )
6201                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6202                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6203                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6204                  ,p_ae_header_id            => NULL
6205 );
6206 RETURN l_output_value;
6207 EXCEPTION
6208   WHEN xla_exceptions_pkg.application_exception THEN
6209       RAISE;
6210   WHEN OTHERS THEN
6211        xla_exceptions_pkg.raise_message
6212            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_43');
6213 END AcctDerRule_43;
6214 --
6215 
6216 ---------------------------------------
6217 --
6218 -- PRIVATE FUNCTION
6219 --         AcctDerRule_44
6220 --
6221 ---------------------------------------
6222 FUNCTION AcctDerRule_44 (
6223   p_application_id              IN NUMBER
6224 , p_ae_header_id                IN NUMBER
6225 , p_side                        IN VARCHAR2 
6226 --Self-Assessed Tax Account
6227  , p_source_46            IN NUMBER
6228 , x_transaction_coa_id         OUT NOCOPY NUMBER
6229 , x_accounting_coa_id          OUT NOCOPY NUMBER
6230 , x_value_type_code            OUT NOCOPY VARCHAR2
6231 )
6232 RETURN NUMBER
6233 IS
6234 l_component_type       VARCHAR2(80)  ;
6235 l_component_code       VARCHAR2(30)  ;
6236 l_component_type_code  VARCHAR2(1)   ;
6240 l_output_value         NUMBER        ;
6237 l_component_appl_id    INTEGER       ;
6238 l_amb_context_code     VARCHAR2(30)  ;
6239 l_log_module           VARCHAR2(240) ;
6241 BEGIN
6242 IF g_log_enabled THEN
6243       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_44';
6244 END IF;
6245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6246       trace
6247          (p_msg      => 'BEGIN of AcctDerRule_44'
6248          ,p_level    => C_LEVEL_PROCEDURE
6249          ,p_module   => l_log_module);
6250 END IF;
6251 --
6252 l_component_type         := 'AMB_ADR';
6253 l_component_code         := 'AP_SELF_ASSESSED_TAX';
6254 l_component_type_code    := 'S';
6255 l_component_appl_id      :=  200;
6256 l_amb_context_code       := 'DEFAULT';
6257 x_transaction_coa_id     :=  null;
6258 x_accounting_coa_id      :=  null;
6259 --
6260 
6261  --
6262   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6263       trace
6264          (p_msg      => 'END of AcctDerRule_44'
6265          ,p_level    => C_LEVEL_PROCEDURE
6266          ,p_module   => l_log_module);
6267   END IF;
6268   x_value_type_code := 'S';
6269   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_46));
6270   RETURN l_output_value;
6271 
6272 --
6273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6274       trace
6275          (p_msg      => 'END of AcctDerRule_44(invalid)'
6276          ,p_level    => C_LEVEL_PROCEDURE
6277          ,p_module   => l_log_module);
6278 END IF;
6279 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6280 x_value_type_code := null;
6281 l_output_value    := null;
6282 xla_accounting_err_pkg.build_message
6283                  (p_appli_s_name            => 'XLA'
6284                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6285                  ,p_token_1                 => 'COMPONENT_NAME'
6286                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6287                                                             l_component_type
6288                                                           , l_component_code
6289                                                           , l_component_type_code
6290                                                           , l_component_appl_id
6291                                                           , l_amb_context_code
6292                                                           )
6293                  ,p_token_2                 => 'OWNER'
6294                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6295                                                         'XLA_OWNER_TYPE'
6296                                                         ,l_component_type_code
6297                                                         )
6298                  ,p_token_3                 => 'PAD_NAME'
6299                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6300                  ,p_token_4                 => 'PAD_OWNER'
6301                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6302                                                         'XLA_OWNER_TYPE'
6303                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6304                                                         )
6305                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6306                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6307                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6308                  ,p_ae_header_id            => NULL
6309 );
6310 RETURN l_output_value;
6311 EXCEPTION
6312   WHEN xla_exceptions_pkg.application_exception THEN
6313       RAISE;
6314   WHEN OTHERS THEN
6315        xla_exceptions_pkg.raise_message
6316            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_44');
6317 END AcctDerRule_44;
6318 --
6319 
6320 ---------------------------------------
6321 --
6322 -- PRIVATE FUNCTION
6323 --         AcctDerRule_45
6324 --
6325 ---------------------------------------
6326 FUNCTION AcctDerRule_45 (
6327   p_application_id              IN NUMBER
6328 , p_ae_header_id                IN NUMBER
6329 , p_side                        IN VARCHAR2 
6330 --Self-Assessed Tax Liability Account
6331  , p_source_47            IN NUMBER
6332 , x_transaction_coa_id         OUT NOCOPY NUMBER
6333 , x_accounting_coa_id          OUT NOCOPY NUMBER
6334 , x_value_type_code            OUT NOCOPY VARCHAR2
6335 )
6336 RETURN NUMBER
6337 IS
6338 l_component_type       VARCHAR2(80)  ;
6339 l_component_code       VARCHAR2(30)  ;
6340 l_component_type_code  VARCHAR2(1)   ;
6341 l_component_appl_id    INTEGER       ;
6342 l_amb_context_code     VARCHAR2(30)  ;
6343 l_log_module           VARCHAR2(240) ;
6344 l_output_value         NUMBER        ;
6345 BEGIN
6346 IF g_log_enabled THEN
6347       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_45';
6348 END IF;
6349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6350       trace
6351          (p_msg      => 'BEGIN of AcctDerRule_45'
6352          ,p_level    => C_LEVEL_PROCEDURE
6353          ,p_module   => l_log_module);
6354 END IF;
6355 --
6356 l_component_type         := 'AMB_ADR';
6357 l_component_code         := 'AP_SELF_ASSESSED_TAX_LIAB';
6358 l_component_type_code    := 'S';
6359 l_component_appl_id      :=  200;
6360 l_amb_context_code       := 'DEFAULT';
6361 x_transaction_coa_id     :=  null;
6365  --
6362 x_accounting_coa_id      :=  null;
6363 --
6364 
6366   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6367       trace
6368          (p_msg      => 'END of AcctDerRule_45'
6369          ,p_level    => C_LEVEL_PROCEDURE
6370          ,p_module   => l_log_module);
6371   END IF;
6372   x_value_type_code := 'S';
6373   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_47));
6374   RETURN l_output_value;
6375 
6376 --
6377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6378       trace
6379          (p_msg      => 'END of AcctDerRule_45(invalid)'
6380          ,p_level    => C_LEVEL_PROCEDURE
6381          ,p_module   => l_log_module);
6382 END IF;
6383 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6384 x_value_type_code := null;
6385 l_output_value    := null;
6386 xla_accounting_err_pkg.build_message
6387                  (p_appli_s_name            => 'XLA'
6388                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6389                  ,p_token_1                 => 'COMPONENT_NAME'
6390                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6391                                                             l_component_type
6392                                                           , l_component_code
6393                                                           , l_component_type_code
6394                                                           , l_component_appl_id
6395                                                           , l_amb_context_code
6396                                                           )
6397                  ,p_token_2                 => 'OWNER'
6398                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6399                                                         'XLA_OWNER_TYPE'
6400                                                         ,l_component_type_code
6401                                                         )
6402                  ,p_token_3                 => 'PAD_NAME'
6403                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6404                  ,p_token_4                 => 'PAD_OWNER'
6405                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6406                                                         'XLA_OWNER_TYPE'
6407                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6408                                                         )
6409                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6410                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6411                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6412                  ,p_ae_header_id            => NULL
6413 );
6414 RETURN l_output_value;
6415 EXCEPTION
6416   WHEN xla_exceptions_pkg.application_exception THEN
6417       RAISE;
6418   WHEN OTHERS THEN
6419        xla_exceptions_pkg.raise_message
6420            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_45');
6421 END AcctDerRule_45;
6422 --
6423 
6424 ---------------------------------------
6425 --
6426 -- PRIVATE FUNCTION
6427 --         AcctDerRule_46
6428 --
6429 ---------------------------------------
6430 FUNCTION AcctDerRule_46 (
6431   p_application_id              IN NUMBER
6432 , p_ae_header_id                IN NUMBER
6433 , p_side                        IN VARCHAR2 
6434 --Recoverable Tax Account
6435  , p_source_48            IN NUMBER
6436 , x_transaction_coa_id         OUT NOCOPY NUMBER
6437 , x_accounting_coa_id          OUT NOCOPY NUMBER
6438 , x_value_type_code            OUT NOCOPY VARCHAR2
6439 )
6440 RETURN NUMBER
6441 IS
6442 l_component_type       VARCHAR2(80)  ;
6443 l_component_code       VARCHAR2(30)  ;
6444 l_component_type_code  VARCHAR2(1)   ;
6445 l_component_appl_id    INTEGER       ;
6446 l_amb_context_code     VARCHAR2(30)  ;
6447 l_log_module           VARCHAR2(240) ;
6448 l_output_value         NUMBER        ;
6449 BEGIN
6450 IF g_log_enabled THEN
6451       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_46';
6452 END IF;
6453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6454       trace
6455          (p_msg      => 'BEGIN of AcctDerRule_46'
6456          ,p_level    => C_LEVEL_PROCEDURE
6457          ,p_module   => l_log_module);
6458 END IF;
6459 --
6460 l_component_type         := 'AMB_ADR';
6461 l_component_code         := 'AP_TAX_ACCOUNT';
6462 l_component_type_code    := 'S';
6463 l_component_appl_id      :=  200;
6464 l_amb_context_code       := 'DEFAULT';
6465 x_transaction_coa_id     :=  null;
6466 x_accounting_coa_id      :=  null;
6467 --
6468 
6469  --
6470   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6471       trace
6472          (p_msg      => 'END of AcctDerRule_46'
6473          ,p_level    => C_LEVEL_PROCEDURE
6474          ,p_module   => l_log_module);
6475   END IF;
6476   x_value_type_code := 'S';
6477   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_48));
6478   RETURN l_output_value;
6479 
6480 --
6481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6482       trace
6483          (p_msg      => 'END of AcctDerRule_46(invalid)'
6484          ,p_level    => C_LEVEL_PROCEDURE
6485          ,p_module   => l_log_module);
6486 END IF;
6490 xla_accounting_err_pkg.build_message
6487 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6488 x_value_type_code := null;
6489 l_output_value    := null;
6491                  (p_appli_s_name            => 'XLA'
6492                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6493                  ,p_token_1                 => 'COMPONENT_NAME'
6494                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6495                                                             l_component_type
6496                                                           , l_component_code
6497                                                           , l_component_type_code
6498                                                           , l_component_appl_id
6499                                                           , l_amb_context_code
6500                                                           )
6501                  ,p_token_2                 => 'OWNER'
6502                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6503                                                         'XLA_OWNER_TYPE'
6504                                                         ,l_component_type_code
6505                                                         )
6506                  ,p_token_3                 => 'PAD_NAME'
6507                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6508                  ,p_token_4                 => 'PAD_OWNER'
6509                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6510                                                         'XLA_OWNER_TYPE'
6511                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6512                                                         )
6513                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6514                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6515                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6516                  ,p_ae_header_id            => NULL
6517 );
6518 RETURN l_output_value;
6519 EXCEPTION
6520   WHEN xla_exceptions_pkg.application_exception THEN
6521       RAISE;
6522   WHEN OTHERS THEN
6523        xla_exceptions_pkg.raise_message
6524            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_46');
6525 END AcctDerRule_46;
6526 --
6527 
6528 ---------------------------------------
6529 --
6530 -- PRIVATE FUNCTION
6531 --         AcctDerRule_47
6532 --
6533 ---------------------------------------
6534 FUNCTION AcctDerRule_47 (
6535   p_application_id              IN NUMBER
6536 , p_ae_header_id                IN NUMBER
6537 , p_side                        IN VARCHAR2 
6538 --Automatic Offsets Value
6539  , p_source_10            IN VARCHAR2
6540  , p_source_10_meaning    IN VARCHAR2
6541 --Invoice Distribution Account
6542  , p_source_25            IN NUMBER
6543 --Payables Options Tax Difference Account
6544  , p_source_36            IN NUMBER
6545 , x_transaction_coa_id         OUT NOCOPY NUMBER
6546 , x_accounting_coa_id          OUT NOCOPY NUMBER
6547 , x_value_type_code            OUT NOCOPY VARCHAR2
6548 )
6549 RETURN NUMBER
6550 IS
6551 l_component_type       VARCHAR2(80)  ;
6552 l_component_code       VARCHAR2(30)  ;
6553 l_component_type_code  VARCHAR2(1)   ;
6554 l_component_appl_id    INTEGER       ;
6555 l_amb_context_code     VARCHAR2(30)  ;
6556 l_log_module           VARCHAR2(240) ;
6557 l_output_value         NUMBER        ;
6558 BEGIN
6559 IF g_log_enabled THEN
6560       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_47';
6561 END IF;
6562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6563       trace
6564          (p_msg      => 'BEGIN of AcctDerRule_47'
6565          ,p_level    => C_LEVEL_PROCEDURE
6566          ,p_module   => l_log_module);
6567 END IF;
6568 --
6569 l_component_type         := 'AMB_ADR';
6570 l_component_code         := 'AP_TAX_DIFFERENCE';
6571 l_component_type_code    := 'S';
6572 l_component_appl_id      :=  200;
6573 l_amb_context_code       := 'DEFAULT';
6574 x_transaction_coa_id     :=  null;
6575 x_accounting_coa_id      :=  null;
6576 --
6577 
6578  IF NVL(p_source_10,'
6579 ') <>  'ACCOUNT_SEGMENT_VALUE'
6580  THEN 
6581  --
6582   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6583       trace
6584          (p_msg      => 'END of AcctDerRule_47'
6585          ,p_level    => C_LEVEL_PROCEDURE
6586          ,p_module   => l_log_module);
6587   END IF;
6588   x_value_type_code := 'S';
6589   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_36));
6590   RETURN l_output_value;
6591 
6592  ELSIF NVL(p_source_10,'
6593 ') =  'ACCOUNT_SEGMENT_VALUE'
6594  THEN 
6595  --
6596   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6597       trace
6598          (p_msg      => 'END of AcctDerRule_47'
6599          ,p_level    => C_LEVEL_PROCEDURE
6600          ,p_module   => l_log_module);
6601   END IF;
6602   x_value_type_code := 'S';
6603   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
6604   RETURN l_output_value;
6605 
6606  END IF;
6607 --
6608 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6609       trace
6610          (p_msg      => 'END of AcctDerRule_47(invalid)'
6611          ,p_level    => C_LEVEL_PROCEDURE
6615 x_value_type_code := null;
6612          ,p_module   => l_log_module);
6613 END IF;
6614 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6616 l_output_value    := null;
6617 xla_accounting_err_pkg.build_message
6618                  (p_appli_s_name            => 'XLA'
6619                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6620                  ,p_token_1                 => 'COMPONENT_NAME'
6621                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6622                                                             l_component_type
6623                                                           , l_component_code
6624                                                           , l_component_type_code
6625                                                           , l_component_appl_id
6626                                                           , l_amb_context_code
6627                                                           )
6628                  ,p_token_2                 => 'OWNER'
6629                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6630                                                         'XLA_OWNER_TYPE'
6631                                                         ,l_component_type_code
6632                                                         )
6633                  ,p_token_3                 => 'PAD_NAME'
6634                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6635                  ,p_token_4                 => 'PAD_OWNER'
6636                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6637                                                         'XLA_OWNER_TYPE'
6638                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6639                                                         )
6640                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6641                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6642                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6643                  ,p_ae_header_id            => NULL
6644 );
6645 RETURN l_output_value;
6646 EXCEPTION
6647   WHEN xla_exceptions_pkg.application_exception THEN
6648       RAISE;
6649   WHEN OTHERS THEN
6650        xla_exceptions_pkg.raise_message
6651            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_47');
6652 END AcctDerRule_47;
6653 --
6654 
6655 ---------------------------------------
6656 --
6657 -- PRIVATE FUNCTION
6658 --         AcctDerRule_48
6659 --
6660 ---------------------------------------
6661 FUNCTION AcctDerRule_48 (
6662   p_application_id              IN NUMBER
6663 , p_ae_header_id                IN NUMBER
6664 , p_side                        IN VARCHAR2 
6665 --Automatic Offsets Value
6666  , p_source_10            IN VARCHAR2
6667  , p_source_10_meaning    IN VARCHAR2
6668 --Invoice Distribution Account
6669  , p_source_25            IN NUMBER
6670 --Withholding Related Distribution Account
6671  , p_source_39            IN NUMBER
6672 , x_transaction_coa_id         OUT NOCOPY NUMBER
6673 , x_accounting_coa_id          OUT NOCOPY NUMBER
6674 , x_value_type_code            OUT NOCOPY VARCHAR2
6675 )
6676 RETURN NUMBER
6677 IS
6678 l_component_type       VARCHAR2(80)  ;
6679 l_component_code       VARCHAR2(30)  ;
6680 l_component_type_code  VARCHAR2(1)   ;
6681 l_component_appl_id    INTEGER       ;
6682 l_amb_context_code     VARCHAR2(30)  ;
6683 l_log_module           VARCHAR2(240) ;
6684 l_output_value         NUMBER        ;
6685 BEGIN
6686 IF g_log_enabled THEN
6687       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_48';
6688 END IF;
6689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6690       trace
6691          (p_msg      => 'BEGIN of AcctDerRule_48'
6692          ,p_level    => C_LEVEL_PROCEDURE
6693          ,p_module   => l_log_module);
6694 END IF;
6695 --
6696 l_component_type         := 'AMB_ADR';
6697 l_component_code         := 'AP_WH_DIST_ACCT';
6698 l_component_type_code    := 'S';
6699 l_component_appl_id      :=  200;
6700 l_amb_context_code       := 'DEFAULT';
6701 x_transaction_coa_id     :=  null;
6702 x_accounting_coa_id      :=  null;
6703 --
6704 
6705  IF NVL(p_source_10,'
6706 ') <>  'ACCOUNT_SEGMENT_VALUE'
6707  THEN 
6708  --
6709   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6710       trace
6711          (p_msg      => 'END of AcctDerRule_48'
6712          ,p_level    => C_LEVEL_PROCEDURE
6713          ,p_module   => l_log_module);
6714   END IF;
6715   x_value_type_code := 'S';
6716   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_25));
6717   RETURN l_output_value;
6718 
6719  ELSIF NVL(p_source_10,'
6720 ') =  'ACCOUNT_SEGMENT_VALUE'
6721  THEN 
6722  --
6723   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6724       trace
6725          (p_msg      => 'END of AcctDerRule_48'
6726          ,p_level    => C_LEVEL_PROCEDURE
6727          ,p_module   => l_log_module);
6728   END IF;
6729   x_value_type_code := 'S';
6730   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_39));
6731   RETURN l_output_value;
6732 
6733  END IF;
6734 --
6735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6736       trace
6737          (p_msg      => 'END of AcctDerRule_48(invalid)'
6738          ,p_level    => C_LEVEL_PROCEDURE
6742 x_value_type_code := null;
6739          ,p_module   => l_log_module);
6740 END IF;
6741 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6743 l_output_value    := null;
6744 xla_accounting_err_pkg.build_message
6745                  (p_appli_s_name            => 'XLA'
6746                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6747                  ,p_token_1                 => 'COMPONENT_NAME'
6748                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6749                                                             l_component_type
6750                                                           , l_component_code
6751                                                           , l_component_type_code
6752                                                           , l_component_appl_id
6753                                                           , l_amb_context_code
6754                                                           )
6755                  ,p_token_2                 => 'OWNER'
6756                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6757                                                         'XLA_OWNER_TYPE'
6758                                                         ,l_component_type_code
6759                                                         )
6760                  ,p_token_3                 => 'PAD_NAME'
6761                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6762                  ,p_token_4                 => 'PAD_OWNER'
6763                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6764                                                         'XLA_OWNER_TYPE'
6765                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6766                                                         )
6767                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6768                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6769                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6770                  ,p_ae_header_id            => NULL
6771 );
6772 RETURN l_output_value;
6773 EXCEPTION
6774   WHEN xla_exceptions_pkg.application_exception THEN
6775       RAISE;
6776   WHEN OTHERS THEN
6777        xla_exceptions_pkg.raise_message
6778            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_48');
6779 END AcctDerRule_48;
6780 --
6781 
6782 ---------------------------------------
6783 --
6784 -- PRIVATE FUNCTION
6785 --         AcctDerRule_49
6786 --
6787 ---------------------------------------
6788 FUNCTION AcctDerRule_49 (
6789   p_application_id             IN NUMBER
6790 , p_ae_header_id               IN NUMBER
6791 , p_side                       IN VARCHAR2
6792 , p_override_seg_flag          IN VARCHAR2  
6793 , x_transaction_coa_id         OUT NOCOPY NUMBER
6794 , x_accounting_coa_id          OUT NOCOPY NUMBER
6795 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
6796 , x_flex_value_set_id          OUT NOCOPY NUMBER
6797 , x_value_type_code            OUT NOCOPY VARCHAR2
6798 , x_value_combination_id       OUT NOCOPY NUMBER
6799 , x_value_segment_code         OUT NOCOPY VARCHAR2
6800 )
6801 RETURN VARCHAR2
6802 IS
6803 l_component_type       VARCHAR2(80)  ;
6804 l_component_code       VARCHAR2(30)  ;
6805 l_component_type_code  VARCHAR2(1)   ;
6806 l_component_appl_id    INTEGER       ;
6807 l_amb_context_code     VARCHAR2(30)  ;
6808 l_log_module           VARCHAR2(240) ;
6809 l_output_value         VARCHAR2(30)  ;
6810 BEGIN
6811 IF g_log_enabled THEN
6812       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_49';
6813 END IF;
6814 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6815 
6816       trace
6817          (p_msg      => 'BEGIN of AcctDerRule_49'
6818          ,p_level    => C_LEVEL_PROCEDURE
6819          ,p_module   => l_log_module);
6820 
6821 END IF;
6822 
6823 l_component_type         := 'AMB_ADR';
6824 l_component_code         := 'FV_310701_UNEXP_APPR_ACCT';
6825 l_component_type_code    := 'S';
6826 l_component_appl_id      :=  200;
6827 l_amb_context_code       := 'DEFAULT';
6828 x_transaction_coa_id     :=  null;
6829 x_accounting_coa_id      :=  null;
6830 x_flexfield_segment_code :=  null;
6831 x_flex_value_set_id      := 1009988 ;
6832 
6833 
6834 --
6835   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6836 
6837       trace
6838          (p_msg      => 'END of AcctDerRule_49'
6839          ,p_level    => C_LEVEL_PROCEDURE
6840          ,p_module   => l_log_module);
6841 
6842   END IF;
6843   x_value_combination_id  :=  null ;
6844   x_value_segment_code    :=  null ;
6845   x_value_type_code       := 'C';
6846   l_output_value          := '310701';
6847   RETURN l_output_value;
6848 
6849 
6850 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6851 
6852       trace
6853          (p_msg      => 'END of AcctDerRule_49(invalid)'
6854          ,p_level    => C_LEVEL_PROCEDURE
6855          ,p_module   => l_log_module);
6856 
6857 END IF;
6858 
6859 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6860 x_value_combination_id  := null;
6861 x_value_segment_code    := null;
6862 x_value_type_code       := null;
6863 l_output_value          := null;
6864 xla_accounting_err_pkg.build_message
6868                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6865                  (p_appli_s_name            => 'XLA'
6866                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6867                  ,p_token_1                 => 'COMPONENT_NAME'
6869                                                             l_component_type
6870                                                           , l_component_code
6871                                                           , l_component_type_code
6872                                                           , l_component_appl_id
6873                                                           , l_amb_context_code
6874                                                           )
6875                  ,p_token_2                 => 'OWNER'
6876                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6877                                                         'XLA_OWNER_TYPE'
6878                                                         ,l_component_type_code
6879                                                         )
6880                  ,p_token_3                 => 'PAD_NAME'
6881                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6882                  ,p_token_4                 => 'PAD_OWNER'
6883                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6884                                                         'XLA_OWNER_TYPE'
6885                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6886                                                         )
6887                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6888                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6889                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6890                  ,p_ae_header_id            => NULL
6891 );
6892 RETURN l_output_value;
6893 EXCEPTION
6894   WHEN xla_exceptions_pkg.application_exception THEN
6895       RAISE;
6896   WHEN OTHERS THEN
6897        xla_exceptions_pkg.raise_message
6898            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_49');
6899 END AcctDerRule_49;
6900 --
6901 
6902 ---------------------------------------
6903 --
6904 -- PRIVATE FUNCTION
6905 --         AcctDerRule_50
6906 --
6907 ---------------------------------------
6908 FUNCTION AcctDerRule_50 (
6909   p_application_id             IN NUMBER
6910 , p_ae_header_id               IN NUMBER
6911 , p_side                       IN VARCHAR2
6912 , p_override_seg_flag          IN VARCHAR2 
6913 --Federal Fund Category
6914  , p_source_49            IN VARCHAR2
6915 --Federal Fund Expired Status
6916  , p_source_50            IN VARCHAR2
6917 --Federal Fund Category Description
6918  , p_source_51            IN VARCHAR2
6919 , x_transaction_coa_id         OUT NOCOPY NUMBER
6920 , x_accounting_coa_id          OUT NOCOPY NUMBER
6921 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
6922 , x_flex_value_set_id          OUT NOCOPY NUMBER
6923 , x_value_type_code            OUT NOCOPY VARCHAR2
6924 , x_value_combination_id       OUT NOCOPY NUMBER
6925 , x_value_segment_code         OUT NOCOPY VARCHAR2
6926 )
6927 RETURN VARCHAR2
6928 IS
6929 l_component_type       VARCHAR2(80)  ;
6930 l_component_code       VARCHAR2(30)  ;
6931 l_component_type_code  VARCHAR2(1)   ;
6932 l_component_appl_id    INTEGER       ;
6933 l_amb_context_code     VARCHAR2(30)  ;
6934 l_log_module           VARCHAR2(240) ;
6935 l_output_value         VARCHAR2(30)  ;
6936 BEGIN
6937 IF g_log_enabled THEN
6938       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_50';
6939 END IF;
6940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6941 
6942       trace
6943          (p_msg      => 'BEGIN of AcctDerRule_50'
6944          ,p_level    => C_LEVEL_PROCEDURE
6945          ,p_module   => l_log_module);
6946 
6947 END IF;
6948 
6949 l_component_type         := 'AMB_ADR';
6950 l_component_code         := 'FV_46X002_ALLOTMENT_RES_ACCT';
6951 l_component_type_code    := 'S';
6952 l_component_appl_id      :=  200;
6953 l_amb_context_code       := 'DEFAULT';
6954 x_transaction_coa_id     :=  null;
6955 x_accounting_coa_id      :=  null;
6956 x_flexfield_segment_code :=  null;
6957 x_flex_value_set_id      := 1009988 ;
6958 
6959 
6960  IF (NVL(p_source_49,'
6961 ') =  'A' OR 
6962 NVL(p_source_49,'
6963 ') =  'B' OR 
6964 NVL(p_source_49,'
6965 ') =  'S' OR 
6966 NVL(p_source_49,'
6967 ') =  'T') AND 
6968 NVL(p_source_50,'
6969 ') =  'Unexpired'
6970  THEN 
6971 --
6972   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6973 
6974       trace
6975          (p_msg      => 'END of AcctDerRule_50'
6976          ,p_level    => C_LEVEL_PROCEDURE
6977          ,p_module   => l_log_module);
6978 
6979   END IF;
6980   x_value_combination_id  :=  null ;
6981   x_value_segment_code    :=  null ;
6982   x_value_type_code       := 'C';
6983   l_output_value          := '461002';
6984   RETURN l_output_value;
6985 
6986  ELSIF (NVL(p_source_49,'
6987 ') =  'C' OR 
6988 NVL(p_source_49,'
6989 ') =  'R') AND 
6990 NVL(p_source_50,'
6991 ') =  'Unexpired'
6992  THEN 
6993 --
6994   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6995 
6996       trace
6997          (p_msg      => 'END of AcctDerRule_50'
7001   END IF;
6998          ,p_level    => C_LEVEL_PROCEDURE
6999          ,p_module   => l_log_module);
7000 
7002   x_value_combination_id  :=  null ;
7003   x_value_segment_code    :=  null ;
7004   x_value_type_code       := 'C';
7005   l_output_value          := '462002';
7006   RETURN l_output_value;
7007 
7008  ELSIF NVL(p_source_51,'
7009 ') =  'Direct' OR 
7010 NVL(p_source_50,'
7011 ') =  'Expired'
7012  THEN 
7013 --
7014   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7015 
7016       trace
7017          (p_msg      => 'END of AcctDerRule_50'
7018          ,p_level    => C_LEVEL_PROCEDURE
7019          ,p_module   => l_log_module);
7020 
7021   END IF;
7022   x_value_combination_id  :=  null ;
7023   x_value_segment_code    :=  null ;
7024   x_value_type_code       := 'C';
7025   l_output_value          := '465002';
7026   RETURN l_output_value;
7027 
7028  ELSE 
7029     IF p_override_seg_flag = 'Y' THEN 
7030        RETURN '#$NO_OVERRIDE#$';
7031     END IF;
7032  END IF;
7033 
7034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7035 
7036       trace
7037          (p_msg      => 'END of AcctDerRule_50(invalid)'
7038          ,p_level    => C_LEVEL_PROCEDURE
7039          ,p_module   => l_log_module);
7040 
7041 END IF;
7042 
7043 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
7044 x_value_combination_id  := null;
7045 x_value_segment_code    := null;
7046 x_value_type_code       := null;
7047 l_output_value          := null;
7048 xla_accounting_err_pkg.build_message
7049                  (p_appli_s_name            => 'XLA'
7050                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
7051                  ,p_token_1                 => 'COMPONENT_NAME'
7052                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
7053                                                             l_component_type
7054                                                           , l_component_code
7055                                                           , l_component_type_code
7056                                                           , l_component_appl_id
7057                                                           , l_amb_context_code
7058                                                           )
7059                  ,p_token_2                 => 'OWNER'
7060                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
7061                                                         'XLA_OWNER_TYPE'
7062                                                         ,l_component_type_code
7063                                                         )
7064                  ,p_token_3                 => 'PAD_NAME'
7065                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
7066                  ,p_token_4                 => 'PAD_OWNER'
7067                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
7068                                                         'XLA_OWNER_TYPE'
7069                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
7070                                                         )
7071                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7072                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
7073                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
7074                  ,p_ae_header_id            => NULL
7075 );
7076 RETURN l_output_value;
7077 EXCEPTION
7078   WHEN xla_exceptions_pkg.application_exception THEN
7079       RAISE;
7080   WHEN OTHERS THEN
7081        xla_exceptions_pkg.raise_message
7082            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_50');
7083 END AcctDerRule_50;
7084 --
7085 
7086 ---------------------------------------
7087 --
7088 -- PRIVATE FUNCTION
7089 --         AcctDerRule_51
7090 --
7091 ---------------------------------------
7092 FUNCTION AcctDerRule_51 (
7093   p_application_id             IN NUMBER
7094 , p_ae_header_id               IN NUMBER
7095 , p_side                       IN VARCHAR2
7096 , p_override_seg_flag          IN VARCHAR2 
7097 --Invoice Distribution Type
7098  , p_source_28            IN VARCHAR2
7099  , p_source_28_meaning    IN VARCHAR2
7100 --Federal Prior Year Flag
7101  , p_source_52            IN VARCHAR2
7102 --Invoice Distribution Encumbrance Amount
7103  , p_source_53            IN NUMBER
7104 --Accrue on Receipt Option
7105  , p_source_54            IN VARCHAR2
7106  , p_source_54_meaning    IN VARCHAR2
7107 --Payment Status Flag of the Invoice
7108  , p_source_55            IN VARCHAR2
7109 , x_transaction_coa_id         OUT NOCOPY NUMBER
7110 , x_accounting_coa_id          OUT NOCOPY NUMBER
7111 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
7112 , x_flex_value_set_id          OUT NOCOPY NUMBER
7113 , x_value_type_code            OUT NOCOPY VARCHAR2
7114 , x_value_combination_id       OUT NOCOPY NUMBER
7115 , x_value_segment_code         OUT NOCOPY VARCHAR2
7116 )
7117 RETURN VARCHAR2
7118 IS
7119 l_component_type       VARCHAR2(80)  ;
7120 l_component_code       VARCHAR2(30)  ;
7121 l_component_type_code  VARCHAR2(1)   ;
7122 l_component_appl_id    INTEGER       ;
7123 l_amb_context_code     VARCHAR2(30)  ;
7124 l_log_module           VARCHAR2(240) ;
7125 l_output_value         VARCHAR2(30)  ;
7129 END IF;
7126 BEGIN
7127 IF g_log_enabled THEN
7128       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_51';
7130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7131 
7132       trace
7133          (p_msg      => 'BEGIN of AcctDerRule_51'
7134          ,p_level    => C_LEVEL_PROCEDURE
7135          ,p_module   => l_log_module);
7136 
7137 END IF;
7138 
7139 l_component_type         := 'AMB_ADR';
7140 l_component_code         := 'FV_490X01_OBL_ACCOUNT';
7141 l_component_type_code    := 'S';
7142 l_component_appl_id      :=  200;
7143 l_amb_context_code       := 'DEFAULT';
7144 x_transaction_coa_id     :=  null;
7145 x_accounting_coa_id      :=  null;
7146 x_flexfield_segment_code :=  null;
7147 x_flex_value_set_id      := 1009988 ;
7148 
7149 
7150  IF NVL(p_source_28,'
7151 ') =  'IPV' AND 
7152 NVL(p_source_52,'
7153 ') =  'Y' AND 
7154 p_source_53 <  0 AND 
7155 NVL(p_source_54,'
7156 ') =  'Y'
7157  THEN 
7158 --
7159   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7160 
7161       trace
7162          (p_msg      => 'END of AcctDerRule_51'
7163          ,p_level    => C_LEVEL_PROCEDURE
7164          ,p_module   => l_log_module);
7165 
7166   END IF;
7167   x_value_combination_id  :=  null ;
7168   x_value_segment_code    :=  null ;
7169   x_value_type_code       := 'C';
7170   l_output_value          := '497101';
7171   RETURN l_output_value;
7172 
7173  ELSIF NVL(p_source_28,'
7174 ') =  'ITEM' AND 
7175 (NVL(p_source_55,'
7176 ') =  'Y' OR 
7177 NVL(p_source_55,'
7178 ') =  'P')
7179  THEN 
7180 --
7181   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7182 
7183       trace
7184          (p_msg      => 'END of AcctDerRule_51'
7185          ,p_level    => C_LEVEL_PROCEDURE
7186          ,p_module   => l_log_module);
7187 
7188   END IF;
7189   x_value_combination_id  :=  null ;
7190   x_value_segment_code    :=  null ;
7191   x_value_type_code       := 'C';
7192   l_output_value          := '490201';
7193   RETURN l_output_value;
7194 
7195 END IF;
7196 
7197 --
7198   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7199 
7200       trace
7201          (p_msg      => 'END of AcctDerRule_51'
7202          ,p_level    => C_LEVEL_PROCEDURE
7203          ,p_module   => l_log_module);
7204 
7205   END IF;
7206   x_value_combination_id  :=  null ;
7207   x_value_segment_code    :=  null ;
7208   x_value_type_code       := 'C';
7209   l_output_value          := '490101';
7210   RETURN l_output_value;
7211 
7212 
7213 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7214 
7215       trace
7216          (p_msg      => 'END of AcctDerRule_51(invalid)'
7217          ,p_level    => C_LEVEL_PROCEDURE
7218          ,p_module   => l_log_module);
7219 
7220 END IF;
7221 
7222 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
7223 x_value_combination_id  := null;
7224 x_value_segment_code    := null;
7225 x_value_type_code       := null;
7226 l_output_value          := null;
7227 xla_accounting_err_pkg.build_message
7228                  (p_appli_s_name            => 'XLA'
7229                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
7230                  ,p_token_1                 => 'COMPONENT_NAME'
7231                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
7232                                                             l_component_type
7233                                                           , l_component_code
7234                                                           , l_component_type_code
7235                                                           , l_component_appl_id
7236                                                           , l_amb_context_code
7237                                                           )
7238                  ,p_token_2                 => 'OWNER'
7239                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
7240                                                         'XLA_OWNER_TYPE'
7241                                                         ,l_component_type_code
7242                                                         )
7243                  ,p_token_3                 => 'PAD_NAME'
7244                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
7245                  ,p_token_4                 => 'PAD_OWNER'
7246                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
7247                                                         'XLA_OWNER_TYPE'
7248                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
7249                                                         )
7250                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7251                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
7252                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
7253                  ,p_ae_header_id            => NULL
7254 );
7255 RETURN l_output_value;
7256 EXCEPTION
7257   WHEN xla_exceptions_pkg.application_exception THEN
7258       RAISE;
7259   WHEN OTHERS THEN
7260        xla_exceptions_pkg.raise_message
7261            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_51');
7262 END AcctDerRule_51;
7263 --
7264 
7265 ---------------------------------------
7269 --
7266 --
7267 -- PRIVATE FUNCTION
7268 --         AcctDerRule_52
7270 ---------------------------------------
7271 FUNCTION AcctDerRule_52 (
7272   p_application_id             IN NUMBER
7273 , p_ae_header_id               IN NUMBER
7274 , p_side                       IN VARCHAR2
7275 , p_override_seg_flag          IN VARCHAR2 
7276 --Invoice Type Paid
7277  , p_source_56            IN VARCHAR2
7278  , p_source_56_meaning    IN VARCHAR2
7279 , x_transaction_coa_id         OUT NOCOPY NUMBER
7280 , x_accounting_coa_id          OUT NOCOPY NUMBER
7281 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
7282 , x_flex_value_set_id          OUT NOCOPY NUMBER
7283 , x_value_type_code            OUT NOCOPY VARCHAR2
7284 , x_value_combination_id       OUT NOCOPY NUMBER
7285 , x_value_segment_code         OUT NOCOPY VARCHAR2
7286 )
7287 RETURN VARCHAR2
7288 IS
7289 l_component_type       VARCHAR2(80)  ;
7290 l_component_code       VARCHAR2(30)  ;
7291 l_component_type_code  VARCHAR2(1)   ;
7292 l_component_appl_id    INTEGER       ;
7293 l_amb_context_code     VARCHAR2(30)  ;
7294 l_log_module           VARCHAR2(240) ;
7295 l_output_value         VARCHAR2(30)  ;
7296 BEGIN
7297 IF g_log_enabled THEN
7298       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_52';
7299 END IF;
7300 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7301 
7302       trace
7303          (p_msg      => 'BEGIN of AcctDerRule_52'
7304          ,p_level    => C_LEVEL_PROCEDURE
7305          ,p_module   => l_log_module);
7306 
7307 END IF;
7308 
7309 l_component_type         := 'AMB_ADR';
7310 l_component_code         := 'FV_4X0101_TREASURY_PAY_ACCT';
7311 l_component_type_code    := 'S';
7312 l_component_appl_id      :=  200;
7313 l_amb_context_code       := 'DEFAULT';
7314 x_transaction_coa_id     :=  null;
7315 x_accounting_coa_id      :=  null;
7316 x_flexfield_segment_code :=  null;
7317 x_flex_value_set_id      := 1009988 ;
7318 
7319 
7320  IF NVL(p_source_56,'
7321 ') <>  'PREPAYMENT'
7322  THEN 
7323 --
7324   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7325 
7326       trace
7327          (p_msg      => 'END of AcctDerRule_52'
7328          ,p_level    => C_LEVEL_PROCEDURE
7329          ,p_module   => l_log_module);
7330 
7331   END IF;
7332   x_value_combination_id  :=  null ;
7333   x_value_segment_code    :=  null ;
7334   x_value_type_code       := 'C';
7335   l_output_value          := '490101';
7336   RETURN l_output_value;
7337 
7338  ELSIF NVL(p_source_56,'
7339 ') =  'PREPAYMENT'
7340  THEN 
7341 --
7342   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7343 
7344       trace
7345          (p_msg      => 'END of AcctDerRule_52'
7346          ,p_level    => C_LEVEL_PROCEDURE
7347          ,p_module   => l_log_module);
7348 
7349   END IF;
7350   x_value_combination_id  :=  null ;
7351   x_value_segment_code    :=  null ;
7352   x_value_type_code       := 'C';
7353   l_output_value          := '480101';
7354   RETURN l_output_value;
7355 
7356  ELSE 
7357     IF p_override_seg_flag = 'Y' THEN 
7358        RETURN '#$NO_OVERRIDE#$';
7359     END IF;
7360  END IF;
7361 
7362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7363 
7364       trace
7365          (p_msg      => 'END of AcctDerRule_52(invalid)'
7366          ,p_level    => C_LEVEL_PROCEDURE
7367          ,p_module   => l_log_module);
7368 
7369 END IF;
7370 
7371 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
7372 x_value_combination_id  := null;
7373 x_value_segment_code    := null;
7374 x_value_type_code       := null;
7375 l_output_value          := null;
7376 xla_accounting_err_pkg.build_message
7377                  (p_appli_s_name            => 'XLA'
7378                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
7379                  ,p_token_1                 => 'COMPONENT_NAME'
7380                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
7381                                                             l_component_type
7382                                                           , l_component_code
7383                                                           , l_component_type_code
7384                                                           , l_component_appl_id
7385                                                           , l_amb_context_code
7386                                                           )
7387                  ,p_token_2                 => 'OWNER'
7388                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
7389                                                         'XLA_OWNER_TYPE'
7390                                                         ,l_component_type_code
7391                                                         )
7392                  ,p_token_3                 => 'PAD_NAME'
7393                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
7394                  ,p_token_4                 => 'PAD_OWNER'
7395                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
7396                                                         'XLA_OWNER_TYPE'
7397                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
7398                                                         )
7399                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7403 );
7400                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
7401                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
7402                  ,p_ae_header_id            => NULL
7404 RETURN l_output_value;
7405 EXCEPTION
7406   WHEN xla_exceptions_pkg.application_exception THEN
7407       RAISE;
7408   WHEN OTHERS THEN
7409        xla_exceptions_pkg.raise_message
7410            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_52');
7411 END AcctDerRule_52;
7412 --
7413 
7414 ---------------------------------------
7415 --
7416 -- PRIVATE FUNCTION
7417 --         AcctDerRule_53
7418 --
7419 ---------------------------------------
7420 FUNCTION AcctDerRule_53 (
7421   p_application_id             IN NUMBER
7422 , p_ae_header_id               IN NUMBER
7423 , p_side                       IN VARCHAR2
7424 , p_override_seg_flag          IN VARCHAR2 
7425 --Invoice Type Paid
7426  , p_source_56            IN VARCHAR2
7427  , p_source_56_meaning    IN VARCHAR2
7428 , x_transaction_coa_id         OUT NOCOPY NUMBER
7429 , x_accounting_coa_id          OUT NOCOPY NUMBER
7430 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
7431 , x_flex_value_set_id          OUT NOCOPY NUMBER
7432 , x_value_type_code            OUT NOCOPY VARCHAR2
7433 , x_value_combination_id       OUT NOCOPY NUMBER
7434 , x_value_segment_code         OUT NOCOPY VARCHAR2
7435 )
7436 RETURN VARCHAR2
7437 IS
7438 l_component_type       VARCHAR2(80)  ;
7439 l_component_code       VARCHAR2(30)  ;
7440 l_component_type_code  VARCHAR2(1)   ;
7441 l_component_appl_id    INTEGER       ;
7442 l_amb_context_code     VARCHAR2(30)  ;
7443 l_log_module           VARCHAR2(240) ;
7444 l_output_value         VARCHAR2(30)  ;
7445 BEGIN
7446 IF g_log_enabled THEN
7447       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_53';
7448 END IF;
7449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7450 
7451       trace
7452          (p_msg      => 'BEGIN of AcctDerRule_53'
7453          ,p_level    => C_LEVEL_PROCEDURE
7454          ,p_module   => l_log_module);
7455 
7456 END IF;
7457 
7458 l_component_type         := 'AMB_ADR';
7459 l_component_code         := 'FV_4X0201_TREASURY_PAY_ACCT';
7460 l_component_type_code    := 'S';
7461 l_component_appl_id      :=  200;
7462 l_amb_context_code       := 'DEFAULT';
7463 x_transaction_coa_id     :=  null;
7464 x_accounting_coa_id      :=  null;
7465 x_flexfield_segment_code :=  null;
7466 x_flex_value_set_id      := 1009988 ;
7467 
7468 
7469  IF NVL(p_source_56,'
7470 ') <>  'PREPAYMENT'
7471  THEN 
7472 --
7473   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7474 
7475       trace
7476          (p_msg      => 'END of AcctDerRule_53'
7477          ,p_level    => C_LEVEL_PROCEDURE
7478          ,p_module   => l_log_module);
7479 
7480   END IF;
7481   x_value_combination_id  :=  null ;
7482   x_value_segment_code    :=  null ;
7483   x_value_type_code       := 'C';
7484   l_output_value          := '490201';
7485   RETURN l_output_value;
7486 
7487  ELSIF NVL(p_source_56,'
7488 ') =  'PREPAYMENT'
7489  THEN 
7490 --
7491   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7492 
7493       trace
7494          (p_msg      => 'END of AcctDerRule_53'
7495          ,p_level    => C_LEVEL_PROCEDURE
7496          ,p_module   => l_log_module);
7497 
7498   END IF;
7499   x_value_combination_id  :=  null ;
7500   x_value_segment_code    :=  null ;
7501   x_value_type_code       := 'C';
7502   l_output_value          := '480201';
7503   RETURN l_output_value;
7504 
7505  ELSE 
7506     IF p_override_seg_flag = 'Y' THEN 
7507        RETURN '#$NO_OVERRIDE#$';
7508     END IF;
7509  END IF;
7510 
7511 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7512 
7513       trace
7514          (p_msg      => 'END of AcctDerRule_53(invalid)'
7515          ,p_level    => C_LEVEL_PROCEDURE
7516          ,p_module   => l_log_module);
7517 
7518 END IF;
7519 
7520 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
7521 x_value_combination_id  := null;
7522 x_value_segment_code    := null;
7523 x_value_type_code       := null;
7524 l_output_value          := null;
7525 xla_accounting_err_pkg.build_message
7526                  (p_appli_s_name            => 'XLA'
7527                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
7528                  ,p_token_1                 => 'COMPONENT_NAME'
7529                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
7530                                                             l_component_type
7531                                                           , l_component_code
7532                                                           , l_component_type_code
7533                                                           , l_component_appl_id
7534                                                           , l_amb_context_code
7535                                                           )
7536                  ,p_token_2                 => 'OWNER'
7537                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
7538                                                         'XLA_OWNER_TYPE'
7539                                                         ,l_component_type_code
7540                                                         )
7544                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
7541                  ,p_token_3                 => 'PAD_NAME'
7542                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
7543                  ,p_token_4                 => 'PAD_OWNER'
7545                                                         'XLA_OWNER_TYPE'
7546                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
7547                                                         )
7548                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7549                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
7550                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
7551                  ,p_ae_header_id            => NULL
7552 );
7553 RETURN l_output_value;
7554 EXCEPTION
7555   WHEN xla_exceptions_pkg.application_exception THEN
7556       RAISE;
7557   WHEN OTHERS THEN
7558        xla_exceptions_pkg.raise_message
7559            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_53');
7560 END AcctDerRule_53;
7561 --
7562 
7563 ---------------------------------------
7564 --
7565 -- PRIVATE FUNCTION
7566 --         AcctDerRule_54
7567 --
7568 ---------------------------------------
7569 FUNCTION AcctDerRule_54 (
7570   p_application_id             IN NUMBER
7571 , p_ae_header_id               IN NUMBER
7572 , p_side                       IN VARCHAR2
7573 , p_override_seg_flag          IN VARCHAR2  
7574 , x_transaction_coa_id         OUT NOCOPY NUMBER
7575 , x_accounting_coa_id          OUT NOCOPY NUMBER
7576 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
7577 , x_flex_value_set_id          OUT NOCOPY NUMBER
7578 , x_value_type_code            OUT NOCOPY VARCHAR2
7579 , x_value_combination_id       OUT NOCOPY NUMBER
7580 , x_value_segment_code         OUT NOCOPY VARCHAR2
7581 )
7582 RETURN VARCHAR2
7583 IS
7584 l_component_type       VARCHAR2(80)  ;
7585 l_component_code       VARCHAR2(30)  ;
7586 l_component_type_code  VARCHAR2(1)   ;
7587 l_component_appl_id    INTEGER       ;
7588 l_amb_context_code     VARCHAR2(30)  ;
7589 l_log_module           VARCHAR2(240) ;
7590 l_output_value         VARCHAR2(30)  ;
7591 BEGIN
7592 IF g_log_enabled THEN
7593       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_54';
7594 END IF;
7595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7596 
7597       trace
7598          (p_msg      => 'BEGIN of AcctDerRule_54'
7599          ,p_level    => C_LEVEL_PROCEDURE
7600          ,p_module   => l_log_module);
7601 
7602 END IF;
7603 
7604 l_component_type         := 'AMB_ADR';
7605 l_component_code         := 'FV_570001_UNEXP_APPR_ACCT';
7606 l_component_type_code    := 'S';
7607 l_component_appl_id      :=  200;
7608 l_amb_context_code       := 'DEFAULT';
7609 x_transaction_coa_id     :=  null;
7610 x_accounting_coa_id      :=  null;
7611 x_flexfield_segment_code :=  null;
7612 x_flex_value_set_id      := 1009988 ;
7613 
7614 
7615 --
7616   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7617 
7618       trace
7619          (p_msg      => 'END of AcctDerRule_54'
7620          ,p_level    => C_LEVEL_PROCEDURE
7621          ,p_module   => l_log_module);
7622 
7623   END IF;
7624   x_value_combination_id  :=  null ;
7625   x_value_segment_code    :=  null ;
7626   x_value_type_code       := 'C';
7627   l_output_value          := '570001';
7628   RETURN l_output_value;
7629 
7630 
7631 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7632 
7633       trace
7634          (p_msg      => 'END of AcctDerRule_54(invalid)'
7635          ,p_level    => C_LEVEL_PROCEDURE
7636          ,p_module   => l_log_module);
7637 
7638 END IF;
7639 
7640 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
7641 x_value_combination_id  := null;
7642 x_value_segment_code    := null;
7643 x_value_type_code       := null;
7644 l_output_value          := null;
7645 xla_accounting_err_pkg.build_message
7646                  (p_appli_s_name            => 'XLA'
7647                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
7648                  ,p_token_1                 => 'COMPONENT_NAME'
7649                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
7650                                                             l_component_type
7651                                                           , l_component_code
7652                                                           , l_component_type_code
7653                                                           , l_component_appl_id
7654                                                           , l_amb_context_code
7655                                                           )
7656                  ,p_token_2                 => 'OWNER'
7657                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
7658                                                         'XLA_OWNER_TYPE'
7659                                                         ,l_component_type_code
7660                                                         )
7661                  ,p_token_3                 => 'PAD_NAME'
7662                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
7663                  ,p_token_4                 => 'PAD_OWNER'
7664                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
7668                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7665                                                         'XLA_OWNER_TYPE'
7666                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
7667                                                         )
7669                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
7670                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
7671                  ,p_ae_header_id            => NULL
7672 );
7673 RETURN l_output_value;
7674 EXCEPTION
7675   WHEN xla_exceptions_pkg.application_exception THEN
7676       RAISE;
7677   WHEN OTHERS THEN
7678        xla_exceptions_pkg.raise_message
7679            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_54');
7680 END AcctDerRule_54;
7681 --
7682 
7683 ---------------------------------------
7684 --
7685 -- PRIVATE FUNCTION
7686 --         AcctDerRule_55
7687 --
7688 ---------------------------------------
7689 FUNCTION AcctDerRule_55 (
7690   p_application_id              IN NUMBER
7691 , p_ae_header_id                IN NUMBER
7692 , p_side                        IN VARCHAR2 
7693 --Bank Cash Account
7694  , p_source_12            IN NUMBER
7695 --Bank Cash Clearing Account
7696  , p_source_30            IN NUMBER
7697 --When to Account for Payment Option
7698  , p_source_57            IN VARCHAR2
7699 , x_transaction_coa_id         OUT NOCOPY NUMBER
7700 , x_accounting_coa_id          OUT NOCOPY NUMBER
7701 , x_value_type_code            OUT NOCOPY VARCHAR2
7702 )
7703 RETURN NUMBER
7704 IS
7705 l_component_type       VARCHAR2(80)  ;
7706 l_component_code       VARCHAR2(30)  ;
7707 l_component_type_code  VARCHAR2(1)   ;
7708 l_component_appl_id    INTEGER       ;
7709 l_amb_context_code     VARCHAR2(30)  ;
7710 l_log_module           VARCHAR2(240) ;
7711 l_output_value         NUMBER        ;
7712 BEGIN
7713 IF g_log_enabled THEN
7714       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_55';
7715 END IF;
7716 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7717       trace
7718          (p_msg      => 'BEGIN of AcctDerRule_55'
7719          ,p_level    => C_LEVEL_PROCEDURE
7720          ,p_module   => l_log_module);
7721 END IF;
7722 --
7723 l_component_type         := 'AMB_ADR';
7724 l_component_code         := 'FV_INV_PMT_ACCOUNT';
7725 l_component_type_code    := 'S';
7726 l_component_appl_id      :=  200;
7727 l_amb_context_code       := 'DEFAULT';
7728 x_transaction_coa_id     :=  null;
7729 x_accounting_coa_id      :=  null;
7730 --
7731 
7732  IF NVL(p_source_57,'
7733 ') =  'ISSUE_ISSUE'
7734  THEN 
7735  --
7736   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7737       trace
7738          (p_msg      => 'END of AcctDerRule_55'
7739          ,p_level    => C_LEVEL_PROCEDURE
7740          ,p_module   => l_log_module);
7741   END IF;
7742   x_value_type_code := 'S';
7743   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_12));
7744   RETURN l_output_value;
7745 
7746  ELSIF NVL(p_source_57,'
7747 ') <>  'ISSUE_ISSUE'
7748  THEN 
7749  --
7750   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7751       trace
7752          (p_msg      => 'END of AcctDerRule_55'
7753          ,p_level    => C_LEVEL_PROCEDURE
7754          ,p_module   => l_log_module);
7755   END IF;
7756   x_value_type_code := 'S';
7757   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
7758   RETURN l_output_value;
7759 
7760  END IF;
7761 --
7762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7763       trace
7764          (p_msg      => 'END of AcctDerRule_55(invalid)'
7765          ,p_level    => C_LEVEL_PROCEDURE
7766          ,p_module   => l_log_module);
7767 END IF;
7768 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
7769 x_value_type_code := null;
7770 l_output_value    := null;
7771 xla_accounting_err_pkg.build_message
7772                  (p_appli_s_name            => 'XLA'
7773                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
7774                  ,p_token_1                 => 'COMPONENT_NAME'
7775                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
7776                                                             l_component_type
7777                                                           , l_component_code
7778                                                           , l_component_type_code
7779                                                           , l_component_appl_id
7780                                                           , l_amb_context_code
7781                                                           )
7782                  ,p_token_2                 => 'OWNER'
7783                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
7784                                                         'XLA_OWNER_TYPE'
7785                                                         ,l_component_type_code
7786                                                         )
7787                  ,p_token_3                 => 'PAD_NAME'
7788                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
7789                  ,p_token_4                 => 'PAD_OWNER'
7790                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
7791                                                         'XLA_OWNER_TYPE'
7795                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
7792                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
7793                                                         )
7794                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
7796                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
7797                  ,p_ae_header_id            => NULL
7798 );
7799 RETURN l_output_value;
7800 EXCEPTION
7801   WHEN xla_exceptions_pkg.application_exception THEN
7802       RAISE;
7803   WHEN OTHERS THEN
7804        xla_exceptions_pkg.raise_message
7805            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctDerRule_55');
7806 END AcctDerRule_55;
7807 --
7808 
7809 ---------------------------------------
7810 --
7811 -- PRIVATE FUNCTION
7812 --         AcctLineType_56
7813 --
7814 ---------------------------------------
7815 PROCEDURE AcctLineType_56 (
7816   p_application_id        IN NUMBER
7817  ,p_event_id              IN NUMBER
7818  ,p_calculate_acctd_flag  IN VARCHAR2
7819  ,p_calculate_g_l_flag    IN VARCHAR2
7820  ,p_actual_flag           IN OUT VARCHAR2
7821  ,p_balance_type_code     OUT VARCHAR2
7822  ,p_gain_or_loss_ref      OUT VARCHAR2
7823  
7824 --Invoice Distribution Description
7825  , p_source_1            IN VARCHAR2
7826 --Invoice Distribution Ledger Amount
7827  , p_source_16            IN NUMBER
7828 --Invoice Distribution Account
7829  , p_source_25            IN NUMBER
7830 --Invoice Distribution Type
7831  , p_source_28            IN VARCHAR2
7832  , p_source_28_meaning    IN VARCHAR2
7833 --Accounting Reversal Indicator
7834  , p_source_58            IN VARCHAR2
7835 --Distribution Link Type
7836  , p_source_60            IN VARCHAR2
7837 --Allocation to Main Distribution Identifier
7838  , p_source_62            IN NUMBER
7839 --Invoice Identifier
7840  , p_source_63            IN NUMBER
7841 --Business Flow Purchasing Application Identifier
7842  , p_source_64            IN NUMBER
7843 --Business Flow Purchase Order Distribution Type
7844  , p_source_65            IN VARCHAR2
7845 --Business Flow Purchase Order Entity Code
7846  , p_source_66            IN VARCHAR2
7847 --Business Flow Purchase Order Distribution Identifier
7848  , p_source_67            IN NUMBER
7849 --Business Flow Purchasing Document Identifier
7850  , p_source_68            IN NUMBER
7851 --Invoice Distribution Identifier
7852  , p_source_69            IN NUMBER
7853 --Payables Encumbrance Upgrade Credit Account
7854  , p_source_70            IN NUMBER
7855 --Payables Encumbrance Upgrade Credit Amount
7856  , p_source_71            IN NUMBER
7857 --Invoice Currency Code
7858  , p_source_72            IN VARCHAR2
7859 --Payables Encumbrance Upgrade Credit Base Amount
7860  , p_source_73            IN NUMBER
7861 --Payables Encumbrance Upgrade Debit Account
7862  , p_source_74            IN NUMBER
7863 --Payables Encumbrance Upgrade Debit Amount
7864  , p_source_75            IN NUMBER
7865 --Payables Encumbrance Upgrade Debit Base Amount
7866  , p_source_76            IN NUMBER
7867 --Payables Encumbrance Upgrade Option
7868  , p_source_77            IN VARCHAR2
7869 --Invoice Distribution Amount
7870  , p_source_78            IN NUMBER
7871 --Purchase Order Exchange Rate Date
7872  , p_source_79            IN DATE
7873 --Purchase Order Exchange Rate
7874  , p_source_80            IN NUMBER
7875 --Purchase Order Exchange Rate Type
7876  , p_source_81            IN VARCHAR2
7877 --Deferred Accounting End Date
7878  , p_source_82            IN DATE
7879 --Deferred Accounting Option
7880  , p_source_83            IN VARCHAR2
7881 --Deferred Accounting Start Date
7882  , p_source_84            IN DATE
7883 --Override Accounted Amount Indicator
7884  , p_source_85            IN VARCHAR2
7885  , p_source_85_meaning    IN VARCHAR2
7886 --Invoice Supplier Identifier
7887  , p_source_86            IN NUMBER
7888 --Invoice Supplier Site Identifier
7889  , p_source_87            IN NUMBER
7890 --Third Party Type
7891  , p_source_88            IN VARCHAR2
7892 --Parent Reversal Identifier
7893  , p_source_89            IN NUMBER
7894 --Invoice Distribution Statistical Amount
7895  , p_source_90            IN NUMBER
7896 --Invoice Distribution Tax Line Identifier
7897  , p_source_91            IN NUMBER
7898 --Invoice Distribution Tax Distribution Identifier from Tax
7899  , p_source_92            IN NUMBER
7900 --Invoice Distribution Summary Tax Line Identifier
7901  , p_source_93            IN NUMBER
7902 --Payables Upgrade Credit Encumbrance Type Identifier
7903  , p_source_94            IN NUMBER
7904 --Payables Upgrade Debit Encumbrance Type Identifier
7905  , p_source_95            IN NUMBER
7906 )
7907 IS
7908 
7909 l_component_type              VARCHAR2(80);
7910 l_component_code              VARCHAR2(30);
7911 l_component_type_code         VARCHAR2(1);
7912 l_component_appl_id           INTEGER;
7913 l_amb_context_code            VARCHAR2(30);
7914 l_entity_code                 VARCHAR2(30);
7915 l_event_class_code            VARCHAR2(30);
7916 l_ae_header_id                NUMBER;
7917 l_event_type_code             VARCHAR2(30);
7918 l_line_definition_code        VARCHAR2(30);
7919 l_line_definition_owner_code  VARCHAR2(1);
7920 --
7921 -- adr variables
7922 l_segment                     VARCHAR2(30);
7926 l_adr_flexfield_segment_code  VARCHAR2(30);
7923 l_ccid                        NUMBER;
7924 l_adr_transaction_coa_id      NUMBER;
7925 l_adr_accounting_coa_id       NUMBER;
7927 l_adr_flex_value_set_id       NUMBER;
7928 l_adr_value_type_code         VARCHAR2(30);
7929 l_adr_value_combination_id    NUMBER;
7930 l_adr_value_segment_code      VARCHAR2(30);
7931 
7932 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7933 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7934 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7935 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7936 
7937 -- 4262811 Variables ------------------------------------------------------------------------------------------
7938 l_entered_amt_idx             NUMBER;
7939 l_accted_amt_idx              NUMBER;
7940 l_acc_rev_flag                VARCHAR2(1);
7941 l_accrual_line_num            NUMBER;
7942 l_tmp_amt                     NUMBER;
7943 l_acc_rev_natural_side_code   VARCHAR2(1);
7944 
7945 l_num_entries                 NUMBER;
7946 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7947 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7948 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7949 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7950 l_recog_line_1                NUMBER;
7951 l_recog_line_2                NUMBER;
7952 
7953 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7954 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7955 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7956 
7957 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7958 
7959 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7960 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7961 
7962 ---------------------------------------------------------------------------------------------------------------
7963 
7964 
7965 --
7966 -- bulk performance
7967 --
7968 l_balance_type_code           VARCHAR2(1);
7969 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7970 l_log_module                  VARCHAR2(240);
7971 
7972 --
7973 -- Upgrade strategy
7974 --
7975 l_actual_upg_option           VARCHAR2(1);
7976 l_enc_upg_option           VARCHAR2(1);
7977 
7978 --
7979 BEGIN
7980 --
7981 IF g_log_enabled THEN
7982       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
7983 END IF;
7984 --
7985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7986 
7987       trace
7988          (p_msg      => 'BEGIN of AcctLineType_56'
7989          ,p_level    => C_LEVEL_PROCEDURE
7990          ,p_module   => l_log_module);
7991 
7992 END IF;
7993 --
7994 l_component_type             := 'AMB_JLT';
7995 l_component_code             := 'AP_ACCRUAL_CM';
7996 l_component_type_code        := 'S';
7997 l_component_appl_id          :=  200;
7998 l_amb_context_code           := 'DEFAULT';
7999 l_entity_code                := 'AP_INVOICES';
8000 l_event_class_code           := 'CREDIT MEMOS';
8001 l_event_type_code            := 'CREDIT MEMOS_ALL';
8002 l_line_definition_owner_code := 'S';
8003 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
8004 --
8005 l_balance_type_code          := 'A';
8006 l_segment                     := NULL;
8007 l_ccid                        := NULL;
8008 l_adr_transaction_coa_id      := NULL;
8009 l_adr_accounting_coa_id       := NULL;
8010 l_adr_flexfield_segment_code  := NULL;
8011 l_adr_flex_value_set_id       := NULL;
8012 l_adr_value_type_code         := NULL;
8013 l_adr_value_combination_id    := NULL;
8014 l_adr_value_segment_code      := NULL;
8015 
8016 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8017 l_bflow_class_code           := '';    -- 4219869 Business Flow
8018 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8019 l_budgetary_control_flag     := 'N';
8020 
8021 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8022 l_bflow_applied_to_amt       := NULL; -- 5132302
8023 l_entered_amt_idx            := NULL;          -- 4262811
8024 l_accted_amt_idx             := NULL;          -- 4262811
8025 l_acc_rev_flag               := NULL;          -- 4262811
8026 l_accrual_line_num           := NULL;          -- 4262811
8027 l_tmp_amt                    := NULL;          -- 4262811
8028 --
8029  
8030 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8031     l_balance_type_code <> 'B' THEN
8032 IF NVL(p_source_28,'
8033 ') =  'RETROACCRUAL' OR 
8034 NVL(p_source_28,'
8035 ') =  'ACCRUAL'
8036  THEN 
8037 
8038    --
8039    XLA_AE_LINES_PKG.SetNewLine;
8040 
8041    p_balance_type_code          := l_balance_type_code;
8042    -- set the flag so later we will know whether the gain loss line needs to be created
8043    
8044    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8045      p_actual_flag :='A';
8046    END IF;
8047 
8048    --
8049    -- bulk performance
8050    --
8051    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8052                                       p_header_num   => 0); -- 4262811
8053    --
8054    -- set accounting line options
8055    --
8059          , p_gl_transfer_mode_code      => 'S'
8056    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8057            p_natural_side_code          => 'D'
8058          , p_gain_or_loss_flag          => 'N'
8060          , p_acct_entry_type_code       => 'A'
8061          , p_switch_side_flag           => 'Y'
8062          , p_merge_duplicate_code       => 'A'
8063          );
8064    --
8065    l_acc_rev_natural_side_code := 'C';  -- 4262811
8066    -- 
8067    --
8068    -- set accounting line type info
8069    --
8070    xla_ae_lines_pkg.SetAcctLineType
8071       (p_component_type             => l_component_type
8072       ,p_event_type_code            => l_event_type_code
8073       ,p_line_definition_owner_code => l_line_definition_owner_code
8074       ,p_line_definition_code       => l_line_definition_code
8075       ,p_accounting_line_code       => l_component_code
8076       ,p_accounting_line_type_code  => l_component_type_code
8077       ,p_accounting_line_appl_id    => l_component_appl_id
8078       ,p_amb_context_code           => l_amb_context_code
8079       ,p_entity_code                => l_entity_code
8080       ,p_event_class_code           => l_event_class_code);
8081    --
8082    -- set accounting class
8083    --
8084    xla_ae_lines_pkg.SetAcctClass(
8085            p_accounting_class_code  => 'ACCRUAL'
8086          , p_ae_header_id           => l_ae_header_id
8087          );
8088 
8089    --
8090    -- set rounding class
8091    --
8092    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8093                       'ACCRUAL';
8094 
8095    --
8096    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8097    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8098    --
8099    -- bulk performance
8100    --
8101    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8102 
8103    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8104       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8105 
8106    -- 4955764
8107    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8108       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8109 
8110    -- 4458381 Public Sector Enh
8111    
8112    --
8113    -- set accounting attributes for the line type
8114    --
8115    l_entered_amt_idx := 23;
8116    l_accted_amt_idx  := 28;
8117    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8118    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8119    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
8120    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8121    l_rec_acct_attrs.array_num_value(2)  := 
8122 xla_ae_sources_pkg.GetSystemSourceNum(
8123    p_source_code           => 'XLA_EVENT_APPL_ID'
8124  , p_source_type_code      => 'Y'
8125  , p_source_application_id =>  602
8126 );
8127    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8128    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
8129    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8130    l_rec_acct_attrs.array_char_value(4)  := 
8131 xla_ae_sources_pkg.GetSystemSourceChar(
8132    p_source_code           => 'XLA_ENTITY_CODE'
8133  , p_source_type_code      => 'Y'
8134  , p_source_application_id =>  602
8135 );
8136    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8137    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
8138    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8139    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
8140    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8141    l_rec_acct_attrs.array_num_value(7)  := p_source_64;
8142    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8143    l_rec_acct_attrs.array_char_value(8)  := p_source_65;
8144    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8145    l_rec_acct_attrs.array_char_value(9)  := p_source_66;
8146    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8147    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_67);
8148    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8149    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_68);
8150    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8151    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
8152    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8153    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
8154    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8155    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
8156    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8157    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
8158    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8159    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
8160    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8161    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
8162    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8163    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
8164    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8168    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8165    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
8166    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8167    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
8169    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
8170    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8171    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
8172    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8173    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
8174    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8175    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
8176    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
8177    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
8178    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
8179    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
8180    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
8181    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
8182    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
8183    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
8184    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
8185    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
8186    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
8187    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
8188    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
8189    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
8190    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
8191    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
8192    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
8193    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
8194    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
8195    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
8196    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
8197    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
8198    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
8199    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
8200    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
8201    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
8202    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
8203    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
8204    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
8205    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
8206    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
8207    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
8208    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
8209    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
8210    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
8211    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
8212    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
8213    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
8214 
8215    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8216    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8217 
8218    ---------------------------------------------------------------------------------------------------------------
8219    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8220    ---------------------------------------------------------------------------------------------------------------
8221    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8222 
8223    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8224    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8225 
8226    IF xla_accounting_cache_pkg.GetValueChar
8227          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8228          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8229    AND l_bflow_method_code = 'PRIOR_ENTRY'
8230 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8231    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8232          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8233        )
8234    THEN
8235          xla_ae_lines_pkg.BflowUpgEntry
8236            (p_business_method_code    => l_bflow_method_code
8237            ,p_business_class_code     => l_bflow_class_code
8238            ,p_balance_type            => l_balance_type_code);
8239    ELSE
8240       NULL;
8241 -- No business flow processing for business flow method of NONE.
8242    END IF;
8243 
8244    --
8245    -- call analytical criteria
8246    --
8247    
8248    --
8249    -- call description
8250    --
8251    
8252 xla_ae_lines_pkg.SetLineDescription(
8253    p_ae_header_id => l_ae_header_id
8254   ,p_description  => Description_2 (
8255      p_application_id         => p_application_id
8256    , p_ae_header_id           => l_ae_header_id 
8257 , p_source_1 => p_source_1
8258    )
8259 );
8260 
8261 
8262    --
8263    -- call ADRs
8264    -- Bug 4922099
8265    --
8266    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8267         (NVL(l_actual_upg_option, 'N') = 'O') OR
8268         (NVL(l_enc_upg_option, 'N') = 'O')
8269       )
8270    THEN
8271    NULL;
8272    --
8276            p_application_id           => p_application_id
8273    --
8274    
8275   l_ccid := AcctDerRule_35(
8277          , p_ae_header_id             => l_ae_header_id 
8278 , p_source_25 => p_source_25
8279          , x_transaction_coa_id       => l_adr_transaction_coa_id
8280          , x_accounting_coa_id        => l_adr_accounting_coa_id
8281          , x_value_type_code          => l_adr_value_type_code
8282          , p_side                     => 'NA'
8283    );
8284 
8285    xla_ae_lines_pkg.set_ccid(
8286     p_code_combination_id          => l_ccid
8287   , p_value_type_code              => l_adr_value_type_code
8288   , p_transaction_coa_id           => l_adr_transaction_coa_id
8289   , p_accounting_coa_id            => l_adr_accounting_coa_id
8290   , p_adr_code                     => 'AP_INVOICE_DIST'
8291   , p_adr_type_code                => 'S'
8292   , p_component_type               => l_component_type
8293   , p_component_code               => l_component_code
8294   , p_component_type_code          => l_component_type_code
8295   , p_component_appl_id            => l_component_appl_id
8296   , p_amb_context_code             => l_amb_context_code
8297   , p_side                         => 'NA'
8298   );
8299 
8300 
8301    --
8302    --
8303    END IF;
8304    --
8305    -- Bug 4922099
8306    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8307           (NVL(l_enc_upg_option, 'N') = 'O')
8308         ) AND
8309         (l_bflow_method_code = 'PRIOR_ENTRY')
8310       )
8311    THEN
8312       IF
8313       --
8314       1 = 2
8315       --
8316       THEN
8317       xla_accounting_err_pkg.build_message
8318                                     (p_appli_s_name            => 'XLA'
8319                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8320                                     ,p_token_1                 => 'LINE_NUMBER'
8321                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8322                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8323                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8324                                                                              l_component_type
8325                                                                             ,l_component_code
8326                                                                             ,l_component_type_code
8327                                                                             ,l_component_appl_id
8328                                                                             ,l_amb_context_code
8329                                                                             ,l_entity_code
8330                                                                             ,l_event_class_code
8331                                                                            )
8332                                     ,p_token_3                 => 'OWNER'
8333                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8334                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8335                                                                           ,p_lookup_code    => l_component_type_code
8336                                                                          )
8337                                     ,p_token_4                 => 'PRODUCT_NAME'
8338                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8339                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8340                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8341                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8342                                     ,p_ae_header_id            =>  NULL
8343                                        );
8344 
8345         IF (C_LEVEL_ERROR>= g_log_level) THEN
8346                  trace
8347                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8348                       ,p_level    => C_LEVEL_ERROR
8349                       ,p_module   => l_log_module);
8350         END IF;
8351       END IF;
8352    END IF;
8353    --
8354    --
8355    ------------------------------------------------------------------------------------------------
8356    -- 4219869 Business Flow
8357    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8358    -- Prior Entry.  Currently, the following code is always generated.
8359    ------------------------------------------------------------------------------------------------
8360    XLA_AE_LINES_PKG.ValidateCurrentLine;
8361 
8362    ------------------------------------------------------------------------------------
8363    -- 4219869 Business Flow
8364    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8365    ------------------------------------------------------------------------------------
8366    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8367 
8368    ----------------------------------------------------------------------------------
8369    -- 4219869 Business Flow
8370    -- Update journal entry status -- Need to generate this within IF <condition>
8374          ,p_balance_type_code => l_balance_type_code
8371    ----------------------------------------------------------------------------------
8372    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8373          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8375          );
8376 
8377    -------------------------------------------------------------------------------------------
8378    -- 4262811 - Generate the Accrual Reversal lines
8379    -------------------------------------------------------------------------------------------
8380    BEGIN
8381       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8382                               (g_array_event(p_event_id).array_value_num('header_index'));
8383       IF l_acc_rev_flag IS NULL THEN
8384          l_acc_rev_flag := 'N';
8385       END IF;
8386    EXCEPTION
8387       WHEN OTHERS THEN
8388          l_acc_rev_flag := 'N';
8389    END;
8390    --
8391    IF (l_acc_rev_flag = 'Y') THEN
8392 
8393        -- 4645092  ------------------------------------------------------------------------------
8394        -- To allow MPA report to determine if it should generate report process
8395        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8396        ------------------------------------------------------------------------------------------
8397 
8398        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8399        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8400    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8401    -- call ADRs
8402    -- Bug 4922099
8403    --
8404    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8405         (NVL(l_actual_upg_option, 'N') = 'O') OR
8406         (NVL(l_enc_upg_option, 'N') = 'O')
8407       )
8408    THEN
8409    NULL;
8410    --
8411    --
8412    
8413   l_ccid := AcctDerRule_35(
8414            p_application_id           => p_application_id
8415          , p_ae_header_id             => l_ae_header_id 
8416 , p_source_25 => p_source_25
8417          , x_transaction_coa_id       => l_adr_transaction_coa_id
8418          , x_accounting_coa_id        => l_adr_accounting_coa_id
8419          , x_value_type_code          => l_adr_value_type_code
8420          , p_side                     => 'NA'
8421    );
8422 
8423    xla_ae_lines_pkg.set_ccid(
8424     p_code_combination_id          => l_ccid
8425   , p_value_type_code              => l_adr_value_type_code
8426   , p_transaction_coa_id           => l_adr_transaction_coa_id
8427   , p_accounting_coa_id            => l_adr_accounting_coa_id
8428   , p_adr_code                     => 'AP_INVOICE_DIST'
8429   , p_adr_type_code                => 'S'
8430   , p_component_type               => l_component_type
8431   , p_component_code               => l_component_code
8432   , p_component_type_code          => l_component_type_code
8433   , p_component_appl_id            => l_component_appl_id
8434   , p_amb_context_code             => l_amb_context_code
8435   , p_side                         => 'NA'
8436   );
8437 
8438 
8439    --
8440    --
8441    END IF;
8442 
8443        --
8444        -- Update the line information that should be overwritten
8445        --
8446        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8447                                          p_header_num   => 1);
8448        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8449 
8450        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8451 
8452        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8453           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8454        END IF;
8455 
8456       --
8457       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8458       --
8459       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8460           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8461       ELSE
8462           ---------------------------------------------------------------------------------------------------
8463           -- 4262811a Switch Sign
8464           ---------------------------------------------------------------------------------------------------
8465           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8466           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8467                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8468           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8469                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8470           -- 5132302
8471           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8472                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8473 
8474       END IF;
8475 
8476       -- 4955764
8477       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8478       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8479 
8480 
8481       XLA_AE_LINES_PKG.ValidateCurrentLine;
8485                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8482       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8483 
8484       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8486                ,p_balance_type_code => l_balance_type_code);
8487 
8488    END IF;
8489 
8490    -----------------------------------------------------------------------------------------
8491    -- 4262811 Multiperiod Accounting
8492    -----------------------------------------------------------------------------------------
8493      -- No MPA option is assigned.
8494 
8495 
8496 END IF;
8497 END IF;
8498 --
8499 
8500 --
8501 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8502    trace
8503       (p_msg      => 'END of AcctLineType_56'
8504       ,p_level    => C_LEVEL_PROCEDURE
8505       ,p_module   => l_log_module);
8506 END IF;
8507 --
8508 EXCEPTION
8509   WHEN xla_exceptions_pkg.application_exception THEN
8510       RAISE;
8511   WHEN OTHERS THEN
8512        xla_exceptions_pkg.raise_message
8513            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_56');
8514 END AcctLineType_56;
8515 --
8516 
8517 ---------------------------------------
8518 --
8519 -- PRIVATE FUNCTION
8520 --         AcctLineType_57
8521 --
8522 ---------------------------------------
8523 PROCEDURE AcctLineType_57 (
8524   p_application_id        IN NUMBER
8525  ,p_event_id              IN NUMBER
8526  ,p_calculate_acctd_flag  IN VARCHAR2
8527  ,p_calculate_g_l_flag    IN VARCHAR2
8528  ,p_actual_flag           IN OUT VARCHAR2
8529  ,p_balance_type_code     OUT VARCHAR2
8530  ,p_gain_or_loss_ref      OUT VARCHAR2
8531  
8532 --Invoice Distribution Description
8533  , p_source_1            IN VARCHAR2
8534 --Invoice Distribution Ledger Amount
8535  , p_source_16            IN NUMBER
8536 --Invoice Distribution Account
8537  , p_source_25            IN NUMBER
8538 --Invoice Distribution Type
8539  , p_source_28            IN VARCHAR2
8540  , p_source_28_meaning    IN VARCHAR2
8541 --Accounting Reversal Indicator
8542  , p_source_58            IN VARCHAR2
8543 --Distribution Link Type
8544  , p_source_60            IN VARCHAR2
8545 --Allocation to Main Distribution Identifier
8546  , p_source_62            IN NUMBER
8547 --Invoice Identifier
8548  , p_source_63            IN NUMBER
8549 --Business Flow Purchasing Application Identifier
8550  , p_source_64            IN NUMBER
8551 --Business Flow Purchase Order Distribution Type
8552  , p_source_65            IN VARCHAR2
8553 --Business Flow Purchase Order Entity Code
8554  , p_source_66            IN VARCHAR2
8555 --Business Flow Purchase Order Distribution Identifier
8556  , p_source_67            IN NUMBER
8557 --Business Flow Purchasing Document Identifier
8558  , p_source_68            IN NUMBER
8559 --Invoice Distribution Identifier
8560  , p_source_69            IN NUMBER
8561 --Payables Encumbrance Upgrade Credit Account
8562  , p_source_70            IN NUMBER
8563 --Payables Encumbrance Upgrade Credit Amount
8564  , p_source_71            IN NUMBER
8565 --Invoice Currency Code
8566  , p_source_72            IN VARCHAR2
8567 --Payables Encumbrance Upgrade Credit Base Amount
8568  , p_source_73            IN NUMBER
8569 --Payables Encumbrance Upgrade Debit Account
8570  , p_source_74            IN NUMBER
8571 --Payables Encumbrance Upgrade Debit Amount
8572  , p_source_75            IN NUMBER
8573 --Payables Encumbrance Upgrade Debit Base Amount
8574  , p_source_76            IN NUMBER
8575 --Payables Encumbrance Upgrade Option
8576  , p_source_77            IN VARCHAR2
8577 --Invoice Distribution Amount
8578  , p_source_78            IN NUMBER
8579 --Purchase Order Exchange Rate Date
8580  , p_source_79            IN DATE
8581 --Purchase Order Exchange Rate
8582  , p_source_80            IN NUMBER
8583 --Purchase Order Exchange Rate Type
8584  , p_source_81            IN VARCHAR2
8585 --Deferred Accounting End Date
8586  , p_source_82            IN DATE
8587 --Deferred Accounting Option
8588  , p_source_83            IN VARCHAR2
8589 --Deferred Accounting Start Date
8590  , p_source_84            IN DATE
8591 --Override Accounted Amount Indicator
8592  , p_source_85            IN VARCHAR2
8593  , p_source_85_meaning    IN VARCHAR2
8594 --Invoice Supplier Identifier
8595  , p_source_86            IN NUMBER
8596 --Invoice Supplier Site Identifier
8597  , p_source_87            IN NUMBER
8598 --Third Party Type
8599  , p_source_88            IN VARCHAR2
8600 --Parent Reversal Identifier
8601  , p_source_89            IN NUMBER
8602 --Invoice Distribution Tax Line Identifier
8603  , p_source_91            IN NUMBER
8604 --Invoice Distribution Tax Distribution Identifier from Tax
8605  , p_source_92            IN NUMBER
8606 --Invoice Distribution Summary Tax Line Identifier
8607  , p_source_93            IN NUMBER
8608 --Payables Upgrade Credit Encumbrance Type Identifier
8609  , p_source_94            IN NUMBER
8610 --Payables Upgrade Debit Encumbrance Type Identifier
8611  , p_source_95            IN NUMBER
8612 )
8613 IS
8614 
8615 l_component_type              VARCHAR2(80);
8616 l_component_code              VARCHAR2(30);
8617 l_component_type_code         VARCHAR2(1);
8618 l_component_appl_id           INTEGER;
8619 l_amb_context_code            VARCHAR2(30);
8620 l_entity_code                 VARCHAR2(30);
8621 l_event_class_code            VARCHAR2(30);
8625 l_line_definition_owner_code  VARCHAR2(1);
8622 l_ae_header_id                NUMBER;
8623 l_event_type_code             VARCHAR2(30);
8624 l_line_definition_code        VARCHAR2(30);
8626 --
8627 -- adr variables
8628 l_segment                     VARCHAR2(30);
8629 l_ccid                        NUMBER;
8630 l_adr_transaction_coa_id      NUMBER;
8631 l_adr_accounting_coa_id       NUMBER;
8632 l_adr_flexfield_segment_code  VARCHAR2(30);
8633 l_adr_flex_value_set_id       NUMBER;
8634 l_adr_value_type_code         VARCHAR2(30);
8635 l_adr_value_combination_id    NUMBER;
8636 l_adr_value_segment_code      VARCHAR2(30);
8637 
8638 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8639 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8640 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8641 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8642 
8643 -- 4262811 Variables ------------------------------------------------------------------------------------------
8644 l_entered_amt_idx             NUMBER;
8645 l_accted_amt_idx              NUMBER;
8646 l_acc_rev_flag                VARCHAR2(1);
8647 l_accrual_line_num            NUMBER;
8648 l_tmp_amt                     NUMBER;
8649 l_acc_rev_natural_side_code   VARCHAR2(1);
8650 
8651 l_num_entries                 NUMBER;
8652 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8653 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8654 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8655 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8656 l_recog_line_1                NUMBER;
8657 l_recog_line_2                NUMBER;
8658 
8659 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8660 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8661 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8662 
8663 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8664 
8665 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8666 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8667 
8668 ---------------------------------------------------------------------------------------------------------------
8669 
8670 
8671 --
8672 -- bulk performance
8673 --
8674 l_balance_type_code           VARCHAR2(1);
8675 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8676 l_log_module                  VARCHAR2(240);
8677 
8678 --
8679 -- Upgrade strategy
8680 --
8681 l_actual_upg_option           VARCHAR2(1);
8682 l_enc_upg_option           VARCHAR2(1);
8683 
8684 --
8685 BEGIN
8686 --
8687 IF g_log_enabled THEN
8688       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
8689 END IF;
8690 --
8691 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8692 
8693       trace
8694          (p_msg      => 'BEGIN of AcctLineType_57'
8695          ,p_level    => C_LEVEL_PROCEDURE
8696          ,p_module   => l_log_module);
8697 
8698 END IF;
8699 --
8700 l_component_type             := 'AMB_JLT';
8701 l_component_code             := 'AP_ACCRUAL_DM';
8702 l_component_type_code        := 'S';
8703 l_component_appl_id          :=  200;
8704 l_amb_context_code           := 'DEFAULT';
8705 l_entity_code                := 'AP_INVOICES';
8706 l_event_class_code           := 'DEBIT MEMOS';
8707 l_event_type_code            := 'DEBIT MEMOS_ALL';
8708 l_line_definition_owner_code := 'S';
8709 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
8710 --
8711 l_balance_type_code          := 'A';
8712 l_segment                     := NULL;
8713 l_ccid                        := NULL;
8714 l_adr_transaction_coa_id      := NULL;
8715 l_adr_accounting_coa_id       := NULL;
8716 l_adr_flexfield_segment_code  := NULL;
8717 l_adr_flex_value_set_id       := NULL;
8718 l_adr_value_type_code         := NULL;
8719 l_adr_value_combination_id    := NULL;
8720 l_adr_value_segment_code      := NULL;
8721 
8722 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8723 l_bflow_class_code           := '';    -- 4219869 Business Flow
8724 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8725 l_budgetary_control_flag     := 'N';
8726 
8727 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8728 l_bflow_applied_to_amt       := NULL; -- 5132302
8729 l_entered_amt_idx            := NULL;          -- 4262811
8730 l_accted_amt_idx             := NULL;          -- 4262811
8731 l_acc_rev_flag               := NULL;          -- 4262811
8732 l_accrual_line_num           := NULL;          -- 4262811
8733 l_tmp_amt                    := NULL;          -- 4262811
8734 --
8735  
8736 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8737     l_balance_type_code <> 'B' THEN
8738 IF NVL(p_source_28,'
8739 ') =  'RETROACCRUAL' OR 
8740 NVL(p_source_28,'
8741 ') =  'ACCRUAL'
8742  THEN 
8743 
8744    --
8745    XLA_AE_LINES_PKG.SetNewLine;
8746 
8747    p_balance_type_code          := l_balance_type_code;
8748    -- set the flag so later we will know whether the gain loss line needs to be created
8749    
8750    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8751      p_actual_flag :='A';
8752    END IF;
8756    --
8753 
8754    --
8755    -- bulk performance
8757    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8758                                       p_header_num   => 0); -- 4262811
8759    --
8760    -- set accounting line options
8761    --
8762    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8763            p_natural_side_code          => 'D'
8764          , p_gain_or_loss_flag          => 'N'
8765          , p_gl_transfer_mode_code      => 'S'
8766          , p_acct_entry_type_code       => 'A'
8767          , p_switch_side_flag           => 'Y'
8768          , p_merge_duplicate_code       => 'A'
8769          );
8770    --
8771    l_acc_rev_natural_side_code := 'C';  -- 4262811
8772    -- 
8773    --
8774    -- set accounting line type info
8775    --
8776    xla_ae_lines_pkg.SetAcctLineType
8777       (p_component_type             => l_component_type
8778       ,p_event_type_code            => l_event_type_code
8779       ,p_line_definition_owner_code => l_line_definition_owner_code
8780       ,p_line_definition_code       => l_line_definition_code
8781       ,p_accounting_line_code       => l_component_code
8782       ,p_accounting_line_type_code  => l_component_type_code
8783       ,p_accounting_line_appl_id    => l_component_appl_id
8784       ,p_amb_context_code           => l_amb_context_code
8785       ,p_entity_code                => l_entity_code
8786       ,p_event_class_code           => l_event_class_code);
8787    --
8788    -- set accounting class
8789    --
8790    xla_ae_lines_pkg.SetAcctClass(
8791            p_accounting_class_code  => 'ACCRUAL'
8792          , p_ae_header_id           => l_ae_header_id
8793          );
8794 
8795    --
8796    -- set rounding class
8797    --
8798    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8799                       'ACCRUAL';
8800 
8801    --
8802    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8803    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8804    --
8805    -- bulk performance
8806    --
8807    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8808 
8809    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8810       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8811 
8812    -- 4955764
8813    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8814       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8815 
8816    -- 4458381 Public Sector Enh
8817    
8818    --
8819    -- set accounting attributes for the line type
8820    --
8821    l_entered_amt_idx := 23;
8822    l_accted_amt_idx  := 28;
8823    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
8824    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8825    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
8826    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8827    l_rec_acct_attrs.array_num_value(2)  := 
8828 xla_ae_sources_pkg.GetSystemSourceNum(
8829    p_source_code           => 'XLA_EVENT_APPL_ID'
8830  , p_source_type_code      => 'Y'
8831  , p_source_application_id =>  602
8832 );
8833    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8834    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
8835    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8836    l_rec_acct_attrs.array_char_value(4)  := 
8837 xla_ae_sources_pkg.GetSystemSourceChar(
8838    p_source_code           => 'XLA_ENTITY_CODE'
8839  , p_source_type_code      => 'Y'
8840  , p_source_application_id =>  602
8841 );
8842    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8843    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
8844    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8845    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
8846    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
8847    l_rec_acct_attrs.array_num_value(7)  := p_source_64;
8848    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8849    l_rec_acct_attrs.array_char_value(8)  := p_source_65;
8850    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
8851    l_rec_acct_attrs.array_char_value(9)  := p_source_66;
8852    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
8853    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_67);
8854    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8855    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_68);
8856    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
8857    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
8858    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
8859    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
8860    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
8861    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
8862    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
8863    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
8864    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
8868    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
8865    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
8866    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
8867    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
8869    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
8870    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
8871    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
8872    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
8873    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
8874    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
8875    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
8876    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
8877    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
8878    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
8879    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
8880    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
8881    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
8882    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
8883    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
8884    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
8885    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
8886    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
8887    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
8888    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
8889    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
8890    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
8891    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
8892    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
8893    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
8894    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
8895    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
8896    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
8897    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
8898    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
8899    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
8900    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
8901    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
8902    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
8903    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
8904    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
8905    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
8906    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
8907    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
8908    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
8909    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
8910    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
8911    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
8912    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
8913    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
8914    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
8915    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
8916    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
8917    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
8918 
8919    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8920    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8921 
8922    ---------------------------------------------------------------------------------------------------------------
8923    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8924    ---------------------------------------------------------------------------------------------------------------
8925    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8926 
8927    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8928    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8929 
8930    IF xla_accounting_cache_pkg.GetValueChar
8931          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8932          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8933    AND l_bflow_method_code = 'PRIOR_ENTRY'
8934 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8935    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8936          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8937        )
8938    THEN
8939          xla_ae_lines_pkg.BflowUpgEntry
8940            (p_business_method_code    => l_bflow_method_code
8941            ,p_business_class_code     => l_bflow_class_code
8942            ,p_balance_type            => l_balance_type_code);
8943    ELSE
8944       NULL;
8945 -- No business flow processing for business flow method of NONE.
8946    END IF;
8947 
8948    --
8949    -- call analytical criteria
8950    --
8951    
8952    --
8953    -- call description
8954    --
8955    
8956 xla_ae_lines_pkg.SetLineDescription(
8957    p_ae_header_id => l_ae_header_id
8958   ,p_description  => Description_2 (
8959      p_application_id         => p_application_id
8960    , p_ae_header_id           => l_ae_header_id 
8961 , p_source_1 => p_source_1
8962    )
8963 );
8964 
8965 
8966    --
8967    -- call ADRs
8971         (NVL(l_actual_upg_option, 'N') = 'O') OR
8968    -- Bug 4922099
8969    --
8970    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8972         (NVL(l_enc_upg_option, 'N') = 'O')
8973       )
8974    THEN
8975    NULL;
8976    --
8977    --
8978    
8979   l_ccid := AcctDerRule_35(
8980            p_application_id           => p_application_id
8981          , p_ae_header_id             => l_ae_header_id 
8982 , p_source_25 => p_source_25
8983          , x_transaction_coa_id       => l_adr_transaction_coa_id
8984          , x_accounting_coa_id        => l_adr_accounting_coa_id
8985          , x_value_type_code          => l_adr_value_type_code
8986          , p_side                     => 'NA'
8987    );
8988 
8989    xla_ae_lines_pkg.set_ccid(
8990     p_code_combination_id          => l_ccid
8991   , p_value_type_code              => l_adr_value_type_code
8992   , p_transaction_coa_id           => l_adr_transaction_coa_id
8993   , p_accounting_coa_id            => l_adr_accounting_coa_id
8994   , p_adr_code                     => 'AP_INVOICE_DIST'
8995   , p_adr_type_code                => 'S'
8996   , p_component_type               => l_component_type
8997   , p_component_code               => l_component_code
8998   , p_component_type_code          => l_component_type_code
8999   , p_component_appl_id            => l_component_appl_id
9000   , p_amb_context_code             => l_amb_context_code
9001   , p_side                         => 'NA'
9002   );
9003 
9004 
9005    --
9006    --
9007    END IF;
9008    --
9009    -- Bug 4922099
9010    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9011           (NVL(l_enc_upg_option, 'N') = 'O')
9012         ) AND
9013         (l_bflow_method_code = 'PRIOR_ENTRY')
9014       )
9015    THEN
9016       IF
9017       --
9018       1 = 2
9019       --
9020       THEN
9021       xla_accounting_err_pkg.build_message
9022                                     (p_appli_s_name            => 'XLA'
9023                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9024                                     ,p_token_1                 => 'LINE_NUMBER'
9025                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9026                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9027                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9028                                                                              l_component_type
9029                                                                             ,l_component_code
9030                                                                             ,l_component_type_code
9031                                                                             ,l_component_appl_id
9032                                                                             ,l_amb_context_code
9033                                                                             ,l_entity_code
9034                                                                             ,l_event_class_code
9035                                                                            )
9036                                     ,p_token_3                 => 'OWNER'
9037                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9038                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9039                                                                           ,p_lookup_code    => l_component_type_code
9040                                                                          )
9041                                     ,p_token_4                 => 'PRODUCT_NAME'
9042                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9043                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9044                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9045                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9046                                     ,p_ae_header_id            =>  NULL
9047                                        );
9048 
9049         IF (C_LEVEL_ERROR>= g_log_level) THEN
9050                  trace
9051                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9052                       ,p_level    => C_LEVEL_ERROR
9053                       ,p_module   => l_log_module);
9054         END IF;
9055       END IF;
9056    END IF;
9057    --
9058    --
9059    ------------------------------------------------------------------------------------------------
9060    -- 4219869 Business Flow
9061    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9062    -- Prior Entry.  Currently, the following code is always generated.
9063    ------------------------------------------------------------------------------------------------
9064    XLA_AE_LINES_PKG.ValidateCurrentLine;
9065 
9066    ------------------------------------------------------------------------------------
9067    -- 4219869 Business Flow
9068    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9069    ------------------------------------------------------------------------------------
9070    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9071 
9072    ----------------------------------------------------------------------------------
9073    -- 4219869 Business Flow
9074    -- Update journal entry status -- Need to generate this within IF <condition>
9078          ,p_balance_type_code => l_balance_type_code
9075    ----------------------------------------------------------------------------------
9076    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9077          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9079          );
9080 
9081    -------------------------------------------------------------------------------------------
9082    -- 4262811 - Generate the Accrual Reversal lines
9083    -------------------------------------------------------------------------------------------
9084    BEGIN
9085       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9086                               (g_array_event(p_event_id).array_value_num('header_index'));
9087       IF l_acc_rev_flag IS NULL THEN
9088          l_acc_rev_flag := 'N';
9089       END IF;
9090    EXCEPTION
9091       WHEN OTHERS THEN
9092          l_acc_rev_flag := 'N';
9093    END;
9094    --
9095    IF (l_acc_rev_flag = 'Y') THEN
9096 
9097        -- 4645092  ------------------------------------------------------------------------------
9098        -- To allow MPA report to determine if it should generate report process
9099        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9100        ------------------------------------------------------------------------------------------
9101 
9102        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9103        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9104    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9105    -- call ADRs
9106    -- Bug 4922099
9107    --
9108    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9109         (NVL(l_actual_upg_option, 'N') = 'O') OR
9110         (NVL(l_enc_upg_option, 'N') = 'O')
9111       )
9112    THEN
9113    NULL;
9114    --
9115    --
9116    
9117   l_ccid := AcctDerRule_35(
9118            p_application_id           => p_application_id
9119          , p_ae_header_id             => l_ae_header_id 
9120 , p_source_25 => p_source_25
9121          , x_transaction_coa_id       => l_adr_transaction_coa_id
9122          , x_accounting_coa_id        => l_adr_accounting_coa_id
9123          , x_value_type_code          => l_adr_value_type_code
9124          , p_side                     => 'NA'
9125    );
9126 
9127    xla_ae_lines_pkg.set_ccid(
9128     p_code_combination_id          => l_ccid
9129   , p_value_type_code              => l_adr_value_type_code
9130   , p_transaction_coa_id           => l_adr_transaction_coa_id
9131   , p_accounting_coa_id            => l_adr_accounting_coa_id
9132   , p_adr_code                     => 'AP_INVOICE_DIST'
9133   , p_adr_type_code                => 'S'
9134   , p_component_type               => l_component_type
9135   , p_component_code               => l_component_code
9136   , p_component_type_code          => l_component_type_code
9137   , p_component_appl_id            => l_component_appl_id
9138   , p_amb_context_code             => l_amb_context_code
9139   , p_side                         => 'NA'
9140   );
9141 
9142 
9143    --
9144    --
9145    END IF;
9146 
9147        --
9148        -- Update the line information that should be overwritten
9149        --
9150        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9151                                          p_header_num   => 1);
9152        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9153 
9154        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9155 
9156        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9157           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9158        END IF;
9159 
9160       --
9161       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9162       --
9163       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9164           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9165       ELSE
9166           ---------------------------------------------------------------------------------------------------
9167           -- 4262811a Switch Sign
9168           ---------------------------------------------------------------------------------------------------
9169           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9170           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9171                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9172           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9173                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9174           -- 5132302
9175           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9176                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9177 
9178       END IF;
9179 
9180       -- 4955764
9181       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9182       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9183 
9184 
9185       XLA_AE_LINES_PKG.ValidateCurrentLine;
9189                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9186       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9187 
9188       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9190                ,p_balance_type_code => l_balance_type_code);
9191 
9192    END IF;
9193 
9194    -----------------------------------------------------------------------------------------
9195    -- 4262811 Multiperiod Accounting
9196    -----------------------------------------------------------------------------------------
9197      -- No MPA option is assigned.
9198 
9199 
9200 END IF;
9201 END IF;
9202 --
9203 
9204 --
9205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9206    trace
9207       (p_msg      => 'END of AcctLineType_57'
9208       ,p_level    => C_LEVEL_PROCEDURE
9209       ,p_module   => l_log_module);
9210 END IF;
9211 --
9212 EXCEPTION
9213   WHEN xla_exceptions_pkg.application_exception THEN
9214       RAISE;
9215   WHEN OTHERS THEN
9216        xla_exceptions_pkg.raise_message
9217            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_57');
9218 END AcctLineType_57;
9219 --
9220 
9221 ---------------------------------------
9222 --
9223 -- PRIVATE FUNCTION
9224 --         AcctLineType_58
9225 --
9226 ---------------------------------------
9227 PROCEDURE AcctLineType_58 (
9228   p_application_id        IN NUMBER
9229  ,p_event_id              IN NUMBER
9230  ,p_calculate_acctd_flag  IN VARCHAR2
9231  ,p_calculate_g_l_flag    IN VARCHAR2
9232  ,p_actual_flag           IN OUT VARCHAR2
9233  ,p_balance_type_code     OUT VARCHAR2
9234  ,p_gain_or_loss_ref      OUT VARCHAR2
9235  
9236 --Invoice Distribution Description
9237  , p_source_1            IN VARCHAR2
9238 --Invoice Distribution Ledger Amount
9239  , p_source_16            IN NUMBER
9240 --Invoice Distribution Account
9241  , p_source_25            IN NUMBER
9242 --Invoice Distribution Type
9243  , p_source_28            IN VARCHAR2
9244  , p_source_28_meaning    IN VARCHAR2
9245 --Accounting Reversal Indicator
9246  , p_source_58            IN VARCHAR2
9247 --Distribution Link Type
9248  , p_source_60            IN VARCHAR2
9249 --Allocation to Main Distribution Identifier
9250  , p_source_62            IN NUMBER
9251 --Invoice Identifier
9252  , p_source_63            IN NUMBER
9253 --Business Flow Purchasing Application Identifier
9254  , p_source_64            IN NUMBER
9255 --Business Flow Purchase Order Distribution Type
9256  , p_source_65            IN VARCHAR2
9257 --Business Flow Purchase Order Entity Code
9258  , p_source_66            IN VARCHAR2
9259 --Business Flow Purchase Order Distribution Identifier
9260  , p_source_67            IN NUMBER
9261 --Business Flow Purchasing Document Identifier
9262  , p_source_68            IN NUMBER
9263 --Invoice Distribution Identifier
9264  , p_source_69            IN NUMBER
9265 --Payables Encumbrance Upgrade Credit Account
9266  , p_source_70            IN NUMBER
9267 --Payables Encumbrance Upgrade Credit Amount
9268  , p_source_71            IN NUMBER
9269 --Invoice Currency Code
9270  , p_source_72            IN VARCHAR2
9271 --Payables Encumbrance Upgrade Credit Base Amount
9272  , p_source_73            IN NUMBER
9273 --Payables Encumbrance Upgrade Debit Account
9274  , p_source_74            IN NUMBER
9275 --Payables Encumbrance Upgrade Debit Amount
9276  , p_source_75            IN NUMBER
9277 --Payables Encumbrance Upgrade Debit Base Amount
9278  , p_source_76            IN NUMBER
9279 --Payables Encumbrance Upgrade Option
9280  , p_source_77            IN VARCHAR2
9281 --Invoice Distribution Amount
9282  , p_source_78            IN NUMBER
9283 --Purchase Order Exchange Rate Date
9284  , p_source_79            IN DATE
9285 --Purchase Order Exchange Rate
9286  , p_source_80            IN NUMBER
9287 --Purchase Order Exchange Rate Type
9288  , p_source_81            IN VARCHAR2
9289 --Deferred Accounting End Date
9290  , p_source_82            IN DATE
9291 --Deferred Accounting Option
9292  , p_source_83            IN VARCHAR2
9293 --Deferred Accounting Start Date
9294  , p_source_84            IN DATE
9295 --Override Accounted Amount Indicator
9296  , p_source_85            IN VARCHAR2
9297  , p_source_85_meaning    IN VARCHAR2
9298 --Invoice Supplier Identifier
9299  , p_source_86            IN NUMBER
9300 --Invoice Supplier Site Identifier
9301  , p_source_87            IN NUMBER
9302 --Third Party Type
9303  , p_source_88            IN VARCHAR2
9304 --Parent Reversal Identifier
9305  , p_source_89            IN NUMBER
9306 --Invoice Distribution Statistical Amount
9307  , p_source_90            IN NUMBER
9308 --Invoice Distribution Tax Line Identifier
9309  , p_source_91            IN NUMBER
9310 --Invoice Distribution Tax Distribution Identifier from Tax
9311  , p_source_92            IN NUMBER
9312 --Invoice Distribution Summary Tax Line Identifier
9313  , p_source_93            IN NUMBER
9314 --Payables Upgrade Credit Encumbrance Type Identifier
9315  , p_source_94            IN NUMBER
9316 --Payables Upgrade Debit Encumbrance Type Identifier
9317  , p_source_95            IN NUMBER
9318 )
9319 IS
9320 
9321 l_component_type              VARCHAR2(80);
9322 l_component_code              VARCHAR2(30);
9323 l_component_type_code         VARCHAR2(1);
9324 l_component_appl_id           INTEGER;
9325 l_amb_context_code            VARCHAR2(30);
9326 l_entity_code                 VARCHAR2(30);
9330 l_line_definition_code        VARCHAR2(30);
9327 l_event_class_code            VARCHAR2(30);
9328 l_ae_header_id                NUMBER;
9329 l_event_type_code             VARCHAR2(30);
9331 l_line_definition_owner_code  VARCHAR2(1);
9332 --
9333 -- adr variables
9334 l_segment                     VARCHAR2(30);
9335 l_ccid                        NUMBER;
9336 l_adr_transaction_coa_id      NUMBER;
9337 l_adr_accounting_coa_id       NUMBER;
9338 l_adr_flexfield_segment_code  VARCHAR2(30);
9339 l_adr_flex_value_set_id       NUMBER;
9340 l_adr_value_type_code         VARCHAR2(30);
9341 l_adr_value_combination_id    NUMBER;
9342 l_adr_value_segment_code      VARCHAR2(30);
9343 
9344 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
9345 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
9346 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
9347 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
9348 
9349 -- 4262811 Variables ------------------------------------------------------------------------------------------
9350 l_entered_amt_idx             NUMBER;
9351 l_accted_amt_idx              NUMBER;
9352 l_acc_rev_flag                VARCHAR2(1);
9353 l_accrual_line_num            NUMBER;
9354 l_tmp_amt                     NUMBER;
9355 l_acc_rev_natural_side_code   VARCHAR2(1);
9356 
9357 l_num_entries                 NUMBER;
9358 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
9359 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
9360 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
9361 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
9362 l_recog_line_1                NUMBER;
9363 l_recog_line_2                NUMBER;
9364 
9365 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
9366 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
9367 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
9368 
9369 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9370 
9371 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
9372 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
9373 
9374 ---------------------------------------------------------------------------------------------------------------
9375 
9376 
9377 --
9378 -- bulk performance
9379 --
9380 l_balance_type_code           VARCHAR2(1);
9381 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
9382 l_log_module                  VARCHAR2(240);
9383 
9384 --
9385 -- Upgrade strategy
9386 --
9387 l_actual_upg_option           VARCHAR2(1);
9388 l_enc_upg_option           VARCHAR2(1);
9389 
9390 --
9391 BEGIN
9392 --
9393 IF g_log_enabled THEN
9394       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
9395 END IF;
9396 --
9397 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9398 
9399       trace
9400          (p_msg      => 'BEGIN of AcctLineType_58'
9401          ,p_level    => C_LEVEL_PROCEDURE
9402          ,p_module   => l_log_module);
9403 
9404 END IF;
9405 --
9406 l_component_type             := 'AMB_JLT';
9407 l_component_code             := 'AP_ACCRUAL_INV';
9408 l_component_type_code        := 'S';
9409 l_component_appl_id          :=  200;
9410 l_amb_context_code           := 'DEFAULT';
9411 l_entity_code                := 'AP_INVOICES';
9412 l_event_class_code           := 'INVOICES';
9413 l_event_type_code            := 'INVOICES_ALL';
9414 l_line_definition_owner_code := 'S';
9415 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
9416 --
9417 l_balance_type_code          := 'A';
9418 l_segment                     := NULL;
9419 l_ccid                        := NULL;
9420 l_adr_transaction_coa_id      := NULL;
9421 l_adr_accounting_coa_id       := NULL;
9422 l_adr_flexfield_segment_code  := NULL;
9423 l_adr_flex_value_set_id       := NULL;
9424 l_adr_value_type_code         := NULL;
9425 l_adr_value_combination_id    := NULL;
9426 l_adr_value_segment_code      := NULL;
9427 
9428 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9429 l_bflow_class_code           := '';    -- 4219869 Business Flow
9430 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9431 l_budgetary_control_flag     := 'N';
9432 
9433 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9434 l_bflow_applied_to_amt       := NULL; -- 5132302
9435 l_entered_amt_idx            := NULL;          -- 4262811
9436 l_accted_amt_idx             := NULL;          -- 4262811
9437 l_acc_rev_flag               := NULL;          -- 4262811
9438 l_accrual_line_num           := NULL;          -- 4262811
9439 l_tmp_amt                    := NULL;          -- 4262811
9440 --
9441  
9442 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9443     l_balance_type_code <> 'B' THEN
9444 IF NVL(p_source_28,'
9445 ') =  'RETROACCRUAL' OR 
9446 NVL(p_source_28,'
9447 ') =  'ACCRUAL'
9448  THEN 
9449 
9450    --
9451    XLA_AE_LINES_PKG.SetNewLine;
9452 
9453    p_balance_type_code          := l_balance_type_code;
9454    -- set the flag so later we will know whether the gain loss line needs to be created
9455    
9456    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9457      p_actual_flag :='A';
9461    -- bulk performance
9458    END IF;
9459 
9460    --
9462    --
9463    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9464                                       p_header_num   => 0); -- 4262811
9465    --
9466    -- set accounting line options
9467    --
9468    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9469            p_natural_side_code          => 'D'
9470          , p_gain_or_loss_flag          => 'N'
9471          , p_gl_transfer_mode_code      => 'S'
9472          , p_acct_entry_type_code       => 'A'
9473          , p_switch_side_flag           => 'Y'
9474          , p_merge_duplicate_code       => 'A'
9475          );
9476    --
9477    l_acc_rev_natural_side_code := 'C';  -- 4262811
9478    -- 
9479    --
9480    -- set accounting line type info
9481    --
9482    xla_ae_lines_pkg.SetAcctLineType
9483       (p_component_type             => l_component_type
9484       ,p_event_type_code            => l_event_type_code
9485       ,p_line_definition_owner_code => l_line_definition_owner_code
9486       ,p_line_definition_code       => l_line_definition_code
9487       ,p_accounting_line_code       => l_component_code
9488       ,p_accounting_line_type_code  => l_component_type_code
9489       ,p_accounting_line_appl_id    => l_component_appl_id
9490       ,p_amb_context_code           => l_amb_context_code
9491       ,p_entity_code                => l_entity_code
9492       ,p_event_class_code           => l_event_class_code);
9493    --
9494    -- set accounting class
9495    --
9496    xla_ae_lines_pkg.SetAcctClass(
9497            p_accounting_class_code  => 'ACCRUAL'
9498          , p_ae_header_id           => l_ae_header_id
9499          );
9500 
9501    --
9502    -- set rounding class
9503    --
9504    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9505                       'ACCRUAL';
9506 
9507    --
9508    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9509    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9510    --
9511    -- bulk performance
9512    --
9513    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9514 
9515    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9516       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9517 
9518    -- 4955764
9519    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9520       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9521 
9522    -- 4458381 Public Sector Enh
9523    
9524    --
9525    -- set accounting attributes for the line type
9526    --
9527    l_entered_amt_idx := 24;
9528    l_accted_amt_idx  := 29;
9529    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
9530    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9531    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
9532    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9533    l_rec_acct_attrs.array_num_value(2)  := 
9534 xla_ae_sources_pkg.GetSystemSourceNum(
9535    p_source_code           => 'XLA_EVENT_APPL_ID'
9536  , p_source_type_code      => 'Y'
9537  , p_source_application_id =>  602
9538 );
9539    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9540    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
9541    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9542    l_rec_acct_attrs.array_char_value(4)  := 
9543 xla_ae_sources_pkg.GetSystemSourceChar(
9544    p_source_code           => 'XLA_ENTITY_CODE'
9545  , p_source_type_code      => 'Y'
9546  , p_source_application_id =>  602
9547 );
9548    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9549    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
9550    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9551    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
9552    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
9553    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
9554    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
9555    l_rec_acct_attrs.array_num_value(8)  := p_source_64;
9556    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9557    l_rec_acct_attrs.array_char_value(9)  := p_source_65;
9558    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
9559    l_rec_acct_attrs.array_char_value(10)  := p_source_66;
9560    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
9561    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_67);
9562    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9563    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_68);
9564    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
9565    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
9566    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
9567    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
9568    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
9569    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
9570    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
9571    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
9575    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
9572    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
9573    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
9574    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
9576    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
9577    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
9578    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
9579    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
9580    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
9581    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
9582    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
9583    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
9584    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
9585    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
9586    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
9587    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
9588    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
9589    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
9590    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
9591    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
9592    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
9593    l_rec_acct_attrs.array_num_value(27)  := p_source_80;
9594    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
9595    l_rec_acct_attrs.array_char_value(28)  := p_source_81;
9596    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
9597    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
9598    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
9599    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
9600    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
9601    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
9602    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
9603    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
9604    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
9605    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
9606    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
9607    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
9608    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
9609    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
9610    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
9611    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
9612    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
9613    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
9614    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
9615    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
9616    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
9617    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
9618    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
9619    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
9620    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
9621    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
9622    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
9623    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
9624    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
9625    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
9626    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
9627    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
9628 
9629    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9630    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9631 
9632    ---------------------------------------------------------------------------------------------------------------
9633    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9634    ---------------------------------------------------------------------------------------------------------------
9635    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9636 
9637    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9638    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9639 
9640    IF xla_accounting_cache_pkg.GetValueChar
9641          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9642          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9643    AND l_bflow_method_code = 'PRIOR_ENTRY'
9644 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9645    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9646          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9647        )
9648    THEN
9649          xla_ae_lines_pkg.BflowUpgEntry
9650            (p_business_method_code    => l_bflow_method_code
9651            ,p_business_class_code     => l_bflow_class_code
9652            ,p_balance_type            => l_balance_type_code);
9653    ELSE
9654       NULL;
9655 -- No business flow processing for business flow method of NONE.
9656    END IF;
9657 
9658    --
9659    -- call analytical criteria
9660    --
9661    
9662    --
9663    -- call description
9664    --
9665    
9666 xla_ae_lines_pkg.SetLineDescription(
9670    , p_ae_header_id           => l_ae_header_id 
9667    p_ae_header_id => l_ae_header_id
9668   ,p_description  => Description_2 (
9669      p_application_id         => p_application_id
9671 , p_source_1 => p_source_1
9672    )
9673 );
9674 
9675 
9676    --
9677    -- call ADRs
9678    -- Bug 4922099
9679    --
9680    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9681         (NVL(l_actual_upg_option, 'N') = 'O') OR
9682         (NVL(l_enc_upg_option, 'N') = 'O')
9683       )
9684    THEN
9685    NULL;
9686    --
9687    --
9688    
9689   l_ccid := AcctDerRule_35(
9690            p_application_id           => p_application_id
9691          , p_ae_header_id             => l_ae_header_id 
9692 , p_source_25 => p_source_25
9693          , x_transaction_coa_id       => l_adr_transaction_coa_id
9694          , x_accounting_coa_id        => l_adr_accounting_coa_id
9695          , x_value_type_code          => l_adr_value_type_code
9696          , p_side                     => 'NA'
9697    );
9698 
9699    xla_ae_lines_pkg.set_ccid(
9700     p_code_combination_id          => l_ccid
9701   , p_value_type_code              => l_adr_value_type_code
9702   , p_transaction_coa_id           => l_adr_transaction_coa_id
9703   , p_accounting_coa_id            => l_adr_accounting_coa_id
9704   , p_adr_code                     => 'AP_INVOICE_DIST'
9705   , p_adr_type_code                => 'S'
9706   , p_component_type               => l_component_type
9707   , p_component_code               => l_component_code
9708   , p_component_type_code          => l_component_type_code
9709   , p_component_appl_id            => l_component_appl_id
9710   , p_amb_context_code             => l_amb_context_code
9711   , p_side                         => 'NA'
9712   );
9713 
9714 
9715    --
9716    --
9717    END IF;
9718    --
9719    -- Bug 4922099
9720    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9721           (NVL(l_enc_upg_option, 'N') = 'O')
9722         ) AND
9723         (l_bflow_method_code = 'PRIOR_ENTRY')
9724       )
9725    THEN
9726       IF
9727       --
9728       1 = 2
9729       --
9730       THEN
9731       xla_accounting_err_pkg.build_message
9732                                     (p_appli_s_name            => 'XLA'
9733                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9734                                     ,p_token_1                 => 'LINE_NUMBER'
9735                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9736                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9737                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9738                                                                              l_component_type
9739                                                                             ,l_component_code
9740                                                                             ,l_component_type_code
9741                                                                             ,l_component_appl_id
9742                                                                             ,l_amb_context_code
9743                                                                             ,l_entity_code
9744                                                                             ,l_event_class_code
9745                                                                            )
9746                                     ,p_token_3                 => 'OWNER'
9747                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9748                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9749                                                                           ,p_lookup_code    => l_component_type_code
9750                                                                          )
9751                                     ,p_token_4                 => 'PRODUCT_NAME'
9752                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9753                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9754                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9755                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9756                                     ,p_ae_header_id            =>  NULL
9757                                        );
9758 
9759         IF (C_LEVEL_ERROR>= g_log_level) THEN
9760                  trace
9761                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9762                       ,p_level    => C_LEVEL_ERROR
9763                       ,p_module   => l_log_module);
9764         END IF;
9765       END IF;
9766    END IF;
9767    --
9768    --
9769    ------------------------------------------------------------------------------------------------
9770    -- 4219869 Business Flow
9771    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9772    -- Prior Entry.  Currently, the following code is always generated.
9773    ------------------------------------------------------------------------------------------------
9774    XLA_AE_LINES_PKG.ValidateCurrentLine;
9778    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9775 
9776    ------------------------------------------------------------------------------------
9777    -- 4219869 Business Flow
9779    ------------------------------------------------------------------------------------
9780    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9781 
9782    ----------------------------------------------------------------------------------
9783    -- 4219869 Business Flow
9784    -- Update journal entry status -- Need to generate this within IF <condition>
9785    ----------------------------------------------------------------------------------
9786    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9787          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9788          ,p_balance_type_code => l_balance_type_code
9789          );
9790 
9791    -------------------------------------------------------------------------------------------
9792    -- 4262811 - Generate the Accrual Reversal lines
9793    -------------------------------------------------------------------------------------------
9794    BEGIN
9795       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9796                               (g_array_event(p_event_id).array_value_num('header_index'));
9797       IF l_acc_rev_flag IS NULL THEN
9798          l_acc_rev_flag := 'N';
9799       END IF;
9800    EXCEPTION
9801       WHEN OTHERS THEN
9802          l_acc_rev_flag := 'N';
9803    END;
9804    --
9805    IF (l_acc_rev_flag = 'Y') THEN
9806 
9807        -- 4645092  ------------------------------------------------------------------------------
9808        -- To allow MPA report to determine if it should generate report process
9809        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9810        ------------------------------------------------------------------------------------------
9811 
9812        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9813        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9814    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9815    -- call ADRs
9816    -- Bug 4922099
9817    --
9818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9819         (NVL(l_actual_upg_option, 'N') = 'O') OR
9820         (NVL(l_enc_upg_option, 'N') = 'O')
9821       )
9822    THEN
9823    NULL;
9824    --
9825    --
9826    
9827   l_ccid := AcctDerRule_35(
9828            p_application_id           => p_application_id
9829          , p_ae_header_id             => l_ae_header_id 
9830 , p_source_25 => p_source_25
9831          , x_transaction_coa_id       => l_adr_transaction_coa_id
9832          , x_accounting_coa_id        => l_adr_accounting_coa_id
9833          , x_value_type_code          => l_adr_value_type_code
9834          , p_side                     => 'NA'
9835    );
9836 
9837    xla_ae_lines_pkg.set_ccid(
9838     p_code_combination_id          => l_ccid
9839   , p_value_type_code              => l_adr_value_type_code
9840   , p_transaction_coa_id           => l_adr_transaction_coa_id
9841   , p_accounting_coa_id            => l_adr_accounting_coa_id
9842   , p_adr_code                     => 'AP_INVOICE_DIST'
9843   , p_adr_type_code                => 'S'
9844   , p_component_type               => l_component_type
9845   , p_component_code               => l_component_code
9846   , p_component_type_code          => l_component_type_code
9847   , p_component_appl_id            => l_component_appl_id
9848   , p_amb_context_code             => l_amb_context_code
9849   , p_side                         => 'NA'
9850   );
9851 
9852 
9853    --
9854    --
9855    END IF;
9856 
9857        --
9858        -- Update the line information that should be overwritten
9859        --
9860        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9861                                          p_header_num   => 1);
9862        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9863 
9864        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9865 
9866        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9867           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9868        END IF;
9869 
9870       --
9871       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9872       --
9873       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9874           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9875       ELSE
9876           ---------------------------------------------------------------------------------------------------
9877           -- 4262811a Switch Sign
9878           ---------------------------------------------------------------------------------------------------
9879           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9880           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9881                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9882           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9883                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9884           -- 5132302
9888       END IF;
9885           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9886                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9887 
9889 
9890       -- 4955764
9891       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9892       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9893 
9894 
9895       XLA_AE_LINES_PKG.ValidateCurrentLine;
9896       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9897 
9898       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9899                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9900                ,p_balance_type_code => l_balance_type_code);
9901 
9902    END IF;
9903 
9904    -----------------------------------------------------------------------------------------
9905    -- 4262811 Multiperiod Accounting
9906    -----------------------------------------------------------------------------------------
9907      -- No MPA option is assigned.
9908 
9909 
9910 END IF;
9911 END IF;
9912 --
9913 
9914 --
9915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9916    trace
9917       (p_msg      => 'END of AcctLineType_58'
9918       ,p_level    => C_LEVEL_PROCEDURE
9919       ,p_module   => l_log_module);
9920 END IF;
9921 --
9922 EXCEPTION
9923   WHEN xla_exceptions_pkg.application_exception THEN
9924       RAISE;
9925   WHEN OTHERS THEN
9926        xla_exceptions_pkg.raise_message
9927            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_58');
9928 END AcctLineType_58;
9929 --
9930 
9931 ---------------------------------------
9932 --
9933 -- PRIVATE FUNCTION
9934 --         AcctLineType_59
9935 --
9936 ---------------------------------------
9937 PROCEDURE AcctLineType_59 (
9938   p_application_id        IN NUMBER
9939  ,p_event_id              IN NUMBER
9940  ,p_calculate_acctd_flag  IN VARCHAR2
9941  ,p_calculate_g_l_flag    IN VARCHAR2
9942  ,p_actual_flag           IN OUT VARCHAR2
9943  ,p_balance_type_code     OUT VARCHAR2
9944  ,p_gain_or_loss_ref      OUT VARCHAR2
9945  
9946 --Invoice Distribution Description
9947  , p_source_1            IN VARCHAR2
9948 --Invoice Distribution Ledger Amount
9949  , p_source_16            IN NUMBER
9950 --Invoice Distribution Account
9951  , p_source_25            IN NUMBER
9952 --Invoice Distribution Type
9953  , p_source_28            IN VARCHAR2
9954  , p_source_28_meaning    IN VARCHAR2
9955 --Accounting Reversal Indicator
9956  , p_source_58            IN VARCHAR2
9957 --Distribution Link Type
9958  , p_source_60            IN VARCHAR2
9959 --Allocation to Main Distribution Identifier
9960  , p_source_62            IN NUMBER
9961 --Invoice Identifier
9962  , p_source_63            IN NUMBER
9963 --Invoice Distribution Identifier
9964  , p_source_69            IN NUMBER
9965 --Payables Encumbrance Upgrade Credit Account
9966  , p_source_70            IN NUMBER
9967 --Payables Encumbrance Upgrade Credit Amount
9968  , p_source_71            IN NUMBER
9969 --Invoice Currency Code
9970  , p_source_72            IN VARCHAR2
9971 --Payables Encumbrance Upgrade Credit Base Amount
9972  , p_source_73            IN NUMBER
9973 --Payables Encumbrance Upgrade Debit Account
9974  , p_source_74            IN NUMBER
9975 --Payables Encumbrance Upgrade Debit Amount
9976  , p_source_75            IN NUMBER
9977 --Payables Encumbrance Upgrade Debit Base Amount
9978  , p_source_76            IN NUMBER
9979 --Payables Encumbrance Upgrade Option
9980  , p_source_77            IN VARCHAR2
9981 --Invoice Distribution Amount
9982  , p_source_78            IN NUMBER
9983 --Purchase Order Exchange Rate Date
9984  , p_source_79            IN DATE
9985 --Purchase Order Exchange Rate
9986  , p_source_80            IN NUMBER
9987 --Purchase Order Exchange Rate Type
9988  , p_source_81            IN VARCHAR2
9989 --Deferred Accounting End Date
9990  , p_source_82            IN DATE
9991 --Deferred Accounting Option
9992  , p_source_83            IN VARCHAR2
9993 --Deferred Accounting Start Date
9994  , p_source_84            IN DATE
9995 --Override Accounted Amount Indicator
9996  , p_source_85            IN VARCHAR2
9997  , p_source_85_meaning    IN VARCHAR2
9998 --Invoice Supplier Identifier
9999  , p_source_86            IN NUMBER
10000 --Invoice Supplier Site Identifier
10001  , p_source_87            IN NUMBER
10002 --Third Party Type
10003  , p_source_88            IN VARCHAR2
10004 --Parent Reversal Identifier
10005  , p_source_89            IN NUMBER
10006 --Invoice Distribution Statistical Amount
10007  , p_source_90            IN NUMBER
10008 --Invoice Distribution Tax Line Identifier
10009  , p_source_91            IN NUMBER
10010 --Invoice Distribution Tax Distribution Identifier from Tax
10011  , p_source_92            IN NUMBER
10012 --Invoice Distribution Summary Tax Line Identifier
10013  , p_source_93            IN NUMBER
10014 --Payables Upgrade Credit Encumbrance Type Identifier
10015  , p_source_94            IN NUMBER
10016 --Payables Upgrade Debit Encumbrance Type Identifier
10017  , p_source_95            IN NUMBER
10018 --Business Flow Accounts Payable Application Identifier
10019  , p_source_96            IN NUMBER
10020 --Business Flow Invoice Distribution Type
10024 --Business Flow Invoice Distribution Identifier
10021  , p_source_97            IN VARCHAR2
10022 --Business Flow Invoice Entity Code
10023  , p_source_98            IN VARCHAR2
10025  , p_source_99            IN NUMBER
10026 --Business Flow Invoice Identifier
10027  , p_source_100            IN NUMBER
10028 )
10029 IS
10030 
10031 l_component_type              VARCHAR2(80);
10032 l_component_code              VARCHAR2(30);
10033 l_component_type_code         VARCHAR2(1);
10034 l_component_appl_id           INTEGER;
10035 l_amb_context_code            VARCHAR2(30);
10036 l_entity_code                 VARCHAR2(30);
10037 l_event_class_code            VARCHAR2(30);
10038 l_ae_header_id                NUMBER;
10039 l_event_type_code             VARCHAR2(30);
10040 l_line_definition_code        VARCHAR2(30);
10041 l_line_definition_owner_code  VARCHAR2(1);
10042 --
10043 -- adr variables
10044 l_segment                     VARCHAR2(30);
10045 l_ccid                        NUMBER;
10046 l_adr_transaction_coa_id      NUMBER;
10047 l_adr_accounting_coa_id       NUMBER;
10048 l_adr_flexfield_segment_code  VARCHAR2(30);
10049 l_adr_flex_value_set_id       NUMBER;
10050 l_adr_value_type_code         VARCHAR2(30);
10051 l_adr_value_combination_id    NUMBER;
10052 l_adr_value_segment_code      VARCHAR2(30);
10053 
10054 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10055 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10056 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10057 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10058 
10059 -- 4262811 Variables ------------------------------------------------------------------------------------------
10060 l_entered_amt_idx             NUMBER;
10061 l_accted_amt_idx              NUMBER;
10062 l_acc_rev_flag                VARCHAR2(1);
10063 l_accrual_line_num            NUMBER;
10064 l_tmp_amt                     NUMBER;
10065 l_acc_rev_natural_side_code   VARCHAR2(1);
10066 
10067 l_num_entries                 NUMBER;
10068 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10069 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10070 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10071 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10072 l_recog_line_1                NUMBER;
10073 l_recog_line_2                NUMBER;
10074 
10075 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10076 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10077 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10078 
10079 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10080 
10081 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10082 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10083 
10084 ---------------------------------------------------------------------------------------------------------------
10085 
10086 
10087 --
10088 -- bulk performance
10089 --
10090 l_balance_type_code           VARCHAR2(1);
10091 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10092 l_log_module                  VARCHAR2(240);
10093 
10094 --
10095 -- Upgrade strategy
10096 --
10097 l_actual_upg_option           VARCHAR2(1);
10098 l_enc_upg_option           VARCHAR2(1);
10099 
10100 --
10101 BEGIN
10102 --
10103 IF g_log_enabled THEN
10104       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
10105 END IF;
10106 --
10107 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10108 
10109       trace
10110          (p_msg      => 'BEGIN of AcctLineType_59'
10111          ,p_level    => C_LEVEL_PROCEDURE
10112          ,p_module   => l_log_module);
10113 
10114 END IF;
10115 --
10116 l_component_type             := 'AMB_JLT';
10117 l_component_code             := 'AP_ACCRUAL_PREPAY';
10118 l_component_type_code        := 'S';
10119 l_component_appl_id          :=  200;
10120 l_amb_context_code           := 'DEFAULT';
10121 l_entity_code                := 'AP_INVOICES';
10122 l_event_class_code           := 'PREPAYMENTS';
10123 l_event_type_code            := 'PREPAYMENTS_ALL';
10124 l_line_definition_owner_code := 'S';
10125 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
10126 --
10127 l_balance_type_code          := 'A';
10128 l_segment                     := NULL;
10129 l_ccid                        := NULL;
10130 l_adr_transaction_coa_id      := NULL;
10131 l_adr_accounting_coa_id       := NULL;
10132 l_adr_flexfield_segment_code  := NULL;
10133 l_adr_flex_value_set_id       := NULL;
10134 l_adr_value_type_code         := NULL;
10135 l_adr_value_combination_id    := NULL;
10136 l_adr_value_segment_code      := NULL;
10137 
10138 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10139 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
10140 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10141 l_budgetary_control_flag     := 'N';
10142 
10143 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10144 l_bflow_applied_to_amt       := NULL; -- 5132302
10145 l_entered_amt_idx            := NULL;          -- 4262811
10146 l_accted_amt_idx             := NULL;          -- 4262811
10147 l_acc_rev_flag               := NULL;          -- 4262811
10151  
10148 l_accrual_line_num           := NULL;          -- 4262811
10149 l_tmp_amt                    := NULL;          -- 4262811
10150 --
10152 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10153     l_balance_type_code <> 'B' THEN
10154 IF NVL(p_source_28,'
10155 ') =  'RETROACCRUAL' OR 
10156 NVL(p_source_28,'
10157 ') =  'ACCRUAL'
10158  THEN 
10159 
10160    --
10161    XLA_AE_LINES_PKG.SetNewLine;
10162 
10163    p_balance_type_code          := l_balance_type_code;
10164    -- set the flag so later we will know whether the gain loss line needs to be created
10165    
10166    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10167      p_actual_flag :='A';
10168    END IF;
10169 
10170    --
10171    -- bulk performance
10172    --
10173    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10174                                       p_header_num   => 0); -- 4262811
10175    --
10176    -- set accounting line options
10177    --
10178    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10179            p_natural_side_code          => 'D'
10180          , p_gain_or_loss_flag          => 'N'
10181          , p_gl_transfer_mode_code      => 'S'
10182          , p_acct_entry_type_code       => 'A'
10183          , p_switch_side_flag           => 'Y'
10184          , p_merge_duplicate_code       => 'A'
10185          );
10186    --
10187    l_acc_rev_natural_side_code := 'C';  -- 4262811
10188    -- 
10189    --
10190    -- set accounting line type info
10191    --
10192    xla_ae_lines_pkg.SetAcctLineType
10193       (p_component_type             => l_component_type
10194       ,p_event_type_code            => l_event_type_code
10195       ,p_line_definition_owner_code => l_line_definition_owner_code
10196       ,p_line_definition_code       => l_line_definition_code
10197       ,p_accounting_line_code       => l_component_code
10198       ,p_accounting_line_type_code  => l_component_type_code
10199       ,p_accounting_line_appl_id    => l_component_appl_id
10200       ,p_amb_context_code           => l_amb_context_code
10201       ,p_entity_code                => l_entity_code
10202       ,p_event_class_code           => l_event_class_code);
10203    --
10204    -- set accounting class
10205    --
10206    xla_ae_lines_pkg.SetAcctClass(
10207            p_accounting_class_code  => 'ACCRUAL'
10208          , p_ae_header_id           => l_ae_header_id
10209          );
10210 
10211    --
10212    -- set rounding class
10213    --
10214    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10215                       'ACCRUAL';
10216 
10217    --
10218    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10219    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10220    --
10221    -- bulk performance
10222    --
10223    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10224 
10225    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10226       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10227 
10228    -- 4955764
10229    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10230       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10231 
10232    -- 4458381 Public Sector Enh
10233    
10234    --
10235    -- set accounting attributes for the line type
10236    --
10237    l_entered_amt_idx := 23;
10238    l_accted_amt_idx  := 28;
10239    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10240    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10241    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
10242    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10243    l_rec_acct_attrs.array_num_value(2)  := 
10244 xla_ae_sources_pkg.GetSystemSourceNum(
10245    p_source_code           => 'XLA_EVENT_APPL_ID'
10246  , p_source_type_code      => 'Y'
10247  , p_source_application_id =>  602
10248 );
10249    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10250    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
10251    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10252    l_rec_acct_attrs.array_char_value(4)  := 
10253 xla_ae_sources_pkg.GetSystemSourceChar(
10254    p_source_code           => 'XLA_ENTITY_CODE'
10255  , p_source_type_code      => 'Y'
10256  , p_source_application_id =>  602
10257 );
10258    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10259    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
10260    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10261    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
10262    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10263    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
10264    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10265    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
10266    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10267    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
10268    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10272    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10269    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
10270    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10271    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
10273    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
10274    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10275    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
10276    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10277    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
10278    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10279    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
10280    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10281    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
10282    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10283    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
10284    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10285    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
10286    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10287    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
10288    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10289    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
10290    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10291    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
10292    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10293    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
10294    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
10295    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
10296    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
10297    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
10298    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
10299    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
10300    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
10301    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
10302    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
10303    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
10304    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
10305    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
10306    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
10307    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
10308    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
10309    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
10310    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
10311    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
10312    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
10313    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
10314    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
10315    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
10316    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
10317    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
10318    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
10319    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
10320    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
10321    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
10322    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
10323    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
10324    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
10325    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
10326    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
10327    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
10328    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
10329    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
10330    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
10331    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
10332    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
10333    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
10334    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
10335    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
10336 
10337    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10338    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10339 
10340    ---------------------------------------------------------------------------------------------------------------
10341    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10342    ---------------------------------------------------------------------------------------------------------------
10343    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10344 
10345    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10346    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10347 
10348    IF xla_accounting_cache_pkg.GetValueChar
10349          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10350          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10354          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10351    AND l_bflow_method_code = 'PRIOR_ENTRY'
10352 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10353    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10355        )
10356    THEN
10357          xla_ae_lines_pkg.BflowUpgEntry
10358            (p_business_method_code    => l_bflow_method_code
10359            ,p_business_class_code     => l_bflow_class_code
10360            ,p_balance_type            => l_balance_type_code);
10361    ELSE
10362       NULL;
10363 -- No business flow processing for business flow method of NONE.
10364    END IF;
10365 
10366    --
10367    -- call analytical criteria
10368    --
10369    
10370    --
10371    -- call description
10372    --
10373    
10374 xla_ae_lines_pkg.SetLineDescription(
10375    p_ae_header_id => l_ae_header_id
10376   ,p_description  => Description_2 (
10377      p_application_id         => p_application_id
10378    , p_ae_header_id           => l_ae_header_id 
10379 , p_source_1 => p_source_1
10380    )
10381 );
10382 
10383 
10384    --
10385    -- call ADRs
10386    -- Bug 4922099
10387    --
10388    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10389         (NVL(l_actual_upg_option, 'N') = 'O') OR
10390         (NVL(l_enc_upg_option, 'N') = 'O')
10391       )
10392    THEN
10393    NULL;
10394    --
10395    --
10396    
10397   l_ccid := AcctDerRule_35(
10398            p_application_id           => p_application_id
10399          , p_ae_header_id             => l_ae_header_id 
10400 , p_source_25 => p_source_25
10401          , x_transaction_coa_id       => l_adr_transaction_coa_id
10402          , x_accounting_coa_id        => l_adr_accounting_coa_id
10403          , x_value_type_code          => l_adr_value_type_code
10404          , p_side                     => 'NA'
10405    );
10406 
10407    xla_ae_lines_pkg.set_ccid(
10408     p_code_combination_id          => l_ccid
10409   , p_value_type_code              => l_adr_value_type_code
10410   , p_transaction_coa_id           => l_adr_transaction_coa_id
10411   , p_accounting_coa_id            => l_adr_accounting_coa_id
10412   , p_adr_code                     => 'AP_INVOICE_DIST'
10413   , p_adr_type_code                => 'S'
10414   , p_component_type               => l_component_type
10415   , p_component_code               => l_component_code
10416   , p_component_type_code          => l_component_type_code
10417   , p_component_appl_id            => l_component_appl_id
10418   , p_amb_context_code             => l_amb_context_code
10419   , p_side                         => 'NA'
10420   );
10421 
10422 
10423    --
10424    --
10425    END IF;
10426    --
10427    -- Bug 4922099
10428    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10429           (NVL(l_enc_upg_option, 'N') = 'O')
10430         ) AND
10431         (l_bflow_method_code = 'PRIOR_ENTRY')
10432       )
10433    THEN
10434       IF
10435       --
10436       1 = 2
10437       --
10438       THEN
10439       xla_accounting_err_pkg.build_message
10440                                     (p_appli_s_name            => 'XLA'
10441                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10442                                     ,p_token_1                 => 'LINE_NUMBER'
10443                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10444                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10445                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10446                                                                              l_component_type
10447                                                                             ,l_component_code
10448                                                                             ,l_component_type_code
10449                                                                             ,l_component_appl_id
10450                                                                             ,l_amb_context_code
10451                                                                             ,l_entity_code
10452                                                                             ,l_event_class_code
10453                                                                            )
10454                                     ,p_token_3                 => 'OWNER'
10455                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10456                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10457                                                                           ,p_lookup_code    => l_component_type_code
10458                                                                          )
10459                                     ,p_token_4                 => 'PRODUCT_NAME'
10460                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10461                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10462                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10463                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10464                                     ,p_ae_header_id            =>  NULL
10465                                        );
10466 
10467         IF (C_LEVEL_ERROR>= g_log_level) THEN
10471                       ,p_module   => l_log_module);
10468                  trace
10469                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10470                       ,p_level    => C_LEVEL_ERROR
10472         END IF;
10473       END IF;
10474    END IF;
10475    --
10476    --
10477    ------------------------------------------------------------------------------------------------
10478    -- 4219869 Business Flow
10479    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10480    -- Prior Entry.  Currently, the following code is always generated.
10481    ------------------------------------------------------------------------------------------------
10482    XLA_AE_LINES_PKG.ValidateCurrentLine;
10483 
10484    ------------------------------------------------------------------------------------
10485    -- 4219869 Business Flow
10486    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10487    ------------------------------------------------------------------------------------
10488    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10489 
10490    ----------------------------------------------------------------------------------
10491    -- 4219869 Business Flow
10492    -- Update journal entry status -- Need to generate this within IF <condition>
10493    ----------------------------------------------------------------------------------
10494    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10495          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10496          ,p_balance_type_code => l_balance_type_code
10497          );
10498 
10499    -------------------------------------------------------------------------------------------
10500    -- 4262811 - Generate the Accrual Reversal lines
10501    -------------------------------------------------------------------------------------------
10502    BEGIN
10503       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10504                               (g_array_event(p_event_id).array_value_num('header_index'));
10505       IF l_acc_rev_flag IS NULL THEN
10506          l_acc_rev_flag := 'N';
10507       END IF;
10508    EXCEPTION
10509       WHEN OTHERS THEN
10510          l_acc_rev_flag := 'N';
10511    END;
10512    --
10513    IF (l_acc_rev_flag = 'Y') THEN
10514 
10515        -- 4645092  ------------------------------------------------------------------------------
10516        -- To allow MPA report to determine if it should generate report process
10517        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10518        ------------------------------------------------------------------------------------------
10519 
10520        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10521        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10522    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10523    -- call ADRs
10524    -- Bug 4922099
10525    --
10526    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10527         (NVL(l_actual_upg_option, 'N') = 'O') OR
10528         (NVL(l_enc_upg_option, 'N') = 'O')
10529       )
10530    THEN
10531    NULL;
10532    --
10533    --
10534    
10535   l_ccid := AcctDerRule_35(
10536            p_application_id           => p_application_id
10537          , p_ae_header_id             => l_ae_header_id 
10538 , p_source_25 => p_source_25
10539          , x_transaction_coa_id       => l_adr_transaction_coa_id
10540          , x_accounting_coa_id        => l_adr_accounting_coa_id
10541          , x_value_type_code          => l_adr_value_type_code
10542          , p_side                     => 'NA'
10543    );
10544 
10545    xla_ae_lines_pkg.set_ccid(
10546     p_code_combination_id          => l_ccid
10547   , p_value_type_code              => l_adr_value_type_code
10548   , p_transaction_coa_id           => l_adr_transaction_coa_id
10549   , p_accounting_coa_id            => l_adr_accounting_coa_id
10550   , p_adr_code                     => 'AP_INVOICE_DIST'
10551   , p_adr_type_code                => 'S'
10552   , p_component_type               => l_component_type
10553   , p_component_code               => l_component_code
10554   , p_component_type_code          => l_component_type_code
10555   , p_component_appl_id            => l_component_appl_id
10556   , p_amb_context_code             => l_amb_context_code
10557   , p_side                         => 'NA'
10558   );
10559 
10560 
10561    --
10562    --
10563    END IF;
10564 
10565        --
10566        -- Update the line information that should be overwritten
10567        --
10568        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10569                                          p_header_num   => 1);
10570        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10571 
10572        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10573 
10574        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10575           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10576        END IF;
10577 
10578       --
10579       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10580       --
10581       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10585           -- 4262811a Switch Sign
10582           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10583       ELSE
10584           ---------------------------------------------------------------------------------------------------
10586           ---------------------------------------------------------------------------------------------------
10587           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10588           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10589                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10590           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10591                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10592           -- 5132302
10593           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10594                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10595 
10596       END IF;
10597 
10598       -- 4955764
10599       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10600       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10601 
10602 
10603       XLA_AE_LINES_PKG.ValidateCurrentLine;
10604       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10605 
10606       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10607                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10608                ,p_balance_type_code => l_balance_type_code);
10609 
10610    END IF;
10611 
10612    -----------------------------------------------------------------------------------------
10613    -- 4262811 Multiperiod Accounting
10614    -----------------------------------------------------------------------------------------
10615      -- No MPA option is assigned.
10616 
10617 
10618 END IF;
10619 END IF;
10620 --
10621 
10622 --
10623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10624    trace
10625       (p_msg      => 'END of AcctLineType_59'
10626       ,p_level    => C_LEVEL_PROCEDURE
10627       ,p_module   => l_log_module);
10628 END IF;
10629 --
10630 EXCEPTION
10631   WHEN xla_exceptions_pkg.application_exception THEN
10632       RAISE;
10633   WHEN OTHERS THEN
10634        xla_exceptions_pkg.raise_message
10635            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_59');
10636 END AcctLineType_59;
10637 --
10638 
10639 ---------------------------------------
10640 --
10641 -- PRIVATE FUNCTION
10642 --         AcctLineType_60
10643 --
10644 ---------------------------------------
10645 PROCEDURE AcctLineType_60 (
10646   p_application_id        IN NUMBER
10647  ,p_event_id              IN NUMBER
10648  ,p_calculate_acctd_flag  IN VARCHAR2
10649  ,p_calculate_g_l_flag    IN VARCHAR2
10650  ,p_actual_flag           IN OUT VARCHAR2
10651  ,p_balance_type_code     OUT VARCHAR2
10652  ,p_gain_or_loss_ref      OUT VARCHAR2
10653  
10654 --Invoice Distribution Description
10655  , p_source_1            IN VARCHAR2
10656 --Automatic Offsets Value
10657  , p_source_10            IN VARCHAR2
10658  , p_source_10_meaning    IN VARCHAR2
10659 --Purchase Order Rate Variance Gain Account
10660  , p_source_15            IN NUMBER
10661 --Invoice Distribution Ledger Amount
10662  , p_source_16            IN NUMBER
10663 --Destination Type of the PO Distribution
10664  , p_source_17            IN VARCHAR2
10665  , p_source_17_meaning    IN VARCHAR2
10666 --Purchase Order Rate Variance Loss Account
10667  , p_source_18            IN NUMBER
10668 --Invoice Distribution Account
10669  , p_source_25            IN NUMBER
10670 --Invoice Distribution Type
10671  , p_source_28            IN VARCHAR2
10672  , p_source_28_meaning    IN VARCHAR2
10673 --Automatic Offsets Flag
10674  , p_source_43            IN VARCHAR2
10675  , p_source_43_meaning    IN VARCHAR2
10676 --Accounting Reversal Indicator
10677  , p_source_58            IN VARCHAR2
10678 --Distribution Link Type
10679  , p_source_60            IN VARCHAR2
10680 --Allocation to Main Distribution Identifier
10681  , p_source_62            IN NUMBER
10682 --Invoice Identifier
10683  , p_source_63            IN NUMBER
10684 --Invoice Distribution Identifier
10685  , p_source_69            IN NUMBER
10686 --Payables Encumbrance Upgrade Credit Account
10687  , p_source_70            IN NUMBER
10688 --Payables Encumbrance Upgrade Credit Amount
10689  , p_source_71            IN NUMBER
10690 --Invoice Currency Code
10691  , p_source_72            IN VARCHAR2
10692 --Payables Encumbrance Upgrade Credit Base Amount
10693  , p_source_73            IN NUMBER
10694 --Payables Encumbrance Upgrade Debit Account
10695  , p_source_74            IN NUMBER
10696 --Payables Encumbrance Upgrade Debit Amount
10697  , p_source_75            IN NUMBER
10698 --Payables Encumbrance Upgrade Debit Base Amount
10699  , p_source_76            IN NUMBER
10700 --Payables Encumbrance Upgrade Option
10701  , p_source_77            IN VARCHAR2
10702 --Deferred Accounting End Date
10703  , p_source_82            IN DATE
10704 --Deferred Accounting Option
10705  , p_source_83            IN VARCHAR2
10709  , p_source_85            IN VARCHAR2
10706 --Deferred Accounting Start Date
10707  , p_source_84            IN DATE
10708 --Override Accounted Amount Indicator
10710  , p_source_85_meaning    IN VARCHAR2
10711 --Invoice Supplier Identifier
10712  , p_source_86            IN NUMBER
10713 --Invoice Supplier Site Identifier
10714  , p_source_87            IN NUMBER
10715 --Third Party Type
10716  , p_source_88            IN VARCHAR2
10717 --Parent Reversal Identifier
10718  , p_source_89            IN NUMBER
10719 --Invoice Distribution Statistical Amount
10720  , p_source_90            IN NUMBER
10721 --Invoice Distribution Tax Line Identifier
10722  , p_source_91            IN NUMBER
10723 --Invoice Distribution Tax Distribution Identifier from Tax
10724  , p_source_92            IN NUMBER
10725 --Invoice Distribution Summary Tax Line Identifier
10726  , p_source_93            IN NUMBER
10727 --Payables Upgrade Credit Encumbrance Type Identifier
10728  , p_source_94            IN NUMBER
10729 --Payables Upgrade Debit Encumbrance Type Identifier
10730  , p_source_95            IN NUMBER
10731 --Business Flow Accounts Payable Application Identifier
10732  , p_source_96            IN NUMBER
10733 --Business Flow Invoice Distribution Type
10734  , p_source_97            IN VARCHAR2
10735 --Business Flow Invoice Entity Code
10736  , p_source_98            IN VARCHAR2
10737 --Business Flow Invoice Distribution Identifier
10738  , p_source_99            IN NUMBER
10739 --Business Flow Invoice Identifier
10740  , p_source_100            IN NUMBER
10741 )
10742 IS
10743 
10744 l_component_type              VARCHAR2(80);
10745 l_component_code              VARCHAR2(30);
10746 l_component_type_code         VARCHAR2(1);
10747 l_component_appl_id           INTEGER;
10748 l_amb_context_code            VARCHAR2(30);
10749 l_entity_code                 VARCHAR2(30);
10750 l_event_class_code            VARCHAR2(30);
10751 l_ae_header_id                NUMBER;
10752 l_event_type_code             VARCHAR2(30);
10753 l_line_definition_code        VARCHAR2(30);
10754 l_line_definition_owner_code  VARCHAR2(1);
10755 --
10756 -- adr variables
10757 l_segment                     VARCHAR2(30);
10758 l_ccid                        NUMBER;
10759 l_adr_transaction_coa_id      NUMBER;
10760 l_adr_accounting_coa_id       NUMBER;
10761 l_adr_flexfield_segment_code  VARCHAR2(30);
10762 l_adr_flex_value_set_id       NUMBER;
10763 l_adr_value_type_code         VARCHAR2(30);
10764 l_adr_value_combination_id    NUMBER;
10765 l_adr_value_segment_code      VARCHAR2(30);
10766 
10767 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10768 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10769 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10770 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10771 
10772 -- 4262811 Variables ------------------------------------------------------------------------------------------
10773 l_entered_amt_idx             NUMBER;
10774 l_accted_amt_idx              NUMBER;
10775 l_acc_rev_flag                VARCHAR2(1);
10776 l_accrual_line_num            NUMBER;
10777 l_tmp_amt                     NUMBER;
10778 l_acc_rev_natural_side_code   VARCHAR2(1);
10779 
10780 l_num_entries                 NUMBER;
10781 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10782 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10783 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10784 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10785 l_recog_line_1                NUMBER;
10786 l_recog_line_2                NUMBER;
10787 
10788 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10789 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10790 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10791 
10792 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10793 
10794 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10795 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10796 
10797 ---------------------------------------------------------------------------------------------------------------
10798 
10799 
10800 --
10801 -- bulk performance
10802 --
10803 l_balance_type_code           VARCHAR2(1);
10804 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10805 l_log_module                  VARCHAR2(240);
10806 
10807 --
10808 -- Upgrade strategy
10809 --
10810 l_actual_upg_option           VARCHAR2(1);
10811 l_enc_upg_option           VARCHAR2(1);
10812 
10813 --
10814 BEGIN
10815 --
10816 IF g_log_enabled THEN
10817       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
10818 END IF;
10819 --
10820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10821 
10822       trace
10823          (p_msg      => 'BEGIN of AcctLineType_60'
10824          ,p_level    => C_LEVEL_PROCEDURE
10825          ,p_module   => l_log_module);
10826 
10827 END IF;
10828 --
10829 l_component_type             := 'AMB_JLT';
10830 l_component_code             := 'AP_ALC_EX_RATE_VAR_CM';
10831 l_component_type_code        := 'S';
10832 l_component_appl_id          :=  200;
10833 l_amb_context_code           := 'DEFAULT';
10834 l_entity_code                := 'AP_INVOICES';
10835 l_event_class_code           := 'CREDIT MEMOS';
10839 --
10836 l_event_type_code            := 'CREDIT MEMOS_ALL';
10837 l_line_definition_owner_code := 'S';
10838 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
10840 l_balance_type_code          := 'A';
10841 l_segment                     := NULL;
10842 l_ccid                        := NULL;
10843 l_adr_transaction_coa_id      := NULL;
10844 l_adr_accounting_coa_id       := NULL;
10845 l_adr_flexfield_segment_code  := NULL;
10846 l_adr_flex_value_set_id       := NULL;
10847 l_adr_value_type_code         := NULL;
10848 l_adr_value_combination_id    := NULL;
10849 l_adr_value_segment_code      := NULL;
10850 
10851 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10852 l_bflow_class_code           := '';    -- 4219869 Business Flow
10853 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10854 l_budgetary_control_flag     := 'N';
10855 
10856 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10857 l_bflow_applied_to_amt       := NULL; -- 5132302
10858 l_entered_amt_idx            := NULL;          -- 4262811
10859 l_accted_amt_idx             := NULL;          -- 4262811
10860 l_acc_rev_flag               := NULL;          -- 4262811
10861 l_accrual_line_num           := NULL;          -- 4262811
10862 l_tmp_amt                    := NULL;          -- 4262811
10863 --
10864 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10865             (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
10866                return;
10867   END IF;
10868   
10869 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10870     l_balance_type_code <> 'B' THEN
10871 IF NVL(p_source_28,'
10872 ') =  'ACCRUAL'
10873  THEN 
10874 
10875    --
10876    XLA_AE_LINES_PKG.SetNewLine;
10877 
10878    p_balance_type_code          := l_balance_type_code;
10879    -- set the flag so later we will know whether the gain loss line needs to be created
10880    
10881    IF(l_balance_type_code = 'A' ) THEN
10882      p_actual_flag :='G';
10883    END IF;
10884 
10885    --
10886    -- bulk performance
10887    --
10888    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10889                                       p_header_num   => 0); -- 4262811
10890    --
10891    -- set accounting line options
10892    --
10893    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10894            p_natural_side_code          => 'G'
10895          , p_gain_or_loss_flag          => 'N'
10896          , p_gl_transfer_mode_code      => 'S'
10897          , p_acct_entry_type_code       => 'A'
10898          , p_switch_side_flag           => ''
10899          , p_merge_duplicate_code       => 'A'
10900          );
10901    --
10902    l_acc_rev_natural_side_code := 'C';  -- 4262811
10903    -- 
10904    --
10905    -- set accounting line type info
10906    --
10907    xla_ae_lines_pkg.SetAcctLineType
10908       (p_component_type             => l_component_type
10909       ,p_event_type_code            => l_event_type_code
10910       ,p_line_definition_owner_code => l_line_definition_owner_code
10911       ,p_line_definition_code       => l_line_definition_code
10912       ,p_accounting_line_code       => l_component_code
10913       ,p_accounting_line_type_code  => l_component_type_code
10914       ,p_accounting_line_appl_id    => l_component_appl_id
10915       ,p_amb_context_code           => l_amb_context_code
10916       ,p_entity_code                => l_entity_code
10917       ,p_event_class_code           => l_event_class_code);
10918    --
10919    -- set accounting class
10920    --
10921    xla_ae_lines_pkg.SetAcctClass(
10922            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10923          , p_ae_header_id           => l_ae_header_id
10924          );
10925 
10926    --
10927    -- set rounding class
10928    --
10929    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10930                       'EXCHANGE_RATE_VARIANCE';
10931 
10932    --
10933    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10934    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10935    --
10936    -- bulk performance
10937    --
10938    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10939 
10940    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10941       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10942 
10943    -- 4955764
10944    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10945       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10946 
10947    -- 4458381 Public Sector Enh
10948    
10949    --
10950    -- set accounting attributes for the line type
10951    --
10952    l_entered_amt_idx := NULL;
10953    l_accted_amt_idx  := 23;
10954    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10955    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10956    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
10960    p_source_code           => 'XLA_EVENT_APPL_ID'
10957    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10958    l_rec_acct_attrs.array_num_value(2)  := 
10959 xla_ae_sources_pkg.GetSystemSourceNum(
10961  , p_source_type_code      => 'Y'
10962  , p_source_application_id =>  602
10963 );
10964    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10965    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
10966    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10967    l_rec_acct_attrs.array_char_value(4)  := 
10968 xla_ae_sources_pkg.GetSystemSourceChar(
10969    p_source_code           => 'XLA_ENTITY_CODE'
10970  , p_source_type_code      => 'Y'
10971  , p_source_application_id =>  602
10972 );
10973    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10974    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
10975    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10976    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
10977    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10978    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
10979    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10980    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
10981    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10982    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
10983    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10984    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
10985    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10986    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
10987    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10988    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
10989    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10990    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
10991    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10992    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
10993    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10994    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
10995    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10996    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
10997    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10998    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
10999    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11000    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
11001    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11002    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
11003    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11004    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
11005    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11006    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
11007    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11008    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
11009    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
11010    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
11011    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
11012    l_rec_acct_attrs.array_date_value(24)  := p_source_82;
11013    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
11014    l_rec_acct_attrs.array_char_value(25)  := p_source_83;
11015    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
11016    l_rec_acct_attrs.array_date_value(26)  := p_source_84;
11017    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
11018    l_rec_acct_attrs.array_char_value(27)  := p_source_85;
11019    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
11020    l_rec_acct_attrs.array_num_value(28)  := p_source_86;
11021    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
11022    l_rec_acct_attrs.array_num_value(29)  := p_source_87;
11023    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
11024    l_rec_acct_attrs.array_char_value(30)  := p_source_88;
11025    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
11026    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_89);
11027    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
11028    l_rec_acct_attrs.array_char_value(32)  := p_source_60;
11029    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
11030    l_rec_acct_attrs.array_num_value(33)  := p_source_90;
11031    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
11032    l_rec_acct_attrs.array_num_value(34)  := p_source_91;
11033    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
11034    l_rec_acct_attrs.array_num_value(35)  := p_source_92;
11035    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
11036    l_rec_acct_attrs.array_num_value(36)  := p_source_93;
11037    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
11038    l_rec_acct_attrs.array_num_value(37)  := p_source_94;
11039    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
11040    l_rec_acct_attrs.array_num_value(38)  := p_source_95;
11041 
11042    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11043    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11047    ---------------------------------------------------------------------------------------------------------------
11044 
11045    ---------------------------------------------------------------------------------------------------------------
11046    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11048    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11049 
11050    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11051    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11052 
11053    IF xla_accounting_cache_pkg.GetValueChar
11054          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11055          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11056    AND l_bflow_method_code = 'PRIOR_ENTRY'
11057 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11058    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11059          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11060        )
11061    THEN
11062          xla_ae_lines_pkg.BflowUpgEntry
11063            (p_business_method_code    => l_bflow_method_code
11064            ,p_business_class_code     => l_bflow_class_code
11065            ,p_balance_type            => l_balance_type_code);
11066    ELSE
11067       NULL;
11068 -- No business flow processing for business flow method of NONE.
11069    END IF;
11070 
11071    --
11072    -- call analytical criteria
11073    --
11074    
11075    --
11076    -- call description
11077    --
11078    
11079 xla_ae_lines_pkg.SetLineDescription(
11080    p_ae_header_id => l_ae_header_id
11081   ,p_description  => Description_2 (
11082      p_application_id         => p_application_id
11083    , p_ae_header_id           => l_ae_header_id 
11084 , p_source_1 => p_source_1
11085    )
11086 );
11087 
11088 
11089    --
11090    -- call ADRs
11091    -- Bug 4922099
11092    --
11093    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11094         (NVL(l_actual_upg_option, 'N') = 'O') OR
11095         (NVL(l_enc_upg_option, 'N') = 'O')
11096       )
11097    THEN
11098    NULL;
11099    --
11100    --
11101    
11102   l_ccid := AcctDerRule_32(
11103            p_application_id           => p_application_id
11104          , p_ae_header_id             => l_ae_header_id 
11105 , p_source_10 => p_source_10
11106 , p_source_10_meaning => p_source_10_meaning
11107 , p_source_15 => p_source_15
11108 , p_source_16 => p_source_16
11109 , p_source_17 => p_source_17
11110 , p_source_17_meaning => p_source_17_meaning
11111 , p_source_18 => p_source_18
11112 , p_source_25 => p_source_25
11113 , p_source_43 => p_source_43
11114 , p_source_43_meaning => p_source_43_meaning
11115          , x_transaction_coa_id       => l_adr_transaction_coa_id
11116          , x_accounting_coa_id        => l_adr_accounting_coa_id
11117          , x_value_type_code          => l_adr_value_type_code
11118          , p_side                     => 'ALL'
11119    );
11120 
11121    xla_ae_lines_pkg.set_ccid(
11122     p_code_combination_id          => l_ccid
11123   , p_value_type_code              => l_adr_value_type_code
11124   , p_transaction_coa_id           => l_adr_transaction_coa_id
11125   , p_accounting_coa_id            => l_adr_accounting_coa_id
11126   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11127   , p_adr_type_code                => 'S'
11128   , p_component_type               => l_component_type
11129   , p_component_code               => l_component_code
11130   , p_component_type_code          => l_component_type_code
11131   , p_component_appl_id            => l_component_appl_id
11132   , p_amb_context_code             => l_amb_context_code
11133   , p_side                         => 'ALL'
11134   );
11135 
11136 
11137    l_segment := AcctDerRule_9(
11138            p_application_id           => p_application_id
11139          , p_ae_header_id             => l_ae_header_id 
11140 , p_source_10 => p_source_10
11141 , p_source_10_meaning => p_source_10_meaning
11142 , p_source_15 => p_source_15
11143 , p_source_17 => p_source_17
11144 , p_source_17_meaning => p_source_17_meaning
11145          , x_transaction_coa_id       => l_adr_transaction_coa_id
11146          , x_accounting_coa_id        => l_adr_accounting_coa_id
11147          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11148          , x_flex_value_set_id        => l_adr_flex_value_set_id
11149          , x_value_type_code          => l_adr_value_type_code
11150          , x_value_combination_id     => l_adr_value_combination_id
11151          , x_value_segment_code       => l_adr_value_segment_code
11152          , p_side                     => 'DEBIT'
11153          , p_override_seg_flag        => 'Y'
11154    );
11155 
11156    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11157 
11158       xla_ae_lines_pkg.set_segment(
11159           p_to_segment_code         => 'GL_ACCOUNT'
11160         , p_segment_value           => l_segment
11161         , p_from_segment_code       => l_adr_value_segment_code
11162         , p_from_combination_id     => l_adr_value_combination_id
11163         , p_value_type_code         => l_adr_value_type_code
11164         , p_transaction_coa_id      => l_adr_transaction_coa_id
11165         , p_accounting_coa_id       => l_adr_accounting_coa_id
11166         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11167         , p_flex_value_set_id       => l_adr_flex_value_set_id
11171         , p_component_code          => l_component_code
11168         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11169         , p_adr_type_code           => 'S'
11170         , p_component_type          => l_component_type
11172         , p_component_type_code     => l_component_type_code
11173         , p_component_appl_id       => l_component_appl_id
11174         , p_amb_context_code        => l_amb_context_code
11175         , p_entity_code             => 'AP_INVOICES'
11176         , p_event_class_code        => 'CREDIT MEMOS'
11177         , p_side                    => 'DEBIT'
11178         );
11179 
11180   END IF;
11181 
11182    l_segment := AcctDerRule_10(
11183            p_application_id           => p_application_id
11184          , p_ae_header_id             => l_ae_header_id 
11185 , p_source_10 => p_source_10
11186 , p_source_10_meaning => p_source_10_meaning
11187 , p_source_17 => p_source_17
11188 , p_source_17_meaning => p_source_17_meaning
11189 , p_source_18 => p_source_18
11190          , x_transaction_coa_id       => l_adr_transaction_coa_id
11191          , x_accounting_coa_id        => l_adr_accounting_coa_id
11192          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11193          , x_flex_value_set_id        => l_adr_flex_value_set_id
11194          , x_value_type_code          => l_adr_value_type_code
11195          , x_value_combination_id     => l_adr_value_combination_id
11196          , x_value_segment_code       => l_adr_value_segment_code
11197          , p_side                     => 'CREDIT'
11198          , p_override_seg_flag        => 'Y'
11199    );
11200 
11201    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11202 
11203       xla_ae_lines_pkg.set_segment(
11204           p_to_segment_code         => 'GL_ACCOUNT'
11205         , p_segment_value           => l_segment
11206         , p_from_segment_code       => l_adr_value_segment_code
11207         , p_from_combination_id     => l_adr_value_combination_id
11208         , p_value_type_code         => l_adr_value_type_code
11209         , p_transaction_coa_id      => l_adr_transaction_coa_id
11210         , p_accounting_coa_id       => l_adr_accounting_coa_id
11211         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11212         , p_flex_value_set_id       => l_adr_flex_value_set_id
11213         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11214         , p_adr_type_code           => 'S'
11215         , p_component_type          => l_component_type
11216         , p_component_code          => l_component_code
11217         , p_component_type_code     => l_component_type_code
11218         , p_component_appl_id       => l_component_appl_id
11219         , p_amb_context_code        => l_amb_context_code
11220         , p_entity_code             => 'AP_INVOICES'
11221         , p_event_class_code        => 'CREDIT MEMOS'
11222         , p_side                    => 'CREDIT'
11223         );
11224 
11225   END IF;
11226 
11227    l_segment := AcctDerRule_24(
11228            p_application_id           => p_application_id
11229          , p_ae_header_id             => l_ae_header_id 
11230 , p_source_10 => p_source_10
11231 , p_source_10_meaning => p_source_10_meaning
11232 , p_source_17 => p_source_17
11233 , p_source_17_meaning => p_source_17_meaning
11234 , p_source_25 => p_source_25
11235          , x_transaction_coa_id       => l_adr_transaction_coa_id
11236          , x_accounting_coa_id        => l_adr_accounting_coa_id
11237          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11238          , x_flex_value_set_id        => l_adr_flex_value_set_id
11239          , x_value_type_code          => l_adr_value_type_code
11240          , x_value_combination_id     => l_adr_value_combination_id
11241          , x_value_segment_code       => l_adr_value_segment_code
11242          , p_side                     => 'ALL'
11243          , p_override_seg_flag        => 'Y'
11244    );
11245 
11246    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11247 
11248       xla_ae_lines_pkg.set_segment(
11249           p_to_segment_code         => 'GL_BALANCING'
11250         , p_segment_value           => l_segment
11251         , p_from_segment_code       => l_adr_value_segment_code
11252         , p_from_combination_id     => l_adr_value_combination_id
11253         , p_value_type_code         => l_adr_value_type_code
11254         , p_transaction_coa_id      => l_adr_transaction_coa_id
11255         , p_accounting_coa_id       => l_adr_accounting_coa_id
11256         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11257         , p_flex_value_set_id       => l_adr_flex_value_set_id
11258         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11259         , p_adr_type_code           => 'S'
11260         , p_component_type          => l_component_type
11261         , p_component_code          => l_component_code
11262         , p_component_type_code     => l_component_type_code
11263         , p_component_appl_id       => l_component_appl_id
11264         , p_amb_context_code        => l_amb_context_code
11265         , p_entity_code             => 'AP_INVOICES'
11266         , p_event_class_code        => 'CREDIT MEMOS'
11267         , p_side                    => 'ALL'
11268         );
11269 
11270   END IF;
11271 
11272    --
11273    --
11274    END IF;
11275    --
11276    -- Bug 4922099
11277    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11278           (NVL(l_enc_upg_option, 'N') = 'O')
11279         ) AND
11280         (l_bflow_method_code = 'PRIOR_ENTRY')
11281       )
11282    THEN
11283       IF
11284       --
11285       1 = 2
11289                                     (p_appli_s_name            => 'XLA'
11286       --
11287       THEN
11288       xla_accounting_err_pkg.build_message
11290                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11291                                     ,p_token_1                 => 'LINE_NUMBER'
11292                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11293                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11294                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11295                                                                              l_component_type
11296                                                                             ,l_component_code
11297                                                                             ,l_component_type_code
11298                                                                             ,l_component_appl_id
11299                                                                             ,l_amb_context_code
11300                                                                             ,l_entity_code
11301                                                                             ,l_event_class_code
11302                                                                            )
11303                                     ,p_token_3                 => 'OWNER'
11304                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11305                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11306                                                                           ,p_lookup_code    => l_component_type_code
11307                                                                          )
11308                                     ,p_token_4                 => 'PRODUCT_NAME'
11309                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11310                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11311                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11312                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11313                                     ,p_ae_header_id            =>  NULL
11314                                        );
11315 
11316         IF (C_LEVEL_ERROR>= g_log_level) THEN
11317                  trace
11318                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11319                       ,p_level    => C_LEVEL_ERROR
11320                       ,p_module   => l_log_module);
11321         END IF;
11322       END IF;
11323    END IF;
11324    --
11325    --
11326    ------------------------------------------------------------------------------------------------
11327    -- 4219869 Business Flow
11328    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11329    -- Prior Entry.  Currently, the following code is always generated.
11330    ------------------------------------------------------------------------------------------------
11331    XLA_AE_LINES_PKG.ValidateCurrentLine;
11332 
11333    ------------------------------------------------------------------------------------
11334    -- 4219869 Business Flow
11335    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11336    ------------------------------------------------------------------------------------
11337    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11338 
11339    ----------------------------------------------------------------------------------
11340    -- 4219869 Business Flow
11341    -- Update journal entry status -- Need to generate this within IF <condition>
11342    ----------------------------------------------------------------------------------
11343    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11344          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11345          ,p_balance_type_code => l_balance_type_code
11346          );
11347 
11348    -------------------------------------------------------------------------------------------
11349    -- 4262811 - Generate the Accrual Reversal lines
11350    -------------------------------------------------------------------------------------------
11351    BEGIN
11352       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11353                               (g_array_event(p_event_id).array_value_num('header_index'));
11354       IF l_acc_rev_flag IS NULL THEN
11355          l_acc_rev_flag := 'N';
11356       END IF;
11357    EXCEPTION
11358       WHEN OTHERS THEN
11359          l_acc_rev_flag := 'N';
11360    END;
11361    --
11362    IF (l_acc_rev_flag = 'Y') THEN
11363 
11364        -- 4645092  ------------------------------------------------------------------------------
11365        -- To allow MPA report to determine if it should generate report process
11366        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11367        ------------------------------------------------------------------------------------------
11368 
11369        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11370        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11371    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11372    -- call ADRs
11373    -- Bug 4922099
11374    --
11378       )
11375    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11376         (NVL(l_actual_upg_option, 'N') = 'O') OR
11377         (NVL(l_enc_upg_option, 'N') = 'O')
11379    THEN
11380    NULL;
11381    --
11382    --
11383    
11384   l_ccid := AcctDerRule_32(
11385            p_application_id           => p_application_id
11386          , p_ae_header_id             => l_ae_header_id 
11387 , p_source_10 => p_source_10
11388 , p_source_10_meaning => p_source_10_meaning
11389 , p_source_15 => p_source_15
11390 , p_source_16 => p_source_16
11391 , p_source_17 => p_source_17
11392 , p_source_17_meaning => p_source_17_meaning
11393 , p_source_18 => p_source_18
11394 , p_source_25 => p_source_25
11395 , p_source_43 => p_source_43
11396 , p_source_43_meaning => p_source_43_meaning
11397          , x_transaction_coa_id       => l_adr_transaction_coa_id
11398          , x_accounting_coa_id        => l_adr_accounting_coa_id
11399          , x_value_type_code          => l_adr_value_type_code
11400          , p_side                     => 'ALL'
11401    );
11402 
11403    xla_ae_lines_pkg.set_ccid(
11404     p_code_combination_id          => l_ccid
11405   , p_value_type_code              => l_adr_value_type_code
11406   , p_transaction_coa_id           => l_adr_transaction_coa_id
11407   , p_accounting_coa_id            => l_adr_accounting_coa_id
11408   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11409   , p_adr_type_code                => 'S'
11410   , p_component_type               => l_component_type
11411   , p_component_code               => l_component_code
11412   , p_component_type_code          => l_component_type_code
11413   , p_component_appl_id            => l_component_appl_id
11414   , p_amb_context_code             => l_amb_context_code
11415   , p_side                         => 'ALL'
11416   );
11417 
11418 
11419    l_segment := AcctDerRule_9(
11420            p_application_id           => p_application_id
11421          , p_ae_header_id             => l_ae_header_id 
11422 , p_source_10 => p_source_10
11423 , p_source_10_meaning => p_source_10_meaning
11424 , p_source_15 => p_source_15
11425 , p_source_17 => p_source_17
11426 , p_source_17_meaning => p_source_17_meaning
11427          , x_transaction_coa_id       => l_adr_transaction_coa_id
11428          , x_accounting_coa_id        => l_adr_accounting_coa_id
11429          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11430          , x_flex_value_set_id        => l_adr_flex_value_set_id
11431          , x_value_type_code          => l_adr_value_type_code
11432          , x_value_combination_id     => l_adr_value_combination_id
11433          , x_value_segment_code       => l_adr_value_segment_code
11434          , p_side                     => 'DEBIT'
11435          , p_override_seg_flag        => 'Y'
11436    );
11437 
11438    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11439 
11440       xla_ae_lines_pkg.set_segment(
11441           p_to_segment_code         => 'GL_ACCOUNT'
11442         , p_segment_value           => l_segment
11443         , p_from_segment_code       => l_adr_value_segment_code
11444         , p_from_combination_id     => l_adr_value_combination_id
11445         , p_value_type_code         => l_adr_value_type_code
11446         , p_transaction_coa_id      => l_adr_transaction_coa_id
11447         , p_accounting_coa_id       => l_adr_accounting_coa_id
11448         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11449         , p_flex_value_set_id       => l_adr_flex_value_set_id
11450         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11451         , p_adr_type_code           => 'S'
11452         , p_component_type          => l_component_type
11453         , p_component_code          => l_component_code
11454         , p_component_type_code     => l_component_type_code
11455         , p_component_appl_id       => l_component_appl_id
11456         , p_amb_context_code        => l_amb_context_code
11457         , p_entity_code             => 'AP_INVOICES'
11458         , p_event_class_code        => 'CREDIT MEMOS'
11459         , p_side                    => 'DEBIT'
11460         );
11461 
11462   END IF;
11463 
11464    l_segment := AcctDerRule_10(
11465            p_application_id           => p_application_id
11466          , p_ae_header_id             => l_ae_header_id 
11467 , p_source_10 => p_source_10
11468 , p_source_10_meaning => p_source_10_meaning
11469 , p_source_17 => p_source_17
11470 , p_source_17_meaning => p_source_17_meaning
11471 , p_source_18 => p_source_18
11472          , x_transaction_coa_id       => l_adr_transaction_coa_id
11473          , x_accounting_coa_id        => l_adr_accounting_coa_id
11474          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11475          , x_flex_value_set_id        => l_adr_flex_value_set_id
11476          , x_value_type_code          => l_adr_value_type_code
11477          , x_value_combination_id     => l_adr_value_combination_id
11478          , x_value_segment_code       => l_adr_value_segment_code
11479          , p_side                     => 'CREDIT'
11480          , p_override_seg_flag        => 'Y'
11481    );
11482 
11483    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11484 
11485       xla_ae_lines_pkg.set_segment(
11486           p_to_segment_code         => 'GL_ACCOUNT'
11487         , p_segment_value           => l_segment
11488         , p_from_segment_code       => l_adr_value_segment_code
11489         , p_from_combination_id     => l_adr_value_combination_id
11493         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11490         , p_value_type_code         => l_adr_value_type_code
11491         , p_transaction_coa_id      => l_adr_transaction_coa_id
11492         , p_accounting_coa_id       => l_adr_accounting_coa_id
11494         , p_flex_value_set_id       => l_adr_flex_value_set_id
11495         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11496         , p_adr_type_code           => 'S'
11497         , p_component_type          => l_component_type
11498         , p_component_code          => l_component_code
11499         , p_component_type_code     => l_component_type_code
11500         , p_component_appl_id       => l_component_appl_id
11501         , p_amb_context_code        => l_amb_context_code
11502         , p_entity_code             => 'AP_INVOICES'
11503         , p_event_class_code        => 'CREDIT MEMOS'
11504         , p_side                    => 'CREDIT'
11505         );
11506 
11507   END IF;
11508 
11509    l_segment := AcctDerRule_24(
11510            p_application_id           => p_application_id
11511          , p_ae_header_id             => l_ae_header_id 
11512 , p_source_10 => p_source_10
11513 , p_source_10_meaning => p_source_10_meaning
11514 , p_source_17 => p_source_17
11515 , p_source_17_meaning => p_source_17_meaning
11516 , p_source_25 => p_source_25
11517          , x_transaction_coa_id       => l_adr_transaction_coa_id
11518          , x_accounting_coa_id        => l_adr_accounting_coa_id
11519          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11520          , x_flex_value_set_id        => l_adr_flex_value_set_id
11521          , x_value_type_code          => l_adr_value_type_code
11522          , x_value_combination_id     => l_adr_value_combination_id
11523          , x_value_segment_code       => l_adr_value_segment_code
11524          , p_side                     => 'ALL'
11525          , p_override_seg_flag        => 'Y'
11526    );
11527 
11528    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11529 
11530       xla_ae_lines_pkg.set_segment(
11531           p_to_segment_code         => 'GL_BALANCING'
11532         , p_segment_value           => l_segment
11533         , p_from_segment_code       => l_adr_value_segment_code
11534         , p_from_combination_id     => l_adr_value_combination_id
11535         , p_value_type_code         => l_adr_value_type_code
11536         , p_transaction_coa_id      => l_adr_transaction_coa_id
11537         , p_accounting_coa_id       => l_adr_accounting_coa_id
11538         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11539         , p_flex_value_set_id       => l_adr_flex_value_set_id
11540         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11541         , p_adr_type_code           => 'S'
11542         , p_component_type          => l_component_type
11543         , p_component_code          => l_component_code
11544         , p_component_type_code     => l_component_type_code
11545         , p_component_appl_id       => l_component_appl_id
11546         , p_amb_context_code        => l_amb_context_code
11547         , p_entity_code             => 'AP_INVOICES'
11548         , p_event_class_code        => 'CREDIT MEMOS'
11549         , p_side                    => 'ALL'
11550         );
11551 
11552   END IF;
11553 
11554    --
11555    --
11556    END IF;
11557 
11558        --
11559        -- Update the line information that should be overwritten
11560        --
11561        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11562                                          p_header_num   => 1);
11563        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11564 
11565        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11566 
11567        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11568           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11569        END IF;
11570 
11571       --
11572       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11573       --
11574       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11575           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11576       ELSE
11577           ---------------------------------------------------------------------------------------------------
11578           -- 4262811a Switch Sign
11579           ---------------------------------------------------------------------------------------------------
11580           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11581           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11582                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11583           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11584                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11585           -- 5132302
11586           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11587                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11588 
11589       END IF;
11590 
11591       -- 4955764
11592       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11596       XLA_AE_LINES_PKG.ValidateCurrentLine;
11593       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11594 
11595 
11597       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11598 
11599       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11600                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11601                ,p_balance_type_code => l_balance_type_code);
11602 
11603    END IF;
11604 
11605    -----------------------------------------------------------------------------------------
11606    -- 4262811 Multiperiod Accounting
11607    -----------------------------------------------------------------------------------------
11608      -- No MPA option is assigned.
11609 
11610 
11611 END IF;
11612 END IF;
11613 --
11614 
11615 --
11616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11617    trace
11618       (p_msg      => 'END of AcctLineType_60'
11619       ,p_level    => C_LEVEL_PROCEDURE
11620       ,p_module   => l_log_module);
11621 END IF;
11622 --
11623 EXCEPTION
11624   WHEN xla_exceptions_pkg.application_exception THEN
11625       RAISE;
11626   WHEN OTHERS THEN
11627        xla_exceptions_pkg.raise_message
11628            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_60');
11629 END AcctLineType_60;
11630 --
11631 
11632 ---------------------------------------
11633 --
11634 -- PRIVATE FUNCTION
11635 --         AcctLineType_61
11636 --
11637 ---------------------------------------
11638 PROCEDURE AcctLineType_61 (
11639   p_application_id        IN NUMBER
11640  ,p_event_id              IN NUMBER
11641  ,p_calculate_acctd_flag  IN VARCHAR2
11642  ,p_calculate_g_l_flag    IN VARCHAR2
11643  ,p_actual_flag           IN OUT VARCHAR2
11644  ,p_balance_type_code     OUT VARCHAR2
11645  ,p_gain_or_loss_ref      OUT VARCHAR2
11646  
11647 --Invoice Distribution Description
11648  , p_source_1            IN VARCHAR2
11649 --Automatic Offsets Value
11650  , p_source_10            IN VARCHAR2
11651  , p_source_10_meaning    IN VARCHAR2
11652 --Purchase Order Rate Variance Gain Account
11653  , p_source_15            IN NUMBER
11654 --Invoice Distribution Ledger Amount
11655  , p_source_16            IN NUMBER
11656 --Destination Type of the PO Distribution
11657  , p_source_17            IN VARCHAR2
11658  , p_source_17_meaning    IN VARCHAR2
11659 --Purchase Order Rate Variance Loss Account
11660  , p_source_18            IN NUMBER
11661 --Invoice Distribution Account
11662  , p_source_25            IN NUMBER
11663 --Invoice Distribution Type
11664  , p_source_28            IN VARCHAR2
11665  , p_source_28_meaning    IN VARCHAR2
11666 --Automatic Offsets Flag
11667  , p_source_43            IN VARCHAR2
11668  , p_source_43_meaning    IN VARCHAR2
11669 --Accounting Reversal Indicator
11670  , p_source_58            IN VARCHAR2
11671 --Distribution Link Type
11672  , p_source_60            IN VARCHAR2
11673 --Allocation to Main Distribution Identifier
11674  , p_source_62            IN NUMBER
11675 --Invoice Identifier
11676  , p_source_63            IN NUMBER
11677 --Invoice Distribution Identifier
11678  , p_source_69            IN NUMBER
11679 --Payables Encumbrance Upgrade Credit Account
11680  , p_source_70            IN NUMBER
11681 --Payables Encumbrance Upgrade Credit Amount
11682  , p_source_71            IN NUMBER
11683 --Invoice Currency Code
11684  , p_source_72            IN VARCHAR2
11685 --Payables Encumbrance Upgrade Credit Base Amount
11686  , p_source_73            IN NUMBER
11687 --Payables Encumbrance Upgrade Debit Account
11688  , p_source_74            IN NUMBER
11689 --Payables Encumbrance Upgrade Debit Amount
11690  , p_source_75            IN NUMBER
11691 --Payables Encumbrance Upgrade Debit Base Amount
11692  , p_source_76            IN NUMBER
11693 --Payables Encumbrance Upgrade Option
11694  , p_source_77            IN VARCHAR2
11695 --Deferred Accounting End Date
11696  , p_source_82            IN DATE
11697 --Deferred Accounting Option
11698  , p_source_83            IN VARCHAR2
11699 --Deferred Accounting Start Date
11700  , p_source_84            IN DATE
11701 --Override Accounted Amount Indicator
11702  , p_source_85            IN VARCHAR2
11703  , p_source_85_meaning    IN VARCHAR2
11704 --Invoice Supplier Identifier
11705  , p_source_86            IN NUMBER
11706 --Invoice Supplier Site Identifier
11707  , p_source_87            IN NUMBER
11708 --Third Party Type
11709  , p_source_88            IN VARCHAR2
11710 --Parent Reversal Identifier
11711  , p_source_89            IN NUMBER
11712 --Invoice Distribution Tax Line Identifier
11713  , p_source_91            IN NUMBER
11714 --Invoice Distribution Tax Distribution Identifier from Tax
11715  , p_source_92            IN NUMBER
11716 --Invoice Distribution Summary Tax Line Identifier
11717  , p_source_93            IN NUMBER
11718 --Payables Upgrade Credit Encumbrance Type Identifier
11719  , p_source_94            IN NUMBER
11720 --Payables Upgrade Debit Encumbrance Type Identifier
11721  , p_source_95            IN NUMBER
11722 --Business Flow Accounts Payable Application Identifier
11723  , p_source_96            IN NUMBER
11724 --Business Flow Invoice Distribution Type
11725  , p_source_97            IN VARCHAR2
11726 --Business Flow Invoice Entity Code
11727  , p_source_98            IN VARCHAR2
11731  , p_source_100            IN NUMBER
11728 --Business Flow Invoice Distribution Identifier
11729  , p_source_99            IN NUMBER
11730 --Business Flow Invoice Identifier
11732 )
11733 IS
11734 
11735 l_component_type              VARCHAR2(80);
11736 l_component_code              VARCHAR2(30);
11737 l_component_type_code         VARCHAR2(1);
11738 l_component_appl_id           INTEGER;
11739 l_amb_context_code            VARCHAR2(30);
11740 l_entity_code                 VARCHAR2(30);
11741 l_event_class_code            VARCHAR2(30);
11742 l_ae_header_id                NUMBER;
11743 l_event_type_code             VARCHAR2(30);
11744 l_line_definition_code        VARCHAR2(30);
11745 l_line_definition_owner_code  VARCHAR2(1);
11746 --
11747 -- adr variables
11748 l_segment                     VARCHAR2(30);
11749 l_ccid                        NUMBER;
11750 l_adr_transaction_coa_id      NUMBER;
11751 l_adr_accounting_coa_id       NUMBER;
11752 l_adr_flexfield_segment_code  VARCHAR2(30);
11753 l_adr_flex_value_set_id       NUMBER;
11754 l_adr_value_type_code         VARCHAR2(30);
11755 l_adr_value_combination_id    NUMBER;
11756 l_adr_value_segment_code      VARCHAR2(30);
11757 
11758 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11759 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11760 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11761 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11762 
11763 -- 4262811 Variables ------------------------------------------------------------------------------------------
11764 l_entered_amt_idx             NUMBER;
11765 l_accted_amt_idx              NUMBER;
11766 l_acc_rev_flag                VARCHAR2(1);
11767 l_accrual_line_num            NUMBER;
11768 l_tmp_amt                     NUMBER;
11769 l_acc_rev_natural_side_code   VARCHAR2(1);
11770 
11771 l_num_entries                 NUMBER;
11772 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11773 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11774 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11775 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11776 l_recog_line_1                NUMBER;
11777 l_recog_line_2                NUMBER;
11778 
11779 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11780 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11781 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11782 
11783 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11784 
11785 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11786 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11787 
11788 ---------------------------------------------------------------------------------------------------------------
11789 
11790 
11791 --
11792 -- bulk performance
11793 --
11794 l_balance_type_code           VARCHAR2(1);
11795 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11796 l_log_module                  VARCHAR2(240);
11797 
11798 --
11799 -- Upgrade strategy
11800 --
11801 l_actual_upg_option           VARCHAR2(1);
11802 l_enc_upg_option           VARCHAR2(1);
11803 
11804 --
11805 BEGIN
11806 --
11807 IF g_log_enabled THEN
11808       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
11809 END IF;
11810 --
11811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11812 
11813       trace
11814          (p_msg      => 'BEGIN of AcctLineType_61'
11815          ,p_level    => C_LEVEL_PROCEDURE
11816          ,p_module   => l_log_module);
11817 
11818 END IF;
11819 --
11820 l_component_type             := 'AMB_JLT';
11821 l_component_code             := 'AP_ALC_EX_RATE_VAR_DM';
11822 l_component_type_code        := 'S';
11823 l_component_appl_id          :=  200;
11824 l_amb_context_code           := 'DEFAULT';
11825 l_entity_code                := 'AP_INVOICES';
11826 l_event_class_code           := 'DEBIT MEMOS';
11827 l_event_type_code            := 'DEBIT MEMOS_ALL';
11828 l_line_definition_owner_code := 'S';
11829 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
11830 --
11831 l_balance_type_code          := 'A';
11832 l_segment                     := NULL;
11833 l_ccid                        := NULL;
11834 l_adr_transaction_coa_id      := NULL;
11835 l_adr_accounting_coa_id       := NULL;
11836 l_adr_flexfield_segment_code  := NULL;
11837 l_adr_flex_value_set_id       := NULL;
11838 l_adr_value_type_code         := NULL;
11839 l_adr_value_combination_id    := NULL;
11840 l_adr_value_segment_code      := NULL;
11841 
11842 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11843 l_bflow_class_code           := '';    -- 4219869 Business Flow
11844 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11845 l_budgetary_control_flag     := 'N';
11846 
11847 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11848 l_bflow_applied_to_amt       := NULL; -- 5132302
11849 l_entered_amt_idx            := NULL;          -- 4262811
11850 l_accted_amt_idx             := NULL;          -- 4262811
11851 l_acc_rev_flag               := NULL;          -- 4262811
11852 l_accrual_line_num           := NULL;          -- 4262811
11856             (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
11853 l_tmp_amt                    := NULL;          -- 4262811
11854 --
11855 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11857                return;
11858   END IF;
11859   
11860 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11861     l_balance_type_code <> 'B' THEN
11862 IF NVL(p_source_28,'
11863 ') =  'ACCRUAL'
11864  THEN 
11865 
11866    --
11867    XLA_AE_LINES_PKG.SetNewLine;
11868 
11869    p_balance_type_code          := l_balance_type_code;
11870    -- set the flag so later we will know whether the gain loss line needs to be created
11871    
11872    IF(l_balance_type_code = 'A' ) THEN
11873      p_actual_flag :='G';
11874    END IF;
11875 
11876    --
11877    -- bulk performance
11878    --
11879    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11880                                       p_header_num   => 0); -- 4262811
11881    --
11882    -- set accounting line options
11883    --
11884    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11885            p_natural_side_code          => 'G'
11886          , p_gain_or_loss_flag          => 'N'
11887          , p_gl_transfer_mode_code      => 'S'
11888          , p_acct_entry_type_code       => 'A'
11889          , p_switch_side_flag           => ''
11890          , p_merge_duplicate_code       => 'A'
11891          );
11892    --
11893    l_acc_rev_natural_side_code := 'C';  -- 4262811
11894    -- 
11895    --
11896    -- set accounting line type info
11897    --
11898    xla_ae_lines_pkg.SetAcctLineType
11899       (p_component_type             => l_component_type
11900       ,p_event_type_code            => l_event_type_code
11901       ,p_line_definition_owner_code => l_line_definition_owner_code
11902       ,p_line_definition_code       => l_line_definition_code
11903       ,p_accounting_line_code       => l_component_code
11904       ,p_accounting_line_type_code  => l_component_type_code
11905       ,p_accounting_line_appl_id    => l_component_appl_id
11906       ,p_amb_context_code           => l_amb_context_code
11907       ,p_entity_code                => l_entity_code
11908       ,p_event_class_code           => l_event_class_code);
11909    --
11910    -- set accounting class
11911    --
11912    xla_ae_lines_pkg.SetAcctClass(
11913            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
11914          , p_ae_header_id           => l_ae_header_id
11915          );
11916 
11917    --
11918    -- set rounding class
11919    --
11920    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11921                       'EXCHANGE_RATE_VARIANCE';
11922 
11923    --
11924    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11925    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11926    --
11927    -- bulk performance
11928    --
11929    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11930 
11931    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11932       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11933 
11934    -- 4955764
11935    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11936       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11937 
11938    -- 4458381 Public Sector Enh
11939    
11940    --
11941    -- set accounting attributes for the line type
11942    --
11943    l_entered_amt_idx := NULL;
11944    l_accted_amt_idx  := 23;
11945    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
11946    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11947    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
11948    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11949    l_rec_acct_attrs.array_num_value(2)  := 
11950 xla_ae_sources_pkg.GetSystemSourceNum(
11951    p_source_code           => 'XLA_EVENT_APPL_ID'
11952  , p_source_type_code      => 'Y'
11953  , p_source_application_id =>  602
11954 );
11955    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11956    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
11957    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11958    l_rec_acct_attrs.array_char_value(4)  := 
11959 xla_ae_sources_pkg.GetSystemSourceChar(
11960    p_source_code           => 'XLA_ENTITY_CODE'
11961  , p_source_type_code      => 'Y'
11962  , p_source_application_id =>  602
11963 );
11964    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11965    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
11966    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11967    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
11968    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
11969    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
11970    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11974    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
11971    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
11972    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
11973    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
11975    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
11976    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11977    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
11978    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
11979    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
11980    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
11981    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
11982    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
11983    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
11984    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
11985    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
11986    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
11987    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
11988    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
11989    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
11990    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
11991    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
11992    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
11993    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
11994    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
11995    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
11996    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
11997    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
11998    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
11999    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
12000    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
12001    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
12002    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
12003    l_rec_acct_attrs.array_date_value(24)  := p_source_82;
12004    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
12005    l_rec_acct_attrs.array_char_value(25)  := p_source_83;
12006    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
12007    l_rec_acct_attrs.array_date_value(26)  := p_source_84;
12008    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
12009    l_rec_acct_attrs.array_char_value(27)  := p_source_85;
12010    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
12011    l_rec_acct_attrs.array_num_value(28)  := p_source_86;
12012    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
12013    l_rec_acct_attrs.array_num_value(29)  := p_source_87;
12014    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
12015    l_rec_acct_attrs.array_char_value(30)  := p_source_88;
12016    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
12017    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_89);
12018    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
12019    l_rec_acct_attrs.array_char_value(32)  := p_source_60;
12020    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
12021    l_rec_acct_attrs.array_num_value(33)  := p_source_91;
12022    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
12023    l_rec_acct_attrs.array_num_value(34)  := p_source_92;
12024    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
12025    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
12026    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
12027    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
12028    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
12029    l_rec_acct_attrs.array_num_value(37)  := p_source_95;
12030 
12031    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12032    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12033 
12034    ---------------------------------------------------------------------------------------------------------------
12035    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12036    ---------------------------------------------------------------------------------------------------------------
12037    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12038 
12039    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12040    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12041 
12042    IF xla_accounting_cache_pkg.GetValueChar
12043          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12044          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12045    AND l_bflow_method_code = 'PRIOR_ENTRY'
12046 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12047    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12048          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12049        )
12050    THEN
12051          xla_ae_lines_pkg.BflowUpgEntry
12052            (p_business_method_code    => l_bflow_method_code
12053            ,p_business_class_code     => l_bflow_class_code
12054            ,p_balance_type            => l_balance_type_code);
12058    END IF;
12055    ELSE
12056       NULL;
12057 -- No business flow processing for business flow method of NONE.
12059 
12060    --
12061    -- call analytical criteria
12062    --
12063    
12064    --
12065    -- call description
12066    --
12067    
12068 xla_ae_lines_pkg.SetLineDescription(
12069    p_ae_header_id => l_ae_header_id
12070   ,p_description  => Description_2 (
12071      p_application_id         => p_application_id
12072    , p_ae_header_id           => l_ae_header_id 
12073 , p_source_1 => p_source_1
12074    )
12075 );
12076 
12077 
12078    --
12079    -- call ADRs
12080    -- Bug 4922099
12081    --
12082    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12083         (NVL(l_actual_upg_option, 'N') = 'O') OR
12084         (NVL(l_enc_upg_option, 'N') = 'O')
12085       )
12086    THEN
12087    NULL;
12088    --
12089    --
12090    
12091   l_ccid := AcctDerRule_32(
12092            p_application_id           => p_application_id
12093          , p_ae_header_id             => l_ae_header_id 
12094 , p_source_10 => p_source_10
12095 , p_source_10_meaning => p_source_10_meaning
12096 , p_source_15 => p_source_15
12097 , p_source_16 => p_source_16
12098 , p_source_17 => p_source_17
12099 , p_source_17_meaning => p_source_17_meaning
12100 , p_source_18 => p_source_18
12101 , p_source_25 => p_source_25
12102 , p_source_43 => p_source_43
12103 , p_source_43_meaning => p_source_43_meaning
12104          , x_transaction_coa_id       => l_adr_transaction_coa_id
12105          , x_accounting_coa_id        => l_adr_accounting_coa_id
12106          , x_value_type_code          => l_adr_value_type_code
12107          , p_side                     => 'ALL'
12108    );
12109 
12110    xla_ae_lines_pkg.set_ccid(
12111     p_code_combination_id          => l_ccid
12112   , p_value_type_code              => l_adr_value_type_code
12113   , p_transaction_coa_id           => l_adr_transaction_coa_id
12114   , p_accounting_coa_id            => l_adr_accounting_coa_id
12115   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12116   , p_adr_type_code                => 'S'
12117   , p_component_type               => l_component_type
12118   , p_component_code               => l_component_code
12119   , p_component_type_code          => l_component_type_code
12120   , p_component_appl_id            => l_component_appl_id
12121   , p_amb_context_code             => l_amb_context_code
12122   , p_side                         => 'ALL'
12123   );
12124 
12125 
12126    l_segment := AcctDerRule_9(
12127            p_application_id           => p_application_id
12128          , p_ae_header_id             => l_ae_header_id 
12129 , p_source_10 => p_source_10
12130 , p_source_10_meaning => p_source_10_meaning
12131 , p_source_15 => p_source_15
12132 , p_source_17 => p_source_17
12133 , p_source_17_meaning => p_source_17_meaning
12134          , x_transaction_coa_id       => l_adr_transaction_coa_id
12135          , x_accounting_coa_id        => l_adr_accounting_coa_id
12136          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12137          , x_flex_value_set_id        => l_adr_flex_value_set_id
12138          , x_value_type_code          => l_adr_value_type_code
12139          , x_value_combination_id     => l_adr_value_combination_id
12140          , x_value_segment_code       => l_adr_value_segment_code
12141          , p_side                     => 'DEBIT'
12142          , p_override_seg_flag        => 'Y'
12143    );
12144 
12145    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12146 
12147       xla_ae_lines_pkg.set_segment(
12148           p_to_segment_code         => 'GL_ACCOUNT'
12149         , p_segment_value           => l_segment
12150         , p_from_segment_code       => l_adr_value_segment_code
12151         , p_from_combination_id     => l_adr_value_combination_id
12152         , p_value_type_code         => l_adr_value_type_code
12153         , p_transaction_coa_id      => l_adr_transaction_coa_id
12154         , p_accounting_coa_id       => l_adr_accounting_coa_id
12155         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12156         , p_flex_value_set_id       => l_adr_flex_value_set_id
12157         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12158         , p_adr_type_code           => 'S'
12159         , p_component_type          => l_component_type
12160         , p_component_code          => l_component_code
12161         , p_component_type_code     => l_component_type_code
12162         , p_component_appl_id       => l_component_appl_id
12163         , p_amb_context_code        => l_amb_context_code
12164         , p_entity_code             => 'AP_INVOICES'
12165         , p_event_class_code        => 'DEBIT MEMOS'
12166         , p_side                    => 'DEBIT'
12167         );
12168 
12169   END IF;
12170 
12171    l_segment := AcctDerRule_10(
12172            p_application_id           => p_application_id
12173          , p_ae_header_id             => l_ae_header_id 
12174 , p_source_10 => p_source_10
12175 , p_source_10_meaning => p_source_10_meaning
12176 , p_source_17 => p_source_17
12177 , p_source_17_meaning => p_source_17_meaning
12178 , p_source_18 => p_source_18
12179          , x_transaction_coa_id       => l_adr_transaction_coa_id
12180          , x_accounting_coa_id        => l_adr_accounting_coa_id
12181          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12185          , x_value_segment_code       => l_adr_value_segment_code
12182          , x_flex_value_set_id        => l_adr_flex_value_set_id
12183          , x_value_type_code          => l_adr_value_type_code
12184          , x_value_combination_id     => l_adr_value_combination_id
12186          , p_side                     => 'CREDIT'
12187          , p_override_seg_flag        => 'Y'
12188    );
12189 
12190    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12191 
12192       xla_ae_lines_pkg.set_segment(
12193           p_to_segment_code         => 'GL_ACCOUNT'
12194         , p_segment_value           => l_segment
12195         , p_from_segment_code       => l_adr_value_segment_code
12196         , p_from_combination_id     => l_adr_value_combination_id
12197         , p_value_type_code         => l_adr_value_type_code
12198         , p_transaction_coa_id      => l_adr_transaction_coa_id
12199         , p_accounting_coa_id       => l_adr_accounting_coa_id
12200         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12201         , p_flex_value_set_id       => l_adr_flex_value_set_id
12202         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12203         , p_adr_type_code           => 'S'
12204         , p_component_type          => l_component_type
12205         , p_component_code          => l_component_code
12206         , p_component_type_code     => l_component_type_code
12207         , p_component_appl_id       => l_component_appl_id
12208         , p_amb_context_code        => l_amb_context_code
12209         , p_entity_code             => 'AP_INVOICES'
12210         , p_event_class_code        => 'DEBIT MEMOS'
12211         , p_side                    => 'CREDIT'
12212         );
12213 
12214   END IF;
12215 
12216    l_segment := AcctDerRule_24(
12217            p_application_id           => p_application_id
12218          , p_ae_header_id             => l_ae_header_id 
12219 , p_source_10 => p_source_10
12220 , p_source_10_meaning => p_source_10_meaning
12221 , p_source_17 => p_source_17
12222 , p_source_17_meaning => p_source_17_meaning
12223 , p_source_25 => p_source_25
12224          , x_transaction_coa_id       => l_adr_transaction_coa_id
12225          , x_accounting_coa_id        => l_adr_accounting_coa_id
12226          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12227          , x_flex_value_set_id        => l_adr_flex_value_set_id
12228          , x_value_type_code          => l_adr_value_type_code
12229          , x_value_combination_id     => l_adr_value_combination_id
12230          , x_value_segment_code       => l_adr_value_segment_code
12231          , p_side                     => 'ALL'
12232          , p_override_seg_flag        => 'Y'
12233    );
12234 
12235    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12236 
12237       xla_ae_lines_pkg.set_segment(
12238           p_to_segment_code         => 'GL_BALANCING'
12239         , p_segment_value           => l_segment
12240         , p_from_segment_code       => l_adr_value_segment_code
12241         , p_from_combination_id     => l_adr_value_combination_id
12242         , p_value_type_code         => l_adr_value_type_code
12243         , p_transaction_coa_id      => l_adr_transaction_coa_id
12244         , p_accounting_coa_id       => l_adr_accounting_coa_id
12245         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12246         , p_flex_value_set_id       => l_adr_flex_value_set_id
12247         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12248         , p_adr_type_code           => 'S'
12249         , p_component_type          => l_component_type
12250         , p_component_code          => l_component_code
12251         , p_component_type_code     => l_component_type_code
12252         , p_component_appl_id       => l_component_appl_id
12253         , p_amb_context_code        => l_amb_context_code
12254         , p_entity_code             => 'AP_INVOICES'
12255         , p_event_class_code        => 'DEBIT MEMOS'
12256         , p_side                    => 'ALL'
12257         );
12258 
12259   END IF;
12260 
12261    --
12262    --
12263    END IF;
12264    --
12265    -- Bug 4922099
12266    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12267           (NVL(l_enc_upg_option, 'N') = 'O')
12268         ) AND
12269         (l_bflow_method_code = 'PRIOR_ENTRY')
12270       )
12271    THEN
12272       IF
12273       --
12274       1 = 2
12275       --
12276       THEN
12277       xla_accounting_err_pkg.build_message
12278                                     (p_appli_s_name            => 'XLA'
12279                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12280                                     ,p_token_1                 => 'LINE_NUMBER'
12281                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12282                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12283                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12284                                                                              l_component_type
12285                                                                             ,l_component_code
12286                                                                             ,l_component_type_code
12287                                                                             ,l_component_appl_id
12288                                                                             ,l_amb_context_code
12292                                     ,p_token_3                 => 'OWNER'
12289                                                                             ,l_entity_code
12290                                                                             ,l_event_class_code
12291                                                                            )
12293                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12294                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12295                                                                           ,p_lookup_code    => l_component_type_code
12296                                                                          )
12297                                     ,p_token_4                 => 'PRODUCT_NAME'
12298                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12299                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12300                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12301                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12302                                     ,p_ae_header_id            =>  NULL
12303                                        );
12304 
12305         IF (C_LEVEL_ERROR>= g_log_level) THEN
12306                  trace
12307                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12308                       ,p_level    => C_LEVEL_ERROR
12309                       ,p_module   => l_log_module);
12310         END IF;
12311       END IF;
12312    END IF;
12313    --
12314    --
12315    ------------------------------------------------------------------------------------------------
12316    -- 4219869 Business Flow
12317    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12318    -- Prior Entry.  Currently, the following code is always generated.
12319    ------------------------------------------------------------------------------------------------
12320    XLA_AE_LINES_PKG.ValidateCurrentLine;
12321 
12322    ------------------------------------------------------------------------------------
12323    -- 4219869 Business Flow
12324    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12325    ------------------------------------------------------------------------------------
12326    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12327 
12328    ----------------------------------------------------------------------------------
12329    -- 4219869 Business Flow
12330    -- Update journal entry status -- Need to generate this within IF <condition>
12331    ----------------------------------------------------------------------------------
12332    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12333          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12334          ,p_balance_type_code => l_balance_type_code
12335          );
12336 
12337    -------------------------------------------------------------------------------------------
12338    -- 4262811 - Generate the Accrual Reversal lines
12339    -------------------------------------------------------------------------------------------
12340    BEGIN
12341       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12342                               (g_array_event(p_event_id).array_value_num('header_index'));
12343       IF l_acc_rev_flag IS NULL THEN
12344          l_acc_rev_flag := 'N';
12345       END IF;
12346    EXCEPTION
12347       WHEN OTHERS THEN
12348          l_acc_rev_flag := 'N';
12349    END;
12350    --
12351    IF (l_acc_rev_flag = 'Y') THEN
12352 
12353        -- 4645092  ------------------------------------------------------------------------------
12354        -- To allow MPA report to determine if it should generate report process
12355        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12356        ------------------------------------------------------------------------------------------
12357 
12358        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12359        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12360    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12361    -- call ADRs
12362    -- Bug 4922099
12363    --
12364    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12365         (NVL(l_actual_upg_option, 'N') = 'O') OR
12366         (NVL(l_enc_upg_option, 'N') = 'O')
12367       )
12368    THEN
12369    NULL;
12370    --
12371    --
12372    
12373   l_ccid := AcctDerRule_32(
12374            p_application_id           => p_application_id
12375          , p_ae_header_id             => l_ae_header_id 
12376 , p_source_10 => p_source_10
12377 , p_source_10_meaning => p_source_10_meaning
12378 , p_source_15 => p_source_15
12379 , p_source_16 => p_source_16
12380 , p_source_17 => p_source_17
12381 , p_source_17_meaning => p_source_17_meaning
12382 , p_source_18 => p_source_18
12383 , p_source_25 => p_source_25
12384 , p_source_43 => p_source_43
12385 , p_source_43_meaning => p_source_43_meaning
12386          , x_transaction_coa_id       => l_adr_transaction_coa_id
12387          , x_accounting_coa_id        => l_adr_accounting_coa_id
12388          , x_value_type_code          => l_adr_value_type_code
12389          , p_side                     => 'ALL'
12390    );
12391 
12392    xla_ae_lines_pkg.set_ccid(
12396   , p_accounting_coa_id            => l_adr_accounting_coa_id
12393     p_code_combination_id          => l_ccid
12394   , p_value_type_code              => l_adr_value_type_code
12395   , p_transaction_coa_id           => l_adr_transaction_coa_id
12397   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12398   , p_adr_type_code                => 'S'
12399   , p_component_type               => l_component_type
12400   , p_component_code               => l_component_code
12401   , p_component_type_code          => l_component_type_code
12402   , p_component_appl_id            => l_component_appl_id
12403   , p_amb_context_code             => l_amb_context_code
12404   , p_side                         => 'ALL'
12405   );
12406 
12407 
12408    l_segment := AcctDerRule_9(
12409            p_application_id           => p_application_id
12410          , p_ae_header_id             => l_ae_header_id 
12411 , p_source_10 => p_source_10
12412 , p_source_10_meaning => p_source_10_meaning
12413 , p_source_15 => p_source_15
12414 , p_source_17 => p_source_17
12415 , p_source_17_meaning => p_source_17_meaning
12416          , x_transaction_coa_id       => l_adr_transaction_coa_id
12417          , x_accounting_coa_id        => l_adr_accounting_coa_id
12418          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12419          , x_flex_value_set_id        => l_adr_flex_value_set_id
12420          , x_value_type_code          => l_adr_value_type_code
12421          , x_value_combination_id     => l_adr_value_combination_id
12422          , x_value_segment_code       => l_adr_value_segment_code
12423          , p_side                     => 'DEBIT'
12424          , p_override_seg_flag        => 'Y'
12425    );
12426 
12427    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12428 
12429       xla_ae_lines_pkg.set_segment(
12430           p_to_segment_code         => 'GL_ACCOUNT'
12431         , p_segment_value           => l_segment
12432         , p_from_segment_code       => l_adr_value_segment_code
12433         , p_from_combination_id     => l_adr_value_combination_id
12434         , p_value_type_code         => l_adr_value_type_code
12435         , p_transaction_coa_id      => l_adr_transaction_coa_id
12436         , p_accounting_coa_id       => l_adr_accounting_coa_id
12437         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12438         , p_flex_value_set_id       => l_adr_flex_value_set_id
12439         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12440         , p_adr_type_code           => 'S'
12441         , p_component_type          => l_component_type
12442         , p_component_code          => l_component_code
12443         , p_component_type_code     => l_component_type_code
12444         , p_component_appl_id       => l_component_appl_id
12445         , p_amb_context_code        => l_amb_context_code
12446         , p_entity_code             => 'AP_INVOICES'
12447         , p_event_class_code        => 'DEBIT MEMOS'
12448         , p_side                    => 'DEBIT'
12449         );
12450 
12451   END IF;
12452 
12453    l_segment := AcctDerRule_10(
12454            p_application_id           => p_application_id
12455          , p_ae_header_id             => l_ae_header_id 
12456 , p_source_10 => p_source_10
12457 , p_source_10_meaning => p_source_10_meaning
12458 , p_source_17 => p_source_17
12459 , p_source_17_meaning => p_source_17_meaning
12460 , p_source_18 => p_source_18
12461          , x_transaction_coa_id       => l_adr_transaction_coa_id
12462          , x_accounting_coa_id        => l_adr_accounting_coa_id
12463          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12464          , x_flex_value_set_id        => l_adr_flex_value_set_id
12465          , x_value_type_code          => l_adr_value_type_code
12466          , x_value_combination_id     => l_adr_value_combination_id
12467          , x_value_segment_code       => l_adr_value_segment_code
12468          , p_side                     => 'CREDIT'
12469          , p_override_seg_flag        => 'Y'
12470    );
12471 
12472    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12473 
12474       xla_ae_lines_pkg.set_segment(
12475           p_to_segment_code         => 'GL_ACCOUNT'
12476         , p_segment_value           => l_segment
12477         , p_from_segment_code       => l_adr_value_segment_code
12478         , p_from_combination_id     => l_adr_value_combination_id
12479         , p_value_type_code         => l_adr_value_type_code
12480         , p_transaction_coa_id      => l_adr_transaction_coa_id
12481         , p_accounting_coa_id       => l_adr_accounting_coa_id
12482         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12483         , p_flex_value_set_id       => l_adr_flex_value_set_id
12484         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12485         , p_adr_type_code           => 'S'
12486         , p_component_type          => l_component_type
12487         , p_component_code          => l_component_code
12488         , p_component_type_code     => l_component_type_code
12489         , p_component_appl_id       => l_component_appl_id
12490         , p_amb_context_code        => l_amb_context_code
12491         , p_entity_code             => 'AP_INVOICES'
12492         , p_event_class_code        => 'DEBIT MEMOS'
12493         , p_side                    => 'CREDIT'
12494         );
12495 
12496   END IF;
12497 
12498    l_segment := AcctDerRule_24(
12499            p_application_id           => p_application_id
12500          , p_ae_header_id             => l_ae_header_id 
12504 , p_source_17_meaning => p_source_17_meaning
12501 , p_source_10 => p_source_10
12502 , p_source_10_meaning => p_source_10_meaning
12503 , p_source_17 => p_source_17
12505 , p_source_25 => p_source_25
12506          , x_transaction_coa_id       => l_adr_transaction_coa_id
12507          , x_accounting_coa_id        => l_adr_accounting_coa_id
12508          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12509          , x_flex_value_set_id        => l_adr_flex_value_set_id
12510          , x_value_type_code          => l_adr_value_type_code
12511          , x_value_combination_id     => l_adr_value_combination_id
12512          , x_value_segment_code       => l_adr_value_segment_code
12513          , p_side                     => 'ALL'
12514          , p_override_seg_flag        => 'Y'
12515    );
12516 
12517    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12518 
12519       xla_ae_lines_pkg.set_segment(
12520           p_to_segment_code         => 'GL_BALANCING'
12521         , p_segment_value           => l_segment
12522         , p_from_segment_code       => l_adr_value_segment_code
12523         , p_from_combination_id     => l_adr_value_combination_id
12524         , p_value_type_code         => l_adr_value_type_code
12525         , p_transaction_coa_id      => l_adr_transaction_coa_id
12526         , p_accounting_coa_id       => l_adr_accounting_coa_id
12527         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12528         , p_flex_value_set_id       => l_adr_flex_value_set_id
12529         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12530         , p_adr_type_code           => 'S'
12531         , p_component_type          => l_component_type
12532         , p_component_code          => l_component_code
12533         , p_component_type_code     => l_component_type_code
12534         , p_component_appl_id       => l_component_appl_id
12535         , p_amb_context_code        => l_amb_context_code
12536         , p_entity_code             => 'AP_INVOICES'
12537         , p_event_class_code        => 'DEBIT MEMOS'
12538         , p_side                    => 'ALL'
12539         );
12540 
12541   END IF;
12542 
12543    --
12544    --
12545    END IF;
12546 
12547        --
12548        -- Update the line information that should be overwritten
12549        --
12550        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12551                                          p_header_num   => 1);
12552        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12553 
12554        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12555 
12556        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12557           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12558        END IF;
12559 
12560       --
12561       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12562       --
12563       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12564           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12565       ELSE
12566           ---------------------------------------------------------------------------------------------------
12567           -- 4262811a Switch Sign
12568           ---------------------------------------------------------------------------------------------------
12569           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12570           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12571                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12572           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12573                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12574           -- 5132302
12575           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12576                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12577 
12578       END IF;
12579 
12580       -- 4955764
12581       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12582       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12583 
12584 
12585       XLA_AE_LINES_PKG.ValidateCurrentLine;
12586       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12587 
12588       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12589                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12590                ,p_balance_type_code => l_balance_type_code);
12591 
12592    END IF;
12593 
12594    -----------------------------------------------------------------------------------------
12595    -- 4262811 Multiperiod Accounting
12596    -----------------------------------------------------------------------------------------
12597      -- No MPA option is assigned.
12598 
12599 
12600 END IF;
12601 END IF;
12602 --
12603 
12604 --
12605 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12606    trace
12607       (p_msg      => 'END of AcctLineType_61'
12608       ,p_level    => C_LEVEL_PROCEDURE
12609       ,p_module   => l_log_module);
12613   WHEN xla_exceptions_pkg.application_exception THEN
12610 END IF;
12611 --
12612 EXCEPTION
12614       RAISE;
12615   WHEN OTHERS THEN
12616        xla_exceptions_pkg.raise_message
12617            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_61');
12618 END AcctLineType_61;
12619 --
12620 
12621 ---------------------------------------
12622 --
12623 -- PRIVATE FUNCTION
12624 --         AcctLineType_62
12625 --
12626 ---------------------------------------
12627 PROCEDURE AcctLineType_62 (
12628   p_application_id        IN NUMBER
12629  ,p_event_id              IN NUMBER
12630  ,p_calculate_acctd_flag  IN VARCHAR2
12631  ,p_calculate_g_l_flag    IN VARCHAR2
12632  ,p_actual_flag           IN OUT VARCHAR2
12633  ,p_balance_type_code     OUT VARCHAR2
12634  ,p_gain_or_loss_ref      OUT VARCHAR2
12635  
12636 --Invoice Distribution Description
12637  , p_source_1            IN VARCHAR2
12638 --Automatic Offsets Value
12639  , p_source_10            IN VARCHAR2
12640  , p_source_10_meaning    IN VARCHAR2
12641 --Purchase Order Rate Variance Gain Account
12642  , p_source_15            IN NUMBER
12643 --Invoice Distribution Ledger Amount
12644  , p_source_16            IN NUMBER
12645 --Destination Type of the PO Distribution
12646  , p_source_17            IN VARCHAR2
12647  , p_source_17_meaning    IN VARCHAR2
12648 --Purchase Order Rate Variance Loss Account
12649  , p_source_18            IN NUMBER
12650 --Invoice Distribution Account
12651  , p_source_25            IN NUMBER
12652 --Invoice Distribution Type
12653  , p_source_28            IN VARCHAR2
12654  , p_source_28_meaning    IN VARCHAR2
12655 --Automatic Offsets Flag
12656  , p_source_43            IN VARCHAR2
12657  , p_source_43_meaning    IN VARCHAR2
12658 --Accounting Reversal Indicator
12659  , p_source_58            IN VARCHAR2
12660 --Distribution Link Type
12661  , p_source_60            IN VARCHAR2
12662 --Allocation to Main Distribution Identifier
12663  , p_source_62            IN NUMBER
12664 --Invoice Identifier
12665  , p_source_63            IN NUMBER
12666 --Invoice Distribution Identifier
12667  , p_source_69            IN NUMBER
12668 --Payables Encumbrance Upgrade Credit Account
12669  , p_source_70            IN NUMBER
12670 --Payables Encumbrance Upgrade Credit Amount
12671  , p_source_71            IN NUMBER
12672 --Invoice Currency Code
12673  , p_source_72            IN VARCHAR2
12674 --Payables Encumbrance Upgrade Credit Base Amount
12675  , p_source_73            IN NUMBER
12676 --Payables Encumbrance Upgrade Debit Account
12677  , p_source_74            IN NUMBER
12678 --Payables Encumbrance Upgrade Debit Amount
12679  , p_source_75            IN NUMBER
12680 --Payables Encumbrance Upgrade Debit Base Amount
12681  , p_source_76            IN NUMBER
12682 --Payables Encumbrance Upgrade Option
12683  , p_source_77            IN VARCHAR2
12684 --Invoice Distribution Amount
12685  , p_source_78            IN NUMBER
12686 --Deferred Accounting End Date
12687  , p_source_82            IN DATE
12688 --Deferred Accounting Option
12689  , p_source_83            IN VARCHAR2
12690 --Deferred Accounting Start Date
12691  , p_source_84            IN DATE
12692 --Override Accounted Amount Indicator
12693  , p_source_85            IN VARCHAR2
12694  , p_source_85_meaning    IN VARCHAR2
12695 --Invoice Supplier Identifier
12696  , p_source_86            IN NUMBER
12697 --Invoice Supplier Site Identifier
12698  , p_source_87            IN NUMBER
12699 --Third Party Type
12700  , p_source_88            IN VARCHAR2
12701 --Parent Reversal Identifier
12702  , p_source_89            IN NUMBER
12703 --Invoice Distribution Statistical Amount
12704  , p_source_90            IN NUMBER
12705 --Invoice Distribution Tax Line Identifier
12706  , p_source_91            IN NUMBER
12707 --Invoice Distribution Tax Distribution Identifier from Tax
12708  , p_source_92            IN NUMBER
12709 --Invoice Distribution Summary Tax Line Identifier
12710  , p_source_93            IN NUMBER
12711 --Payables Upgrade Credit Encumbrance Type Identifier
12712  , p_source_94            IN NUMBER
12713 --Payables Upgrade Debit Encumbrance Type Identifier
12714  , p_source_95            IN NUMBER
12715 --Business Flow Accounts Payable Application Identifier
12716  , p_source_96            IN NUMBER
12717 --Business Flow Invoice Distribution Type
12718  , p_source_97            IN VARCHAR2
12719 --Business Flow Invoice Entity Code
12720  , p_source_98            IN VARCHAR2
12721 --Business Flow Invoice Distribution Identifier
12722  , p_source_99            IN NUMBER
12723 --Business Flow Invoice Identifier
12724  , p_source_100            IN NUMBER
12725 )
12726 IS
12727 
12728 l_component_type              VARCHAR2(80);
12729 l_component_code              VARCHAR2(30);
12730 l_component_type_code         VARCHAR2(1);
12731 l_component_appl_id           INTEGER;
12732 l_amb_context_code            VARCHAR2(30);
12733 l_entity_code                 VARCHAR2(30);
12734 l_event_class_code            VARCHAR2(30);
12735 l_ae_header_id                NUMBER;
12736 l_event_type_code             VARCHAR2(30);
12737 l_line_definition_code        VARCHAR2(30);
12738 l_line_definition_owner_code  VARCHAR2(1);
12739 --
12740 -- adr variables
12741 l_segment                     VARCHAR2(30);
12742 l_ccid                        NUMBER;
12743 l_adr_transaction_coa_id      NUMBER;
12744 l_adr_accounting_coa_id       NUMBER;
12748 l_adr_value_combination_id    NUMBER;
12745 l_adr_flexfield_segment_code  VARCHAR2(30);
12746 l_adr_flex_value_set_id       NUMBER;
12747 l_adr_value_type_code         VARCHAR2(30);
12749 l_adr_value_segment_code      VARCHAR2(30);
12750 
12751 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12752 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12753 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12754 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12755 
12756 -- 4262811 Variables ------------------------------------------------------------------------------------------
12757 l_entered_amt_idx             NUMBER;
12758 l_accted_amt_idx              NUMBER;
12759 l_acc_rev_flag                VARCHAR2(1);
12760 l_accrual_line_num            NUMBER;
12761 l_tmp_amt                     NUMBER;
12762 l_acc_rev_natural_side_code   VARCHAR2(1);
12763 
12764 l_num_entries                 NUMBER;
12765 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12766 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12767 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12768 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12769 l_recog_line_1                NUMBER;
12770 l_recog_line_2                NUMBER;
12771 
12772 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12773 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12774 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12775 
12776 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12777 
12778 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12779 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12780 
12781 ---------------------------------------------------------------------------------------------------------------
12782 
12783 
12784 --
12785 -- bulk performance
12786 --
12787 l_balance_type_code           VARCHAR2(1);
12788 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12789 l_log_module                  VARCHAR2(240);
12790 
12791 --
12792 -- Upgrade strategy
12793 --
12794 l_actual_upg_option           VARCHAR2(1);
12795 l_enc_upg_option           VARCHAR2(1);
12796 
12797 --
12798 BEGIN
12799 --
12800 IF g_log_enabled THEN
12801       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
12802 END IF;
12803 --
12804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12805 
12806       trace
12807          (p_msg      => 'BEGIN of AcctLineType_62'
12808          ,p_level    => C_LEVEL_PROCEDURE
12809          ,p_module   => l_log_module);
12810 
12811 END IF;
12812 --
12813 l_component_type             := 'AMB_JLT';
12814 l_component_code             := 'AP_ALC_EX_RATE_VAR_INV';
12815 l_component_type_code        := 'S';
12816 l_component_appl_id          :=  200;
12817 l_amb_context_code           := 'DEFAULT';
12818 l_entity_code                := 'AP_INVOICES';
12819 l_event_class_code           := 'INVOICES';
12820 l_event_type_code            := 'INVOICES_ALL';
12821 l_line_definition_owner_code := 'S';
12822 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
12823 --
12824 l_balance_type_code          := 'A';
12825 l_segment                     := NULL;
12826 l_ccid                        := NULL;
12827 l_adr_transaction_coa_id      := NULL;
12828 l_adr_accounting_coa_id       := NULL;
12829 l_adr_flexfield_segment_code  := NULL;
12830 l_adr_flex_value_set_id       := NULL;
12831 l_adr_value_type_code         := NULL;
12832 l_adr_value_combination_id    := NULL;
12833 l_adr_value_segment_code      := NULL;
12834 
12835 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12836 l_bflow_class_code           := '';    -- 4219869 Business Flow
12837 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12838 l_budgetary_control_flag     := 'N';
12839 
12840 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12841 l_bflow_applied_to_amt       := NULL; -- 5132302
12842 l_entered_amt_idx            := NULL;          -- 4262811
12843 l_accted_amt_idx             := NULL;          -- 4262811
12844 l_acc_rev_flag               := NULL;          -- 4262811
12845 l_accrual_line_num           := NULL;          -- 4262811
12846 l_tmp_amt                    := NULL;          -- 4262811
12847 --
12848 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12849             (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
12850                return;
12851   END IF;
12852   
12853 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12854     l_balance_type_code <> 'B' THEN
12855 IF NVL(p_source_28,'
12856 ') =  'ACCRUAL'
12857  THEN 
12858 
12859    --
12860    XLA_AE_LINES_PKG.SetNewLine;
12861 
12862    p_balance_type_code          := l_balance_type_code;
12863    -- set the flag so later we will know whether the gain loss line needs to be created
12864    
12865    IF(l_balance_type_code = 'A' ) THEN
12866      p_actual_flag :='G';
12867    END IF;
12868 
12869    --
12870    -- bulk performance
12871    --
12875    -- set accounting line options
12872    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12873                                       p_header_num   => 0); -- 4262811
12874    --
12876    --
12877    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12878            p_natural_side_code          => 'G'
12879          , p_gain_or_loss_flag          => 'N'
12880          , p_gl_transfer_mode_code      => 'S'
12881          , p_acct_entry_type_code       => 'A'
12882          , p_switch_side_flag           => ''
12883          , p_merge_duplicate_code       => 'A'
12884          );
12885    --
12886    l_acc_rev_natural_side_code := 'C';  -- 4262811
12887    -- 
12888    --
12889    -- set accounting line type info
12890    --
12891    xla_ae_lines_pkg.SetAcctLineType
12892       (p_component_type             => l_component_type
12893       ,p_event_type_code            => l_event_type_code
12894       ,p_line_definition_owner_code => l_line_definition_owner_code
12895       ,p_line_definition_code       => l_line_definition_code
12896       ,p_accounting_line_code       => l_component_code
12897       ,p_accounting_line_type_code  => l_component_type_code
12898       ,p_accounting_line_appl_id    => l_component_appl_id
12899       ,p_amb_context_code           => l_amb_context_code
12900       ,p_entity_code                => l_entity_code
12901       ,p_event_class_code           => l_event_class_code);
12902    --
12903    -- set accounting class
12904    --
12905    xla_ae_lines_pkg.SetAcctClass(
12906            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
12907          , p_ae_header_id           => l_ae_header_id
12908          );
12909 
12910    --
12911    -- set rounding class
12912    --
12913    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12914                       'EXCHANGE_RATE_VARIANCE';
12915 
12916    --
12917    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12918    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12919    --
12920    -- bulk performance
12921    --
12922    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12923 
12924    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12925       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12926 
12927    -- 4955764
12928    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12929       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12930 
12931    -- 4458381 Public Sector Enh
12932    
12933    --
12934    -- set accounting attributes for the line type
12935    --
12936    l_entered_amt_idx := NULL;
12937    l_accted_amt_idx  := 24;
12938    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
12939    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12940    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
12941    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12942    l_rec_acct_attrs.array_num_value(2)  := 
12943 xla_ae_sources_pkg.GetSystemSourceNum(
12944    p_source_code           => 'XLA_EVENT_APPL_ID'
12945  , p_source_type_code      => 'Y'
12946  , p_source_application_id =>  602
12947 );
12948    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12949    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
12950    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12951    l_rec_acct_attrs.array_char_value(4)  := 
12952 xla_ae_sources_pkg.GetSystemSourceChar(
12953    p_source_code           => 'XLA_ENTITY_CODE'
12954  , p_source_type_code      => 'Y'
12955  , p_source_application_id =>  602
12956 );
12957    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12958    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
12959    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12960    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
12961    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
12962    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
12963    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
12964    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
12965    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12966    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
12967    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
12968    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
12969    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
12970    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
12971    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12972    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
12973    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
12974    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
12975    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
12976    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
12977    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
12978    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
12979    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
12980    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
12984    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
12981    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
12982    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
12983    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
12985    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
12986    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
12987    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
12988    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
12989    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
12990    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
12991    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
12992    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
12993    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
12994    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
12995    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
12996    l_rec_acct_attrs.array_num_value(24)  := p_source_16;
12997    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
12998    l_rec_acct_attrs.array_date_value(25)  := p_source_82;
12999    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
13000    l_rec_acct_attrs.array_char_value(26)  := p_source_83;
13001    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
13002    l_rec_acct_attrs.array_date_value(27)  := p_source_84;
13003    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
13004    l_rec_acct_attrs.array_char_value(28)  := p_source_85;
13005    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
13006    l_rec_acct_attrs.array_num_value(29)  := p_source_86;
13007    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
13008    l_rec_acct_attrs.array_num_value(30)  := p_source_87;
13009    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
13010    l_rec_acct_attrs.array_char_value(31)  := p_source_88;
13011    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
13012    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_89);
13013    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
13014    l_rec_acct_attrs.array_char_value(33)  := p_source_60;
13015    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
13016    l_rec_acct_attrs.array_num_value(34)  := p_source_90;
13017    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
13018    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
13019    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
13020    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
13021    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
13022    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
13023    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
13024    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
13025    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
13026    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
13027 
13028    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13029    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13030 
13031    ---------------------------------------------------------------------------------------------------------------
13032    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13033    ---------------------------------------------------------------------------------------------------------------
13034    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13035 
13036    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13037    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13038 
13039    IF xla_accounting_cache_pkg.GetValueChar
13040          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13041          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13042    AND l_bflow_method_code = 'PRIOR_ENTRY'
13043 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13044    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13045          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13046        )
13047    THEN
13048          xla_ae_lines_pkg.BflowUpgEntry
13049            (p_business_method_code    => l_bflow_method_code
13050            ,p_business_class_code     => l_bflow_class_code
13051            ,p_balance_type            => l_balance_type_code);
13052    ELSE
13053       NULL;
13054 -- No business flow processing for business flow method of NONE.
13055    END IF;
13056 
13057    --
13058    -- call analytical criteria
13059    --
13060    
13061    --
13062    -- call description
13063    --
13064    
13065 xla_ae_lines_pkg.SetLineDescription(
13066    p_ae_header_id => l_ae_header_id
13067   ,p_description  => Description_2 (
13068      p_application_id         => p_application_id
13069    , p_ae_header_id           => l_ae_header_id 
13070 , p_source_1 => p_source_1
13071    )
13072 );
13073 
13074 
13075    --
13076    -- call ADRs
13077    -- Bug 4922099
13078    --
13079    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13080         (NVL(l_actual_upg_option, 'N') = 'O') OR
13081         (NVL(l_enc_upg_option, 'N') = 'O')
13082       )
13086    --
13083    THEN
13084    NULL;
13085    --
13087    
13088   l_ccid := AcctDerRule_32(
13089            p_application_id           => p_application_id
13090          , p_ae_header_id             => l_ae_header_id 
13091 , p_source_10 => p_source_10
13092 , p_source_10_meaning => p_source_10_meaning
13093 , p_source_15 => p_source_15
13094 , p_source_16 => p_source_16
13095 , p_source_17 => p_source_17
13096 , p_source_17_meaning => p_source_17_meaning
13097 , p_source_18 => p_source_18
13098 , p_source_25 => p_source_25
13099 , p_source_43 => p_source_43
13100 , p_source_43_meaning => p_source_43_meaning
13101          , x_transaction_coa_id       => l_adr_transaction_coa_id
13102          , x_accounting_coa_id        => l_adr_accounting_coa_id
13103          , x_value_type_code          => l_adr_value_type_code
13104          , p_side                     => 'ALL'
13105    );
13106 
13107    xla_ae_lines_pkg.set_ccid(
13108     p_code_combination_id          => l_ccid
13109   , p_value_type_code              => l_adr_value_type_code
13110   , p_transaction_coa_id           => l_adr_transaction_coa_id
13111   , p_accounting_coa_id            => l_adr_accounting_coa_id
13112   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13113   , p_adr_type_code                => 'S'
13114   , p_component_type               => l_component_type
13115   , p_component_code               => l_component_code
13116   , p_component_type_code          => l_component_type_code
13117   , p_component_appl_id            => l_component_appl_id
13118   , p_amb_context_code             => l_amb_context_code
13119   , p_side                         => 'ALL'
13120   );
13121 
13122 
13123    l_segment := AcctDerRule_9(
13124            p_application_id           => p_application_id
13125          , p_ae_header_id             => l_ae_header_id 
13126 , p_source_10 => p_source_10
13127 , p_source_10_meaning => p_source_10_meaning
13128 , p_source_15 => p_source_15
13129 , p_source_17 => p_source_17
13130 , p_source_17_meaning => p_source_17_meaning
13131          , x_transaction_coa_id       => l_adr_transaction_coa_id
13132          , x_accounting_coa_id        => l_adr_accounting_coa_id
13133          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13134          , x_flex_value_set_id        => l_adr_flex_value_set_id
13135          , x_value_type_code          => l_adr_value_type_code
13136          , x_value_combination_id     => l_adr_value_combination_id
13137          , x_value_segment_code       => l_adr_value_segment_code
13138          , p_side                     => 'CREDIT'
13139          , p_override_seg_flag        => 'Y'
13140    );
13141 
13142    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13143 
13144       xla_ae_lines_pkg.set_segment(
13145           p_to_segment_code         => 'GL_ACCOUNT'
13146         , p_segment_value           => l_segment
13147         , p_from_segment_code       => l_adr_value_segment_code
13148         , p_from_combination_id     => l_adr_value_combination_id
13149         , p_value_type_code         => l_adr_value_type_code
13150         , p_transaction_coa_id      => l_adr_transaction_coa_id
13151         , p_accounting_coa_id       => l_adr_accounting_coa_id
13152         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13153         , p_flex_value_set_id       => l_adr_flex_value_set_id
13154         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13155         , p_adr_type_code           => 'S'
13156         , p_component_type          => l_component_type
13157         , p_component_code          => l_component_code
13158         , p_component_type_code     => l_component_type_code
13159         , p_component_appl_id       => l_component_appl_id
13160         , p_amb_context_code        => l_amb_context_code
13161         , p_entity_code             => 'AP_INVOICES'
13162         , p_event_class_code        => 'INVOICES'
13163         , p_side                    => 'CREDIT'
13164         );
13165 
13166   END IF;
13167 
13168    l_segment := AcctDerRule_10(
13169            p_application_id           => p_application_id
13170          , p_ae_header_id             => l_ae_header_id 
13171 , p_source_10 => p_source_10
13172 , p_source_10_meaning => p_source_10_meaning
13173 , p_source_17 => p_source_17
13174 , p_source_17_meaning => p_source_17_meaning
13175 , p_source_18 => p_source_18
13176          , x_transaction_coa_id       => l_adr_transaction_coa_id
13177          , x_accounting_coa_id        => l_adr_accounting_coa_id
13178          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13179          , x_flex_value_set_id        => l_adr_flex_value_set_id
13180          , x_value_type_code          => l_adr_value_type_code
13181          , x_value_combination_id     => l_adr_value_combination_id
13182          , x_value_segment_code       => l_adr_value_segment_code
13183          , p_side                     => 'DEBIT'
13184          , p_override_seg_flag        => 'Y'
13185    );
13186 
13187    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13188 
13189       xla_ae_lines_pkg.set_segment(
13190           p_to_segment_code         => 'GL_ACCOUNT'
13191         , p_segment_value           => l_segment
13192         , p_from_segment_code       => l_adr_value_segment_code
13193         , p_from_combination_id     => l_adr_value_combination_id
13194         , p_value_type_code         => l_adr_value_type_code
13195         , p_transaction_coa_id      => l_adr_transaction_coa_id
13199         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13196         , p_accounting_coa_id       => l_adr_accounting_coa_id
13197         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13198         , p_flex_value_set_id       => l_adr_flex_value_set_id
13200         , p_adr_type_code           => 'S'
13201         , p_component_type          => l_component_type
13202         , p_component_code          => l_component_code
13203         , p_component_type_code     => l_component_type_code
13204         , p_component_appl_id       => l_component_appl_id
13205         , p_amb_context_code        => l_amb_context_code
13206         , p_entity_code             => 'AP_INVOICES'
13207         , p_event_class_code        => 'INVOICES'
13208         , p_side                    => 'DEBIT'
13209         );
13210 
13211   END IF;
13212 
13213    l_segment := AcctDerRule_24(
13214            p_application_id           => p_application_id
13215          , p_ae_header_id             => l_ae_header_id 
13216 , p_source_10 => p_source_10
13217 , p_source_10_meaning => p_source_10_meaning
13218 , p_source_17 => p_source_17
13219 , p_source_17_meaning => p_source_17_meaning
13220 , p_source_25 => p_source_25
13221          , x_transaction_coa_id       => l_adr_transaction_coa_id
13222          , x_accounting_coa_id        => l_adr_accounting_coa_id
13223          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13224          , x_flex_value_set_id        => l_adr_flex_value_set_id
13225          , x_value_type_code          => l_adr_value_type_code
13226          , x_value_combination_id     => l_adr_value_combination_id
13227          , x_value_segment_code       => l_adr_value_segment_code
13228          , p_side                     => 'ALL'
13229          , p_override_seg_flag        => 'Y'
13230    );
13231 
13232    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13233 
13234       xla_ae_lines_pkg.set_segment(
13235           p_to_segment_code         => 'GL_BALANCING'
13236         , p_segment_value           => l_segment
13237         , p_from_segment_code       => l_adr_value_segment_code
13238         , p_from_combination_id     => l_adr_value_combination_id
13239         , p_value_type_code         => l_adr_value_type_code
13240         , p_transaction_coa_id      => l_adr_transaction_coa_id
13241         , p_accounting_coa_id       => l_adr_accounting_coa_id
13242         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13243         , p_flex_value_set_id       => l_adr_flex_value_set_id
13244         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13245         , p_adr_type_code           => 'S'
13246         , p_component_type          => l_component_type
13247         , p_component_code          => l_component_code
13248         , p_component_type_code     => l_component_type_code
13249         , p_component_appl_id       => l_component_appl_id
13250         , p_amb_context_code        => l_amb_context_code
13251         , p_entity_code             => 'AP_INVOICES'
13252         , p_event_class_code        => 'INVOICES'
13253         , p_side                    => 'ALL'
13254         );
13255 
13256   END IF;
13257 
13258    --
13259    --
13260    END IF;
13261    --
13262    -- Bug 4922099
13263    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13264           (NVL(l_enc_upg_option, 'N') = 'O')
13265         ) AND
13266         (l_bflow_method_code = 'PRIOR_ENTRY')
13267       )
13268    THEN
13269       IF
13270       --
13271       1 = 2
13272       --
13273       THEN
13274       xla_accounting_err_pkg.build_message
13275                                     (p_appli_s_name            => 'XLA'
13276                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13277                                     ,p_token_1                 => 'LINE_NUMBER'
13278                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13279                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13280                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13281                                                                              l_component_type
13282                                                                             ,l_component_code
13283                                                                             ,l_component_type_code
13284                                                                             ,l_component_appl_id
13285                                                                             ,l_amb_context_code
13286                                                                             ,l_entity_code
13287                                                                             ,l_event_class_code
13288                                                                            )
13289                                     ,p_token_3                 => 'OWNER'
13290                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13291                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13292                                                                           ,p_lookup_code    => l_component_type_code
13293                                                                          )
13294                                     ,p_token_4                 => 'PRODUCT_NAME'
13295                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13299                                     ,p_ae_header_id            =>  NULL
13296                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13297                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13298                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13300                                        );
13301 
13302         IF (C_LEVEL_ERROR>= g_log_level) THEN
13303                  trace
13304                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13305                       ,p_level    => C_LEVEL_ERROR
13306                       ,p_module   => l_log_module);
13307         END IF;
13308       END IF;
13309    END IF;
13310    --
13311    --
13312    ------------------------------------------------------------------------------------------------
13313    -- 4219869 Business Flow
13314    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13315    -- Prior Entry.  Currently, the following code is always generated.
13316    ------------------------------------------------------------------------------------------------
13317    XLA_AE_LINES_PKG.ValidateCurrentLine;
13318 
13319    ------------------------------------------------------------------------------------
13320    -- 4219869 Business Flow
13321    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13322    ------------------------------------------------------------------------------------
13323    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13324 
13325    ----------------------------------------------------------------------------------
13326    -- 4219869 Business Flow
13327    -- Update journal entry status -- Need to generate this within IF <condition>
13328    ----------------------------------------------------------------------------------
13329    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13330          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13331          ,p_balance_type_code => l_balance_type_code
13332          );
13333 
13334    -------------------------------------------------------------------------------------------
13335    -- 4262811 - Generate the Accrual Reversal lines
13336    -------------------------------------------------------------------------------------------
13337    BEGIN
13338       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13339                               (g_array_event(p_event_id).array_value_num('header_index'));
13340       IF l_acc_rev_flag IS NULL THEN
13341          l_acc_rev_flag := 'N';
13342       END IF;
13343    EXCEPTION
13344       WHEN OTHERS THEN
13345          l_acc_rev_flag := 'N';
13346    END;
13347    --
13348    IF (l_acc_rev_flag = 'Y') THEN
13349 
13350        -- 4645092  ------------------------------------------------------------------------------
13351        -- To allow MPA report to determine if it should generate report process
13352        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13353        ------------------------------------------------------------------------------------------
13354 
13355        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13356        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13357    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13358    -- call ADRs
13359    -- Bug 4922099
13360    --
13361    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13362         (NVL(l_actual_upg_option, 'N') = 'O') OR
13363         (NVL(l_enc_upg_option, 'N') = 'O')
13364       )
13365    THEN
13366    NULL;
13367    --
13368    --
13369    
13370   l_ccid := AcctDerRule_32(
13371            p_application_id           => p_application_id
13372          , p_ae_header_id             => l_ae_header_id 
13373 , p_source_10 => p_source_10
13374 , p_source_10_meaning => p_source_10_meaning
13375 , p_source_15 => p_source_15
13376 , p_source_16 => p_source_16
13377 , p_source_17 => p_source_17
13378 , p_source_17_meaning => p_source_17_meaning
13379 , p_source_18 => p_source_18
13380 , p_source_25 => p_source_25
13381 , p_source_43 => p_source_43
13382 , p_source_43_meaning => p_source_43_meaning
13383          , x_transaction_coa_id       => l_adr_transaction_coa_id
13384          , x_accounting_coa_id        => l_adr_accounting_coa_id
13385          , x_value_type_code          => l_adr_value_type_code
13386          , p_side                     => 'ALL'
13387    );
13388 
13389    xla_ae_lines_pkg.set_ccid(
13390     p_code_combination_id          => l_ccid
13391   , p_value_type_code              => l_adr_value_type_code
13392   , p_transaction_coa_id           => l_adr_transaction_coa_id
13393   , p_accounting_coa_id            => l_adr_accounting_coa_id
13394   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13395   , p_adr_type_code                => 'S'
13396   , p_component_type               => l_component_type
13397   , p_component_code               => l_component_code
13398   , p_component_type_code          => l_component_type_code
13399   , p_component_appl_id            => l_component_appl_id
13400   , p_amb_context_code             => l_amb_context_code
13401   , p_side                         => 'ALL'
13402   );
13403 
13404 
13405    l_segment := AcctDerRule_9(
13406            p_application_id           => p_application_id
13407          , p_ae_header_id             => l_ae_header_id 
13408 , p_source_10 => p_source_10
13409 , p_source_10_meaning => p_source_10_meaning
13413          , x_transaction_coa_id       => l_adr_transaction_coa_id
13410 , p_source_15 => p_source_15
13411 , p_source_17 => p_source_17
13412 , p_source_17_meaning => p_source_17_meaning
13414          , x_accounting_coa_id        => l_adr_accounting_coa_id
13415          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13416          , x_flex_value_set_id        => l_adr_flex_value_set_id
13417          , x_value_type_code          => l_adr_value_type_code
13418          , x_value_combination_id     => l_adr_value_combination_id
13419          , x_value_segment_code       => l_adr_value_segment_code
13420          , p_side                     => 'CREDIT'
13421          , p_override_seg_flag        => 'Y'
13422    );
13423 
13424    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13425 
13426       xla_ae_lines_pkg.set_segment(
13427           p_to_segment_code         => 'GL_ACCOUNT'
13428         , p_segment_value           => l_segment
13429         , p_from_segment_code       => l_adr_value_segment_code
13430         , p_from_combination_id     => l_adr_value_combination_id
13431         , p_value_type_code         => l_adr_value_type_code
13432         , p_transaction_coa_id      => l_adr_transaction_coa_id
13433         , p_accounting_coa_id       => l_adr_accounting_coa_id
13434         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13435         , p_flex_value_set_id       => l_adr_flex_value_set_id
13436         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13437         , p_adr_type_code           => 'S'
13438         , p_component_type          => l_component_type
13439         , p_component_code          => l_component_code
13440         , p_component_type_code     => l_component_type_code
13441         , p_component_appl_id       => l_component_appl_id
13442         , p_amb_context_code        => l_amb_context_code
13443         , p_entity_code             => 'AP_INVOICES'
13444         , p_event_class_code        => 'INVOICES'
13445         , p_side                    => 'CREDIT'
13446         );
13447 
13448   END IF;
13449 
13450    l_segment := AcctDerRule_10(
13451            p_application_id           => p_application_id
13452          , p_ae_header_id             => l_ae_header_id 
13453 , p_source_10 => p_source_10
13454 , p_source_10_meaning => p_source_10_meaning
13455 , p_source_17 => p_source_17
13456 , p_source_17_meaning => p_source_17_meaning
13457 , p_source_18 => p_source_18
13458          , x_transaction_coa_id       => l_adr_transaction_coa_id
13459          , x_accounting_coa_id        => l_adr_accounting_coa_id
13460          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13461          , x_flex_value_set_id        => l_adr_flex_value_set_id
13462          , x_value_type_code          => l_adr_value_type_code
13463          , x_value_combination_id     => l_adr_value_combination_id
13464          , x_value_segment_code       => l_adr_value_segment_code
13465          , p_side                     => 'DEBIT'
13466          , p_override_seg_flag        => 'Y'
13467    );
13468 
13469    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13470 
13471       xla_ae_lines_pkg.set_segment(
13472           p_to_segment_code         => 'GL_ACCOUNT'
13473         , p_segment_value           => l_segment
13474         , p_from_segment_code       => l_adr_value_segment_code
13475         , p_from_combination_id     => l_adr_value_combination_id
13476         , p_value_type_code         => l_adr_value_type_code
13477         , p_transaction_coa_id      => l_adr_transaction_coa_id
13478         , p_accounting_coa_id       => l_adr_accounting_coa_id
13479         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13480         , p_flex_value_set_id       => l_adr_flex_value_set_id
13481         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13482         , p_adr_type_code           => 'S'
13483         , p_component_type          => l_component_type
13484         , p_component_code          => l_component_code
13485         , p_component_type_code     => l_component_type_code
13486         , p_component_appl_id       => l_component_appl_id
13487         , p_amb_context_code        => l_amb_context_code
13488         , p_entity_code             => 'AP_INVOICES'
13489         , p_event_class_code        => 'INVOICES'
13490         , p_side                    => 'DEBIT'
13491         );
13492 
13493   END IF;
13494 
13495    l_segment := AcctDerRule_24(
13496            p_application_id           => p_application_id
13497          , p_ae_header_id             => l_ae_header_id 
13498 , p_source_10 => p_source_10
13499 , p_source_10_meaning => p_source_10_meaning
13500 , p_source_17 => p_source_17
13501 , p_source_17_meaning => p_source_17_meaning
13502 , p_source_25 => p_source_25
13503          , x_transaction_coa_id       => l_adr_transaction_coa_id
13504          , x_accounting_coa_id        => l_adr_accounting_coa_id
13505          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13506          , x_flex_value_set_id        => l_adr_flex_value_set_id
13507          , x_value_type_code          => l_adr_value_type_code
13508          , x_value_combination_id     => l_adr_value_combination_id
13509          , x_value_segment_code       => l_adr_value_segment_code
13510          , p_side                     => 'ALL'
13511          , p_override_seg_flag        => 'Y'
13512    );
13513 
13514    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13515 
13519         , p_from_segment_code       => l_adr_value_segment_code
13516       xla_ae_lines_pkg.set_segment(
13517           p_to_segment_code         => 'GL_BALANCING'
13518         , p_segment_value           => l_segment
13520         , p_from_combination_id     => l_adr_value_combination_id
13521         , p_value_type_code         => l_adr_value_type_code
13522         , p_transaction_coa_id      => l_adr_transaction_coa_id
13523         , p_accounting_coa_id       => l_adr_accounting_coa_id
13524         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13525         , p_flex_value_set_id       => l_adr_flex_value_set_id
13526         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13527         , p_adr_type_code           => 'S'
13528         , p_component_type          => l_component_type
13529         , p_component_code          => l_component_code
13530         , p_component_type_code     => l_component_type_code
13531         , p_component_appl_id       => l_component_appl_id
13532         , p_amb_context_code        => l_amb_context_code
13533         , p_entity_code             => 'AP_INVOICES'
13534         , p_event_class_code        => 'INVOICES'
13535         , p_side                    => 'ALL'
13536         );
13537 
13538   END IF;
13539 
13540    --
13541    --
13542    END IF;
13543 
13544        --
13545        -- Update the line information that should be overwritten
13546        --
13547        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13548                                          p_header_num   => 1);
13549        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13550 
13551        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13552 
13553        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13554           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13555        END IF;
13556 
13557       --
13558       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13559       --
13560       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13561           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13562       ELSE
13563           ---------------------------------------------------------------------------------------------------
13564           -- 4262811a Switch Sign
13565           ---------------------------------------------------------------------------------------------------
13566           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13567           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13568                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13569           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13570                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13571           -- 5132302
13572           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13573                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13574 
13575       END IF;
13576 
13577       -- 4955764
13578       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13579       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13580 
13581 
13582       XLA_AE_LINES_PKG.ValidateCurrentLine;
13583       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13584 
13585       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13586                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13587                ,p_balance_type_code => l_balance_type_code);
13588 
13589    END IF;
13590 
13591    -----------------------------------------------------------------------------------------
13592    -- 4262811 Multiperiod Accounting
13593    -----------------------------------------------------------------------------------------
13594      -- No MPA option is assigned.
13595 
13596 
13597 END IF;
13598 END IF;
13599 --
13600 
13601 --
13602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13603    trace
13604       (p_msg      => 'END of AcctLineType_62'
13605       ,p_level    => C_LEVEL_PROCEDURE
13606       ,p_module   => l_log_module);
13607 END IF;
13608 --
13609 EXCEPTION
13610   WHEN xla_exceptions_pkg.application_exception THEN
13611       RAISE;
13612   WHEN OTHERS THEN
13613        xla_exceptions_pkg.raise_message
13614            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_62');
13615 END AcctLineType_62;
13616 --
13617 
13618 ---------------------------------------
13619 --
13620 -- PRIVATE FUNCTION
13621 --         AcctLineType_63
13622 --
13623 ---------------------------------------
13624 PROCEDURE AcctLineType_63 (
13625   p_application_id        IN NUMBER
13626  ,p_event_id              IN NUMBER
13627  ,p_calculate_acctd_flag  IN VARCHAR2
13628  ,p_calculate_g_l_flag    IN VARCHAR2
13629  ,p_actual_flag           IN OUT VARCHAR2
13630  ,p_balance_type_code     OUT VARCHAR2
13631  ,p_gain_or_loss_ref      OUT VARCHAR2
13635 --Automatic Offsets Value
13632  
13633 --Invoice Distribution Description
13634  , p_source_1            IN VARCHAR2
13636  , p_source_10            IN VARCHAR2
13637  , p_source_10_meaning    IN VARCHAR2
13638 --Purchase Order Rate Variance Gain Account
13639  , p_source_15            IN NUMBER
13640 --Invoice Distribution Ledger Amount
13641  , p_source_16            IN NUMBER
13642 --Destination Type of the PO Distribution
13643  , p_source_17            IN VARCHAR2
13644  , p_source_17_meaning    IN VARCHAR2
13645 --Purchase Order Rate Variance Loss Account
13646  , p_source_18            IN NUMBER
13647 --Invoice Distribution Account
13648  , p_source_25            IN NUMBER
13649 --Invoice Distribution Type
13650  , p_source_28            IN VARCHAR2
13651  , p_source_28_meaning    IN VARCHAR2
13652 --Automatic Offsets Flag
13653  , p_source_43            IN VARCHAR2
13654  , p_source_43_meaning    IN VARCHAR2
13655 --Accounting Reversal Indicator
13656  , p_source_58            IN VARCHAR2
13657 --Distribution Link Type
13658  , p_source_60            IN VARCHAR2
13659 --Allocation to Main Distribution Identifier
13660  , p_source_62            IN NUMBER
13661 --Invoice Identifier
13662  , p_source_63            IN NUMBER
13663 --Invoice Distribution Identifier
13664  , p_source_69            IN NUMBER
13665 --Payables Encumbrance Upgrade Credit Account
13666  , p_source_70            IN NUMBER
13667 --Payables Encumbrance Upgrade Credit Amount
13668  , p_source_71            IN NUMBER
13669 --Invoice Currency Code
13670  , p_source_72            IN VARCHAR2
13671 --Payables Encumbrance Upgrade Credit Base Amount
13672  , p_source_73            IN NUMBER
13673 --Payables Encumbrance Upgrade Debit Account
13674  , p_source_74            IN NUMBER
13675 --Payables Encumbrance Upgrade Debit Amount
13676  , p_source_75            IN NUMBER
13677 --Payables Encumbrance Upgrade Debit Base Amount
13678  , p_source_76            IN NUMBER
13679 --Payables Encumbrance Upgrade Option
13680  , p_source_77            IN VARCHAR2
13681 --Deferred Accounting End Date
13682  , p_source_82            IN DATE
13683 --Deferred Accounting Option
13684  , p_source_83            IN VARCHAR2
13685 --Deferred Accounting Start Date
13686  , p_source_84            IN DATE
13687 --Override Accounted Amount Indicator
13688  , p_source_85            IN VARCHAR2
13689  , p_source_85_meaning    IN VARCHAR2
13690 --Invoice Supplier Identifier
13691  , p_source_86            IN NUMBER
13692 --Invoice Supplier Site Identifier
13693  , p_source_87            IN NUMBER
13694 --Third Party Type
13695  , p_source_88            IN VARCHAR2
13696 --Parent Reversal Identifier
13697  , p_source_89            IN NUMBER
13698 --Invoice Distribution Statistical Amount
13699  , p_source_90            IN NUMBER
13700 --Invoice Distribution Tax Line Identifier
13701  , p_source_91            IN NUMBER
13702 --Invoice Distribution Tax Distribution Identifier from Tax
13703  , p_source_92            IN NUMBER
13704 --Invoice Distribution Summary Tax Line Identifier
13705  , p_source_93            IN NUMBER
13706 --Payables Upgrade Credit Encumbrance Type Identifier
13707  , p_source_94            IN NUMBER
13708 --Payables Upgrade Debit Encumbrance Type Identifier
13709  , p_source_95            IN NUMBER
13710 --Business Flow Accounts Payable Application Identifier
13711  , p_source_96            IN NUMBER
13712 --Business Flow Invoice Distribution Type
13713  , p_source_97            IN VARCHAR2
13714 --Business Flow Invoice Entity Code
13715  , p_source_98            IN VARCHAR2
13716 --Business Flow Invoice Distribution Identifier
13717  , p_source_99            IN NUMBER
13718 --Business Flow Invoice Identifier
13719  , p_source_100            IN NUMBER
13720 )
13721 IS
13722 
13723 l_component_type              VARCHAR2(80);
13724 l_component_code              VARCHAR2(30);
13725 l_component_type_code         VARCHAR2(1);
13726 l_component_appl_id           INTEGER;
13727 l_amb_context_code            VARCHAR2(30);
13728 l_entity_code                 VARCHAR2(30);
13729 l_event_class_code            VARCHAR2(30);
13730 l_ae_header_id                NUMBER;
13731 l_event_type_code             VARCHAR2(30);
13732 l_line_definition_code        VARCHAR2(30);
13733 l_line_definition_owner_code  VARCHAR2(1);
13734 --
13735 -- adr variables
13736 l_segment                     VARCHAR2(30);
13737 l_ccid                        NUMBER;
13738 l_adr_transaction_coa_id      NUMBER;
13739 l_adr_accounting_coa_id       NUMBER;
13740 l_adr_flexfield_segment_code  VARCHAR2(30);
13741 l_adr_flex_value_set_id       NUMBER;
13742 l_adr_value_type_code         VARCHAR2(30);
13743 l_adr_value_combination_id    NUMBER;
13744 l_adr_value_segment_code      VARCHAR2(30);
13745 
13746 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13747 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13748 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13749 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13750 
13751 -- 4262811 Variables ------------------------------------------------------------------------------------------
13752 l_entered_amt_idx             NUMBER;
13753 l_accted_amt_idx              NUMBER;
13754 l_acc_rev_flag                VARCHAR2(1);
13755 l_accrual_line_num            NUMBER;
13756 l_tmp_amt                     NUMBER;
13757 l_acc_rev_natural_side_code   VARCHAR2(1);
13758 
13759 l_num_entries                 NUMBER;
13763 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13760 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13761 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13762 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13764 l_recog_line_1                NUMBER;
13765 l_recog_line_2                NUMBER;
13766 
13767 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13768 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13769 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13770 
13771 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13772 
13773 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13774 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13775 
13776 ---------------------------------------------------------------------------------------------------------------
13777 
13778 
13779 --
13780 -- bulk performance
13781 --
13782 l_balance_type_code           VARCHAR2(1);
13783 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13784 l_log_module                  VARCHAR2(240);
13785 
13786 --
13787 -- Upgrade strategy
13788 --
13789 l_actual_upg_option           VARCHAR2(1);
13790 l_enc_upg_option           VARCHAR2(1);
13791 
13792 --
13793 BEGIN
13794 --
13795 IF g_log_enabled THEN
13796       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
13797 END IF;
13798 --
13799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13800 
13801       trace
13802          (p_msg      => 'BEGIN of AcctLineType_63'
13803          ,p_level    => C_LEVEL_PROCEDURE
13804          ,p_module   => l_log_module);
13805 
13806 END IF;
13807 --
13808 l_component_type             := 'AMB_JLT';
13809 l_component_code             := 'AP_ALC_EX_RATE_VAR_PREPAY';
13810 l_component_type_code        := 'S';
13811 l_component_appl_id          :=  200;
13812 l_amb_context_code           := 'DEFAULT';
13813 l_entity_code                := 'AP_INVOICES';
13814 l_event_class_code           := 'PREPAYMENTS';
13815 l_event_type_code            := 'PREPAYMENTS_ALL';
13816 l_line_definition_owner_code := 'S';
13817 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
13818 --
13819 l_balance_type_code          := 'A';
13820 l_segment                     := NULL;
13821 l_ccid                        := NULL;
13822 l_adr_transaction_coa_id      := NULL;
13823 l_adr_accounting_coa_id       := NULL;
13824 l_adr_flexfield_segment_code  := NULL;
13825 l_adr_flex_value_set_id       := NULL;
13826 l_adr_value_type_code         := NULL;
13827 l_adr_value_combination_id    := NULL;
13828 l_adr_value_segment_code      := NULL;
13829 
13830 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13831 l_bflow_class_code           := '';    -- 4219869 Business Flow
13832 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13833 l_budgetary_control_flag     := 'N';
13834 
13835 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13836 l_bflow_applied_to_amt       := NULL; -- 5132302
13837 l_entered_amt_idx            := NULL;          -- 4262811
13838 l_accted_amt_idx             := NULL;          -- 4262811
13839 l_acc_rev_flag               := NULL;          -- 4262811
13840 l_accrual_line_num           := NULL;          -- 4262811
13841 l_tmp_amt                    := NULL;          -- 4262811
13842 --
13843 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13844             (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
13845                return;
13846   END IF;
13847   
13848 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13849     l_balance_type_code <> 'B' THEN
13850 IF NVL(p_source_28,'
13851 ') =  'ACCRUAL'
13852  THEN 
13853 
13854    --
13855    XLA_AE_LINES_PKG.SetNewLine;
13856 
13857    p_balance_type_code          := l_balance_type_code;
13858    -- set the flag so later we will know whether the gain loss line needs to be created
13859    
13860    IF(l_balance_type_code = 'A' ) THEN
13861      p_actual_flag :='G';
13862    END IF;
13863 
13864    --
13865    -- bulk performance
13866    --
13867    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13868                                       p_header_num   => 0); -- 4262811
13869    --
13870    -- set accounting line options
13871    --
13872    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13873            p_natural_side_code          => 'G'
13874          , p_gain_or_loss_flag          => 'N'
13875          , p_gl_transfer_mode_code      => 'S'
13876          , p_acct_entry_type_code       => 'A'
13877          , p_switch_side_flag           => ''
13878          , p_merge_duplicate_code       => 'A'
13879          );
13880    --
13881    l_acc_rev_natural_side_code := 'C';  -- 4262811
13882    -- 
13883    --
13884    -- set accounting line type info
13885    --
13886    xla_ae_lines_pkg.SetAcctLineType
13887       (p_component_type             => l_component_type
13891       ,p_accounting_line_code       => l_component_code
13888       ,p_event_type_code            => l_event_type_code
13889       ,p_line_definition_owner_code => l_line_definition_owner_code
13890       ,p_line_definition_code       => l_line_definition_code
13892       ,p_accounting_line_type_code  => l_component_type_code
13893       ,p_accounting_line_appl_id    => l_component_appl_id
13894       ,p_amb_context_code           => l_amb_context_code
13895       ,p_entity_code                => l_entity_code
13896       ,p_event_class_code           => l_event_class_code);
13897    --
13898    -- set accounting class
13899    --
13900    xla_ae_lines_pkg.SetAcctClass(
13901            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
13902          , p_ae_header_id           => l_ae_header_id
13903          );
13904 
13905    --
13906    -- set rounding class
13907    --
13908    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13909                       'EXCHANGE_RATE_VARIANCE';
13910 
13911    --
13912    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13913    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13914    --
13915    -- bulk performance
13916    --
13917    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13918 
13919    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13920       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13921 
13922    -- 4955764
13923    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13924       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13925 
13926    -- 4458381 Public Sector Enh
13927    
13928    --
13929    -- set accounting attributes for the line type
13930    --
13931    l_entered_amt_idx := NULL;
13932    l_accted_amt_idx  := 23;
13933    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
13934    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13935    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
13936    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13937    l_rec_acct_attrs.array_num_value(2)  := 
13938 xla_ae_sources_pkg.GetSystemSourceNum(
13939    p_source_code           => 'XLA_EVENT_APPL_ID'
13940  , p_source_type_code      => 'Y'
13941  , p_source_application_id =>  602
13942 );
13943    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13944    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
13945    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13946    l_rec_acct_attrs.array_char_value(4)  := 
13947 xla_ae_sources_pkg.GetSystemSourceChar(
13948    p_source_code           => 'XLA_ENTITY_CODE'
13949  , p_source_type_code      => 'Y'
13950  , p_source_application_id =>  602
13951 );
13952    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13953    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
13954    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13955    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
13956    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13957    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
13958    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13959    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
13960    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13961    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
13962    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13963    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
13964    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13965    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
13966    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13967    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
13968    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13969    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
13970    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13971    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
13972    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13973    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
13974    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13975    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
13976    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13977    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
13978    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13979    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
13980    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13981    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
13982    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13983    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
13984    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13985    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
13986    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13987    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
13988    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
13992    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
13989    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
13990    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
13991    l_rec_acct_attrs.array_date_value(24)  := p_source_82;
13993    l_rec_acct_attrs.array_char_value(25)  := p_source_83;
13994    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
13995    l_rec_acct_attrs.array_date_value(26)  := p_source_84;
13996    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
13997    l_rec_acct_attrs.array_char_value(27)  := p_source_85;
13998    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
13999    l_rec_acct_attrs.array_num_value(28)  := p_source_86;
14000    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
14001    l_rec_acct_attrs.array_num_value(29)  := p_source_87;
14002    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
14003    l_rec_acct_attrs.array_char_value(30)  := p_source_88;
14004    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
14005    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_89);
14006    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
14007    l_rec_acct_attrs.array_char_value(32)  := p_source_60;
14008    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
14009    l_rec_acct_attrs.array_num_value(33)  := p_source_90;
14010    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
14011    l_rec_acct_attrs.array_num_value(34)  := p_source_91;
14012    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
14013    l_rec_acct_attrs.array_num_value(35)  := p_source_92;
14014    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
14015    l_rec_acct_attrs.array_num_value(36)  := p_source_93;
14016    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
14017    l_rec_acct_attrs.array_num_value(37)  := p_source_94;
14018    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
14019    l_rec_acct_attrs.array_num_value(38)  := p_source_95;
14020 
14021    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14022    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14023 
14024    ---------------------------------------------------------------------------------------------------------------
14025    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14026    ---------------------------------------------------------------------------------------------------------------
14027    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14028 
14029    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14030    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14031 
14032    IF xla_accounting_cache_pkg.GetValueChar
14033          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14034          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14035    AND l_bflow_method_code = 'PRIOR_ENTRY'
14036 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14037    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14038          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14039        )
14040    THEN
14041          xla_ae_lines_pkg.BflowUpgEntry
14042            (p_business_method_code    => l_bflow_method_code
14043            ,p_business_class_code     => l_bflow_class_code
14044            ,p_balance_type            => l_balance_type_code);
14045    ELSE
14046       NULL;
14047 -- No business flow processing for business flow method of NONE.
14048    END IF;
14049 
14050    --
14051    -- call analytical criteria
14052    --
14053    
14054    --
14055    -- call description
14056    --
14057    
14058 xla_ae_lines_pkg.SetLineDescription(
14059    p_ae_header_id => l_ae_header_id
14060   ,p_description  => Description_2 (
14061      p_application_id         => p_application_id
14062    , p_ae_header_id           => l_ae_header_id 
14063 , p_source_1 => p_source_1
14064    )
14065 );
14066 
14067 
14068    --
14069    -- call ADRs
14070    -- Bug 4922099
14071    --
14072    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14073         (NVL(l_actual_upg_option, 'N') = 'O') OR
14074         (NVL(l_enc_upg_option, 'N') = 'O')
14075       )
14076    THEN
14077    NULL;
14078    --
14079    --
14080    
14081   l_ccid := AcctDerRule_32(
14082            p_application_id           => p_application_id
14083          , p_ae_header_id             => l_ae_header_id 
14084 , p_source_10 => p_source_10
14085 , p_source_10_meaning => p_source_10_meaning
14086 , p_source_15 => p_source_15
14087 , p_source_16 => p_source_16
14088 , p_source_17 => p_source_17
14089 , p_source_17_meaning => p_source_17_meaning
14090 , p_source_18 => p_source_18
14091 , p_source_25 => p_source_25
14092 , p_source_43 => p_source_43
14093 , p_source_43_meaning => p_source_43_meaning
14094          , x_transaction_coa_id       => l_adr_transaction_coa_id
14095          , x_accounting_coa_id        => l_adr_accounting_coa_id
14096          , x_value_type_code          => l_adr_value_type_code
14097          , p_side                     => 'ALL'
14098    );
14099 
14100    xla_ae_lines_pkg.set_ccid(
14101     p_code_combination_id          => l_ccid
14105   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14102   , p_value_type_code              => l_adr_value_type_code
14103   , p_transaction_coa_id           => l_adr_transaction_coa_id
14104   , p_accounting_coa_id            => l_adr_accounting_coa_id
14106   , p_adr_type_code                => 'S'
14107   , p_component_type               => l_component_type
14108   , p_component_code               => l_component_code
14109   , p_component_type_code          => l_component_type_code
14110   , p_component_appl_id            => l_component_appl_id
14111   , p_amb_context_code             => l_amb_context_code
14112   , p_side                         => 'ALL'
14113   );
14114 
14115 
14116    l_segment := AcctDerRule_9(
14117            p_application_id           => p_application_id
14118          , p_ae_header_id             => l_ae_header_id 
14119 , p_source_10 => p_source_10
14120 , p_source_10_meaning => p_source_10_meaning
14121 , p_source_15 => p_source_15
14122 , p_source_17 => p_source_17
14123 , p_source_17_meaning => p_source_17_meaning
14124          , x_transaction_coa_id       => l_adr_transaction_coa_id
14125          , x_accounting_coa_id        => l_adr_accounting_coa_id
14126          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14127          , x_flex_value_set_id        => l_adr_flex_value_set_id
14128          , x_value_type_code          => l_adr_value_type_code
14129          , x_value_combination_id     => l_adr_value_combination_id
14130          , x_value_segment_code       => l_adr_value_segment_code
14131          , p_side                     => 'CREDIT'
14132          , p_override_seg_flag        => 'Y'
14133    );
14134 
14135    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14136 
14137       xla_ae_lines_pkg.set_segment(
14138           p_to_segment_code         => 'GL_ACCOUNT'
14139         , p_segment_value           => l_segment
14140         , p_from_segment_code       => l_adr_value_segment_code
14141         , p_from_combination_id     => l_adr_value_combination_id
14142         , p_value_type_code         => l_adr_value_type_code
14143         , p_transaction_coa_id      => l_adr_transaction_coa_id
14144         , p_accounting_coa_id       => l_adr_accounting_coa_id
14145         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14146         , p_flex_value_set_id       => l_adr_flex_value_set_id
14147         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14148         , p_adr_type_code           => 'S'
14149         , p_component_type          => l_component_type
14150         , p_component_code          => l_component_code
14151         , p_component_type_code     => l_component_type_code
14152         , p_component_appl_id       => l_component_appl_id
14153         , p_amb_context_code        => l_amb_context_code
14154         , p_entity_code             => 'AP_INVOICES'
14155         , p_event_class_code        => 'PREPAYMENTS'
14156         , p_side                    => 'CREDIT'
14157         );
14158 
14159   END IF;
14160 
14161    l_segment := AcctDerRule_10(
14162            p_application_id           => p_application_id
14163          , p_ae_header_id             => l_ae_header_id 
14164 , p_source_10 => p_source_10
14165 , p_source_10_meaning => p_source_10_meaning
14166 , p_source_17 => p_source_17
14167 , p_source_17_meaning => p_source_17_meaning
14168 , p_source_18 => p_source_18
14169          , x_transaction_coa_id       => l_adr_transaction_coa_id
14170          , x_accounting_coa_id        => l_adr_accounting_coa_id
14171          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14172          , x_flex_value_set_id        => l_adr_flex_value_set_id
14173          , x_value_type_code          => l_adr_value_type_code
14174          , x_value_combination_id     => l_adr_value_combination_id
14175          , x_value_segment_code       => l_adr_value_segment_code
14176          , p_side                     => 'DEBIT'
14177          , p_override_seg_flag        => 'Y'
14178    );
14179 
14180    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14181 
14182       xla_ae_lines_pkg.set_segment(
14183           p_to_segment_code         => 'GL_ACCOUNT'
14184         , p_segment_value           => l_segment
14185         , p_from_segment_code       => l_adr_value_segment_code
14186         , p_from_combination_id     => l_adr_value_combination_id
14187         , p_value_type_code         => l_adr_value_type_code
14188         , p_transaction_coa_id      => l_adr_transaction_coa_id
14189         , p_accounting_coa_id       => l_adr_accounting_coa_id
14190         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14191         , p_flex_value_set_id       => l_adr_flex_value_set_id
14192         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14193         , p_adr_type_code           => 'S'
14194         , p_component_type          => l_component_type
14195         , p_component_code          => l_component_code
14196         , p_component_type_code     => l_component_type_code
14197         , p_component_appl_id       => l_component_appl_id
14198         , p_amb_context_code        => l_amb_context_code
14199         , p_entity_code             => 'AP_INVOICES'
14200         , p_event_class_code        => 'PREPAYMENTS'
14201         , p_side                    => 'DEBIT'
14202         );
14203 
14204   END IF;
14205 
14206    l_segment := AcctDerRule_24(
14207            p_application_id           => p_application_id
14208          , p_ae_header_id             => l_ae_header_id 
14209 , p_source_10 => p_source_10
14210 , p_source_10_meaning => p_source_10_meaning
14211 , p_source_17 => p_source_17
14212 , p_source_17_meaning => p_source_17_meaning
14213 , p_source_25 => p_source_25
14217          , x_flex_value_set_id        => l_adr_flex_value_set_id
14214          , x_transaction_coa_id       => l_adr_transaction_coa_id
14215          , x_accounting_coa_id        => l_adr_accounting_coa_id
14216          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14218          , x_value_type_code          => l_adr_value_type_code
14219          , x_value_combination_id     => l_adr_value_combination_id
14220          , x_value_segment_code       => l_adr_value_segment_code
14221          , p_side                     => 'ALL'
14222          , p_override_seg_flag        => 'Y'
14223    );
14224 
14225    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14226 
14227       xla_ae_lines_pkg.set_segment(
14228           p_to_segment_code         => 'GL_BALANCING'
14229         , p_segment_value           => l_segment
14230         , p_from_segment_code       => l_adr_value_segment_code
14231         , p_from_combination_id     => l_adr_value_combination_id
14232         , p_value_type_code         => l_adr_value_type_code
14233         , p_transaction_coa_id      => l_adr_transaction_coa_id
14234         , p_accounting_coa_id       => l_adr_accounting_coa_id
14235         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14236         , p_flex_value_set_id       => l_adr_flex_value_set_id
14237         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14238         , p_adr_type_code           => 'S'
14239         , p_component_type          => l_component_type
14240         , p_component_code          => l_component_code
14241         , p_component_type_code     => l_component_type_code
14242         , p_component_appl_id       => l_component_appl_id
14243         , p_amb_context_code        => l_amb_context_code
14244         , p_entity_code             => 'AP_INVOICES'
14245         , p_event_class_code        => 'PREPAYMENTS'
14246         , p_side                    => 'ALL'
14247         );
14248 
14249   END IF;
14250 
14251    --
14252    --
14253    END IF;
14254    --
14255    -- Bug 4922099
14256    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14257           (NVL(l_enc_upg_option, 'N') = 'O')
14258         ) AND
14259         (l_bflow_method_code = 'PRIOR_ENTRY')
14260       )
14261    THEN
14262       IF
14263       --
14264       1 = 2
14265       --
14266       THEN
14267       xla_accounting_err_pkg.build_message
14268                                     (p_appli_s_name            => 'XLA'
14269                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14270                                     ,p_token_1                 => 'LINE_NUMBER'
14271                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14272                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14273                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14274                                                                              l_component_type
14275                                                                             ,l_component_code
14276                                                                             ,l_component_type_code
14277                                                                             ,l_component_appl_id
14278                                                                             ,l_amb_context_code
14279                                                                             ,l_entity_code
14280                                                                             ,l_event_class_code
14281                                                                            )
14282                                     ,p_token_3                 => 'OWNER'
14283                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14284                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14285                                                                           ,p_lookup_code    => l_component_type_code
14286                                                                          )
14287                                     ,p_token_4                 => 'PRODUCT_NAME'
14288                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14289                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14290                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14291                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14292                                     ,p_ae_header_id            =>  NULL
14293                                        );
14294 
14295         IF (C_LEVEL_ERROR>= g_log_level) THEN
14296                  trace
14297                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14298                       ,p_level    => C_LEVEL_ERROR
14299                       ,p_module   => l_log_module);
14300         END IF;
14301       END IF;
14302    END IF;
14303    --
14304    --
14305    ------------------------------------------------------------------------------------------------
14306    -- 4219869 Business Flow
14307    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14308    -- Prior Entry.  Currently, the following code is always generated.
14309    ------------------------------------------------------------------------------------------------
14313    -- 4219869 Business Flow
14310    XLA_AE_LINES_PKG.ValidateCurrentLine;
14311 
14312    ------------------------------------------------------------------------------------
14314    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14315    ------------------------------------------------------------------------------------
14316    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14317 
14318    ----------------------------------------------------------------------------------
14319    -- 4219869 Business Flow
14320    -- Update journal entry status -- Need to generate this within IF <condition>
14321    ----------------------------------------------------------------------------------
14322    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14323          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14324          ,p_balance_type_code => l_balance_type_code
14325          );
14326 
14327    -------------------------------------------------------------------------------------------
14328    -- 4262811 - Generate the Accrual Reversal lines
14329    -------------------------------------------------------------------------------------------
14330    BEGIN
14331       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14332                               (g_array_event(p_event_id).array_value_num('header_index'));
14333       IF l_acc_rev_flag IS NULL THEN
14334          l_acc_rev_flag := 'N';
14335       END IF;
14336    EXCEPTION
14337       WHEN OTHERS THEN
14338          l_acc_rev_flag := 'N';
14339    END;
14340    --
14341    IF (l_acc_rev_flag = 'Y') THEN
14342 
14343        -- 4645092  ------------------------------------------------------------------------------
14344        -- To allow MPA report to determine if it should generate report process
14345        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14346        ------------------------------------------------------------------------------------------
14347 
14348        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14349        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14350    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14351    -- call ADRs
14352    -- Bug 4922099
14353    --
14354    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14355         (NVL(l_actual_upg_option, 'N') = 'O') OR
14356         (NVL(l_enc_upg_option, 'N') = 'O')
14357       )
14358    THEN
14359    NULL;
14360    --
14361    --
14362    
14363   l_ccid := AcctDerRule_32(
14364            p_application_id           => p_application_id
14365          , p_ae_header_id             => l_ae_header_id 
14366 , p_source_10 => p_source_10
14367 , p_source_10_meaning => p_source_10_meaning
14368 , p_source_15 => p_source_15
14369 , p_source_16 => p_source_16
14370 , p_source_17 => p_source_17
14371 , p_source_17_meaning => p_source_17_meaning
14372 , p_source_18 => p_source_18
14373 , p_source_25 => p_source_25
14374 , p_source_43 => p_source_43
14375 , p_source_43_meaning => p_source_43_meaning
14376          , x_transaction_coa_id       => l_adr_transaction_coa_id
14377          , x_accounting_coa_id        => l_adr_accounting_coa_id
14378          , x_value_type_code          => l_adr_value_type_code
14379          , p_side                     => 'ALL'
14380    );
14381 
14382    xla_ae_lines_pkg.set_ccid(
14383     p_code_combination_id          => l_ccid
14384   , p_value_type_code              => l_adr_value_type_code
14385   , p_transaction_coa_id           => l_adr_transaction_coa_id
14386   , p_accounting_coa_id            => l_adr_accounting_coa_id
14387   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14388   , p_adr_type_code                => 'S'
14389   , p_component_type               => l_component_type
14390   , p_component_code               => l_component_code
14391   , p_component_type_code          => l_component_type_code
14392   , p_component_appl_id            => l_component_appl_id
14393   , p_amb_context_code             => l_amb_context_code
14394   , p_side                         => 'ALL'
14395   );
14396 
14397 
14398    l_segment := AcctDerRule_9(
14399            p_application_id           => p_application_id
14400          , p_ae_header_id             => l_ae_header_id 
14401 , p_source_10 => p_source_10
14402 , p_source_10_meaning => p_source_10_meaning
14403 , p_source_15 => p_source_15
14404 , p_source_17 => p_source_17
14405 , p_source_17_meaning => p_source_17_meaning
14406          , x_transaction_coa_id       => l_adr_transaction_coa_id
14407          , x_accounting_coa_id        => l_adr_accounting_coa_id
14408          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14409          , x_flex_value_set_id        => l_adr_flex_value_set_id
14410          , x_value_type_code          => l_adr_value_type_code
14411          , x_value_combination_id     => l_adr_value_combination_id
14412          , x_value_segment_code       => l_adr_value_segment_code
14413          , p_side                     => 'CREDIT'
14414          , p_override_seg_flag        => 'Y'
14415    );
14416 
14417    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14418 
14419       xla_ae_lines_pkg.set_segment(
14420           p_to_segment_code         => 'GL_ACCOUNT'
14421         , p_segment_value           => l_segment
14422         , p_from_segment_code       => l_adr_value_segment_code
14423         , p_from_combination_id     => l_adr_value_combination_id
14424         , p_value_type_code         => l_adr_value_type_code
14428         , p_flex_value_set_id       => l_adr_flex_value_set_id
14425         , p_transaction_coa_id      => l_adr_transaction_coa_id
14426         , p_accounting_coa_id       => l_adr_accounting_coa_id
14427         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14429         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14430         , p_adr_type_code           => 'S'
14431         , p_component_type          => l_component_type
14432         , p_component_code          => l_component_code
14433         , p_component_type_code     => l_component_type_code
14434         , p_component_appl_id       => l_component_appl_id
14435         , p_amb_context_code        => l_amb_context_code
14436         , p_entity_code             => 'AP_INVOICES'
14437         , p_event_class_code        => 'PREPAYMENTS'
14438         , p_side                    => 'CREDIT'
14439         );
14440 
14441   END IF;
14442 
14443    l_segment := AcctDerRule_10(
14444            p_application_id           => p_application_id
14445          , p_ae_header_id             => l_ae_header_id 
14446 , p_source_10 => p_source_10
14447 , p_source_10_meaning => p_source_10_meaning
14448 , p_source_17 => p_source_17
14449 , p_source_17_meaning => p_source_17_meaning
14450 , p_source_18 => p_source_18
14451          , x_transaction_coa_id       => l_adr_transaction_coa_id
14452          , x_accounting_coa_id        => l_adr_accounting_coa_id
14453          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14454          , x_flex_value_set_id        => l_adr_flex_value_set_id
14455          , x_value_type_code          => l_adr_value_type_code
14456          , x_value_combination_id     => l_adr_value_combination_id
14457          , x_value_segment_code       => l_adr_value_segment_code
14458          , p_side                     => 'DEBIT'
14459          , p_override_seg_flag        => 'Y'
14460    );
14461 
14462    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14463 
14464       xla_ae_lines_pkg.set_segment(
14465           p_to_segment_code         => 'GL_ACCOUNT'
14466         , p_segment_value           => l_segment
14467         , p_from_segment_code       => l_adr_value_segment_code
14468         , p_from_combination_id     => l_adr_value_combination_id
14469         , p_value_type_code         => l_adr_value_type_code
14470         , p_transaction_coa_id      => l_adr_transaction_coa_id
14471         , p_accounting_coa_id       => l_adr_accounting_coa_id
14472         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14473         , p_flex_value_set_id       => l_adr_flex_value_set_id
14474         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14475         , p_adr_type_code           => 'S'
14476         , p_component_type          => l_component_type
14477         , p_component_code          => l_component_code
14478         , p_component_type_code     => l_component_type_code
14479         , p_component_appl_id       => l_component_appl_id
14480         , p_amb_context_code        => l_amb_context_code
14481         , p_entity_code             => 'AP_INVOICES'
14482         , p_event_class_code        => 'PREPAYMENTS'
14483         , p_side                    => 'DEBIT'
14484         );
14485 
14486   END IF;
14487 
14488    l_segment := AcctDerRule_24(
14489            p_application_id           => p_application_id
14490          , p_ae_header_id             => l_ae_header_id 
14491 , p_source_10 => p_source_10
14492 , p_source_10_meaning => p_source_10_meaning
14493 , p_source_17 => p_source_17
14494 , p_source_17_meaning => p_source_17_meaning
14495 , p_source_25 => p_source_25
14496          , x_transaction_coa_id       => l_adr_transaction_coa_id
14497          , x_accounting_coa_id        => l_adr_accounting_coa_id
14498          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14499          , x_flex_value_set_id        => l_adr_flex_value_set_id
14500          , x_value_type_code          => l_adr_value_type_code
14501          , x_value_combination_id     => l_adr_value_combination_id
14502          , x_value_segment_code       => l_adr_value_segment_code
14503          , p_side                     => 'ALL'
14504          , p_override_seg_flag        => 'Y'
14505    );
14506 
14507    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14508 
14509       xla_ae_lines_pkg.set_segment(
14510           p_to_segment_code         => 'GL_BALANCING'
14511         , p_segment_value           => l_segment
14512         , p_from_segment_code       => l_adr_value_segment_code
14513         , p_from_combination_id     => l_adr_value_combination_id
14514         , p_value_type_code         => l_adr_value_type_code
14515         , p_transaction_coa_id      => l_adr_transaction_coa_id
14516         , p_accounting_coa_id       => l_adr_accounting_coa_id
14517         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14518         , p_flex_value_set_id       => l_adr_flex_value_set_id
14519         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14520         , p_adr_type_code           => 'S'
14521         , p_component_type          => l_component_type
14522         , p_component_code          => l_component_code
14523         , p_component_type_code     => l_component_type_code
14524         , p_component_appl_id       => l_component_appl_id
14525         , p_amb_context_code        => l_amb_context_code
14526         , p_entity_code             => 'AP_INVOICES'
14527         , p_event_class_code        => 'PREPAYMENTS'
14528         , p_side                    => 'ALL'
14529         );
14530 
14531   END IF;
14532 
14536 
14533    --
14534    --
14535    END IF;
14537        --
14538        -- Update the line information that should be overwritten
14539        --
14540        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14541                                          p_header_num   => 1);
14542        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14543 
14544        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14545 
14546        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14547           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14548        END IF;
14549 
14550       --
14551       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14552       --
14553       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14554           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14555       ELSE
14556           ---------------------------------------------------------------------------------------------------
14557           -- 4262811a Switch Sign
14558           ---------------------------------------------------------------------------------------------------
14559           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14560           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14561                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14562           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14563                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14564           -- 5132302
14565           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14566                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14567 
14568       END IF;
14569 
14570       -- 4955764
14571       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14572       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14573 
14574 
14575       XLA_AE_LINES_PKG.ValidateCurrentLine;
14576       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14577 
14578       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14579                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14580                ,p_balance_type_code => l_balance_type_code);
14581 
14582    END IF;
14583 
14584    -----------------------------------------------------------------------------------------
14585    -- 4262811 Multiperiod Accounting
14586    -----------------------------------------------------------------------------------------
14587      -- No MPA option is assigned.
14588 
14589 
14590 END IF;
14591 END IF;
14592 --
14593 
14594 --
14595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14596    trace
14597       (p_msg      => 'END of AcctLineType_63'
14598       ,p_level    => C_LEVEL_PROCEDURE
14599       ,p_module   => l_log_module);
14600 END IF;
14601 --
14602 EXCEPTION
14603   WHEN xla_exceptions_pkg.application_exception THEN
14604       RAISE;
14605   WHEN OTHERS THEN
14606        xla_exceptions_pkg.raise_message
14607            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_63');
14608 END AcctLineType_63;
14609 --
14610 
14611 ---------------------------------------
14612 --
14613 -- PRIVATE FUNCTION
14614 --         AcctLineType_64
14615 --
14616 ---------------------------------------
14617 PROCEDURE AcctLineType_64 (
14618   p_application_id        IN NUMBER
14619  ,p_event_id              IN NUMBER
14620  ,p_calculate_acctd_flag  IN VARCHAR2
14621  ,p_calculate_g_l_flag    IN VARCHAR2
14622  ,p_actual_flag           IN OUT VARCHAR2
14623  ,p_balance_type_code     OUT VARCHAR2
14624  ,p_gain_or_loss_ref      OUT VARCHAR2
14625  
14626 --Invoice Distribution Description
14627  , p_source_1            IN VARCHAR2
14628 --Automatic Offsets Value
14629  , p_source_10            IN VARCHAR2
14630  , p_source_10_meaning    IN VARCHAR2
14631 --Purchase Order Rate Variance Gain Account
14632  , p_source_15            IN NUMBER
14633 --Invoice Distribution Ledger Amount
14634  , p_source_16            IN NUMBER
14635 --Destination Type of the PO Distribution
14636  , p_source_17            IN VARCHAR2
14637  , p_source_17_meaning    IN VARCHAR2
14638 --Purchase Order Rate Variance Loss Account
14639  , p_source_18            IN NUMBER
14640 --Invoice Distribution Account
14641  , p_source_25            IN NUMBER
14642 --Invoice Distribution Type
14643  , p_source_28            IN VARCHAR2
14644  , p_source_28_meaning    IN VARCHAR2
14645 --Automatic Offsets Flag
14646  , p_source_43            IN VARCHAR2
14647  , p_source_43_meaning    IN VARCHAR2
14648 --Accrue on Receipt Option
14649  , p_source_54            IN VARCHAR2
14650  , p_source_54_meaning    IN VARCHAR2
14651 --Accounting Reversal Indicator
14652  , p_source_58            IN VARCHAR2
14653 --Distribution Link Type
14654  , p_source_60            IN VARCHAR2
14655 --Allocation to Main Distribution Identifier
14656  , p_source_62            IN NUMBER
14657 --Invoice Identifier
14661 --Payables Encumbrance Upgrade Credit Account
14658  , p_source_63            IN NUMBER
14659 --Invoice Distribution Identifier
14660  , p_source_69            IN NUMBER
14662  , p_source_70            IN NUMBER
14663 --Payables Encumbrance Upgrade Credit Amount
14664  , p_source_71            IN NUMBER
14665 --Invoice Currency Code
14666  , p_source_72            IN VARCHAR2
14667 --Payables Encumbrance Upgrade Credit Base Amount
14668  , p_source_73            IN NUMBER
14669 --Payables Encumbrance Upgrade Debit Account
14670  , p_source_74            IN NUMBER
14671 --Payables Encumbrance Upgrade Debit Amount
14672  , p_source_75            IN NUMBER
14673 --Payables Encumbrance Upgrade Debit Base Amount
14674  , p_source_76            IN NUMBER
14675 --Payables Encumbrance Upgrade Option
14676  , p_source_77            IN VARCHAR2
14677 --Deferred Accounting End Date
14678  , p_source_82            IN DATE
14679 --Deferred Accounting Option
14680  , p_source_83            IN VARCHAR2
14681 --Deferred Accounting Start Date
14682  , p_source_84            IN DATE
14683 --Override Accounted Amount Indicator
14684  , p_source_85            IN VARCHAR2
14685  , p_source_85_meaning    IN VARCHAR2
14686 --Invoice Supplier Identifier
14687  , p_source_86            IN NUMBER
14688 --Invoice Supplier Site Identifier
14689  , p_source_87            IN NUMBER
14690 --Third Party Type
14691  , p_source_88            IN VARCHAR2
14692 --Parent Reversal Identifier
14693  , p_source_89            IN NUMBER
14694 --Invoice Distribution Statistical Amount
14695  , p_source_90            IN NUMBER
14696 --Invoice Distribution Tax Line Identifier
14697  , p_source_91            IN NUMBER
14698 --Invoice Distribution Tax Distribution Identifier from Tax
14699  , p_source_92            IN NUMBER
14700 --Invoice Distribution Summary Tax Line Identifier
14701  , p_source_93            IN NUMBER
14702 --Payables Upgrade Credit Encumbrance Type Identifier
14703  , p_source_94            IN NUMBER
14704 --Payables Upgrade Debit Encumbrance Type Identifier
14705  , p_source_95            IN NUMBER
14706 --Business Flow Accounts Payable Application Identifier
14707  , p_source_96            IN NUMBER
14708 --Business Flow Invoice Distribution Type
14709  , p_source_97            IN VARCHAR2
14710 --Business Flow Invoice Entity Code
14711  , p_source_98            IN VARCHAR2
14712 --Business Flow Invoice Distribution Identifier
14713  , p_source_99            IN NUMBER
14714 --Business Flow Invoice Identifier
14715  , p_source_100            IN NUMBER
14716 )
14717 IS
14718 
14719 l_component_type              VARCHAR2(80);
14720 l_component_code              VARCHAR2(30);
14721 l_component_type_code         VARCHAR2(1);
14722 l_component_appl_id           INTEGER;
14723 l_amb_context_code            VARCHAR2(30);
14724 l_entity_code                 VARCHAR2(30);
14725 l_event_class_code            VARCHAR2(30);
14726 l_ae_header_id                NUMBER;
14727 l_event_type_code             VARCHAR2(30);
14728 l_line_definition_code        VARCHAR2(30);
14729 l_line_definition_owner_code  VARCHAR2(1);
14730 --
14731 -- adr variables
14732 l_segment                     VARCHAR2(30);
14733 l_ccid                        NUMBER;
14734 l_adr_transaction_coa_id      NUMBER;
14735 l_adr_accounting_coa_id       NUMBER;
14736 l_adr_flexfield_segment_code  VARCHAR2(30);
14737 l_adr_flex_value_set_id       NUMBER;
14738 l_adr_value_type_code         VARCHAR2(30);
14739 l_adr_value_combination_id    NUMBER;
14740 l_adr_value_segment_code      VARCHAR2(30);
14741 
14742 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14743 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14744 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14745 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14746 
14747 -- 4262811 Variables ------------------------------------------------------------------------------------------
14748 l_entered_amt_idx             NUMBER;
14749 l_accted_amt_idx              NUMBER;
14750 l_acc_rev_flag                VARCHAR2(1);
14751 l_accrual_line_num            NUMBER;
14752 l_tmp_amt                     NUMBER;
14753 l_acc_rev_natural_side_code   VARCHAR2(1);
14754 
14755 l_num_entries                 NUMBER;
14756 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14757 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14758 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14759 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14760 l_recog_line_1                NUMBER;
14761 l_recog_line_2                NUMBER;
14762 
14763 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14764 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14765 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14766 
14767 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14768 
14769 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14770 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14771 
14772 ---------------------------------------------------------------------------------------------------------------
14773 
14774 
14775 --
14776 -- bulk performance
14777 --
14781 
14778 l_balance_type_code           VARCHAR2(1);
14779 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14780 l_log_module                  VARCHAR2(240);
14782 --
14783 -- Upgrade strategy
14784 --
14785 l_actual_upg_option           VARCHAR2(1);
14786 l_enc_upg_option           VARCHAR2(1);
14787 
14788 --
14789 BEGIN
14790 --
14791 IF g_log_enabled THEN
14792       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
14793 END IF;
14794 --
14795 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14796 
14797       trace
14798          (p_msg      => 'BEGIN of AcctLineType_64'
14799          ,p_level    => C_LEVEL_PROCEDURE
14800          ,p_module   => l_log_module);
14801 
14802 END IF;
14803 --
14804 l_component_type             := 'AMB_JLT';
14805 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_CM';
14806 l_component_type_code        := 'S';
14807 l_component_appl_id          :=  200;
14808 l_amb_context_code           := 'DEFAULT';
14809 l_entity_code                := 'AP_INVOICES';
14810 l_event_class_code           := 'CREDIT MEMOS';
14811 l_event_type_code            := 'CREDIT MEMOS_ALL';
14812 l_line_definition_owner_code := 'S';
14813 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
14814 --
14815 l_balance_type_code          := 'A';
14816 l_segment                     := NULL;
14817 l_ccid                        := NULL;
14818 l_adr_transaction_coa_id      := NULL;
14819 l_adr_accounting_coa_id       := NULL;
14820 l_adr_flexfield_segment_code  := NULL;
14821 l_adr_flex_value_set_id       := NULL;
14822 l_adr_value_type_code         := NULL;
14823 l_adr_value_combination_id    := NULL;
14824 l_adr_value_segment_code      := NULL;
14825 
14826 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14827 l_bflow_class_code           := '';    -- 4219869 Business Flow
14828 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14829 l_budgetary_control_flag     := 'N';
14830 
14831 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14832 l_bflow_applied_to_amt       := NULL; -- 5132302
14833 l_entered_amt_idx            := NULL;          -- 4262811
14834 l_accted_amt_idx             := NULL;          -- 4262811
14835 l_acc_rev_flag               := NULL;          -- 4262811
14836 l_accrual_line_num           := NULL;          -- 4262811
14837 l_tmp_amt                    := NULL;          -- 4262811
14838 --
14839 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14840             (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
14841                return;
14842   END IF;
14843   
14844 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14845     l_balance_type_code <> 'B' THEN
14846 IF NVL(p_source_28,'
14847 ') =  'NONREC_TAX' AND 
14848 NVL(p_source_54,'
14849 ') =  'Y'
14850  THEN 
14851 
14852    --
14853    XLA_AE_LINES_PKG.SetNewLine;
14854 
14855    p_balance_type_code          := l_balance_type_code;
14856    -- set the flag so later we will know whether the gain loss line needs to be created
14857    
14858    IF(l_balance_type_code = 'A' ) THEN
14859      p_actual_flag :='G';
14860    END IF;
14861 
14862    --
14863    -- bulk performance
14864    --
14865    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14866                                       p_header_num   => 0); -- 4262811
14867    --
14868    -- set accounting line options
14869    --
14870    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14871            p_natural_side_code          => 'G'
14872          , p_gain_or_loss_flag          => 'N'
14873          , p_gl_transfer_mode_code      => 'S'
14874          , p_acct_entry_type_code       => 'A'
14875          , p_switch_side_flag           => ''
14876          , p_merge_duplicate_code       => 'A'
14877          );
14878    --
14879    l_acc_rev_natural_side_code := 'C';  -- 4262811
14880    -- 
14881    --
14882    -- set accounting line type info
14883    --
14884    xla_ae_lines_pkg.SetAcctLineType
14885       (p_component_type             => l_component_type
14886       ,p_event_type_code            => l_event_type_code
14887       ,p_line_definition_owner_code => l_line_definition_owner_code
14888       ,p_line_definition_code       => l_line_definition_code
14889       ,p_accounting_line_code       => l_component_code
14890       ,p_accounting_line_type_code  => l_component_type_code
14891       ,p_accounting_line_appl_id    => l_component_appl_id
14892       ,p_amb_context_code           => l_amb_context_code
14893       ,p_entity_code                => l_entity_code
14894       ,p_event_class_code           => l_event_class_code);
14895    --
14896    -- set accounting class
14897    --
14898    xla_ae_lines_pkg.SetAcctClass(
14899            p_accounting_class_code  => 'TERV'
14900          , p_ae_header_id           => l_ae_header_id
14901          );
14902 
14903    --
14904    -- set rounding class
14905    --
14906    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14907                       'TERV';
14908 
14909    --
14913    -- bulk performance
14910    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14911    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14912    --
14914    --
14915    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14916 
14917    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14918       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14919 
14920    -- 4955764
14921    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14922       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14923 
14924    -- 4458381 Public Sector Enh
14925    
14926    --
14927    -- set accounting attributes for the line type
14928    --
14929    l_entered_amt_idx := NULL;
14930    l_accted_amt_idx  := 23;
14931    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
14932    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14933    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
14934    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14935    l_rec_acct_attrs.array_num_value(2)  := 
14936 xla_ae_sources_pkg.GetSystemSourceNum(
14937    p_source_code           => 'XLA_EVENT_APPL_ID'
14938  , p_source_type_code      => 'Y'
14939  , p_source_application_id =>  602
14940 );
14941    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14942    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
14943    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14944    l_rec_acct_attrs.array_char_value(4)  := 
14945 xla_ae_sources_pkg.GetSystemSourceChar(
14946    p_source_code           => 'XLA_ENTITY_CODE'
14947  , p_source_type_code      => 'Y'
14948  , p_source_application_id =>  602
14949 );
14950    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14951    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
14952    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14953    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
14954    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
14955    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
14956    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14957    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
14958    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
14959    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
14960    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
14961    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
14962    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14963    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
14964    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
14965    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
14966    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
14967    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
14968    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
14969    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
14970    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
14971    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
14972    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
14973    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
14974    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
14975    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
14976    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
14977    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
14978    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
14979    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
14980    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
14981    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
14982    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
14983    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
14984    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
14985    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
14986    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
14987    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
14988    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
14989    l_rec_acct_attrs.array_date_value(24)  := p_source_82;
14990    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
14991    l_rec_acct_attrs.array_char_value(25)  := p_source_83;
14992    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
14993    l_rec_acct_attrs.array_date_value(26)  := p_source_84;
14994    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
14995    l_rec_acct_attrs.array_char_value(27)  := p_source_85;
14996    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
14997    l_rec_acct_attrs.array_num_value(28)  := p_source_86;
14998    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
14999    l_rec_acct_attrs.array_num_value(29)  := p_source_87;
15000    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
15001    l_rec_acct_attrs.array_char_value(30)  := p_source_88;
15005    l_rec_acct_attrs.array_char_value(32)  := p_source_60;
15002    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
15003    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_89);
15004    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
15006    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
15007    l_rec_acct_attrs.array_num_value(33)  := p_source_90;
15008    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
15009    l_rec_acct_attrs.array_num_value(34)  := p_source_91;
15010    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
15011    l_rec_acct_attrs.array_num_value(35)  := p_source_92;
15012    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
15013    l_rec_acct_attrs.array_num_value(36)  := p_source_93;
15014    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
15015    l_rec_acct_attrs.array_num_value(37)  := p_source_94;
15016    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
15017    l_rec_acct_attrs.array_num_value(38)  := p_source_95;
15018 
15019    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15020    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15021 
15022    ---------------------------------------------------------------------------------------------------------------
15023    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15024    ---------------------------------------------------------------------------------------------------------------
15025    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15026 
15027    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15028    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15029 
15030    IF xla_accounting_cache_pkg.GetValueChar
15031          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15032          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15033    AND l_bflow_method_code = 'PRIOR_ENTRY'
15034 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15035    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15036          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15037        )
15038    THEN
15039          xla_ae_lines_pkg.BflowUpgEntry
15040            (p_business_method_code    => l_bflow_method_code
15041            ,p_business_class_code     => l_bflow_class_code
15042            ,p_balance_type            => l_balance_type_code);
15043    ELSE
15044       NULL;
15045 -- No business flow processing for business flow method of NONE.
15046    END IF;
15047 
15048    --
15049    -- call analytical criteria
15050    --
15051    
15052    --
15053    -- call description
15054    --
15055    
15056 xla_ae_lines_pkg.SetLineDescription(
15057    p_ae_header_id => l_ae_header_id
15058   ,p_description  => Description_2 (
15059      p_application_id         => p_application_id
15060    , p_ae_header_id           => l_ae_header_id 
15061 , p_source_1 => p_source_1
15062    )
15063 );
15064 
15065 
15066    --
15067    -- call ADRs
15068    -- Bug 4922099
15069    --
15070    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15071         (NVL(l_actual_upg_option, 'N') = 'O') OR
15072         (NVL(l_enc_upg_option, 'N') = 'O')
15073       )
15074    THEN
15075    NULL;
15076    --
15077    --
15078    
15079   l_ccid := AcctDerRule_32(
15080            p_application_id           => p_application_id
15081          , p_ae_header_id             => l_ae_header_id 
15082 , p_source_10 => p_source_10
15083 , p_source_10_meaning => p_source_10_meaning
15084 , p_source_15 => p_source_15
15085 , p_source_16 => p_source_16
15086 , p_source_17 => p_source_17
15087 , p_source_17_meaning => p_source_17_meaning
15088 , p_source_18 => p_source_18
15089 , p_source_25 => p_source_25
15090 , p_source_43 => p_source_43
15091 , p_source_43_meaning => p_source_43_meaning
15092          , x_transaction_coa_id       => l_adr_transaction_coa_id
15093          , x_accounting_coa_id        => l_adr_accounting_coa_id
15094          , x_value_type_code          => l_adr_value_type_code
15095          , p_side                     => 'ALL'
15096    );
15097 
15098    xla_ae_lines_pkg.set_ccid(
15099     p_code_combination_id          => l_ccid
15100   , p_value_type_code              => l_adr_value_type_code
15101   , p_transaction_coa_id           => l_adr_transaction_coa_id
15102   , p_accounting_coa_id            => l_adr_accounting_coa_id
15103   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15104   , p_adr_type_code                => 'S'
15105   , p_component_type               => l_component_type
15106   , p_component_code               => l_component_code
15107   , p_component_type_code          => l_component_type_code
15108   , p_component_appl_id            => l_component_appl_id
15109   , p_amb_context_code             => l_amb_context_code
15110   , p_side                         => 'ALL'
15111   );
15112 
15113 
15114    l_segment := AcctDerRule_9(
15115            p_application_id           => p_application_id
15116          , p_ae_header_id             => l_ae_header_id 
15117 , p_source_10 => p_source_10
15118 , p_source_10_meaning => p_source_10_meaning
15119 , p_source_15 => p_source_15
15120 , p_source_17 => p_source_17
15124          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15121 , p_source_17_meaning => p_source_17_meaning
15122          , x_transaction_coa_id       => l_adr_transaction_coa_id
15123          , x_accounting_coa_id        => l_adr_accounting_coa_id
15125          , x_flex_value_set_id        => l_adr_flex_value_set_id
15126          , x_value_type_code          => l_adr_value_type_code
15127          , x_value_combination_id     => l_adr_value_combination_id
15128          , x_value_segment_code       => l_adr_value_segment_code
15129          , p_side                     => 'DEBIT'
15130          , p_override_seg_flag        => 'Y'
15131    );
15132 
15133    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15134 
15135       xla_ae_lines_pkg.set_segment(
15136           p_to_segment_code         => 'GL_ACCOUNT'
15137         , p_segment_value           => l_segment
15138         , p_from_segment_code       => l_adr_value_segment_code
15139         , p_from_combination_id     => l_adr_value_combination_id
15140         , p_value_type_code         => l_adr_value_type_code
15141         , p_transaction_coa_id      => l_adr_transaction_coa_id
15142         , p_accounting_coa_id       => l_adr_accounting_coa_id
15143         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15144         , p_flex_value_set_id       => l_adr_flex_value_set_id
15145         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15146         , p_adr_type_code           => 'S'
15147         , p_component_type          => l_component_type
15148         , p_component_code          => l_component_code
15149         , p_component_type_code     => l_component_type_code
15150         , p_component_appl_id       => l_component_appl_id
15151         , p_amb_context_code        => l_amb_context_code
15152         , p_entity_code             => 'AP_INVOICES'
15153         , p_event_class_code        => 'CREDIT MEMOS'
15154         , p_side                    => 'DEBIT'
15155         );
15156 
15157   END IF;
15158 
15159    l_segment := AcctDerRule_10(
15160            p_application_id           => p_application_id
15161          , p_ae_header_id             => l_ae_header_id 
15162 , p_source_10 => p_source_10
15163 , p_source_10_meaning => p_source_10_meaning
15164 , p_source_17 => p_source_17
15165 , p_source_17_meaning => p_source_17_meaning
15166 , p_source_18 => p_source_18
15167          , x_transaction_coa_id       => l_adr_transaction_coa_id
15168          , x_accounting_coa_id        => l_adr_accounting_coa_id
15169          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15170          , x_flex_value_set_id        => l_adr_flex_value_set_id
15171          , x_value_type_code          => l_adr_value_type_code
15172          , x_value_combination_id     => l_adr_value_combination_id
15173          , x_value_segment_code       => l_adr_value_segment_code
15174          , p_side                     => 'CREDIT'
15175          , p_override_seg_flag        => 'Y'
15176    );
15177 
15178    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15179 
15180       xla_ae_lines_pkg.set_segment(
15181           p_to_segment_code         => 'GL_ACCOUNT'
15182         , p_segment_value           => l_segment
15183         , p_from_segment_code       => l_adr_value_segment_code
15184         , p_from_combination_id     => l_adr_value_combination_id
15185         , p_value_type_code         => l_adr_value_type_code
15186         , p_transaction_coa_id      => l_adr_transaction_coa_id
15187         , p_accounting_coa_id       => l_adr_accounting_coa_id
15188         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15189         , p_flex_value_set_id       => l_adr_flex_value_set_id
15190         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15191         , p_adr_type_code           => 'S'
15192         , p_component_type          => l_component_type
15193         , p_component_code          => l_component_code
15194         , p_component_type_code     => l_component_type_code
15195         , p_component_appl_id       => l_component_appl_id
15196         , p_amb_context_code        => l_amb_context_code
15197         , p_entity_code             => 'AP_INVOICES'
15198         , p_event_class_code        => 'CREDIT MEMOS'
15199         , p_side                    => 'CREDIT'
15200         );
15201 
15202   END IF;
15203 
15204    l_segment := AcctDerRule_24(
15205            p_application_id           => p_application_id
15206          , p_ae_header_id             => l_ae_header_id 
15207 , p_source_10 => p_source_10
15208 , p_source_10_meaning => p_source_10_meaning
15209 , p_source_17 => p_source_17
15210 , p_source_17_meaning => p_source_17_meaning
15211 , p_source_25 => p_source_25
15212          , x_transaction_coa_id       => l_adr_transaction_coa_id
15213          , x_accounting_coa_id        => l_adr_accounting_coa_id
15214          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15215          , x_flex_value_set_id        => l_adr_flex_value_set_id
15216          , x_value_type_code          => l_adr_value_type_code
15217          , x_value_combination_id     => l_adr_value_combination_id
15218          , x_value_segment_code       => l_adr_value_segment_code
15219          , p_side                     => 'ALL'
15220          , p_override_seg_flag        => 'Y'
15221    );
15222 
15223    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15224 
15225       xla_ae_lines_pkg.set_segment(
15226           p_to_segment_code         => 'GL_BALANCING'
15227         , p_segment_value           => l_segment
15231         , p_transaction_coa_id      => l_adr_transaction_coa_id
15228         , p_from_segment_code       => l_adr_value_segment_code
15229         , p_from_combination_id     => l_adr_value_combination_id
15230         , p_value_type_code         => l_adr_value_type_code
15232         , p_accounting_coa_id       => l_adr_accounting_coa_id
15233         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15234         , p_flex_value_set_id       => l_adr_flex_value_set_id
15235         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15236         , p_adr_type_code           => 'S'
15237         , p_component_type          => l_component_type
15238         , p_component_code          => l_component_code
15239         , p_component_type_code     => l_component_type_code
15240         , p_component_appl_id       => l_component_appl_id
15241         , p_amb_context_code        => l_amb_context_code
15242         , p_entity_code             => 'AP_INVOICES'
15243         , p_event_class_code        => 'CREDIT MEMOS'
15244         , p_side                    => 'ALL'
15245         );
15246 
15247   END IF;
15248 
15249    --
15250    --
15251    END IF;
15252    --
15253    -- Bug 4922099
15254    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15255           (NVL(l_enc_upg_option, 'N') = 'O')
15256         ) AND
15257         (l_bflow_method_code = 'PRIOR_ENTRY')
15258       )
15259    THEN
15260       IF
15261       --
15262       1 = 2
15263       --
15264       THEN
15265       xla_accounting_err_pkg.build_message
15266                                     (p_appli_s_name            => 'XLA'
15267                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15268                                     ,p_token_1                 => 'LINE_NUMBER'
15269                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15270                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15271                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15272                                                                              l_component_type
15273                                                                             ,l_component_code
15274                                                                             ,l_component_type_code
15275                                                                             ,l_component_appl_id
15276                                                                             ,l_amb_context_code
15277                                                                             ,l_entity_code
15278                                                                             ,l_event_class_code
15279                                                                            )
15280                                     ,p_token_3                 => 'OWNER'
15281                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15282                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15283                                                                           ,p_lookup_code    => l_component_type_code
15284                                                                          )
15285                                     ,p_token_4                 => 'PRODUCT_NAME'
15286                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15287                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15288                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15289                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15290                                     ,p_ae_header_id            =>  NULL
15291                                        );
15292 
15293         IF (C_LEVEL_ERROR>= g_log_level) THEN
15294                  trace
15295                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15296                       ,p_level    => C_LEVEL_ERROR
15297                       ,p_module   => l_log_module);
15298         END IF;
15299       END IF;
15300    END IF;
15301    --
15302    --
15303    ------------------------------------------------------------------------------------------------
15304    -- 4219869 Business Flow
15305    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15306    -- Prior Entry.  Currently, the following code is always generated.
15307    ------------------------------------------------------------------------------------------------
15308    XLA_AE_LINES_PKG.ValidateCurrentLine;
15309 
15310    ------------------------------------------------------------------------------------
15311    -- 4219869 Business Flow
15312    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15313    ------------------------------------------------------------------------------------
15314    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15315 
15316    ----------------------------------------------------------------------------------
15317    -- 4219869 Business Flow
15318    -- Update journal entry status -- Need to generate this within IF <condition>
15319    ----------------------------------------------------------------------------------
15320    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15324 
15321          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15322          ,p_balance_type_code => l_balance_type_code
15323          );
15325    -------------------------------------------------------------------------------------------
15326    -- 4262811 - Generate the Accrual Reversal lines
15327    -------------------------------------------------------------------------------------------
15328    BEGIN
15329       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15330                               (g_array_event(p_event_id).array_value_num('header_index'));
15331       IF l_acc_rev_flag IS NULL THEN
15332          l_acc_rev_flag := 'N';
15333       END IF;
15334    EXCEPTION
15335       WHEN OTHERS THEN
15336          l_acc_rev_flag := 'N';
15337    END;
15338    --
15339    IF (l_acc_rev_flag = 'Y') THEN
15340 
15341        -- 4645092  ------------------------------------------------------------------------------
15342        -- To allow MPA report to determine if it should generate report process
15343        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15344        ------------------------------------------------------------------------------------------
15345 
15346        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15347        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15348    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15349    -- call ADRs
15350    -- Bug 4922099
15351    --
15352    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15353         (NVL(l_actual_upg_option, 'N') = 'O') OR
15354         (NVL(l_enc_upg_option, 'N') = 'O')
15355       )
15356    THEN
15357    NULL;
15358    --
15359    --
15360    
15361   l_ccid := AcctDerRule_32(
15362            p_application_id           => p_application_id
15363          , p_ae_header_id             => l_ae_header_id 
15364 , p_source_10 => p_source_10
15365 , p_source_10_meaning => p_source_10_meaning
15366 , p_source_15 => p_source_15
15367 , p_source_16 => p_source_16
15368 , p_source_17 => p_source_17
15369 , p_source_17_meaning => p_source_17_meaning
15370 , p_source_18 => p_source_18
15371 , p_source_25 => p_source_25
15372 , p_source_43 => p_source_43
15373 , p_source_43_meaning => p_source_43_meaning
15374          , x_transaction_coa_id       => l_adr_transaction_coa_id
15375          , x_accounting_coa_id        => l_adr_accounting_coa_id
15376          , x_value_type_code          => l_adr_value_type_code
15377          , p_side                     => 'ALL'
15378    );
15379 
15380    xla_ae_lines_pkg.set_ccid(
15381     p_code_combination_id          => l_ccid
15382   , p_value_type_code              => l_adr_value_type_code
15383   , p_transaction_coa_id           => l_adr_transaction_coa_id
15384   , p_accounting_coa_id            => l_adr_accounting_coa_id
15385   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15386   , p_adr_type_code                => 'S'
15387   , p_component_type               => l_component_type
15388   , p_component_code               => l_component_code
15389   , p_component_type_code          => l_component_type_code
15390   , p_component_appl_id            => l_component_appl_id
15391   , p_amb_context_code             => l_amb_context_code
15392   , p_side                         => 'ALL'
15393   );
15394 
15395 
15396    l_segment := AcctDerRule_9(
15397            p_application_id           => p_application_id
15398          , p_ae_header_id             => l_ae_header_id 
15399 , p_source_10 => p_source_10
15400 , p_source_10_meaning => p_source_10_meaning
15401 , p_source_15 => p_source_15
15402 , p_source_17 => p_source_17
15403 , p_source_17_meaning => p_source_17_meaning
15404          , x_transaction_coa_id       => l_adr_transaction_coa_id
15405          , x_accounting_coa_id        => l_adr_accounting_coa_id
15406          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15407          , x_flex_value_set_id        => l_adr_flex_value_set_id
15408          , x_value_type_code          => l_adr_value_type_code
15409          , x_value_combination_id     => l_adr_value_combination_id
15410          , x_value_segment_code       => l_adr_value_segment_code
15411          , p_side                     => 'DEBIT'
15412          , p_override_seg_flag        => 'Y'
15413    );
15414 
15415    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15416 
15417       xla_ae_lines_pkg.set_segment(
15418           p_to_segment_code         => 'GL_ACCOUNT'
15419         , p_segment_value           => l_segment
15420         , p_from_segment_code       => l_adr_value_segment_code
15421         , p_from_combination_id     => l_adr_value_combination_id
15422         , p_value_type_code         => l_adr_value_type_code
15423         , p_transaction_coa_id      => l_adr_transaction_coa_id
15424         , p_accounting_coa_id       => l_adr_accounting_coa_id
15425         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15426         , p_flex_value_set_id       => l_adr_flex_value_set_id
15427         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15428         , p_adr_type_code           => 'S'
15429         , p_component_type          => l_component_type
15430         , p_component_code          => l_component_code
15431         , p_component_type_code     => l_component_type_code
15432         , p_component_appl_id       => l_component_appl_id
15433         , p_amb_context_code        => l_amb_context_code
15434         , p_entity_code             => 'AP_INVOICES'
15438 
15435         , p_event_class_code        => 'CREDIT MEMOS'
15436         , p_side                    => 'DEBIT'
15437         );
15439   END IF;
15440 
15441    l_segment := AcctDerRule_10(
15442            p_application_id           => p_application_id
15443          , p_ae_header_id             => l_ae_header_id 
15444 , p_source_10 => p_source_10
15445 , p_source_10_meaning => p_source_10_meaning
15446 , p_source_17 => p_source_17
15447 , p_source_17_meaning => p_source_17_meaning
15448 , p_source_18 => p_source_18
15449          , x_transaction_coa_id       => l_adr_transaction_coa_id
15450          , x_accounting_coa_id        => l_adr_accounting_coa_id
15451          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15452          , x_flex_value_set_id        => l_adr_flex_value_set_id
15453          , x_value_type_code          => l_adr_value_type_code
15454          , x_value_combination_id     => l_adr_value_combination_id
15455          , x_value_segment_code       => l_adr_value_segment_code
15456          , p_side                     => 'CREDIT'
15457          , p_override_seg_flag        => 'Y'
15458    );
15459 
15460    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15461 
15462       xla_ae_lines_pkg.set_segment(
15463           p_to_segment_code         => 'GL_ACCOUNT'
15464         , p_segment_value           => l_segment
15465         , p_from_segment_code       => l_adr_value_segment_code
15466         , p_from_combination_id     => l_adr_value_combination_id
15467         , p_value_type_code         => l_adr_value_type_code
15468         , p_transaction_coa_id      => l_adr_transaction_coa_id
15469         , p_accounting_coa_id       => l_adr_accounting_coa_id
15470         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15471         , p_flex_value_set_id       => l_adr_flex_value_set_id
15472         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15473         , p_adr_type_code           => 'S'
15474         , p_component_type          => l_component_type
15475         , p_component_code          => l_component_code
15476         , p_component_type_code     => l_component_type_code
15477         , p_component_appl_id       => l_component_appl_id
15478         , p_amb_context_code        => l_amb_context_code
15479         , p_entity_code             => 'AP_INVOICES'
15480         , p_event_class_code        => 'CREDIT MEMOS'
15481         , p_side                    => 'CREDIT'
15482         );
15483 
15484   END IF;
15485 
15486    l_segment := AcctDerRule_24(
15487            p_application_id           => p_application_id
15488          , p_ae_header_id             => l_ae_header_id 
15489 , p_source_10 => p_source_10
15490 , p_source_10_meaning => p_source_10_meaning
15491 , p_source_17 => p_source_17
15492 , p_source_17_meaning => p_source_17_meaning
15493 , p_source_25 => p_source_25
15494          , x_transaction_coa_id       => l_adr_transaction_coa_id
15495          , x_accounting_coa_id        => l_adr_accounting_coa_id
15496          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15497          , x_flex_value_set_id        => l_adr_flex_value_set_id
15498          , x_value_type_code          => l_adr_value_type_code
15499          , x_value_combination_id     => l_adr_value_combination_id
15500          , x_value_segment_code       => l_adr_value_segment_code
15501          , p_side                     => 'ALL'
15502          , p_override_seg_flag        => 'Y'
15503    );
15504 
15505    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15506 
15507       xla_ae_lines_pkg.set_segment(
15508           p_to_segment_code         => 'GL_BALANCING'
15509         , p_segment_value           => l_segment
15510         , p_from_segment_code       => l_adr_value_segment_code
15511         , p_from_combination_id     => l_adr_value_combination_id
15512         , p_value_type_code         => l_adr_value_type_code
15513         , p_transaction_coa_id      => l_adr_transaction_coa_id
15514         , p_accounting_coa_id       => l_adr_accounting_coa_id
15515         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15516         , p_flex_value_set_id       => l_adr_flex_value_set_id
15517         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15518         , p_adr_type_code           => 'S'
15519         , p_component_type          => l_component_type
15520         , p_component_code          => l_component_code
15521         , p_component_type_code     => l_component_type_code
15522         , p_component_appl_id       => l_component_appl_id
15523         , p_amb_context_code        => l_amb_context_code
15524         , p_entity_code             => 'AP_INVOICES'
15525         , p_event_class_code        => 'CREDIT MEMOS'
15526         , p_side                    => 'ALL'
15527         );
15528 
15529   END IF;
15530 
15531    --
15532    --
15533    END IF;
15534 
15535        --
15536        -- Update the line information that should be overwritten
15537        --
15538        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15539                                          p_header_num   => 1);
15540        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15541 
15542        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15543 
15544        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15545           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15546        END IF;
15547 
15548       --
15552           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15549       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15550       --
15551       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15553       ELSE
15554           ---------------------------------------------------------------------------------------------------
15555           -- 4262811a Switch Sign
15556           ---------------------------------------------------------------------------------------------------
15557           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15558           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15559                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15560           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15561                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15562           -- 5132302
15563           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15564                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15565 
15566       END IF;
15567 
15568       -- 4955764
15569       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15570       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15571 
15572 
15573       XLA_AE_LINES_PKG.ValidateCurrentLine;
15574       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15575 
15576       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15577                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15578                ,p_balance_type_code => l_balance_type_code);
15579 
15580    END IF;
15581 
15582    -----------------------------------------------------------------------------------------
15583    -- 4262811 Multiperiod Accounting
15584    -----------------------------------------------------------------------------------------
15585      -- No MPA option is assigned.
15586 
15587 
15588 END IF;
15589 END IF;
15590 --
15591 
15592 --
15593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15594    trace
15595       (p_msg      => 'END of AcctLineType_64'
15596       ,p_level    => C_LEVEL_PROCEDURE
15597       ,p_module   => l_log_module);
15598 END IF;
15599 --
15600 EXCEPTION
15601   WHEN xla_exceptions_pkg.application_exception THEN
15602       RAISE;
15603   WHEN OTHERS THEN
15604        xla_exceptions_pkg.raise_message
15605            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_64');
15606 END AcctLineType_64;
15607 --
15608 
15609 ---------------------------------------
15610 --
15611 -- PRIVATE FUNCTION
15612 --         AcctLineType_65
15613 --
15614 ---------------------------------------
15615 PROCEDURE AcctLineType_65 (
15616   p_application_id        IN NUMBER
15617  ,p_event_id              IN NUMBER
15618  ,p_calculate_acctd_flag  IN VARCHAR2
15619  ,p_calculate_g_l_flag    IN VARCHAR2
15620  ,p_actual_flag           IN OUT VARCHAR2
15621  ,p_balance_type_code     OUT VARCHAR2
15622  ,p_gain_or_loss_ref      OUT VARCHAR2
15623  
15624 --Invoice Distribution Description
15625  , p_source_1            IN VARCHAR2
15626 --Automatic Offsets Value
15627  , p_source_10            IN VARCHAR2
15628  , p_source_10_meaning    IN VARCHAR2
15629 --Purchase Order Rate Variance Gain Account
15630  , p_source_15            IN NUMBER
15631 --Invoice Distribution Ledger Amount
15632  , p_source_16            IN NUMBER
15633 --Destination Type of the PO Distribution
15634  , p_source_17            IN VARCHAR2
15635  , p_source_17_meaning    IN VARCHAR2
15636 --Purchase Order Rate Variance Loss Account
15637  , p_source_18            IN NUMBER
15638 --Invoice Distribution Account
15639  , p_source_25            IN NUMBER
15640 --Invoice Distribution Type
15641  , p_source_28            IN VARCHAR2
15642  , p_source_28_meaning    IN VARCHAR2
15643 --Automatic Offsets Flag
15644  , p_source_43            IN VARCHAR2
15645  , p_source_43_meaning    IN VARCHAR2
15646 --Accrue on Receipt Option
15647  , p_source_54            IN VARCHAR2
15648  , p_source_54_meaning    IN VARCHAR2
15649 --Accounting Reversal Indicator
15650  , p_source_58            IN VARCHAR2
15651 --Distribution Link Type
15652  , p_source_60            IN VARCHAR2
15653 --Allocation to Main Distribution Identifier
15654  , p_source_62            IN NUMBER
15655 --Invoice Identifier
15656  , p_source_63            IN NUMBER
15657 --Invoice Distribution Identifier
15658  , p_source_69            IN NUMBER
15659 --Payables Encumbrance Upgrade Credit Account
15660  , p_source_70            IN NUMBER
15661 --Payables Encumbrance Upgrade Credit Amount
15662  , p_source_71            IN NUMBER
15663 --Invoice Currency Code
15664  , p_source_72            IN VARCHAR2
15665 --Payables Encumbrance Upgrade Credit Base Amount
15666  , p_source_73            IN NUMBER
15667 --Payables Encumbrance Upgrade Debit Account
15668  , p_source_74            IN NUMBER
15669 --Payables Encumbrance Upgrade Debit Amount
15670  , p_source_75            IN NUMBER
15671 --Payables Encumbrance Upgrade Debit Base Amount
15672  , p_source_76            IN NUMBER
15676  , p_source_82            IN DATE
15673 --Payables Encumbrance Upgrade Option
15674  , p_source_77            IN VARCHAR2
15675 --Deferred Accounting End Date
15677 --Deferred Accounting Option
15678  , p_source_83            IN VARCHAR2
15679 --Deferred Accounting Start Date
15680  , p_source_84            IN DATE
15681 --Override Accounted Amount Indicator
15682  , p_source_85            IN VARCHAR2
15683  , p_source_85_meaning    IN VARCHAR2
15684 --Invoice Supplier Identifier
15685  , p_source_86            IN NUMBER
15686 --Invoice Supplier Site Identifier
15687  , p_source_87            IN NUMBER
15688 --Third Party Type
15689  , p_source_88            IN VARCHAR2
15690 --Parent Reversal Identifier
15691  , p_source_89            IN NUMBER
15692 --Invoice Distribution Tax Line Identifier
15693  , p_source_91            IN NUMBER
15694 --Invoice Distribution Tax Distribution Identifier from Tax
15695  , p_source_92            IN NUMBER
15696 --Invoice Distribution Summary Tax Line Identifier
15697  , p_source_93            IN NUMBER
15698 --Payables Upgrade Credit Encumbrance Type Identifier
15699  , p_source_94            IN NUMBER
15700 --Payables Upgrade Debit Encumbrance Type Identifier
15701  , p_source_95            IN NUMBER
15702 --Business Flow Accounts Payable Application Identifier
15703  , p_source_96            IN NUMBER
15704 --Business Flow Invoice Distribution Type
15705  , p_source_97            IN VARCHAR2
15706 --Business Flow Invoice Entity Code
15707  , p_source_98            IN VARCHAR2
15708 --Business Flow Invoice Distribution Identifier
15709  , p_source_99            IN NUMBER
15710 --Business Flow Invoice Identifier
15711  , p_source_100            IN NUMBER
15712 )
15713 IS
15714 
15715 l_component_type              VARCHAR2(80);
15716 l_component_code              VARCHAR2(30);
15717 l_component_type_code         VARCHAR2(1);
15718 l_component_appl_id           INTEGER;
15719 l_amb_context_code            VARCHAR2(30);
15720 l_entity_code                 VARCHAR2(30);
15721 l_event_class_code            VARCHAR2(30);
15722 l_ae_header_id                NUMBER;
15723 l_event_type_code             VARCHAR2(30);
15724 l_line_definition_code        VARCHAR2(30);
15725 l_line_definition_owner_code  VARCHAR2(1);
15726 --
15727 -- adr variables
15728 l_segment                     VARCHAR2(30);
15729 l_ccid                        NUMBER;
15730 l_adr_transaction_coa_id      NUMBER;
15731 l_adr_accounting_coa_id       NUMBER;
15732 l_adr_flexfield_segment_code  VARCHAR2(30);
15733 l_adr_flex_value_set_id       NUMBER;
15734 l_adr_value_type_code         VARCHAR2(30);
15735 l_adr_value_combination_id    NUMBER;
15736 l_adr_value_segment_code      VARCHAR2(30);
15737 
15738 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15739 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15740 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15741 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15742 
15743 -- 4262811 Variables ------------------------------------------------------------------------------------------
15744 l_entered_amt_idx             NUMBER;
15745 l_accted_amt_idx              NUMBER;
15746 l_acc_rev_flag                VARCHAR2(1);
15747 l_accrual_line_num            NUMBER;
15748 l_tmp_amt                     NUMBER;
15749 l_acc_rev_natural_side_code   VARCHAR2(1);
15750 
15751 l_num_entries                 NUMBER;
15752 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15753 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15754 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15755 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15756 l_recog_line_1                NUMBER;
15757 l_recog_line_2                NUMBER;
15758 
15759 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15760 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15761 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15762 
15763 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15764 
15765 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15766 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15767 
15768 ---------------------------------------------------------------------------------------------------------------
15769 
15770 
15771 --
15772 -- bulk performance
15773 --
15774 l_balance_type_code           VARCHAR2(1);
15775 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15776 l_log_module                  VARCHAR2(240);
15777 
15778 --
15779 -- Upgrade strategy
15780 --
15781 l_actual_upg_option           VARCHAR2(1);
15782 l_enc_upg_option           VARCHAR2(1);
15783 
15784 --
15785 BEGIN
15786 --
15787 IF g_log_enabled THEN
15788       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
15789 END IF;
15790 --
15791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15792 
15793       trace
15794          (p_msg      => 'BEGIN of AcctLineType_65'
15795          ,p_level    => C_LEVEL_PROCEDURE
15796          ,p_module   => l_log_module);
15797 
15798 END IF;
15799 --
15800 l_component_type             := 'AMB_JLT';
15801 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_DM';
15802 l_component_type_code        := 'S';
15806 l_event_class_code           := 'DEBIT MEMOS';
15803 l_component_appl_id          :=  200;
15804 l_amb_context_code           := 'DEFAULT';
15805 l_entity_code                := 'AP_INVOICES';
15807 l_event_type_code            := 'DEBIT MEMOS_ALL';
15808 l_line_definition_owner_code := 'S';
15809 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
15810 --
15811 l_balance_type_code          := 'A';
15812 l_segment                     := NULL;
15813 l_ccid                        := NULL;
15814 l_adr_transaction_coa_id      := NULL;
15815 l_adr_accounting_coa_id       := NULL;
15816 l_adr_flexfield_segment_code  := NULL;
15817 l_adr_flex_value_set_id       := NULL;
15818 l_adr_value_type_code         := NULL;
15819 l_adr_value_combination_id    := NULL;
15820 l_adr_value_segment_code      := NULL;
15821 
15822 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
15823 l_bflow_class_code           := '';    -- 4219869 Business Flow
15824 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
15825 l_budgetary_control_flag     := 'N';
15826 
15827 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15828 l_bflow_applied_to_amt       := NULL; -- 5132302
15829 l_entered_amt_idx            := NULL;          -- 4262811
15830 l_accted_amt_idx             := NULL;          -- 4262811
15831 l_acc_rev_flag               := NULL;          -- 4262811
15832 l_accrual_line_num           := NULL;          -- 4262811
15833 l_tmp_amt                    := NULL;          -- 4262811
15834 --
15835 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15836             (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
15837                return;
15838   END IF;
15839   
15840 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15841     l_balance_type_code <> 'B' THEN
15842 IF NVL(p_source_28,'
15843 ') =  'NONREC_TAX' AND 
15844 NVL(p_source_54,'
15845 ') =  'Y'
15846  THEN 
15847 
15848    --
15849    XLA_AE_LINES_PKG.SetNewLine;
15850 
15851    p_balance_type_code          := l_balance_type_code;
15852    -- set the flag so later we will know whether the gain loss line needs to be created
15853    
15854    IF(l_balance_type_code = 'A' ) THEN
15855      p_actual_flag :='G';
15856    END IF;
15857 
15858    --
15859    -- bulk performance
15860    --
15861    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15862                                       p_header_num   => 0); -- 4262811
15863    --
15864    -- set accounting line options
15865    --
15866    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15867            p_natural_side_code          => 'G'
15868          , p_gain_or_loss_flag          => 'N'
15869          , p_gl_transfer_mode_code      => 'S'
15870          , p_acct_entry_type_code       => 'A'
15871          , p_switch_side_flag           => ''
15872          , p_merge_duplicate_code       => 'A'
15873          );
15874    --
15875    l_acc_rev_natural_side_code := 'C';  -- 4262811
15876    -- 
15877    --
15878    -- set accounting line type info
15879    --
15880    xla_ae_lines_pkg.SetAcctLineType
15881       (p_component_type             => l_component_type
15882       ,p_event_type_code            => l_event_type_code
15883       ,p_line_definition_owner_code => l_line_definition_owner_code
15884       ,p_line_definition_code       => l_line_definition_code
15885       ,p_accounting_line_code       => l_component_code
15886       ,p_accounting_line_type_code  => l_component_type_code
15887       ,p_accounting_line_appl_id    => l_component_appl_id
15888       ,p_amb_context_code           => l_amb_context_code
15889       ,p_entity_code                => l_entity_code
15890       ,p_event_class_code           => l_event_class_code);
15891    --
15892    -- set accounting class
15893    --
15894    xla_ae_lines_pkg.SetAcctClass(
15895            p_accounting_class_code  => 'TERV'
15896          , p_ae_header_id           => l_ae_header_id
15897          );
15898 
15899    --
15900    -- set rounding class
15901    --
15902    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15903                       'TERV';
15904 
15905    --
15906    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15907    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15908    --
15909    -- bulk performance
15910    --
15911    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15912 
15913    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15914       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15915 
15916    -- 4955764
15917    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15918       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15919 
15920    -- 4458381 Public Sector Enh
15921    
15922    --
15923    -- set accounting attributes for the line type
15924    --
15925    l_entered_amt_idx := NULL;
15926    l_accted_amt_idx  := 23;
15930    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15927    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
15928    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15929    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
15931    l_rec_acct_attrs.array_num_value(2)  := 
15932 xla_ae_sources_pkg.GetSystemSourceNum(
15933    p_source_code           => 'XLA_EVENT_APPL_ID'
15934  , p_source_type_code      => 'Y'
15935  , p_source_application_id =>  602
15936 );
15937    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15938    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
15939    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15940    l_rec_acct_attrs.array_char_value(4)  := 
15941 xla_ae_sources_pkg.GetSystemSourceChar(
15942    p_source_code           => 'XLA_ENTITY_CODE'
15943  , p_source_type_code      => 'Y'
15944  , p_source_application_id =>  602
15945 );
15946    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15947    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
15948    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15949    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
15950    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
15951    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
15952    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15953    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
15954    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
15955    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
15956    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
15957    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
15958    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15959    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
15960    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
15961    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
15962    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
15963    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
15964    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
15965    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
15966    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
15967    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
15968    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
15969    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
15970    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
15971    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
15972    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
15973    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
15974    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
15975    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
15976    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
15977    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
15978    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
15979    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
15980    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
15981    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
15982    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
15983    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
15984    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
15985    l_rec_acct_attrs.array_date_value(24)  := p_source_82;
15986    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
15987    l_rec_acct_attrs.array_char_value(25)  := p_source_83;
15988    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
15989    l_rec_acct_attrs.array_date_value(26)  := p_source_84;
15990    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
15991    l_rec_acct_attrs.array_char_value(27)  := p_source_85;
15992    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
15993    l_rec_acct_attrs.array_num_value(28)  := p_source_86;
15994    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
15995    l_rec_acct_attrs.array_num_value(29)  := p_source_87;
15996    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
15997    l_rec_acct_attrs.array_char_value(30)  := p_source_88;
15998    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
15999    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_89);
16000    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
16001    l_rec_acct_attrs.array_char_value(32)  := p_source_60;
16002    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
16003    l_rec_acct_attrs.array_num_value(33)  := p_source_91;
16004    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
16005    l_rec_acct_attrs.array_num_value(34)  := p_source_92;
16006    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
16007    l_rec_acct_attrs.array_num_value(35)  := p_source_93;
16008    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
16009    l_rec_acct_attrs.array_num_value(36)  := p_source_94;
16010    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
16011    l_rec_acct_attrs.array_num_value(37)  := p_source_95;
16012 
16013    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16017    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16014    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16015 
16016    ---------------------------------------------------------------------------------------------------------------
16018    ---------------------------------------------------------------------------------------------------------------
16019    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16020 
16021    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16022    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16023 
16024    IF xla_accounting_cache_pkg.GetValueChar
16025          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16026          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16027    AND l_bflow_method_code = 'PRIOR_ENTRY'
16028 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16029    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16030          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16031        )
16032    THEN
16033          xla_ae_lines_pkg.BflowUpgEntry
16034            (p_business_method_code    => l_bflow_method_code
16035            ,p_business_class_code     => l_bflow_class_code
16036            ,p_balance_type            => l_balance_type_code);
16037    ELSE
16038       NULL;
16039 -- No business flow processing for business flow method of NONE.
16040    END IF;
16041 
16042    --
16043    -- call analytical criteria
16044    --
16045    
16046    --
16047    -- call description
16048    --
16049    
16050 xla_ae_lines_pkg.SetLineDescription(
16051    p_ae_header_id => l_ae_header_id
16052   ,p_description  => Description_2 (
16053      p_application_id         => p_application_id
16054    , p_ae_header_id           => l_ae_header_id 
16055 , p_source_1 => p_source_1
16056    )
16057 );
16058 
16059 
16060    --
16061    -- call ADRs
16062    -- Bug 4922099
16063    --
16064    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16065         (NVL(l_actual_upg_option, 'N') = 'O') OR
16066         (NVL(l_enc_upg_option, 'N') = 'O')
16067       )
16068    THEN
16069    NULL;
16070    --
16071    --
16072    
16073   l_ccid := AcctDerRule_32(
16074            p_application_id           => p_application_id
16075          , p_ae_header_id             => l_ae_header_id 
16076 , p_source_10 => p_source_10
16077 , p_source_10_meaning => p_source_10_meaning
16078 , p_source_15 => p_source_15
16079 , p_source_16 => p_source_16
16080 , p_source_17 => p_source_17
16081 , p_source_17_meaning => p_source_17_meaning
16082 , p_source_18 => p_source_18
16083 , p_source_25 => p_source_25
16084 , p_source_43 => p_source_43
16085 , p_source_43_meaning => p_source_43_meaning
16086          , x_transaction_coa_id       => l_adr_transaction_coa_id
16087          , x_accounting_coa_id        => l_adr_accounting_coa_id
16088          , x_value_type_code          => l_adr_value_type_code
16089          , p_side                     => 'ALL'
16090    );
16091 
16092    xla_ae_lines_pkg.set_ccid(
16093     p_code_combination_id          => l_ccid
16094   , p_value_type_code              => l_adr_value_type_code
16095   , p_transaction_coa_id           => l_adr_transaction_coa_id
16096   , p_accounting_coa_id            => l_adr_accounting_coa_id
16097   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16098   , p_adr_type_code                => 'S'
16099   , p_component_type               => l_component_type
16100   , p_component_code               => l_component_code
16101   , p_component_type_code          => l_component_type_code
16102   , p_component_appl_id            => l_component_appl_id
16103   , p_amb_context_code             => l_amb_context_code
16104   , p_side                         => 'ALL'
16105   );
16106 
16107 
16108    l_segment := AcctDerRule_9(
16109            p_application_id           => p_application_id
16110          , p_ae_header_id             => l_ae_header_id 
16111 , p_source_10 => p_source_10
16112 , p_source_10_meaning => p_source_10_meaning
16113 , p_source_15 => p_source_15
16114 , p_source_17 => p_source_17
16115 , p_source_17_meaning => p_source_17_meaning
16116          , x_transaction_coa_id       => l_adr_transaction_coa_id
16117          , x_accounting_coa_id        => l_adr_accounting_coa_id
16118          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16119          , x_flex_value_set_id        => l_adr_flex_value_set_id
16120          , x_value_type_code          => l_adr_value_type_code
16121          , x_value_combination_id     => l_adr_value_combination_id
16122          , x_value_segment_code       => l_adr_value_segment_code
16123          , p_side                     => 'DEBIT'
16124          , p_override_seg_flag        => 'Y'
16125    );
16126 
16127    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16128 
16129       xla_ae_lines_pkg.set_segment(
16130           p_to_segment_code         => 'GL_ACCOUNT'
16131         , p_segment_value           => l_segment
16132         , p_from_segment_code       => l_adr_value_segment_code
16133         , p_from_combination_id     => l_adr_value_combination_id
16134         , p_value_type_code         => l_adr_value_type_code
16135         , p_transaction_coa_id      => l_adr_transaction_coa_id
16139         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16136         , p_accounting_coa_id       => l_adr_accounting_coa_id
16137         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16138         , p_flex_value_set_id       => l_adr_flex_value_set_id
16140         , p_adr_type_code           => 'S'
16141         , p_component_type          => l_component_type
16142         , p_component_code          => l_component_code
16143         , p_component_type_code     => l_component_type_code
16144         , p_component_appl_id       => l_component_appl_id
16145         , p_amb_context_code        => l_amb_context_code
16146         , p_entity_code             => 'AP_INVOICES'
16147         , p_event_class_code        => 'DEBIT MEMOS'
16148         , p_side                    => 'DEBIT'
16149         );
16150 
16151   END IF;
16152 
16153    l_segment := AcctDerRule_10(
16154            p_application_id           => p_application_id
16155          , p_ae_header_id             => l_ae_header_id 
16156 , p_source_10 => p_source_10
16157 , p_source_10_meaning => p_source_10_meaning
16158 , p_source_17 => p_source_17
16159 , p_source_17_meaning => p_source_17_meaning
16160 , p_source_18 => p_source_18
16161          , x_transaction_coa_id       => l_adr_transaction_coa_id
16162          , x_accounting_coa_id        => l_adr_accounting_coa_id
16163          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16164          , x_flex_value_set_id        => l_adr_flex_value_set_id
16165          , x_value_type_code          => l_adr_value_type_code
16166          , x_value_combination_id     => l_adr_value_combination_id
16167          , x_value_segment_code       => l_adr_value_segment_code
16168          , p_side                     => 'CREDIT'
16169          , p_override_seg_flag        => 'Y'
16170    );
16171 
16172    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16173 
16174       xla_ae_lines_pkg.set_segment(
16175           p_to_segment_code         => 'GL_ACCOUNT'
16176         , p_segment_value           => l_segment
16177         , p_from_segment_code       => l_adr_value_segment_code
16178         , p_from_combination_id     => l_adr_value_combination_id
16179         , p_value_type_code         => l_adr_value_type_code
16180         , p_transaction_coa_id      => l_adr_transaction_coa_id
16181         , p_accounting_coa_id       => l_adr_accounting_coa_id
16182         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16183         , p_flex_value_set_id       => l_adr_flex_value_set_id
16184         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16185         , p_adr_type_code           => 'S'
16186         , p_component_type          => l_component_type
16187         , p_component_code          => l_component_code
16188         , p_component_type_code     => l_component_type_code
16189         , p_component_appl_id       => l_component_appl_id
16190         , p_amb_context_code        => l_amb_context_code
16191         , p_entity_code             => 'AP_INVOICES'
16192         , p_event_class_code        => 'DEBIT MEMOS'
16193         , p_side                    => 'CREDIT'
16194         );
16195 
16196   END IF;
16197 
16198    l_segment := AcctDerRule_24(
16199            p_application_id           => p_application_id
16200          , p_ae_header_id             => l_ae_header_id 
16201 , p_source_10 => p_source_10
16202 , p_source_10_meaning => p_source_10_meaning
16203 , p_source_17 => p_source_17
16204 , p_source_17_meaning => p_source_17_meaning
16205 , p_source_25 => p_source_25
16206          , x_transaction_coa_id       => l_adr_transaction_coa_id
16207          , x_accounting_coa_id        => l_adr_accounting_coa_id
16208          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16209          , x_flex_value_set_id        => l_adr_flex_value_set_id
16210          , x_value_type_code          => l_adr_value_type_code
16211          , x_value_combination_id     => l_adr_value_combination_id
16212          , x_value_segment_code       => l_adr_value_segment_code
16213          , p_side                     => 'ALL'
16214          , p_override_seg_flag        => 'Y'
16215    );
16216 
16217    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16218 
16219       xla_ae_lines_pkg.set_segment(
16220           p_to_segment_code         => 'GL_BALANCING'
16221         , p_segment_value           => l_segment
16222         , p_from_segment_code       => l_adr_value_segment_code
16223         , p_from_combination_id     => l_adr_value_combination_id
16224         , p_value_type_code         => l_adr_value_type_code
16225         , p_transaction_coa_id      => l_adr_transaction_coa_id
16226         , p_accounting_coa_id       => l_adr_accounting_coa_id
16227         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16228         , p_flex_value_set_id       => l_adr_flex_value_set_id
16229         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16230         , p_adr_type_code           => 'S'
16231         , p_component_type          => l_component_type
16232         , p_component_code          => l_component_code
16233         , p_component_type_code     => l_component_type_code
16234         , p_component_appl_id       => l_component_appl_id
16235         , p_amb_context_code        => l_amb_context_code
16236         , p_entity_code             => 'AP_INVOICES'
16237         , p_event_class_code        => 'DEBIT MEMOS'
16238         , p_side                    => 'ALL'
16239         );
16240 
16241   END IF;
16242 
16246    --
16243    --
16244    --
16245    END IF;
16247    -- Bug 4922099
16248    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16249           (NVL(l_enc_upg_option, 'N') = 'O')
16250         ) AND
16251         (l_bflow_method_code = 'PRIOR_ENTRY')
16252       )
16253    THEN
16254       IF
16255       --
16256       1 = 2
16257       --
16258       THEN
16259       xla_accounting_err_pkg.build_message
16260                                     (p_appli_s_name            => 'XLA'
16261                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16262                                     ,p_token_1                 => 'LINE_NUMBER'
16263                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16264                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16265                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16266                                                                              l_component_type
16267                                                                             ,l_component_code
16268                                                                             ,l_component_type_code
16269                                                                             ,l_component_appl_id
16270                                                                             ,l_amb_context_code
16271                                                                             ,l_entity_code
16272                                                                             ,l_event_class_code
16273                                                                            )
16274                                     ,p_token_3                 => 'OWNER'
16275                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16276                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16277                                                                           ,p_lookup_code    => l_component_type_code
16278                                                                          )
16279                                     ,p_token_4                 => 'PRODUCT_NAME'
16280                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16281                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16282                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16283                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16284                                     ,p_ae_header_id            =>  NULL
16285                                        );
16286 
16287         IF (C_LEVEL_ERROR>= g_log_level) THEN
16288                  trace
16289                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16290                       ,p_level    => C_LEVEL_ERROR
16291                       ,p_module   => l_log_module);
16292         END IF;
16293       END IF;
16294    END IF;
16295    --
16296    --
16297    ------------------------------------------------------------------------------------------------
16298    -- 4219869 Business Flow
16299    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16300    -- Prior Entry.  Currently, the following code is always generated.
16301    ------------------------------------------------------------------------------------------------
16302    XLA_AE_LINES_PKG.ValidateCurrentLine;
16303 
16304    ------------------------------------------------------------------------------------
16305    -- 4219869 Business Flow
16306    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16307    ------------------------------------------------------------------------------------
16308    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16309 
16310    ----------------------------------------------------------------------------------
16311    -- 4219869 Business Flow
16312    -- Update journal entry status -- Need to generate this within IF <condition>
16313    ----------------------------------------------------------------------------------
16314    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16315          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16316          ,p_balance_type_code => l_balance_type_code
16317          );
16318 
16319    -------------------------------------------------------------------------------------------
16320    -- 4262811 - Generate the Accrual Reversal lines
16321    -------------------------------------------------------------------------------------------
16322    BEGIN
16323       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16324                               (g_array_event(p_event_id).array_value_num('header_index'));
16325       IF l_acc_rev_flag IS NULL THEN
16326          l_acc_rev_flag := 'N';
16327       END IF;
16328    EXCEPTION
16329       WHEN OTHERS THEN
16330          l_acc_rev_flag := 'N';
16331    END;
16332    --
16333    IF (l_acc_rev_flag = 'Y') THEN
16334 
16335        -- 4645092  ------------------------------------------------------------------------------
16336        -- To allow MPA report to determine if it should generate report process
16337        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16341        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16338        ------------------------------------------------------------------------------------------
16339 
16340        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16342    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16343    -- call ADRs
16344    -- Bug 4922099
16345    --
16346    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16347         (NVL(l_actual_upg_option, 'N') = 'O') OR
16348         (NVL(l_enc_upg_option, 'N') = 'O')
16349       )
16350    THEN
16351    NULL;
16352    --
16353    --
16354    
16355   l_ccid := AcctDerRule_32(
16356            p_application_id           => p_application_id
16357          , p_ae_header_id             => l_ae_header_id 
16358 , p_source_10 => p_source_10
16359 , p_source_10_meaning => p_source_10_meaning
16360 , p_source_15 => p_source_15
16361 , p_source_16 => p_source_16
16362 , p_source_17 => p_source_17
16363 , p_source_17_meaning => p_source_17_meaning
16364 , p_source_18 => p_source_18
16365 , p_source_25 => p_source_25
16366 , p_source_43 => p_source_43
16367 , p_source_43_meaning => p_source_43_meaning
16368          , x_transaction_coa_id       => l_adr_transaction_coa_id
16369          , x_accounting_coa_id        => l_adr_accounting_coa_id
16370          , x_value_type_code          => l_adr_value_type_code
16371          , p_side                     => 'ALL'
16372    );
16373 
16374    xla_ae_lines_pkg.set_ccid(
16375     p_code_combination_id          => l_ccid
16376   , p_value_type_code              => l_adr_value_type_code
16377   , p_transaction_coa_id           => l_adr_transaction_coa_id
16378   , p_accounting_coa_id            => l_adr_accounting_coa_id
16379   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16380   , p_adr_type_code                => 'S'
16381   , p_component_type               => l_component_type
16382   , p_component_code               => l_component_code
16383   , p_component_type_code          => l_component_type_code
16384   , p_component_appl_id            => l_component_appl_id
16385   , p_amb_context_code             => l_amb_context_code
16386   , p_side                         => 'ALL'
16387   );
16388 
16389 
16390    l_segment := AcctDerRule_9(
16391            p_application_id           => p_application_id
16392          , p_ae_header_id             => l_ae_header_id 
16393 , p_source_10 => p_source_10
16394 , p_source_10_meaning => p_source_10_meaning
16395 , p_source_15 => p_source_15
16396 , p_source_17 => p_source_17
16397 , p_source_17_meaning => p_source_17_meaning
16398          , x_transaction_coa_id       => l_adr_transaction_coa_id
16399          , x_accounting_coa_id        => l_adr_accounting_coa_id
16400          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16401          , x_flex_value_set_id        => l_adr_flex_value_set_id
16402          , x_value_type_code          => l_adr_value_type_code
16403          , x_value_combination_id     => l_adr_value_combination_id
16404          , x_value_segment_code       => l_adr_value_segment_code
16405          , p_side                     => 'DEBIT'
16406          , p_override_seg_flag        => 'Y'
16407    );
16408 
16409    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16410 
16411       xla_ae_lines_pkg.set_segment(
16412           p_to_segment_code         => 'GL_ACCOUNT'
16413         , p_segment_value           => l_segment
16414         , p_from_segment_code       => l_adr_value_segment_code
16415         , p_from_combination_id     => l_adr_value_combination_id
16416         , p_value_type_code         => l_adr_value_type_code
16417         , p_transaction_coa_id      => l_adr_transaction_coa_id
16418         , p_accounting_coa_id       => l_adr_accounting_coa_id
16419         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16420         , p_flex_value_set_id       => l_adr_flex_value_set_id
16421         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16422         , p_adr_type_code           => 'S'
16423         , p_component_type          => l_component_type
16424         , p_component_code          => l_component_code
16425         , p_component_type_code     => l_component_type_code
16426         , p_component_appl_id       => l_component_appl_id
16427         , p_amb_context_code        => l_amb_context_code
16428         , p_entity_code             => 'AP_INVOICES'
16429         , p_event_class_code        => 'DEBIT MEMOS'
16430         , p_side                    => 'DEBIT'
16431         );
16432 
16433   END IF;
16434 
16435    l_segment := AcctDerRule_10(
16436            p_application_id           => p_application_id
16437          , p_ae_header_id             => l_ae_header_id 
16438 , p_source_10 => p_source_10
16439 , p_source_10_meaning => p_source_10_meaning
16440 , p_source_17 => p_source_17
16441 , p_source_17_meaning => p_source_17_meaning
16442 , p_source_18 => p_source_18
16443          , x_transaction_coa_id       => l_adr_transaction_coa_id
16444          , x_accounting_coa_id        => l_adr_accounting_coa_id
16445          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16446          , x_flex_value_set_id        => l_adr_flex_value_set_id
16447          , x_value_type_code          => l_adr_value_type_code
16448          , x_value_combination_id     => l_adr_value_combination_id
16449          , x_value_segment_code       => l_adr_value_segment_code
16450          , p_side                     => 'CREDIT'
16451          , p_override_seg_flag        => 'Y'
16452    );
16453 
16454    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16458         , p_segment_value           => l_segment
16455 
16456       xla_ae_lines_pkg.set_segment(
16457           p_to_segment_code         => 'GL_ACCOUNT'
16459         , p_from_segment_code       => l_adr_value_segment_code
16460         , p_from_combination_id     => l_adr_value_combination_id
16461         , p_value_type_code         => l_adr_value_type_code
16462         , p_transaction_coa_id      => l_adr_transaction_coa_id
16463         , p_accounting_coa_id       => l_adr_accounting_coa_id
16464         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16465         , p_flex_value_set_id       => l_adr_flex_value_set_id
16466         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16467         , p_adr_type_code           => 'S'
16468         , p_component_type          => l_component_type
16469         , p_component_code          => l_component_code
16470         , p_component_type_code     => l_component_type_code
16471         , p_component_appl_id       => l_component_appl_id
16472         , p_amb_context_code        => l_amb_context_code
16473         , p_entity_code             => 'AP_INVOICES'
16474         , p_event_class_code        => 'DEBIT MEMOS'
16475         , p_side                    => 'CREDIT'
16476         );
16477 
16478   END IF;
16479 
16480    l_segment := AcctDerRule_24(
16481            p_application_id           => p_application_id
16482          , p_ae_header_id             => l_ae_header_id 
16483 , p_source_10 => p_source_10
16484 , p_source_10_meaning => p_source_10_meaning
16485 , p_source_17 => p_source_17
16486 , p_source_17_meaning => p_source_17_meaning
16487 , p_source_25 => p_source_25
16488          , x_transaction_coa_id       => l_adr_transaction_coa_id
16489          , x_accounting_coa_id        => l_adr_accounting_coa_id
16490          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16491          , x_flex_value_set_id        => l_adr_flex_value_set_id
16492          , x_value_type_code          => l_adr_value_type_code
16493          , x_value_combination_id     => l_adr_value_combination_id
16494          , x_value_segment_code       => l_adr_value_segment_code
16495          , p_side                     => 'ALL'
16496          , p_override_seg_flag        => 'Y'
16497    );
16498 
16499    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16500 
16501       xla_ae_lines_pkg.set_segment(
16502           p_to_segment_code         => 'GL_BALANCING'
16503         , p_segment_value           => l_segment
16504         , p_from_segment_code       => l_adr_value_segment_code
16505         , p_from_combination_id     => l_adr_value_combination_id
16506         , p_value_type_code         => l_adr_value_type_code
16507         , p_transaction_coa_id      => l_adr_transaction_coa_id
16508         , p_accounting_coa_id       => l_adr_accounting_coa_id
16509         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16510         , p_flex_value_set_id       => l_adr_flex_value_set_id
16511         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16512         , p_adr_type_code           => 'S'
16513         , p_component_type          => l_component_type
16514         , p_component_code          => l_component_code
16515         , p_component_type_code     => l_component_type_code
16516         , p_component_appl_id       => l_component_appl_id
16517         , p_amb_context_code        => l_amb_context_code
16518         , p_entity_code             => 'AP_INVOICES'
16519         , p_event_class_code        => 'DEBIT MEMOS'
16520         , p_side                    => 'ALL'
16521         );
16522 
16523   END IF;
16524 
16525    --
16526    --
16527    END IF;
16528 
16529        --
16530        -- Update the line information that should be overwritten
16531        --
16532        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16533                                          p_header_num   => 1);
16534        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16535 
16536        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16537 
16538        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16539           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16540        END IF;
16541 
16542       --
16543       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16544       --
16545       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16546           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16547       ELSE
16548           ---------------------------------------------------------------------------------------------------
16549           -- 4262811a Switch Sign
16550           ---------------------------------------------------------------------------------------------------
16551           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16552           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16553                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16554           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16555                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16556           -- 5132302
16557           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16561 
16558                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16559 
16560       END IF;
16562       -- 4955764
16563       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16564       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16565 
16566 
16567       XLA_AE_LINES_PKG.ValidateCurrentLine;
16568       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16569 
16570       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16571                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16572                ,p_balance_type_code => l_balance_type_code);
16573 
16574    END IF;
16575 
16576    -----------------------------------------------------------------------------------------
16577    -- 4262811 Multiperiod Accounting
16578    -----------------------------------------------------------------------------------------
16579      -- No MPA option is assigned.
16580 
16581 
16582 END IF;
16583 END IF;
16584 --
16585 
16586 --
16587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16588    trace
16589       (p_msg      => 'END of AcctLineType_65'
16590       ,p_level    => C_LEVEL_PROCEDURE
16591       ,p_module   => l_log_module);
16592 END IF;
16593 --
16594 EXCEPTION
16595   WHEN xla_exceptions_pkg.application_exception THEN
16596       RAISE;
16597   WHEN OTHERS THEN
16598        xla_exceptions_pkg.raise_message
16599            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_65');
16600 END AcctLineType_65;
16601 --
16602 
16603 ---------------------------------------
16604 --
16605 -- PRIVATE FUNCTION
16606 --         AcctLineType_66
16607 --
16608 ---------------------------------------
16609 PROCEDURE AcctLineType_66 (
16610   p_application_id        IN NUMBER
16611  ,p_event_id              IN NUMBER
16612  ,p_calculate_acctd_flag  IN VARCHAR2
16613  ,p_calculate_g_l_flag    IN VARCHAR2
16614  ,p_actual_flag           IN OUT VARCHAR2
16615  ,p_balance_type_code     OUT VARCHAR2
16616  ,p_gain_or_loss_ref      OUT VARCHAR2
16617  
16618 --Invoice Distribution Description
16619  , p_source_1            IN VARCHAR2
16620 --Automatic Offsets Value
16621  , p_source_10            IN VARCHAR2
16622  , p_source_10_meaning    IN VARCHAR2
16623 --Purchase Order Rate Variance Gain Account
16624  , p_source_15            IN NUMBER
16625 --Invoice Distribution Ledger Amount
16626  , p_source_16            IN NUMBER
16627 --Destination Type of the PO Distribution
16628  , p_source_17            IN VARCHAR2
16629  , p_source_17_meaning    IN VARCHAR2
16630 --Purchase Order Rate Variance Loss Account
16631  , p_source_18            IN NUMBER
16632 --Invoice Distribution Account
16633  , p_source_25            IN NUMBER
16634 --Invoice Distribution Type
16635  , p_source_28            IN VARCHAR2
16636  , p_source_28_meaning    IN VARCHAR2
16637 --Automatic Offsets Flag
16638  , p_source_43            IN VARCHAR2
16639  , p_source_43_meaning    IN VARCHAR2
16640 --Accrue on Receipt Option
16641  , p_source_54            IN VARCHAR2
16642  , p_source_54_meaning    IN VARCHAR2
16643 --Accounting Reversal Indicator
16644  , p_source_58            IN VARCHAR2
16645 --Distribution Link Type
16646  , p_source_60            IN VARCHAR2
16647 --Allocation to Main Distribution Identifier
16648  , p_source_62            IN NUMBER
16649 --Invoice Identifier
16650  , p_source_63            IN NUMBER
16651 --Invoice Distribution Identifier
16652  , p_source_69            IN NUMBER
16653 --Payables Encumbrance Upgrade Credit Account
16654  , p_source_70            IN NUMBER
16655 --Payables Encumbrance Upgrade Credit Amount
16656  , p_source_71            IN NUMBER
16657 --Invoice Currency Code
16658  , p_source_72            IN VARCHAR2
16659 --Payables Encumbrance Upgrade Credit Base Amount
16660  , p_source_73            IN NUMBER
16661 --Payables Encumbrance Upgrade Debit Account
16662  , p_source_74            IN NUMBER
16663 --Payables Encumbrance Upgrade Debit Amount
16664  , p_source_75            IN NUMBER
16665 --Payables Encumbrance Upgrade Debit Base Amount
16666  , p_source_76            IN NUMBER
16667 --Payables Encumbrance Upgrade Option
16668  , p_source_77            IN VARCHAR2
16669 --Invoice Distribution Amount
16670  , p_source_78            IN NUMBER
16671 --Deferred Accounting End Date
16672  , p_source_82            IN DATE
16673 --Deferred Accounting Option
16674  , p_source_83            IN VARCHAR2
16675 --Deferred Accounting Start Date
16676  , p_source_84            IN DATE
16677 --Override Accounted Amount Indicator
16678  , p_source_85            IN VARCHAR2
16679  , p_source_85_meaning    IN VARCHAR2
16680 --Invoice Supplier Identifier
16681  , p_source_86            IN NUMBER
16682 --Invoice Supplier Site Identifier
16683  , p_source_87            IN NUMBER
16684 --Third Party Type
16685  , p_source_88            IN VARCHAR2
16686 --Parent Reversal Identifier
16687  , p_source_89            IN NUMBER
16688 --Invoice Distribution Statistical Amount
16689  , p_source_90            IN NUMBER
16690 --Invoice Distribution Tax Line Identifier
16691  , p_source_91            IN NUMBER
16692 --Invoice Distribution Tax Distribution Identifier from Tax
16693  , p_source_92            IN NUMBER
16697  , p_source_94            IN NUMBER
16694 --Invoice Distribution Summary Tax Line Identifier
16695  , p_source_93            IN NUMBER
16696 --Payables Upgrade Credit Encumbrance Type Identifier
16698 --Payables Upgrade Debit Encumbrance Type Identifier
16699  , p_source_95            IN NUMBER
16700 --Business Flow Accounts Payable Application Identifier
16701  , p_source_96            IN NUMBER
16702 --Business Flow Invoice Distribution Type
16703  , p_source_97            IN VARCHAR2
16704 --Business Flow Invoice Entity Code
16705  , p_source_98            IN VARCHAR2
16706 --Business Flow Invoice Distribution Identifier
16707  , p_source_99            IN NUMBER
16708 --Business Flow Invoice Identifier
16709  , p_source_100            IN NUMBER
16710 )
16711 IS
16712 
16713 l_component_type              VARCHAR2(80);
16714 l_component_code              VARCHAR2(30);
16715 l_component_type_code         VARCHAR2(1);
16716 l_component_appl_id           INTEGER;
16717 l_amb_context_code            VARCHAR2(30);
16718 l_entity_code                 VARCHAR2(30);
16719 l_event_class_code            VARCHAR2(30);
16720 l_ae_header_id                NUMBER;
16721 l_event_type_code             VARCHAR2(30);
16722 l_line_definition_code        VARCHAR2(30);
16723 l_line_definition_owner_code  VARCHAR2(1);
16724 --
16725 -- adr variables
16726 l_segment                     VARCHAR2(30);
16727 l_ccid                        NUMBER;
16728 l_adr_transaction_coa_id      NUMBER;
16729 l_adr_accounting_coa_id       NUMBER;
16730 l_adr_flexfield_segment_code  VARCHAR2(30);
16731 l_adr_flex_value_set_id       NUMBER;
16732 l_adr_value_type_code         VARCHAR2(30);
16733 l_adr_value_combination_id    NUMBER;
16734 l_adr_value_segment_code      VARCHAR2(30);
16735 
16736 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16737 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16738 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16739 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16740 
16741 -- 4262811 Variables ------------------------------------------------------------------------------------------
16742 l_entered_amt_idx             NUMBER;
16743 l_accted_amt_idx              NUMBER;
16744 l_acc_rev_flag                VARCHAR2(1);
16745 l_accrual_line_num            NUMBER;
16746 l_tmp_amt                     NUMBER;
16747 l_acc_rev_natural_side_code   VARCHAR2(1);
16748 
16749 l_num_entries                 NUMBER;
16750 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16751 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16752 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16753 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16754 l_recog_line_1                NUMBER;
16755 l_recog_line_2                NUMBER;
16756 
16757 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16758 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16759 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16760 
16761 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16762 
16763 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16764 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16765 
16766 ---------------------------------------------------------------------------------------------------------------
16767 
16768 
16769 --
16770 -- bulk performance
16771 --
16772 l_balance_type_code           VARCHAR2(1);
16773 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16774 l_log_module                  VARCHAR2(240);
16775 
16776 --
16777 -- Upgrade strategy
16778 --
16779 l_actual_upg_option           VARCHAR2(1);
16780 l_enc_upg_option           VARCHAR2(1);
16781 
16782 --
16783 BEGIN
16784 --
16785 IF g_log_enabled THEN
16786       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
16787 END IF;
16788 --
16789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16790 
16791       trace
16792          (p_msg      => 'BEGIN of AcctLineType_66'
16793          ,p_level    => C_LEVEL_PROCEDURE
16794          ,p_module   => l_log_module);
16795 
16796 END IF;
16797 --
16798 l_component_type             := 'AMB_JLT';
16799 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_INV';
16800 l_component_type_code        := 'S';
16801 l_component_appl_id          :=  200;
16802 l_amb_context_code           := 'DEFAULT';
16803 l_entity_code                := 'AP_INVOICES';
16804 l_event_class_code           := 'INVOICES';
16805 l_event_type_code            := 'INVOICES_ALL';
16806 l_line_definition_owner_code := 'S';
16807 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
16808 --
16809 l_balance_type_code          := 'A';
16810 l_segment                     := NULL;
16811 l_ccid                        := NULL;
16812 l_adr_transaction_coa_id      := NULL;
16813 l_adr_accounting_coa_id       := NULL;
16814 l_adr_flexfield_segment_code  := NULL;
16815 l_adr_flex_value_set_id       := NULL;
16816 l_adr_value_type_code         := NULL;
16817 l_adr_value_combination_id    := NULL;
16818 l_adr_value_segment_code      := NULL;
16819 
16820 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16821 l_bflow_class_code           := '';    -- 4219869 Business Flow
16825 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16822 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16823 l_budgetary_control_flag     := 'N';
16824 
16826 l_bflow_applied_to_amt       := NULL; -- 5132302
16827 l_entered_amt_idx            := NULL;          -- 4262811
16828 l_accted_amt_idx             := NULL;          -- 4262811
16829 l_acc_rev_flag               := NULL;          -- 4262811
16830 l_accrual_line_num           := NULL;          -- 4262811
16831 l_tmp_amt                    := NULL;          -- 4262811
16832 --
16833 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
16834             (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
16835                return;
16836   END IF;
16837   
16838 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16839     l_balance_type_code <> 'B' THEN
16840 IF NVL(p_source_28,'
16841 ') =  'NONREC_TAX' AND 
16842 NVL(p_source_54,'
16843 ') =  'Y'
16844  THEN 
16845 
16846    --
16847    XLA_AE_LINES_PKG.SetNewLine;
16848 
16849    p_balance_type_code          := l_balance_type_code;
16850    -- set the flag so later we will know whether the gain loss line needs to be created
16851    
16852    IF(l_balance_type_code = 'A' ) THEN
16853      p_actual_flag :='G';
16854    END IF;
16855 
16856    --
16857    -- bulk performance
16858    --
16859    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16860                                       p_header_num   => 0); -- 4262811
16861    --
16862    -- set accounting line options
16863    --
16864    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16865            p_natural_side_code          => 'G'
16866          , p_gain_or_loss_flag          => 'N'
16867          , p_gl_transfer_mode_code      => 'S'
16868          , p_acct_entry_type_code       => 'A'
16869          , p_switch_side_flag           => ''
16870          , p_merge_duplicate_code       => 'A'
16871          );
16872    --
16873    l_acc_rev_natural_side_code := 'C';  -- 4262811
16874    -- 
16875    --
16876    -- set accounting line type info
16877    --
16878    xla_ae_lines_pkg.SetAcctLineType
16879       (p_component_type             => l_component_type
16880       ,p_event_type_code            => l_event_type_code
16881       ,p_line_definition_owner_code => l_line_definition_owner_code
16882       ,p_line_definition_code       => l_line_definition_code
16883       ,p_accounting_line_code       => l_component_code
16884       ,p_accounting_line_type_code  => l_component_type_code
16885       ,p_accounting_line_appl_id    => l_component_appl_id
16886       ,p_amb_context_code           => l_amb_context_code
16887       ,p_entity_code                => l_entity_code
16888       ,p_event_class_code           => l_event_class_code);
16889    --
16890    -- set accounting class
16891    --
16892    xla_ae_lines_pkg.SetAcctClass(
16893            p_accounting_class_code  => 'TERV'
16894          , p_ae_header_id           => l_ae_header_id
16895          );
16896 
16897    --
16898    -- set rounding class
16899    --
16900    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16901                       'TERV';
16902 
16903    --
16904    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16905    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16906    --
16907    -- bulk performance
16908    --
16909    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16910 
16911    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16912       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16913 
16914    -- 4955764
16915    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16916       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16917 
16918    -- 4458381 Public Sector Enh
16919    
16920    --
16921    -- set accounting attributes for the line type
16922    --
16923    l_entered_amt_idx := NULL;
16924    l_accted_amt_idx  := 24;
16925    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
16926    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16927    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
16928    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16929    l_rec_acct_attrs.array_num_value(2)  := 
16930 xla_ae_sources_pkg.GetSystemSourceNum(
16931    p_source_code           => 'XLA_EVENT_APPL_ID'
16932  , p_source_type_code      => 'Y'
16933  , p_source_application_id =>  602
16934 );
16935    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16936    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
16937    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16938    l_rec_acct_attrs.array_char_value(4)  := 
16939 xla_ae_sources_pkg.GetSystemSourceChar(
16940    p_source_code           => 'XLA_ENTITY_CODE'
16941  , p_source_type_code      => 'Y'
16942  , p_source_application_id =>  602
16943 );
16944    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16948    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
16945    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
16946    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16947    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
16949    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
16950    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
16951    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
16952    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16953    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
16954    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
16955    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
16956    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
16957    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
16958    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16959    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
16960    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
16961    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
16962    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
16963    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
16964    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
16965    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
16966    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
16967    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
16968    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
16969    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
16970    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
16971    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
16972    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
16973    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
16974    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
16975    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
16976    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
16977    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
16978    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
16979    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
16980    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
16981    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
16982    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
16983    l_rec_acct_attrs.array_num_value(24)  := p_source_16;
16984    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
16985    l_rec_acct_attrs.array_date_value(25)  := p_source_82;
16986    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
16987    l_rec_acct_attrs.array_char_value(26)  := p_source_83;
16988    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
16989    l_rec_acct_attrs.array_date_value(27)  := p_source_84;
16990    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
16991    l_rec_acct_attrs.array_char_value(28)  := p_source_85;
16992    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
16993    l_rec_acct_attrs.array_num_value(29)  := p_source_86;
16994    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
16995    l_rec_acct_attrs.array_num_value(30)  := p_source_87;
16996    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
16997    l_rec_acct_attrs.array_char_value(31)  := p_source_88;
16998    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
16999    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_89);
17000    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
17001    l_rec_acct_attrs.array_char_value(33)  := p_source_60;
17002    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
17003    l_rec_acct_attrs.array_num_value(34)  := p_source_90;
17004    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
17005    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
17006    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
17007    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
17008    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
17009    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
17010    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
17011    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
17012    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
17013    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
17014 
17015    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17016    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17017 
17018    ---------------------------------------------------------------------------------------------------------------
17019    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17020    ---------------------------------------------------------------------------------------------------------------
17021    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17022 
17023    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17024    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17025 
17026    IF xla_accounting_cache_pkg.GetValueChar
17030 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17027          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17028          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17029    AND l_bflow_method_code = 'PRIOR_ENTRY'
17031    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17032          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17033        )
17034    THEN
17035          xla_ae_lines_pkg.BflowUpgEntry
17036            (p_business_method_code    => l_bflow_method_code
17037            ,p_business_class_code     => l_bflow_class_code
17038            ,p_balance_type            => l_balance_type_code);
17039    ELSE
17040       NULL;
17041 -- No business flow processing for business flow method of NONE.
17042    END IF;
17043 
17044    --
17045    -- call analytical criteria
17046    --
17047    
17048    --
17049    -- call description
17050    --
17051    
17052 xla_ae_lines_pkg.SetLineDescription(
17053    p_ae_header_id => l_ae_header_id
17054   ,p_description  => Description_2 (
17055      p_application_id         => p_application_id
17056    , p_ae_header_id           => l_ae_header_id 
17057 , p_source_1 => p_source_1
17058    )
17059 );
17060 
17061 
17062    --
17063    -- call ADRs
17064    -- Bug 4922099
17065    --
17066    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17067         (NVL(l_actual_upg_option, 'N') = 'O') OR
17068         (NVL(l_enc_upg_option, 'N') = 'O')
17069       )
17070    THEN
17071    NULL;
17072    --
17073    --
17074    
17075   l_ccid := AcctDerRule_32(
17076            p_application_id           => p_application_id
17077          , p_ae_header_id             => l_ae_header_id 
17078 , p_source_10 => p_source_10
17079 , p_source_10_meaning => p_source_10_meaning
17080 , p_source_15 => p_source_15
17081 , p_source_16 => p_source_16
17082 , p_source_17 => p_source_17
17083 , p_source_17_meaning => p_source_17_meaning
17084 , p_source_18 => p_source_18
17085 , p_source_25 => p_source_25
17086 , p_source_43 => p_source_43
17087 , p_source_43_meaning => p_source_43_meaning
17088          , x_transaction_coa_id       => l_adr_transaction_coa_id
17089          , x_accounting_coa_id        => l_adr_accounting_coa_id
17090          , x_value_type_code          => l_adr_value_type_code
17091          , p_side                     => 'ALL'
17092    );
17093 
17094    xla_ae_lines_pkg.set_ccid(
17095     p_code_combination_id          => l_ccid
17096   , p_value_type_code              => l_adr_value_type_code
17097   , p_transaction_coa_id           => l_adr_transaction_coa_id
17098   , p_accounting_coa_id            => l_adr_accounting_coa_id
17099   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
17100   , p_adr_type_code                => 'S'
17101   , p_component_type               => l_component_type
17102   , p_component_code               => l_component_code
17103   , p_component_type_code          => l_component_type_code
17104   , p_component_appl_id            => l_component_appl_id
17105   , p_amb_context_code             => l_amb_context_code
17106   , p_side                         => 'ALL'
17107   );
17108 
17109 
17110    l_segment := AcctDerRule_9(
17111            p_application_id           => p_application_id
17112          , p_ae_header_id             => l_ae_header_id 
17113 , p_source_10 => p_source_10
17114 , p_source_10_meaning => p_source_10_meaning
17115 , p_source_15 => p_source_15
17116 , p_source_17 => p_source_17
17117 , p_source_17_meaning => p_source_17_meaning
17118          , x_transaction_coa_id       => l_adr_transaction_coa_id
17119          , x_accounting_coa_id        => l_adr_accounting_coa_id
17120          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17121          , x_flex_value_set_id        => l_adr_flex_value_set_id
17122          , x_value_type_code          => l_adr_value_type_code
17123          , x_value_combination_id     => l_adr_value_combination_id
17124          , x_value_segment_code       => l_adr_value_segment_code
17125          , p_side                     => 'CREDIT'
17126          , p_override_seg_flag        => 'Y'
17127    );
17128 
17129    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17130 
17131       xla_ae_lines_pkg.set_segment(
17132           p_to_segment_code         => 'GL_ACCOUNT'
17133         , p_segment_value           => l_segment
17134         , p_from_segment_code       => l_adr_value_segment_code
17135         , p_from_combination_id     => l_adr_value_combination_id
17136         , p_value_type_code         => l_adr_value_type_code
17137         , p_transaction_coa_id      => l_adr_transaction_coa_id
17138         , p_accounting_coa_id       => l_adr_accounting_coa_id
17139         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17140         , p_flex_value_set_id       => l_adr_flex_value_set_id
17141         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
17142         , p_adr_type_code           => 'S'
17143         , p_component_type          => l_component_type
17144         , p_component_code          => l_component_code
17145         , p_component_type_code     => l_component_type_code
17146         , p_component_appl_id       => l_component_appl_id
17150         , p_side                    => 'CREDIT'
17147         , p_amb_context_code        => l_amb_context_code
17148         , p_entity_code             => 'AP_INVOICES'
17149         , p_event_class_code        => 'INVOICES'
17151         );
17152 
17153   END IF;
17154 
17155    l_segment := AcctDerRule_10(
17156            p_application_id           => p_application_id
17157          , p_ae_header_id             => l_ae_header_id 
17158 , p_source_10 => p_source_10
17159 , p_source_10_meaning => p_source_10_meaning
17160 , p_source_17 => p_source_17
17161 , p_source_17_meaning => p_source_17_meaning
17162 , p_source_18 => p_source_18
17163          , x_transaction_coa_id       => l_adr_transaction_coa_id
17164          , x_accounting_coa_id        => l_adr_accounting_coa_id
17165          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17166          , x_flex_value_set_id        => l_adr_flex_value_set_id
17167          , x_value_type_code          => l_adr_value_type_code
17168          , x_value_combination_id     => l_adr_value_combination_id
17169          , x_value_segment_code       => l_adr_value_segment_code
17170          , p_side                     => 'DEBIT'
17171          , p_override_seg_flag        => 'Y'
17172    );
17173 
17174    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17175 
17176       xla_ae_lines_pkg.set_segment(
17177           p_to_segment_code         => 'GL_ACCOUNT'
17178         , p_segment_value           => l_segment
17179         , p_from_segment_code       => l_adr_value_segment_code
17180         , p_from_combination_id     => l_adr_value_combination_id
17181         , p_value_type_code         => l_adr_value_type_code
17182         , p_transaction_coa_id      => l_adr_transaction_coa_id
17183         , p_accounting_coa_id       => l_adr_accounting_coa_id
17184         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17185         , p_flex_value_set_id       => l_adr_flex_value_set_id
17186         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
17187         , p_adr_type_code           => 'S'
17188         , p_component_type          => l_component_type
17189         , p_component_code          => l_component_code
17190         , p_component_type_code     => l_component_type_code
17191         , p_component_appl_id       => l_component_appl_id
17192         , p_amb_context_code        => l_amb_context_code
17193         , p_entity_code             => 'AP_INVOICES'
17194         , p_event_class_code        => 'INVOICES'
17195         , p_side                    => 'DEBIT'
17196         );
17197 
17198   END IF;
17199 
17200    l_segment := AcctDerRule_24(
17201            p_application_id           => p_application_id
17202          , p_ae_header_id             => l_ae_header_id 
17203 , p_source_10 => p_source_10
17204 , p_source_10_meaning => p_source_10_meaning
17205 , p_source_17 => p_source_17
17206 , p_source_17_meaning => p_source_17_meaning
17207 , p_source_25 => p_source_25
17208          , x_transaction_coa_id       => l_adr_transaction_coa_id
17209          , x_accounting_coa_id        => l_adr_accounting_coa_id
17210          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17211          , x_flex_value_set_id        => l_adr_flex_value_set_id
17212          , x_value_type_code          => l_adr_value_type_code
17213          , x_value_combination_id     => l_adr_value_combination_id
17214          , x_value_segment_code       => l_adr_value_segment_code
17215          , p_side                     => 'ALL'
17216          , p_override_seg_flag        => 'Y'
17217    );
17218 
17219    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17220 
17221       xla_ae_lines_pkg.set_segment(
17222           p_to_segment_code         => 'GL_BALANCING'
17223         , p_segment_value           => l_segment
17224         , p_from_segment_code       => l_adr_value_segment_code
17225         , p_from_combination_id     => l_adr_value_combination_id
17226         , p_value_type_code         => l_adr_value_type_code
17227         , p_transaction_coa_id      => l_adr_transaction_coa_id
17228         , p_accounting_coa_id       => l_adr_accounting_coa_id
17229         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17230         , p_flex_value_set_id       => l_adr_flex_value_set_id
17231         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17232         , p_adr_type_code           => 'S'
17233         , p_component_type          => l_component_type
17234         , p_component_code          => l_component_code
17235         , p_component_type_code     => l_component_type_code
17236         , p_component_appl_id       => l_component_appl_id
17237         , p_amb_context_code        => l_amb_context_code
17238         , p_entity_code             => 'AP_INVOICES'
17239         , p_event_class_code        => 'INVOICES'
17240         , p_side                    => 'ALL'
17241         );
17242 
17243   END IF;
17244 
17245    --
17246    --
17247    END IF;
17248    --
17249    -- Bug 4922099
17250    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17251           (NVL(l_enc_upg_option, 'N') = 'O')
17252         ) AND
17253         (l_bflow_method_code = 'PRIOR_ENTRY')
17254       )
17255    THEN
17256       IF
17257       --
17258       1 = 2
17259       --
17260       THEN
17261       xla_accounting_err_pkg.build_message
17262                                     (p_appli_s_name            => 'XLA'
17263                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17267                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17264                                     ,p_token_1                 => 'LINE_NUMBER'
17265                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17266                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17268                                                                              l_component_type
17269                                                                             ,l_component_code
17270                                                                             ,l_component_type_code
17271                                                                             ,l_component_appl_id
17272                                                                             ,l_amb_context_code
17273                                                                             ,l_entity_code
17274                                                                             ,l_event_class_code
17275                                                                            )
17276                                     ,p_token_3                 => 'OWNER'
17277                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17278                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17279                                                                           ,p_lookup_code    => l_component_type_code
17280                                                                          )
17281                                     ,p_token_4                 => 'PRODUCT_NAME'
17282                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17283                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17284                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17285                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17286                                     ,p_ae_header_id            =>  NULL
17287                                        );
17288 
17289         IF (C_LEVEL_ERROR>= g_log_level) THEN
17290                  trace
17291                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17292                       ,p_level    => C_LEVEL_ERROR
17293                       ,p_module   => l_log_module);
17294         END IF;
17295       END IF;
17296    END IF;
17297    --
17298    --
17299    ------------------------------------------------------------------------------------------------
17300    -- 4219869 Business Flow
17301    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17302    -- Prior Entry.  Currently, the following code is always generated.
17303    ------------------------------------------------------------------------------------------------
17304    XLA_AE_LINES_PKG.ValidateCurrentLine;
17305 
17306    ------------------------------------------------------------------------------------
17307    -- 4219869 Business Flow
17308    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17309    ------------------------------------------------------------------------------------
17310    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17311 
17312    ----------------------------------------------------------------------------------
17313    -- 4219869 Business Flow
17314    -- Update journal entry status -- Need to generate this within IF <condition>
17315    ----------------------------------------------------------------------------------
17316    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17317          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17318          ,p_balance_type_code => l_balance_type_code
17319          );
17320 
17321    -------------------------------------------------------------------------------------------
17322    -- 4262811 - Generate the Accrual Reversal lines
17323    -------------------------------------------------------------------------------------------
17324    BEGIN
17325       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17326                               (g_array_event(p_event_id).array_value_num('header_index'));
17327       IF l_acc_rev_flag IS NULL THEN
17328          l_acc_rev_flag := 'N';
17329       END IF;
17330    EXCEPTION
17331       WHEN OTHERS THEN
17332          l_acc_rev_flag := 'N';
17333    END;
17334    --
17335    IF (l_acc_rev_flag = 'Y') THEN
17336 
17337        -- 4645092  ------------------------------------------------------------------------------
17338        -- To allow MPA report to determine if it should generate report process
17339        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17340        ------------------------------------------------------------------------------------------
17341 
17342        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17343        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17344    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17345    -- call ADRs
17346    -- Bug 4922099
17347    --
17348    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17349         (NVL(l_actual_upg_option, 'N') = 'O') OR
17350         (NVL(l_enc_upg_option, 'N') = 'O')
17351       )
17352    THEN
17353    NULL;
17354    --
17355    --
17356    
17357   l_ccid := AcctDerRule_32(
17361 , p_source_10_meaning => p_source_10_meaning
17358            p_application_id           => p_application_id
17359          , p_ae_header_id             => l_ae_header_id 
17360 , p_source_10 => p_source_10
17362 , p_source_15 => p_source_15
17363 , p_source_16 => p_source_16
17364 , p_source_17 => p_source_17
17365 , p_source_17_meaning => p_source_17_meaning
17366 , p_source_18 => p_source_18
17367 , p_source_25 => p_source_25
17368 , p_source_43 => p_source_43
17369 , p_source_43_meaning => p_source_43_meaning
17370          , x_transaction_coa_id       => l_adr_transaction_coa_id
17371          , x_accounting_coa_id        => l_adr_accounting_coa_id
17372          , x_value_type_code          => l_adr_value_type_code
17373          , p_side                     => 'ALL'
17374    );
17375 
17376    xla_ae_lines_pkg.set_ccid(
17377     p_code_combination_id          => l_ccid
17378   , p_value_type_code              => l_adr_value_type_code
17379   , p_transaction_coa_id           => l_adr_transaction_coa_id
17380   , p_accounting_coa_id            => l_adr_accounting_coa_id
17381   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
17382   , p_adr_type_code                => 'S'
17383   , p_component_type               => l_component_type
17384   , p_component_code               => l_component_code
17385   , p_component_type_code          => l_component_type_code
17386   , p_component_appl_id            => l_component_appl_id
17387   , p_amb_context_code             => l_amb_context_code
17388   , p_side                         => 'ALL'
17389   );
17390 
17391 
17392    l_segment := AcctDerRule_9(
17393            p_application_id           => p_application_id
17394          , p_ae_header_id             => l_ae_header_id 
17395 , p_source_10 => p_source_10
17396 , p_source_10_meaning => p_source_10_meaning
17397 , p_source_15 => p_source_15
17398 , p_source_17 => p_source_17
17399 , p_source_17_meaning => p_source_17_meaning
17400          , x_transaction_coa_id       => l_adr_transaction_coa_id
17401          , x_accounting_coa_id        => l_adr_accounting_coa_id
17402          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17403          , x_flex_value_set_id        => l_adr_flex_value_set_id
17404          , x_value_type_code          => l_adr_value_type_code
17405          , x_value_combination_id     => l_adr_value_combination_id
17406          , x_value_segment_code       => l_adr_value_segment_code
17407          , p_side                     => 'CREDIT'
17408          , p_override_seg_flag        => 'Y'
17409    );
17410 
17411    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17412 
17413       xla_ae_lines_pkg.set_segment(
17414           p_to_segment_code         => 'GL_ACCOUNT'
17415         , p_segment_value           => l_segment
17416         , p_from_segment_code       => l_adr_value_segment_code
17417         , p_from_combination_id     => l_adr_value_combination_id
17418         , p_value_type_code         => l_adr_value_type_code
17419         , p_transaction_coa_id      => l_adr_transaction_coa_id
17420         , p_accounting_coa_id       => l_adr_accounting_coa_id
17421         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17422         , p_flex_value_set_id       => l_adr_flex_value_set_id
17423         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
17424         , p_adr_type_code           => 'S'
17425         , p_component_type          => l_component_type
17426         , p_component_code          => l_component_code
17427         , p_component_type_code     => l_component_type_code
17428         , p_component_appl_id       => l_component_appl_id
17429         , p_amb_context_code        => l_amb_context_code
17430         , p_entity_code             => 'AP_INVOICES'
17431         , p_event_class_code        => 'INVOICES'
17432         , p_side                    => 'CREDIT'
17433         );
17434 
17435   END IF;
17436 
17437    l_segment := AcctDerRule_10(
17438            p_application_id           => p_application_id
17439          , p_ae_header_id             => l_ae_header_id 
17440 , p_source_10 => p_source_10
17441 , p_source_10_meaning => p_source_10_meaning
17442 , p_source_17 => p_source_17
17443 , p_source_17_meaning => p_source_17_meaning
17444 , p_source_18 => p_source_18
17445          , x_transaction_coa_id       => l_adr_transaction_coa_id
17446          , x_accounting_coa_id        => l_adr_accounting_coa_id
17447          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17448          , x_flex_value_set_id        => l_adr_flex_value_set_id
17449          , x_value_type_code          => l_adr_value_type_code
17450          , x_value_combination_id     => l_adr_value_combination_id
17451          , x_value_segment_code       => l_adr_value_segment_code
17452          , p_side                     => 'DEBIT'
17453          , p_override_seg_flag        => 'Y'
17454    );
17455 
17456    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17457 
17458       xla_ae_lines_pkg.set_segment(
17459           p_to_segment_code         => 'GL_ACCOUNT'
17460         , p_segment_value           => l_segment
17461         , p_from_segment_code       => l_adr_value_segment_code
17462         , p_from_combination_id     => l_adr_value_combination_id
17463         , p_value_type_code         => l_adr_value_type_code
17464         , p_transaction_coa_id      => l_adr_transaction_coa_id
17465         , p_accounting_coa_id       => l_adr_accounting_coa_id
17466         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17470         , p_component_type          => l_component_type
17467         , p_flex_value_set_id       => l_adr_flex_value_set_id
17468         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
17469         , p_adr_type_code           => 'S'
17471         , p_component_code          => l_component_code
17472         , p_component_type_code     => l_component_type_code
17473         , p_component_appl_id       => l_component_appl_id
17474         , p_amb_context_code        => l_amb_context_code
17475         , p_entity_code             => 'AP_INVOICES'
17476         , p_event_class_code        => 'INVOICES'
17477         , p_side                    => 'DEBIT'
17478         );
17479 
17480   END IF;
17481 
17482    l_segment := AcctDerRule_24(
17483            p_application_id           => p_application_id
17484          , p_ae_header_id             => l_ae_header_id 
17485 , p_source_10 => p_source_10
17486 , p_source_10_meaning => p_source_10_meaning
17487 , p_source_17 => p_source_17
17488 , p_source_17_meaning => p_source_17_meaning
17489 , p_source_25 => p_source_25
17490          , x_transaction_coa_id       => l_adr_transaction_coa_id
17491          , x_accounting_coa_id        => l_adr_accounting_coa_id
17492          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17493          , x_flex_value_set_id        => l_adr_flex_value_set_id
17494          , x_value_type_code          => l_adr_value_type_code
17495          , x_value_combination_id     => l_adr_value_combination_id
17496          , x_value_segment_code       => l_adr_value_segment_code
17497          , p_side                     => 'ALL'
17498          , p_override_seg_flag        => 'Y'
17499    );
17500 
17501    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17502 
17503       xla_ae_lines_pkg.set_segment(
17504           p_to_segment_code         => 'GL_BALANCING'
17505         , p_segment_value           => l_segment
17506         , p_from_segment_code       => l_adr_value_segment_code
17507         , p_from_combination_id     => l_adr_value_combination_id
17508         , p_value_type_code         => l_adr_value_type_code
17509         , p_transaction_coa_id      => l_adr_transaction_coa_id
17510         , p_accounting_coa_id       => l_adr_accounting_coa_id
17511         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17512         , p_flex_value_set_id       => l_adr_flex_value_set_id
17513         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17514         , p_adr_type_code           => 'S'
17515         , p_component_type          => l_component_type
17516         , p_component_code          => l_component_code
17517         , p_component_type_code     => l_component_type_code
17518         , p_component_appl_id       => l_component_appl_id
17519         , p_amb_context_code        => l_amb_context_code
17520         , p_entity_code             => 'AP_INVOICES'
17521         , p_event_class_code        => 'INVOICES'
17522         , p_side                    => 'ALL'
17523         );
17524 
17525   END IF;
17526 
17527    --
17528    --
17529    END IF;
17530 
17531        --
17532        -- Update the line information that should be overwritten
17533        --
17534        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17535                                          p_header_num   => 1);
17536        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17537 
17538        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17539 
17540        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17541           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17542        END IF;
17543 
17544       --
17545       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17546       --
17547       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17548           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17549       ELSE
17550           ---------------------------------------------------------------------------------------------------
17551           -- 4262811a Switch Sign
17552           ---------------------------------------------------------------------------------------------------
17553           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17554           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17555                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17556           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17557                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17558           -- 5132302
17559           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17560                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17561 
17562       END IF;
17563 
17564       -- 4955764
17565       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17566       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17567 
17568 
17569       XLA_AE_LINES_PKG.ValidateCurrentLine;
17570       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17574                ,p_balance_type_code => l_balance_type_code);
17571 
17572       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17573                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17575 
17576    END IF;
17577 
17578    -----------------------------------------------------------------------------------------
17579    -- 4262811 Multiperiod Accounting
17580    -----------------------------------------------------------------------------------------
17581      -- No MPA option is assigned.
17582 
17583 
17584 END IF;
17585 END IF;
17586 --
17587 
17588 --
17589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17590    trace
17591       (p_msg      => 'END of AcctLineType_66'
17592       ,p_level    => C_LEVEL_PROCEDURE
17593       ,p_module   => l_log_module);
17594 END IF;
17595 --
17596 EXCEPTION
17597   WHEN xla_exceptions_pkg.application_exception THEN
17598       RAISE;
17599   WHEN OTHERS THEN
17600        xla_exceptions_pkg.raise_message
17601            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_66');
17602 END AcctLineType_66;
17603 --
17604 
17605 ---------------------------------------
17606 --
17607 -- PRIVATE FUNCTION
17608 --         AcctLineType_67
17609 --
17610 ---------------------------------------
17611 PROCEDURE AcctLineType_67 (
17612   p_application_id        IN NUMBER
17613  ,p_event_id              IN NUMBER
17614  ,p_calculate_acctd_flag  IN VARCHAR2
17615  ,p_calculate_g_l_flag    IN VARCHAR2
17616  ,p_actual_flag           IN OUT VARCHAR2
17617  ,p_balance_type_code     OUT VARCHAR2
17618  ,p_gain_or_loss_ref      OUT VARCHAR2
17619  
17620 --Invoice Distribution Description
17621  , p_source_1            IN VARCHAR2
17622 --Automatic Offsets Value
17623  , p_source_10            IN VARCHAR2
17624  , p_source_10_meaning    IN VARCHAR2
17625 --Purchase Order Rate Variance Gain Account
17626  , p_source_15            IN NUMBER
17627 --Invoice Distribution Ledger Amount
17628  , p_source_16            IN NUMBER
17629 --Destination Type of the PO Distribution
17630  , p_source_17            IN VARCHAR2
17631  , p_source_17_meaning    IN VARCHAR2
17632 --Purchase Order Rate Variance Loss Account
17633  , p_source_18            IN NUMBER
17634 --Invoice Distribution Account
17635  , p_source_25            IN NUMBER
17636 --Invoice Distribution Type
17637  , p_source_28            IN VARCHAR2
17638  , p_source_28_meaning    IN VARCHAR2
17639 --Automatic Offsets Flag
17640  , p_source_43            IN VARCHAR2
17641  , p_source_43_meaning    IN VARCHAR2
17642 --Accrue on Receipt Option
17643  , p_source_54            IN VARCHAR2
17644  , p_source_54_meaning    IN VARCHAR2
17645 --Accounting Reversal Indicator
17646  , p_source_58            IN VARCHAR2
17647 --Distribution Link Type
17648  , p_source_60            IN VARCHAR2
17649 --Allocation to Main Distribution Identifier
17650  , p_source_62            IN NUMBER
17651 --Invoice Identifier
17652  , p_source_63            IN NUMBER
17653 --Invoice Distribution Identifier
17654  , p_source_69            IN NUMBER
17655 --Payables Encumbrance Upgrade Credit Account
17656  , p_source_70            IN NUMBER
17657 --Payables Encumbrance Upgrade Credit Amount
17658  , p_source_71            IN NUMBER
17659 --Invoice Currency Code
17660  , p_source_72            IN VARCHAR2
17661 --Payables Encumbrance Upgrade Credit Base Amount
17662  , p_source_73            IN NUMBER
17663 --Payables Encumbrance Upgrade Debit Account
17664  , p_source_74            IN NUMBER
17665 --Payables Encumbrance Upgrade Debit Amount
17666  , p_source_75            IN NUMBER
17667 --Payables Encumbrance Upgrade Debit Base Amount
17668  , p_source_76            IN NUMBER
17669 --Payables Encumbrance Upgrade Option
17670  , p_source_77            IN VARCHAR2
17671 --Deferred Accounting End Date
17672  , p_source_82            IN DATE
17673 --Deferred Accounting Option
17674  , p_source_83            IN VARCHAR2
17675 --Deferred Accounting Start Date
17676  , p_source_84            IN DATE
17677 --Override Accounted Amount Indicator
17678  , p_source_85            IN VARCHAR2
17679  , p_source_85_meaning    IN VARCHAR2
17680 --Invoice Supplier Identifier
17681  , p_source_86            IN NUMBER
17682 --Invoice Supplier Site Identifier
17683  , p_source_87            IN NUMBER
17684 --Third Party Type
17685  , p_source_88            IN VARCHAR2
17686 --Parent Reversal Identifier
17687  , p_source_89            IN NUMBER
17688 --Invoice Distribution Statistical Amount
17689  , p_source_90            IN NUMBER
17690 --Invoice Distribution Tax Line Identifier
17691  , p_source_91            IN NUMBER
17692 --Invoice Distribution Tax Distribution Identifier from Tax
17693  , p_source_92            IN NUMBER
17694 --Invoice Distribution Summary Tax Line Identifier
17695  , p_source_93            IN NUMBER
17696 --Payables Upgrade Credit Encumbrance Type Identifier
17697  , p_source_94            IN NUMBER
17698 --Payables Upgrade Debit Encumbrance Type Identifier
17699  , p_source_95            IN NUMBER
17700 --Business Flow Accounts Payable Application Identifier
17701  , p_source_96            IN NUMBER
17702 --Business Flow Invoice Distribution Type
17703  , p_source_97            IN VARCHAR2
17704 --Business Flow Invoice Entity Code
17705  , p_source_98            IN VARCHAR2
17706 --Business Flow Invoice Distribution Identifier
17710 )
17707  , p_source_99            IN NUMBER
17708 --Business Flow Invoice Identifier
17709  , p_source_100            IN NUMBER
17711 IS
17712 
17713 l_component_type              VARCHAR2(80);
17714 l_component_code              VARCHAR2(30);
17715 l_component_type_code         VARCHAR2(1);
17716 l_component_appl_id           INTEGER;
17717 l_amb_context_code            VARCHAR2(30);
17718 l_entity_code                 VARCHAR2(30);
17719 l_event_class_code            VARCHAR2(30);
17720 l_ae_header_id                NUMBER;
17721 l_event_type_code             VARCHAR2(30);
17722 l_line_definition_code        VARCHAR2(30);
17723 l_line_definition_owner_code  VARCHAR2(1);
17724 --
17725 -- adr variables
17726 l_segment                     VARCHAR2(30);
17727 l_ccid                        NUMBER;
17728 l_adr_transaction_coa_id      NUMBER;
17729 l_adr_accounting_coa_id       NUMBER;
17730 l_adr_flexfield_segment_code  VARCHAR2(30);
17731 l_adr_flex_value_set_id       NUMBER;
17732 l_adr_value_type_code         VARCHAR2(30);
17733 l_adr_value_combination_id    NUMBER;
17734 l_adr_value_segment_code      VARCHAR2(30);
17735 
17736 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17737 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17738 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17739 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17740 
17741 -- 4262811 Variables ------------------------------------------------------------------------------------------
17742 l_entered_amt_idx             NUMBER;
17743 l_accted_amt_idx              NUMBER;
17744 l_acc_rev_flag                VARCHAR2(1);
17745 l_accrual_line_num            NUMBER;
17746 l_tmp_amt                     NUMBER;
17747 l_acc_rev_natural_side_code   VARCHAR2(1);
17748 
17749 l_num_entries                 NUMBER;
17750 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17751 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17752 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17753 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17754 l_recog_line_1                NUMBER;
17755 l_recog_line_2                NUMBER;
17756 
17757 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17758 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17759 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17760 
17761 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17762 
17763 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17764 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17765 
17766 ---------------------------------------------------------------------------------------------------------------
17767 
17768 
17769 --
17770 -- bulk performance
17771 --
17772 l_balance_type_code           VARCHAR2(1);
17773 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17774 l_log_module                  VARCHAR2(240);
17775 
17776 --
17777 -- Upgrade strategy
17778 --
17779 l_actual_upg_option           VARCHAR2(1);
17780 l_enc_upg_option           VARCHAR2(1);
17781 
17782 --
17783 BEGIN
17784 --
17785 IF g_log_enabled THEN
17786       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
17787 END IF;
17788 --
17789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17790 
17791       trace
17792          (p_msg      => 'BEGIN of AcctLineType_67'
17793          ,p_level    => C_LEVEL_PROCEDURE
17794          ,p_module   => l_log_module);
17795 
17796 END IF;
17797 --
17798 l_component_type             := 'AMB_JLT';
17799 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_PREPAY';
17800 l_component_type_code        := 'S';
17801 l_component_appl_id          :=  200;
17802 l_amb_context_code           := 'DEFAULT';
17803 l_entity_code                := 'AP_INVOICES';
17804 l_event_class_code           := 'PREPAYMENTS';
17805 l_event_type_code            := 'PREPAYMENTS_ALL';
17806 l_line_definition_owner_code := 'S';
17807 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
17808 --
17809 l_balance_type_code          := 'A';
17810 l_segment                     := NULL;
17811 l_ccid                        := NULL;
17812 l_adr_transaction_coa_id      := NULL;
17813 l_adr_accounting_coa_id       := NULL;
17814 l_adr_flexfield_segment_code  := NULL;
17815 l_adr_flex_value_set_id       := NULL;
17816 l_adr_value_type_code         := NULL;
17817 l_adr_value_combination_id    := NULL;
17818 l_adr_value_segment_code      := NULL;
17819 
17820 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
17821 l_bflow_class_code           := '';    -- 4219869 Business Flow
17822 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17823 l_budgetary_control_flag     := 'N';
17824 
17825 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17826 l_bflow_applied_to_amt       := NULL; -- 5132302
17827 l_entered_amt_idx            := NULL;          -- 4262811
17828 l_accted_amt_idx             := NULL;          -- 4262811
17829 l_acc_rev_flag               := NULL;          -- 4262811
17830 l_accrual_line_num           := NULL;          -- 4262811
17831 l_tmp_amt                    := NULL;          -- 4262811
17832 --
17836   END IF;
17833 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
17834             (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
17835                return;
17837   
17838 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17839     l_balance_type_code <> 'B' THEN
17840 IF NVL(p_source_28,'
17841 ') =  'NONREC_TAX' AND 
17842 NVL(p_source_54,'
17843 ') =  'Y'
17844  THEN 
17845 
17846    --
17847    XLA_AE_LINES_PKG.SetNewLine;
17848 
17849    p_balance_type_code          := l_balance_type_code;
17850    -- set the flag so later we will know whether the gain loss line needs to be created
17851    
17852    IF(l_balance_type_code = 'A' ) THEN
17853      p_actual_flag :='G';
17854    END IF;
17855 
17856    --
17857    -- bulk performance
17858    --
17859    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17860                                       p_header_num   => 0); -- 4262811
17861    --
17862    -- set accounting line options
17863    --
17864    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17865            p_natural_side_code          => 'G'
17866          , p_gain_or_loss_flag          => 'N'
17867          , p_gl_transfer_mode_code      => 'S'
17868          , p_acct_entry_type_code       => 'A'
17869          , p_switch_side_flag           => ''
17870          , p_merge_duplicate_code       => 'A'
17871          );
17872    --
17873    l_acc_rev_natural_side_code := 'C';  -- 4262811
17874    -- 
17875    --
17876    -- set accounting line type info
17877    --
17878    xla_ae_lines_pkg.SetAcctLineType
17879       (p_component_type             => l_component_type
17880       ,p_event_type_code            => l_event_type_code
17881       ,p_line_definition_owner_code => l_line_definition_owner_code
17882       ,p_line_definition_code       => l_line_definition_code
17883       ,p_accounting_line_code       => l_component_code
17884       ,p_accounting_line_type_code  => l_component_type_code
17885       ,p_accounting_line_appl_id    => l_component_appl_id
17886       ,p_amb_context_code           => l_amb_context_code
17887       ,p_entity_code                => l_entity_code
17888       ,p_event_class_code           => l_event_class_code);
17889    --
17890    -- set accounting class
17891    --
17892    xla_ae_lines_pkg.SetAcctClass(
17893            p_accounting_class_code  => 'TERV'
17894          , p_ae_header_id           => l_ae_header_id
17895          );
17896 
17897    --
17898    -- set rounding class
17899    --
17900    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17901                       'TERV';
17902 
17903    --
17904    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17905    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17906    --
17907    -- bulk performance
17908    --
17909    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17910 
17911    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17912       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17913 
17914    -- 4955764
17915    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17916       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17917 
17918    -- 4458381 Public Sector Enh
17919    
17920    --
17921    -- set accounting attributes for the line type
17922    --
17923    l_entered_amt_idx := NULL;
17924    l_accted_amt_idx  := 23;
17925    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
17926    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17927    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
17928    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
17929    l_rec_acct_attrs.array_num_value(2)  := 
17930 xla_ae_sources_pkg.GetSystemSourceNum(
17931    p_source_code           => 'XLA_EVENT_APPL_ID'
17932  , p_source_type_code      => 'Y'
17933  , p_source_application_id =>  602
17934 );
17935    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
17936    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
17937    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
17938    l_rec_acct_attrs.array_char_value(4)  := 
17939 xla_ae_sources_pkg.GetSystemSourceChar(
17940    p_source_code           => 'XLA_ENTITY_CODE'
17941  , p_source_type_code      => 'Y'
17942  , p_source_application_id =>  602
17943 );
17944    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
17945    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
17946    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
17947    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
17948    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
17949    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
17950    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17951    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
17952    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
17956    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17953    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
17954    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
17955    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
17957    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
17958    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
17959    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
17960    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
17961    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
17962    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
17963    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
17964    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
17965    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
17966    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
17967    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
17968    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
17969    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
17970    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
17971    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
17972    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
17973    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
17974    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
17975    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
17976    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
17977    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
17978    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
17979    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
17980    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
17981    l_rec_acct_attrs.array_num_value(23)  := p_source_16;
17982    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
17983    l_rec_acct_attrs.array_date_value(24)  := p_source_82;
17984    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
17985    l_rec_acct_attrs.array_char_value(25)  := p_source_83;
17986    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
17987    l_rec_acct_attrs.array_date_value(26)  := p_source_84;
17988    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
17989    l_rec_acct_attrs.array_char_value(27)  := p_source_85;
17990    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
17991    l_rec_acct_attrs.array_num_value(28)  := p_source_86;
17992    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
17993    l_rec_acct_attrs.array_num_value(29)  := p_source_87;
17994    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
17995    l_rec_acct_attrs.array_char_value(30)  := p_source_88;
17996    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
17997    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_89);
17998    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
17999    l_rec_acct_attrs.array_char_value(32)  := p_source_60;
18000    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
18001    l_rec_acct_attrs.array_num_value(33)  := p_source_90;
18002    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
18003    l_rec_acct_attrs.array_num_value(34)  := p_source_91;
18004    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
18005    l_rec_acct_attrs.array_num_value(35)  := p_source_92;
18006    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
18007    l_rec_acct_attrs.array_num_value(36)  := p_source_93;
18008    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
18009    l_rec_acct_attrs.array_num_value(37)  := p_source_94;
18010    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
18011    l_rec_acct_attrs.array_num_value(38)  := p_source_95;
18012 
18013    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18014    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18015 
18016    ---------------------------------------------------------------------------------------------------------------
18017    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18018    ---------------------------------------------------------------------------------------------------------------
18019    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18020 
18021    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18022    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18023 
18024    IF xla_accounting_cache_pkg.GetValueChar
18025          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18026          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18027    AND l_bflow_method_code = 'PRIOR_ENTRY'
18028 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18029    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18030          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18031        )
18032    THEN
18033          xla_ae_lines_pkg.BflowUpgEntry
18034            (p_business_method_code    => l_bflow_method_code
18035            ,p_business_class_code     => l_bflow_class_code
18036            ,p_balance_type            => l_balance_type_code);
18037    ELSE
18038       NULL;
18042    --
18039 -- No business flow processing for business flow method of NONE.
18040    END IF;
18041 
18043    -- call analytical criteria
18044    --
18045    
18046    --
18047    -- call description
18048    --
18049    
18050 xla_ae_lines_pkg.SetLineDescription(
18051    p_ae_header_id => l_ae_header_id
18052   ,p_description  => Description_2 (
18053      p_application_id         => p_application_id
18054    , p_ae_header_id           => l_ae_header_id 
18055 , p_source_1 => p_source_1
18056    )
18057 );
18058 
18059 
18060    --
18061    -- call ADRs
18062    -- Bug 4922099
18063    --
18064    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18065         (NVL(l_actual_upg_option, 'N') = 'O') OR
18066         (NVL(l_enc_upg_option, 'N') = 'O')
18067       )
18068    THEN
18069    NULL;
18070    --
18071    --
18072    
18073   l_ccid := AcctDerRule_32(
18074            p_application_id           => p_application_id
18075          , p_ae_header_id             => l_ae_header_id 
18076 , p_source_10 => p_source_10
18077 , p_source_10_meaning => p_source_10_meaning
18078 , p_source_15 => p_source_15
18079 , p_source_16 => p_source_16
18080 , p_source_17 => p_source_17
18081 , p_source_17_meaning => p_source_17_meaning
18082 , p_source_18 => p_source_18
18083 , p_source_25 => p_source_25
18084 , p_source_43 => p_source_43
18085 , p_source_43_meaning => p_source_43_meaning
18086          , x_transaction_coa_id       => l_adr_transaction_coa_id
18087          , x_accounting_coa_id        => l_adr_accounting_coa_id
18088          , x_value_type_code          => l_adr_value_type_code
18089          , p_side                     => 'ALL'
18090    );
18091 
18092    xla_ae_lines_pkg.set_ccid(
18093     p_code_combination_id          => l_ccid
18094   , p_value_type_code              => l_adr_value_type_code
18095   , p_transaction_coa_id           => l_adr_transaction_coa_id
18096   , p_accounting_coa_id            => l_adr_accounting_coa_id
18097   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
18098   , p_adr_type_code                => 'S'
18099   , p_component_type               => l_component_type
18100   , p_component_code               => l_component_code
18101   , p_component_type_code          => l_component_type_code
18102   , p_component_appl_id            => l_component_appl_id
18103   , p_amb_context_code             => l_amb_context_code
18104   , p_side                         => 'ALL'
18105   );
18106 
18107 
18108    l_segment := AcctDerRule_9(
18109            p_application_id           => p_application_id
18110          , p_ae_header_id             => l_ae_header_id 
18111 , p_source_10 => p_source_10
18112 , p_source_10_meaning => p_source_10_meaning
18113 , p_source_15 => p_source_15
18114 , p_source_17 => p_source_17
18115 , p_source_17_meaning => p_source_17_meaning
18116          , x_transaction_coa_id       => l_adr_transaction_coa_id
18117          , x_accounting_coa_id        => l_adr_accounting_coa_id
18118          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18119          , x_flex_value_set_id        => l_adr_flex_value_set_id
18120          , x_value_type_code          => l_adr_value_type_code
18121          , x_value_combination_id     => l_adr_value_combination_id
18122          , x_value_segment_code       => l_adr_value_segment_code
18123          , p_side                     => 'CREDIT'
18124          , p_override_seg_flag        => 'Y'
18125    );
18126 
18127    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18128 
18129       xla_ae_lines_pkg.set_segment(
18130           p_to_segment_code         => 'GL_ACCOUNT'
18131         , p_segment_value           => l_segment
18132         , p_from_segment_code       => l_adr_value_segment_code
18133         , p_from_combination_id     => l_adr_value_combination_id
18134         , p_value_type_code         => l_adr_value_type_code
18135         , p_transaction_coa_id      => l_adr_transaction_coa_id
18136         , p_accounting_coa_id       => l_adr_accounting_coa_id
18137         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18138         , p_flex_value_set_id       => l_adr_flex_value_set_id
18139         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
18140         , p_adr_type_code           => 'S'
18141         , p_component_type          => l_component_type
18142         , p_component_code          => l_component_code
18143         , p_component_type_code     => l_component_type_code
18144         , p_component_appl_id       => l_component_appl_id
18145         , p_amb_context_code        => l_amb_context_code
18146         , p_entity_code             => 'AP_INVOICES'
18147         , p_event_class_code        => 'PREPAYMENTS'
18148         , p_side                    => 'CREDIT'
18149         );
18150 
18151   END IF;
18152 
18153    l_segment := AcctDerRule_10(
18154            p_application_id           => p_application_id
18155          , p_ae_header_id             => l_ae_header_id 
18156 , p_source_10 => p_source_10
18157 , p_source_10_meaning => p_source_10_meaning
18158 , p_source_17 => p_source_17
18159 , p_source_17_meaning => p_source_17_meaning
18160 , p_source_18 => p_source_18
18161          , x_transaction_coa_id       => l_adr_transaction_coa_id
18162          , x_accounting_coa_id        => l_adr_accounting_coa_id
18163          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18164          , x_flex_value_set_id        => l_adr_flex_value_set_id
18168          , p_side                     => 'DEBIT'
18165          , x_value_type_code          => l_adr_value_type_code
18166          , x_value_combination_id     => l_adr_value_combination_id
18167          , x_value_segment_code       => l_adr_value_segment_code
18169          , p_override_seg_flag        => 'Y'
18170    );
18171 
18172    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18173 
18174       xla_ae_lines_pkg.set_segment(
18175           p_to_segment_code         => 'GL_ACCOUNT'
18176         , p_segment_value           => l_segment
18177         , p_from_segment_code       => l_adr_value_segment_code
18178         , p_from_combination_id     => l_adr_value_combination_id
18179         , p_value_type_code         => l_adr_value_type_code
18180         , p_transaction_coa_id      => l_adr_transaction_coa_id
18181         , p_accounting_coa_id       => l_adr_accounting_coa_id
18182         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18183         , p_flex_value_set_id       => l_adr_flex_value_set_id
18184         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
18185         , p_adr_type_code           => 'S'
18186         , p_component_type          => l_component_type
18187         , p_component_code          => l_component_code
18188         , p_component_type_code     => l_component_type_code
18189         , p_component_appl_id       => l_component_appl_id
18190         , p_amb_context_code        => l_amb_context_code
18191         , p_entity_code             => 'AP_INVOICES'
18192         , p_event_class_code        => 'PREPAYMENTS'
18193         , p_side                    => 'DEBIT'
18194         );
18195 
18196   END IF;
18197 
18198    l_segment := AcctDerRule_24(
18199            p_application_id           => p_application_id
18200          , p_ae_header_id             => l_ae_header_id 
18201 , p_source_10 => p_source_10
18202 , p_source_10_meaning => p_source_10_meaning
18203 , p_source_17 => p_source_17
18204 , p_source_17_meaning => p_source_17_meaning
18205 , p_source_25 => p_source_25
18206          , x_transaction_coa_id       => l_adr_transaction_coa_id
18207          , x_accounting_coa_id        => l_adr_accounting_coa_id
18208          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18209          , x_flex_value_set_id        => l_adr_flex_value_set_id
18210          , x_value_type_code          => l_adr_value_type_code
18211          , x_value_combination_id     => l_adr_value_combination_id
18212          , x_value_segment_code       => l_adr_value_segment_code
18213          , p_side                     => 'ALL'
18214          , p_override_seg_flag        => 'Y'
18215    );
18216 
18217    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18218 
18219       xla_ae_lines_pkg.set_segment(
18220           p_to_segment_code         => 'GL_BALANCING'
18221         , p_segment_value           => l_segment
18222         , p_from_segment_code       => l_adr_value_segment_code
18223         , p_from_combination_id     => l_adr_value_combination_id
18224         , p_value_type_code         => l_adr_value_type_code
18225         , p_transaction_coa_id      => l_adr_transaction_coa_id
18226         , p_accounting_coa_id       => l_adr_accounting_coa_id
18227         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18228         , p_flex_value_set_id       => l_adr_flex_value_set_id
18229         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
18230         , p_adr_type_code           => 'S'
18231         , p_component_type          => l_component_type
18232         , p_component_code          => l_component_code
18233         , p_component_type_code     => l_component_type_code
18234         , p_component_appl_id       => l_component_appl_id
18235         , p_amb_context_code        => l_amb_context_code
18236         , p_entity_code             => 'AP_INVOICES'
18237         , p_event_class_code        => 'PREPAYMENTS'
18238         , p_side                    => 'ALL'
18239         );
18240 
18241   END IF;
18242 
18243    --
18244    --
18245    END IF;
18246    --
18247    -- Bug 4922099
18248    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18249           (NVL(l_enc_upg_option, 'N') = 'O')
18250         ) AND
18251         (l_bflow_method_code = 'PRIOR_ENTRY')
18252       )
18253    THEN
18254       IF
18255       --
18256       1 = 2
18257       --
18258       THEN
18259       xla_accounting_err_pkg.build_message
18260                                     (p_appli_s_name            => 'XLA'
18261                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18262                                     ,p_token_1                 => 'LINE_NUMBER'
18263                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18264                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18265                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18266                                                                              l_component_type
18267                                                                             ,l_component_code
18268                                                                             ,l_component_type_code
18269                                                                             ,l_component_appl_id
18270                                                                             ,l_amb_context_code
18274                                     ,p_token_3                 => 'OWNER'
18271                                                                             ,l_entity_code
18272                                                                             ,l_event_class_code
18273                                                                            )
18275                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18276                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18277                                                                           ,p_lookup_code    => l_component_type_code
18278                                                                          )
18279                                     ,p_token_4                 => 'PRODUCT_NAME'
18280                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18281                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18282                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18283                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18284                                     ,p_ae_header_id            =>  NULL
18285                                        );
18286 
18287         IF (C_LEVEL_ERROR>= g_log_level) THEN
18288                  trace
18289                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18290                       ,p_level    => C_LEVEL_ERROR
18291                       ,p_module   => l_log_module);
18292         END IF;
18293       END IF;
18294    END IF;
18295    --
18296    --
18297    ------------------------------------------------------------------------------------------------
18298    -- 4219869 Business Flow
18299    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18300    -- Prior Entry.  Currently, the following code is always generated.
18301    ------------------------------------------------------------------------------------------------
18302    XLA_AE_LINES_PKG.ValidateCurrentLine;
18303 
18304    ------------------------------------------------------------------------------------
18305    -- 4219869 Business Flow
18306    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18307    ------------------------------------------------------------------------------------
18308    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18309 
18310    ----------------------------------------------------------------------------------
18311    -- 4219869 Business Flow
18312    -- Update journal entry status -- Need to generate this within IF <condition>
18313    ----------------------------------------------------------------------------------
18314    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18315          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18316          ,p_balance_type_code => l_balance_type_code
18317          );
18318 
18319    -------------------------------------------------------------------------------------------
18320    -- 4262811 - Generate the Accrual Reversal lines
18321    -------------------------------------------------------------------------------------------
18322    BEGIN
18323       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18324                               (g_array_event(p_event_id).array_value_num('header_index'));
18325       IF l_acc_rev_flag IS NULL THEN
18326          l_acc_rev_flag := 'N';
18327       END IF;
18328    EXCEPTION
18329       WHEN OTHERS THEN
18330          l_acc_rev_flag := 'N';
18331    END;
18332    --
18333    IF (l_acc_rev_flag = 'Y') THEN
18334 
18335        -- 4645092  ------------------------------------------------------------------------------
18336        -- To allow MPA report to determine if it should generate report process
18337        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18338        ------------------------------------------------------------------------------------------
18339 
18340        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18341        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18342    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18343    -- call ADRs
18344    -- Bug 4922099
18345    --
18346    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18347         (NVL(l_actual_upg_option, 'N') = 'O') OR
18348         (NVL(l_enc_upg_option, 'N') = 'O')
18349       )
18350    THEN
18351    NULL;
18352    --
18353    --
18354    
18355   l_ccid := AcctDerRule_32(
18356            p_application_id           => p_application_id
18357          , p_ae_header_id             => l_ae_header_id 
18358 , p_source_10 => p_source_10
18359 , p_source_10_meaning => p_source_10_meaning
18360 , p_source_15 => p_source_15
18361 , p_source_16 => p_source_16
18362 , p_source_17 => p_source_17
18363 , p_source_17_meaning => p_source_17_meaning
18364 , p_source_18 => p_source_18
18365 , p_source_25 => p_source_25
18366 , p_source_43 => p_source_43
18367 , p_source_43_meaning => p_source_43_meaning
18368          , x_transaction_coa_id       => l_adr_transaction_coa_id
18369          , x_accounting_coa_id        => l_adr_accounting_coa_id
18370          , x_value_type_code          => l_adr_value_type_code
18371          , p_side                     => 'ALL'
18372    );
18373 
18374    xla_ae_lines_pkg.set_ccid(
18378   , p_accounting_coa_id            => l_adr_accounting_coa_id
18375     p_code_combination_id          => l_ccid
18376   , p_value_type_code              => l_adr_value_type_code
18377   , p_transaction_coa_id           => l_adr_transaction_coa_id
18379   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
18380   , p_adr_type_code                => 'S'
18381   , p_component_type               => l_component_type
18382   , p_component_code               => l_component_code
18383   , p_component_type_code          => l_component_type_code
18384   , p_component_appl_id            => l_component_appl_id
18385   , p_amb_context_code             => l_amb_context_code
18386   , p_side                         => 'ALL'
18387   );
18388 
18389 
18390    l_segment := AcctDerRule_9(
18391            p_application_id           => p_application_id
18392          , p_ae_header_id             => l_ae_header_id 
18393 , p_source_10 => p_source_10
18394 , p_source_10_meaning => p_source_10_meaning
18395 , p_source_15 => p_source_15
18396 , p_source_17 => p_source_17
18397 , p_source_17_meaning => p_source_17_meaning
18398          , x_transaction_coa_id       => l_adr_transaction_coa_id
18399          , x_accounting_coa_id        => l_adr_accounting_coa_id
18400          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18401          , x_flex_value_set_id        => l_adr_flex_value_set_id
18402          , x_value_type_code          => l_adr_value_type_code
18403          , x_value_combination_id     => l_adr_value_combination_id
18404          , x_value_segment_code       => l_adr_value_segment_code
18405          , p_side                     => 'CREDIT'
18406          , p_override_seg_flag        => 'Y'
18407    );
18408 
18409    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18410 
18411       xla_ae_lines_pkg.set_segment(
18412           p_to_segment_code         => 'GL_ACCOUNT'
18413         , p_segment_value           => l_segment
18414         , p_from_segment_code       => l_adr_value_segment_code
18415         , p_from_combination_id     => l_adr_value_combination_id
18416         , p_value_type_code         => l_adr_value_type_code
18417         , p_transaction_coa_id      => l_adr_transaction_coa_id
18418         , p_accounting_coa_id       => l_adr_accounting_coa_id
18419         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18420         , p_flex_value_set_id       => l_adr_flex_value_set_id
18421         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
18422         , p_adr_type_code           => 'S'
18423         , p_component_type          => l_component_type
18424         , p_component_code          => l_component_code
18425         , p_component_type_code     => l_component_type_code
18426         , p_component_appl_id       => l_component_appl_id
18427         , p_amb_context_code        => l_amb_context_code
18428         , p_entity_code             => 'AP_INVOICES'
18429         , p_event_class_code        => 'PREPAYMENTS'
18430         , p_side                    => 'CREDIT'
18431         );
18432 
18433   END IF;
18434 
18435    l_segment := AcctDerRule_10(
18436            p_application_id           => p_application_id
18437          , p_ae_header_id             => l_ae_header_id 
18438 , p_source_10 => p_source_10
18439 , p_source_10_meaning => p_source_10_meaning
18440 , p_source_17 => p_source_17
18441 , p_source_17_meaning => p_source_17_meaning
18442 , p_source_18 => p_source_18
18443          , x_transaction_coa_id       => l_adr_transaction_coa_id
18444          , x_accounting_coa_id        => l_adr_accounting_coa_id
18445          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18446          , x_flex_value_set_id        => l_adr_flex_value_set_id
18447          , x_value_type_code          => l_adr_value_type_code
18448          , x_value_combination_id     => l_adr_value_combination_id
18449          , x_value_segment_code       => l_adr_value_segment_code
18450          , p_side                     => 'DEBIT'
18451          , p_override_seg_flag        => 'Y'
18452    );
18453 
18454    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18455 
18456       xla_ae_lines_pkg.set_segment(
18457           p_to_segment_code         => 'GL_ACCOUNT'
18458         , p_segment_value           => l_segment
18459         , p_from_segment_code       => l_adr_value_segment_code
18460         , p_from_combination_id     => l_adr_value_combination_id
18461         , p_value_type_code         => l_adr_value_type_code
18462         , p_transaction_coa_id      => l_adr_transaction_coa_id
18463         , p_accounting_coa_id       => l_adr_accounting_coa_id
18464         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18465         , p_flex_value_set_id       => l_adr_flex_value_set_id
18466         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
18467         , p_adr_type_code           => 'S'
18468         , p_component_type          => l_component_type
18469         , p_component_code          => l_component_code
18470         , p_component_type_code     => l_component_type_code
18471         , p_component_appl_id       => l_component_appl_id
18472         , p_amb_context_code        => l_amb_context_code
18473         , p_entity_code             => 'AP_INVOICES'
18474         , p_event_class_code        => 'PREPAYMENTS'
18475         , p_side                    => 'DEBIT'
18476         );
18477 
18478   END IF;
18479 
18480    l_segment := AcctDerRule_24(
18481            p_application_id           => p_application_id
18482          , p_ae_header_id             => l_ae_header_id 
18486 , p_source_17_meaning => p_source_17_meaning
18483 , p_source_10 => p_source_10
18484 , p_source_10_meaning => p_source_10_meaning
18485 , p_source_17 => p_source_17
18487 , p_source_25 => p_source_25
18488          , x_transaction_coa_id       => l_adr_transaction_coa_id
18489          , x_accounting_coa_id        => l_adr_accounting_coa_id
18490          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18491          , x_flex_value_set_id        => l_adr_flex_value_set_id
18492          , x_value_type_code          => l_adr_value_type_code
18493          , x_value_combination_id     => l_adr_value_combination_id
18494          , x_value_segment_code       => l_adr_value_segment_code
18495          , p_side                     => 'ALL'
18496          , p_override_seg_flag        => 'Y'
18497    );
18498 
18499    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18500 
18501       xla_ae_lines_pkg.set_segment(
18502           p_to_segment_code         => 'GL_BALANCING'
18503         , p_segment_value           => l_segment
18504         , p_from_segment_code       => l_adr_value_segment_code
18505         , p_from_combination_id     => l_adr_value_combination_id
18506         , p_value_type_code         => l_adr_value_type_code
18507         , p_transaction_coa_id      => l_adr_transaction_coa_id
18508         , p_accounting_coa_id       => l_adr_accounting_coa_id
18509         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18510         , p_flex_value_set_id       => l_adr_flex_value_set_id
18511         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
18512         , p_adr_type_code           => 'S'
18513         , p_component_type          => l_component_type
18514         , p_component_code          => l_component_code
18515         , p_component_type_code     => l_component_type_code
18516         , p_component_appl_id       => l_component_appl_id
18517         , p_amb_context_code        => l_amb_context_code
18518         , p_entity_code             => 'AP_INVOICES'
18519         , p_event_class_code        => 'PREPAYMENTS'
18520         , p_side                    => 'ALL'
18521         );
18522 
18523   END IF;
18524 
18525    --
18526    --
18527    END IF;
18528 
18529        --
18530        -- Update the line information that should be overwritten
18531        --
18532        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18533                                          p_header_num   => 1);
18534        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18535 
18536        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18537 
18538        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18539           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18540        END IF;
18541 
18542       --
18543       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18544       --
18545       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18546           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18547       ELSE
18548           ---------------------------------------------------------------------------------------------------
18549           -- 4262811a Switch Sign
18550           ---------------------------------------------------------------------------------------------------
18551           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18552           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18553                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18554           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18555                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18556           -- 5132302
18557           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18558                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18559 
18560       END IF;
18561 
18562       -- 4955764
18563       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18564       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18565 
18566 
18567       XLA_AE_LINES_PKG.ValidateCurrentLine;
18568       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18569 
18570       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18571                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18572                ,p_balance_type_code => l_balance_type_code);
18573 
18574    END IF;
18575 
18576    -----------------------------------------------------------------------------------------
18577    -- 4262811 Multiperiod Accounting
18578    -----------------------------------------------------------------------------------------
18579      -- No MPA option is assigned.
18580 
18581 
18582 END IF;
18583 END IF;
18584 --
18585 
18586 --
18587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18588    trace
18589       (p_msg      => 'END of AcctLineType_67'
18590       ,p_level    => C_LEVEL_PROCEDURE
18591       ,p_module   => l_log_module);
18592 END IF;
18593 --
18594 EXCEPTION
18595   WHEN xla_exceptions_pkg.application_exception THEN
18596       RAISE;
18600 END AcctLineType_67;
18597   WHEN OTHERS THEN
18598        xla_exceptions_pkg.raise_message
18599            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_67');
18601 --
18602 
18603 ---------------------------------------
18604 --
18605 -- PRIVATE FUNCTION
18606 --         AcctLineType_68
18607 --
18608 ---------------------------------------
18609 PROCEDURE AcctLineType_68 (
18610   p_application_id        IN NUMBER
18611  ,p_event_id              IN NUMBER
18612  ,p_calculate_acctd_flag  IN VARCHAR2
18613  ,p_calculate_g_l_flag    IN VARCHAR2
18614  ,p_actual_flag           IN OUT VARCHAR2
18615  ,p_balance_type_code     OUT VARCHAR2
18616  ,p_gain_or_loss_ref      OUT VARCHAR2
18617  
18618 --Bank Charges Account
18619  , p_source_9            IN NUMBER
18620 --Automatic Offsets Value
18621  , p_source_10            IN VARCHAR2
18622  , p_source_10_meaning    IN VARCHAR2
18623 --Invoice Distribution Account
18624  , p_source_25            IN NUMBER
18625 --When to Account for Payment Option
18626  , p_source_57            IN VARCHAR2
18627 --Accounting Reversal Indicator
18628  , p_source_58            IN VARCHAR2
18629 --Distribution Link Type
18630  , p_source_60            IN VARCHAR2
18631 --Override Accounted Amount Indicator
18632  , p_source_85            IN VARCHAR2
18633  , p_source_85_meaning    IN VARCHAR2
18634 --Third Party Type
18635  , p_source_88            IN VARCHAR2
18636 --Invoice Distribution Tax Line Identifier
18637  , p_source_91            IN NUMBER
18638 --Invoice Distribution Summary Tax Line Identifier
18639  , p_source_93            IN NUMBER
18640 --Business Flow Accounts Payable Application Identifier
18641  , p_source_96            IN NUMBER
18642 --Payment Distribution Type
18643  , p_source_101            IN VARCHAR2
18644  , p_source_101_meaning    IN VARCHAR2
18645 --Payment Distribution Amount
18646  , p_source_102            IN NUMBER
18647 --Business Flow Payment Distribution Type
18648  , p_source_103            IN VARCHAR2
18649 --Business Flow Payment Entity Code
18650  , p_source_104            IN VARCHAR2
18651 --Business Flow Payment Distribution Identifier
18652  , p_source_105            IN NUMBER
18653 --Business Flow Payment Identifier
18654  , p_source_106            IN NUMBER
18655 --Payment Distribution Identifier
18656  , p_source_107            IN NUMBER
18657 --Cleared Currency Code
18658  , p_source_108            IN VARCHAR2
18659 --Cleared Exchange Date
18660  , p_source_109            IN DATE
18661 --Cleared Exchange Rate
18662  , p_source_110            IN NUMBER
18663 --Cleared Exchange Rate Type
18664  , p_source_111            IN VARCHAR2
18665 --Payment Distribution (Cleared Rate) Ledger Amount
18666  , p_source_112            IN NUMBER
18667 --Payment Supplier Identifier
18668  , p_source_113            IN NUMBER
18669 --Payment Supplier Site Identifier
18670  , p_source_114            IN NUMBER
18671 --Payment Distribution Reversed Identifier
18672  , p_source_115            IN NUMBER
18673 )
18674 IS
18675 
18676 l_component_type              VARCHAR2(80);
18677 l_component_code              VARCHAR2(30);
18678 l_component_type_code         VARCHAR2(1);
18679 l_component_appl_id           INTEGER;
18680 l_amb_context_code            VARCHAR2(30);
18681 l_entity_code                 VARCHAR2(30);
18682 l_event_class_code            VARCHAR2(30);
18683 l_ae_header_id                NUMBER;
18684 l_event_type_code             VARCHAR2(30);
18685 l_line_definition_code        VARCHAR2(30);
18686 l_line_definition_owner_code  VARCHAR2(1);
18687 --
18688 -- adr variables
18689 l_segment                     VARCHAR2(30);
18690 l_ccid                        NUMBER;
18691 l_adr_transaction_coa_id      NUMBER;
18692 l_adr_accounting_coa_id       NUMBER;
18693 l_adr_flexfield_segment_code  VARCHAR2(30);
18694 l_adr_flex_value_set_id       NUMBER;
18695 l_adr_value_type_code         VARCHAR2(30);
18696 l_adr_value_combination_id    NUMBER;
18697 l_adr_value_segment_code      VARCHAR2(30);
18698 
18699 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18700 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18701 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18702 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18703 
18704 -- 4262811 Variables ------------------------------------------------------------------------------------------
18705 l_entered_amt_idx             NUMBER;
18706 l_accted_amt_idx              NUMBER;
18707 l_acc_rev_flag                VARCHAR2(1);
18708 l_accrual_line_num            NUMBER;
18709 l_tmp_amt                     NUMBER;
18710 l_acc_rev_natural_side_code   VARCHAR2(1);
18711 
18712 l_num_entries                 NUMBER;
18713 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18714 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18715 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18716 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18717 l_recog_line_1                NUMBER;
18718 l_recog_line_2                NUMBER;
18719 
18720 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18721 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18722 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18726 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18723 
18724 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18725 
18727 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18728 
18729 ---------------------------------------------------------------------------------------------------------------
18730 
18731 
18732 --
18733 -- bulk performance
18734 --
18735 l_balance_type_code           VARCHAR2(1);
18736 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18737 l_log_module                  VARCHAR2(240);
18738 
18739 --
18740 -- Upgrade strategy
18741 --
18742 l_actual_upg_option           VARCHAR2(1);
18743 l_enc_upg_option           VARCHAR2(1);
18744 
18745 --
18746 BEGIN
18747 --
18748 IF g_log_enabled THEN
18749       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
18750 END IF;
18751 --
18752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18753 
18754       trace
18755          (p_msg      => 'BEGIN of AcctLineType_68'
18756          ,p_level    => C_LEVEL_PROCEDURE
18757          ,p_module   => l_log_module);
18758 
18759 END IF;
18760 --
18761 l_component_type             := 'AMB_JLT';
18762 l_component_code             := 'AP_BANK_CHARGES_CLEAR';
18763 l_component_type_code        := 'S';
18764 l_component_appl_id          :=  200;
18765 l_amb_context_code           := 'DEFAULT';
18766 l_entity_code                := 'AP_PAYMENTS';
18767 l_event_class_code           := 'RECONCILED PAYMENTS';
18768 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18769 l_line_definition_owner_code := 'S';
18770 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
18771 --
18772 l_balance_type_code          := 'A';
18773 l_segment                     := NULL;
18774 l_ccid                        := NULL;
18775 l_adr_transaction_coa_id      := NULL;
18776 l_adr_accounting_coa_id       := NULL;
18777 l_adr_flexfield_segment_code  := NULL;
18778 l_adr_flex_value_set_id       := NULL;
18779 l_adr_value_type_code         := NULL;
18780 l_adr_value_combination_id    := NULL;
18781 l_adr_value_segment_code      := NULL;
18782 
18783 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
18784 l_bflow_class_code           := '';    -- 4219869 Business Flow
18785 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18786 l_budgetary_control_flag     := 'N';
18787 
18788 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18789 l_bflow_applied_to_amt       := NULL; -- 5132302
18790 l_entered_amt_idx            := NULL;          -- 4262811
18791 l_accted_amt_idx             := NULL;          -- 4262811
18792 l_acc_rev_flag               := NULL;          -- 4262811
18793 l_accrual_line_num           := NULL;          -- 4262811
18794 l_tmp_amt                    := NULL;          -- 4262811
18795 --
18796  
18797 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18798     l_balance_type_code <> 'B' THEN
18799 IF NVL(p_source_57,'
18800 ') <>  'ISSUE_ISSUE' AND 
18801 NVL(p_source_101,'
18802 ') =  'BANK CHARGE'
18803  THEN 
18804 
18805    --
18806    XLA_AE_LINES_PKG.SetNewLine;
18807 
18808    p_balance_type_code          := l_balance_type_code;
18809    -- set the flag so later we will know whether the gain loss line needs to be created
18810    
18811    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18812      p_actual_flag :='A';
18813    END IF;
18814 
18815    --
18816    -- bulk performance
18817    --
18818    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18819                                       p_header_num   => 0); -- 4262811
18820    --
18821    -- set accounting line options
18822    --
18823    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18824            p_natural_side_code          => 'D'
18825          , p_gain_or_loss_flag          => 'N'
18826          , p_gl_transfer_mode_code      => 'S'
18827          , p_acct_entry_type_code       => 'A'
18828          , p_switch_side_flag           => 'Y'
18829          , p_merge_duplicate_code       => 'A'
18830          );
18831    --
18832    l_acc_rev_natural_side_code := 'C';  -- 4262811
18833    -- 
18834    --
18835    -- set accounting line type info
18836    --
18837    xla_ae_lines_pkg.SetAcctLineType
18838       (p_component_type             => l_component_type
18839       ,p_event_type_code            => l_event_type_code
18840       ,p_line_definition_owner_code => l_line_definition_owner_code
18841       ,p_line_definition_code       => l_line_definition_code
18842       ,p_accounting_line_code       => l_component_code
18843       ,p_accounting_line_type_code  => l_component_type_code
18844       ,p_accounting_line_appl_id    => l_component_appl_id
18845       ,p_amb_context_code           => l_amb_context_code
18846       ,p_entity_code                => l_entity_code
18847       ,p_event_class_code           => l_event_class_code);
18848    --
18849    -- set accounting class
18850    --
18851    xla_ae_lines_pkg.SetAcctClass(
18852            p_accounting_class_code  => 'BANK_CHG'
18853          , p_ae_header_id           => l_ae_header_id
18854          );
18855 
18856    --
18857    -- set rounding class
18861 
18858    --
18859    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18860                       'BANK_CHG';
18862    --
18863    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18864    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18865    --
18866    -- bulk performance
18867    --
18868    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18869 
18870    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18871       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18872 
18873    -- 4955764
18874    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18875       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18876 
18877    -- 4458381 Public Sector Enh
18878    
18879    --
18880    -- set accounting attributes for the line type
18881    --
18882    l_entered_amt_idx := 10;
18883    l_accted_amt_idx  := 15;
18884    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18885    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18886    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
18887    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18888    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
18889    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18890    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
18891    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18892    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
18893    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18894    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
18895    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18896    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
18897    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18898    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
18899    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18900    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
18901    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18902    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
18903    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18904    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
18905    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18906    l_rec_acct_attrs.array_char_value(11)  := p_source_108;
18907    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18908    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
18909    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18910    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
18911    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18912    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
18913    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18914    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
18915    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18916    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
18917    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18918    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
18919    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18920    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
18921    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18922    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
18923    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18924    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
18925    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18926    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
18927    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18928    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
18929    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18930    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
18931    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18932    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
18933 
18934    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18935    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18936 
18937    ---------------------------------------------------------------------------------------------------------------
18938    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18939    ---------------------------------------------------------------------------------------------------------------
18940    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18941 
18942    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18943    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18944 
18945    IF xla_accounting_cache_pkg.GetValueChar
18946          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18947          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18948    AND l_bflow_method_code = 'PRIOR_ENTRY'
18949 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18953    THEN
18950    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18951          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18952        )
18954          xla_ae_lines_pkg.BflowUpgEntry
18955            (p_business_method_code    => l_bflow_method_code
18956            ,p_business_class_code     => l_bflow_class_code
18957            ,p_balance_type            => l_balance_type_code);
18958    ELSE
18959       NULL;
18960 -- No business flow processing for business flow method of NONE.
18961    END IF;
18962 
18963    --
18964    -- call analytical criteria
18965    --
18966    
18967    --
18968    -- call description
18969    --
18970    -- No description or it is inherited.
18971    --
18972    -- call ADRs
18973    -- Bug 4922099
18974    --
18975    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18976         (NVL(l_actual_upg_option, 'N') = 'O') OR
18977         (NVL(l_enc_upg_option, 'N') = 'O')
18978       )
18979    THEN
18980    NULL;
18981    --
18982    --
18983    
18984   l_ccid := AcctDerRule_28(
18985            p_application_id           => p_application_id
18986          , p_ae_header_id             => l_ae_header_id 
18987 , p_source_9 => p_source_9
18988 , p_source_10 => p_source_10
18989 , p_source_10_meaning => p_source_10_meaning
18990 , p_source_25 => p_source_25
18991          , x_transaction_coa_id       => l_adr_transaction_coa_id
18992          , x_accounting_coa_id        => l_adr_accounting_coa_id
18993          , x_value_type_code          => l_adr_value_type_code
18994          , p_side                     => 'NA'
18995    );
18996 
18997    xla_ae_lines_pkg.set_ccid(
18998     p_code_combination_id          => l_ccid
18999   , p_value_type_code              => l_adr_value_type_code
19000   , p_transaction_coa_id           => l_adr_transaction_coa_id
19001   , p_accounting_coa_id            => l_adr_accounting_coa_id
19002   , p_adr_code                     => 'AP_BANK_CHARGES'
19003   , p_adr_type_code                => 'S'
19004   , p_component_type               => l_component_type
19005   , p_component_code               => l_component_code
19006   , p_component_type_code          => l_component_type_code
19007   , p_component_appl_id            => l_component_appl_id
19008   , p_amb_context_code             => l_amb_context_code
19009   , p_side                         => 'NA'
19010   );
19011 
19012 
19013    l_segment := AcctDerRule_4(
19014            p_application_id           => p_application_id
19015          , p_ae_header_id             => l_ae_header_id 
19016 , p_source_9 => p_source_9
19017 , p_source_10 => p_source_10
19018 , p_source_10_meaning => p_source_10_meaning
19019          , x_transaction_coa_id       => l_adr_transaction_coa_id
19020          , x_accounting_coa_id        => l_adr_accounting_coa_id
19021          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19022          , x_flex_value_set_id        => l_adr_flex_value_set_id
19023          , x_value_type_code          => l_adr_value_type_code
19024          , x_value_combination_id     => l_adr_value_combination_id
19025          , x_value_segment_code       => l_adr_value_segment_code
19026          , p_side                     => 'NA'
19027          , p_override_seg_flag        => 'Y'
19028    );
19029 
19030    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19031 
19032       xla_ae_lines_pkg.set_segment(
19033           p_to_segment_code         => 'GL_ACCOUNT'
19034         , p_segment_value           => l_segment
19035         , p_from_segment_code       => l_adr_value_segment_code
19036         , p_from_combination_id     => l_adr_value_combination_id
19037         , p_value_type_code         => l_adr_value_type_code
19038         , p_transaction_coa_id      => l_adr_transaction_coa_id
19039         , p_accounting_coa_id       => l_adr_accounting_coa_id
19040         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19041         , p_flex_value_set_id       => l_adr_flex_value_set_id
19042         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
19043         , p_adr_type_code           => 'S'
19044         , p_component_type          => l_component_type
19045         , p_component_code          => l_component_code
19046         , p_component_type_code     => l_component_type_code
19047         , p_component_appl_id       => l_component_appl_id
19048         , p_amb_context_code        => l_amb_context_code
19049         , p_entity_code             => 'AP_PAYMENTS'
19050         , p_event_class_code        => 'RECONCILED PAYMENTS'
19051         , p_side                    => 'NA'
19052         );
19053 
19054   END IF;
19055 
19056    l_segment := AcctDerRule_23(
19057            p_application_id           => p_application_id
19058          , p_ae_header_id             => l_ae_header_id 
19059 , p_source_10 => p_source_10
19060 , p_source_10_meaning => p_source_10_meaning
19061 , p_source_25 => p_source_25
19062          , x_transaction_coa_id       => l_adr_transaction_coa_id
19063          , x_accounting_coa_id        => l_adr_accounting_coa_id
19064          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19065          , x_flex_value_set_id        => l_adr_flex_value_set_id
19066          , x_value_type_code          => l_adr_value_type_code
19067          , x_value_combination_id     => l_adr_value_combination_id
19068          , x_value_segment_code       => l_adr_value_segment_code
19072 
19069          , p_side                     => 'NA'
19070          , p_override_seg_flag        => 'Y'
19071    );
19073    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19074 
19075       xla_ae_lines_pkg.set_segment(
19076           p_to_segment_code         => 'GL_BALANCING'
19077         , p_segment_value           => l_segment
19078         , p_from_segment_code       => l_adr_value_segment_code
19079         , p_from_combination_id     => l_adr_value_combination_id
19080         , p_value_type_code         => l_adr_value_type_code
19081         , p_transaction_coa_id      => l_adr_transaction_coa_id
19082         , p_accounting_coa_id       => l_adr_accounting_coa_id
19083         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19084         , p_flex_value_set_id       => l_adr_flex_value_set_id
19085         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
19086         , p_adr_type_code           => 'S'
19087         , p_component_type          => l_component_type
19088         , p_component_code          => l_component_code
19089         , p_component_type_code     => l_component_type_code
19090         , p_component_appl_id       => l_component_appl_id
19091         , p_amb_context_code        => l_amb_context_code
19092         , p_entity_code             => 'AP_PAYMENTS'
19093         , p_event_class_code        => 'RECONCILED PAYMENTS'
19094         , p_side                    => 'NA'
19095         );
19096 
19097   END IF;
19098 
19099    --
19100    --
19101    END IF;
19102    --
19103    -- Bug 4922099
19104    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19105           (NVL(l_enc_upg_option, 'N') = 'O')
19106         ) AND
19107         (l_bflow_method_code = 'PRIOR_ENTRY')
19108       )
19109    THEN
19110       IF
19111       --
19112       1 = 2
19113       --
19114       THEN
19115       xla_accounting_err_pkg.build_message
19116                                     (p_appli_s_name            => 'XLA'
19117                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19118                                     ,p_token_1                 => 'LINE_NUMBER'
19119                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19120                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19121                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19122                                                                              l_component_type
19123                                                                             ,l_component_code
19124                                                                             ,l_component_type_code
19125                                                                             ,l_component_appl_id
19126                                                                             ,l_amb_context_code
19127                                                                             ,l_entity_code
19128                                                                             ,l_event_class_code
19129                                                                            )
19130                                     ,p_token_3                 => 'OWNER'
19131                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19132                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19133                                                                           ,p_lookup_code    => l_component_type_code
19134                                                                          )
19135                                     ,p_token_4                 => 'PRODUCT_NAME'
19136                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19137                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19138                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19139                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19140                                     ,p_ae_header_id            =>  NULL
19141                                        );
19142 
19143         IF (C_LEVEL_ERROR>= g_log_level) THEN
19144                  trace
19145                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19146                       ,p_level    => C_LEVEL_ERROR
19147                       ,p_module   => l_log_module);
19148         END IF;
19149       END IF;
19150    END IF;
19151    --
19152    --
19153    ------------------------------------------------------------------------------------------------
19154    -- 4219869 Business Flow
19155    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19156    -- Prior Entry.  Currently, the following code is always generated.
19157    ------------------------------------------------------------------------------------------------
19158    XLA_AE_LINES_PKG.ValidateCurrentLine;
19159 
19160    ------------------------------------------------------------------------------------
19161    -- 4219869 Business Flow
19162    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19163    ------------------------------------------------------------------------------------
19164    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19165 
19169    ----------------------------------------------------------------------------------
19166    ----------------------------------------------------------------------------------
19167    -- 4219869 Business Flow
19168    -- Update journal entry status -- Need to generate this within IF <condition>
19170    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19171          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19172          ,p_balance_type_code => l_balance_type_code
19173          );
19174 
19175    -------------------------------------------------------------------------------------------
19176    -- 4262811 - Generate the Accrual Reversal lines
19177    -------------------------------------------------------------------------------------------
19178    BEGIN
19179       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19180                               (g_array_event(p_event_id).array_value_num('header_index'));
19181       IF l_acc_rev_flag IS NULL THEN
19182          l_acc_rev_flag := 'N';
19183       END IF;
19184    EXCEPTION
19185       WHEN OTHERS THEN
19186          l_acc_rev_flag := 'N';
19187    END;
19188    --
19189    IF (l_acc_rev_flag = 'Y') THEN
19190 
19191        -- 4645092  ------------------------------------------------------------------------------
19192        -- To allow MPA report to determine if it should generate report process
19193        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19194        ------------------------------------------------------------------------------------------
19195 
19196        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19197        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19198    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19199    -- call ADRs
19200    -- Bug 4922099
19201    --
19202    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19203         (NVL(l_actual_upg_option, 'N') = 'O') OR
19204         (NVL(l_enc_upg_option, 'N') = 'O')
19205       )
19206    THEN
19207    NULL;
19208    --
19209    --
19210    
19211   l_ccid := AcctDerRule_28(
19212            p_application_id           => p_application_id
19213          , p_ae_header_id             => l_ae_header_id 
19214 , p_source_9 => p_source_9
19215 , p_source_10 => p_source_10
19216 , p_source_10_meaning => p_source_10_meaning
19217 , p_source_25 => p_source_25
19218          , x_transaction_coa_id       => l_adr_transaction_coa_id
19219          , x_accounting_coa_id        => l_adr_accounting_coa_id
19220          , x_value_type_code          => l_adr_value_type_code
19221          , p_side                     => 'NA'
19222    );
19223 
19224    xla_ae_lines_pkg.set_ccid(
19225     p_code_combination_id          => l_ccid
19226   , p_value_type_code              => l_adr_value_type_code
19227   , p_transaction_coa_id           => l_adr_transaction_coa_id
19228   , p_accounting_coa_id            => l_adr_accounting_coa_id
19229   , p_adr_code                     => 'AP_BANK_CHARGES'
19230   , p_adr_type_code                => 'S'
19231   , p_component_type               => l_component_type
19232   , p_component_code               => l_component_code
19233   , p_component_type_code          => l_component_type_code
19234   , p_component_appl_id            => l_component_appl_id
19235   , p_amb_context_code             => l_amb_context_code
19236   , p_side                         => 'NA'
19237   );
19238 
19239 
19240    l_segment := AcctDerRule_4(
19241            p_application_id           => p_application_id
19242          , p_ae_header_id             => l_ae_header_id 
19243 , p_source_9 => p_source_9
19244 , p_source_10 => p_source_10
19245 , p_source_10_meaning => p_source_10_meaning
19246          , x_transaction_coa_id       => l_adr_transaction_coa_id
19247          , x_accounting_coa_id        => l_adr_accounting_coa_id
19248          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19249          , x_flex_value_set_id        => l_adr_flex_value_set_id
19250          , x_value_type_code          => l_adr_value_type_code
19251          , x_value_combination_id     => l_adr_value_combination_id
19252          , x_value_segment_code       => l_adr_value_segment_code
19253          , p_side                     => 'NA'
19254          , p_override_seg_flag        => 'Y'
19255    );
19256 
19257    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19258 
19259       xla_ae_lines_pkg.set_segment(
19260           p_to_segment_code         => 'GL_ACCOUNT'
19261         , p_segment_value           => l_segment
19262         , p_from_segment_code       => l_adr_value_segment_code
19263         , p_from_combination_id     => l_adr_value_combination_id
19264         , p_value_type_code         => l_adr_value_type_code
19265         , p_transaction_coa_id      => l_adr_transaction_coa_id
19266         , p_accounting_coa_id       => l_adr_accounting_coa_id
19267         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19268         , p_flex_value_set_id       => l_adr_flex_value_set_id
19269         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
19270         , p_adr_type_code           => 'S'
19271         , p_component_type          => l_component_type
19272         , p_component_code          => l_component_code
19273         , p_component_type_code     => l_component_type_code
19274         , p_component_appl_id       => l_component_appl_id
19275         , p_amb_context_code        => l_amb_context_code
19276         , p_entity_code             => 'AP_PAYMENTS'
19280 
19277         , p_event_class_code        => 'RECONCILED PAYMENTS'
19278         , p_side                    => 'NA'
19279         );
19281   END IF;
19282 
19283    l_segment := AcctDerRule_23(
19284            p_application_id           => p_application_id
19285          , p_ae_header_id             => l_ae_header_id 
19286 , p_source_10 => p_source_10
19287 , p_source_10_meaning => p_source_10_meaning
19288 , p_source_25 => p_source_25
19289          , x_transaction_coa_id       => l_adr_transaction_coa_id
19290          , x_accounting_coa_id        => l_adr_accounting_coa_id
19291          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19292          , x_flex_value_set_id        => l_adr_flex_value_set_id
19293          , x_value_type_code          => l_adr_value_type_code
19294          , x_value_combination_id     => l_adr_value_combination_id
19295          , x_value_segment_code       => l_adr_value_segment_code
19296          , p_side                     => 'NA'
19297          , p_override_seg_flag        => 'Y'
19298    );
19299 
19300    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19301 
19302       xla_ae_lines_pkg.set_segment(
19303           p_to_segment_code         => 'GL_BALANCING'
19304         , p_segment_value           => l_segment
19305         , p_from_segment_code       => l_adr_value_segment_code
19306         , p_from_combination_id     => l_adr_value_combination_id
19307         , p_value_type_code         => l_adr_value_type_code
19308         , p_transaction_coa_id      => l_adr_transaction_coa_id
19309         , p_accounting_coa_id       => l_adr_accounting_coa_id
19310         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19311         , p_flex_value_set_id       => l_adr_flex_value_set_id
19312         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
19313         , p_adr_type_code           => 'S'
19314         , p_component_type          => l_component_type
19315         , p_component_code          => l_component_code
19316         , p_component_type_code     => l_component_type_code
19317         , p_component_appl_id       => l_component_appl_id
19318         , p_amb_context_code        => l_amb_context_code
19319         , p_entity_code             => 'AP_PAYMENTS'
19320         , p_event_class_code        => 'RECONCILED PAYMENTS'
19321         , p_side                    => 'NA'
19322         );
19323 
19324   END IF;
19325 
19326    --
19327    --
19328    END IF;
19329 
19330        --
19331        -- Update the line information that should be overwritten
19332        --
19333        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19334                                          p_header_num   => 1);
19335        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19336 
19337        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19338 
19339        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19340           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19341        END IF;
19342 
19343       --
19344       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19345       --
19346       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19347           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19348       ELSE
19349           ---------------------------------------------------------------------------------------------------
19350           -- 4262811a Switch Sign
19351           ---------------------------------------------------------------------------------------------------
19352           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19353           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19354                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19355           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19356                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19357           -- 5132302
19358           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19359                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19360 
19361       END IF;
19362 
19363       -- 4955764
19364       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19365       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19366 
19367 
19368       XLA_AE_LINES_PKG.ValidateCurrentLine;
19369       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19370 
19371       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19372                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19373                ,p_balance_type_code => l_balance_type_code);
19374 
19375    END IF;
19376 
19377    -----------------------------------------------------------------------------------------
19378    -- 4262811 Multiperiod Accounting
19379    -----------------------------------------------------------------------------------------
19380      -- No MPA option is assigned.
19381 
19382 
19383 END IF;
19384 END IF;
19385 --
19386 
19387 --
19388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19389    trace
19390       (p_msg      => 'END of AcctLineType_68'
19391       ,p_level    => C_LEVEL_PROCEDURE
19395 EXCEPTION
19392       ,p_module   => l_log_module);
19393 END IF;
19394 --
19396   WHEN xla_exceptions_pkg.application_exception THEN
19397       RAISE;
19398   WHEN OTHERS THEN
19399        xla_exceptions_pkg.raise_message
19400            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_68');
19401 END AcctLineType_68;
19402 --
19403 
19404 ---------------------------------------
19405 --
19406 -- PRIVATE FUNCTION
19407 --         AcctLineType_69
19408 --
19409 ---------------------------------------
19410 PROCEDURE AcctLineType_69 (
19411   p_application_id        IN NUMBER
19412  ,p_event_id              IN NUMBER
19413  ,p_calculate_acctd_flag  IN VARCHAR2
19414  ,p_calculate_g_l_flag    IN VARCHAR2
19415  ,p_actual_flag           IN OUT VARCHAR2
19416  ,p_balance_type_code     OUT VARCHAR2
19417  ,p_gain_or_loss_ref      OUT VARCHAR2
19418  
19419 --Automatic Offsets Value
19420  , p_source_10            IN VARCHAR2
19421  , p_source_10_meaning    IN VARCHAR2
19422 --Bank Errors Account
19423  , p_source_11            IN NUMBER
19424 --Invoice Distribution Account
19425  , p_source_25            IN NUMBER
19426 --When to Account for Payment Option
19427  , p_source_57            IN VARCHAR2
19428 --Accounting Reversal Indicator
19429  , p_source_58            IN VARCHAR2
19430 --Distribution Link Type
19431  , p_source_60            IN VARCHAR2
19432 --Override Accounted Amount Indicator
19433  , p_source_85            IN VARCHAR2
19434  , p_source_85_meaning    IN VARCHAR2
19435 --Third Party Type
19436  , p_source_88            IN VARCHAR2
19437 --Invoice Distribution Tax Line Identifier
19438  , p_source_91            IN NUMBER
19439 --Invoice Distribution Summary Tax Line Identifier
19440  , p_source_93            IN NUMBER
19441 --Business Flow Accounts Payable Application Identifier
19442  , p_source_96            IN NUMBER
19443 --Payment Distribution Type
19444  , p_source_101            IN VARCHAR2
19445  , p_source_101_meaning    IN VARCHAR2
19446 --Payment Distribution Amount
19447  , p_source_102            IN NUMBER
19448 --Business Flow Payment Distribution Type
19449  , p_source_103            IN VARCHAR2
19450 --Business Flow Payment Entity Code
19451  , p_source_104            IN VARCHAR2
19452 --Business Flow Payment Distribution Identifier
19453  , p_source_105            IN NUMBER
19454 --Business Flow Payment Identifier
19455  , p_source_106            IN NUMBER
19456 --Payment Distribution Identifier
19457  , p_source_107            IN NUMBER
19458 --Cleared Currency Code
19459  , p_source_108            IN VARCHAR2
19460 --Cleared Exchange Date
19461  , p_source_109            IN DATE
19462 --Cleared Exchange Rate
19463  , p_source_110            IN NUMBER
19464 --Cleared Exchange Rate Type
19465  , p_source_111            IN VARCHAR2
19466 --Payment Distribution (Cleared Rate) Ledger Amount
19467  , p_source_112            IN NUMBER
19468 --Payment Supplier Identifier
19469  , p_source_113            IN NUMBER
19470 --Payment Supplier Site Identifier
19471  , p_source_114            IN NUMBER
19472 --Payment Distribution Reversed Identifier
19473  , p_source_115            IN NUMBER
19474 )
19475 IS
19476 
19477 l_component_type              VARCHAR2(80);
19478 l_component_code              VARCHAR2(30);
19479 l_component_type_code         VARCHAR2(1);
19480 l_component_appl_id           INTEGER;
19481 l_amb_context_code            VARCHAR2(30);
19482 l_entity_code                 VARCHAR2(30);
19483 l_event_class_code            VARCHAR2(30);
19484 l_ae_header_id                NUMBER;
19485 l_event_type_code             VARCHAR2(30);
19486 l_line_definition_code        VARCHAR2(30);
19487 l_line_definition_owner_code  VARCHAR2(1);
19488 --
19489 -- adr variables
19490 l_segment                     VARCHAR2(30);
19491 l_ccid                        NUMBER;
19492 l_adr_transaction_coa_id      NUMBER;
19493 l_adr_accounting_coa_id       NUMBER;
19494 l_adr_flexfield_segment_code  VARCHAR2(30);
19495 l_adr_flex_value_set_id       NUMBER;
19496 l_adr_value_type_code         VARCHAR2(30);
19497 l_adr_value_combination_id    NUMBER;
19498 l_adr_value_segment_code      VARCHAR2(30);
19499 
19500 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19501 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19502 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19503 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19504 
19505 -- 4262811 Variables ------------------------------------------------------------------------------------------
19506 l_entered_amt_idx             NUMBER;
19507 l_accted_amt_idx              NUMBER;
19508 l_acc_rev_flag                VARCHAR2(1);
19509 l_accrual_line_num            NUMBER;
19510 l_tmp_amt                     NUMBER;
19511 l_acc_rev_natural_side_code   VARCHAR2(1);
19512 
19513 l_num_entries                 NUMBER;
19514 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19515 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19516 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19517 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19518 l_recog_line_1                NUMBER;
19519 l_recog_line_2                NUMBER;
19520 
19521 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19522 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19526 
19523 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19524 
19525 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19527 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19528 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19529 
19530 ---------------------------------------------------------------------------------------------------------------
19531 
19532 
19533 --
19534 -- bulk performance
19535 --
19536 l_balance_type_code           VARCHAR2(1);
19537 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19538 l_log_module                  VARCHAR2(240);
19539 
19540 --
19541 -- Upgrade strategy
19542 --
19543 l_actual_upg_option           VARCHAR2(1);
19544 l_enc_upg_option           VARCHAR2(1);
19545 
19546 --
19547 BEGIN
19548 --
19549 IF g_log_enabled THEN
19550       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
19551 END IF;
19552 --
19553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19554 
19555       trace
19556          (p_msg      => 'BEGIN of AcctLineType_69'
19557          ,p_level    => C_LEVEL_PROCEDURE
19558          ,p_module   => l_log_module);
19559 
19560 END IF;
19561 --
19562 l_component_type             := 'AMB_JLT';
19563 l_component_code             := 'AP_BANK_ERROR_CLEAR';
19564 l_component_type_code        := 'S';
19565 l_component_appl_id          :=  200;
19566 l_amb_context_code           := 'DEFAULT';
19567 l_entity_code                := 'AP_PAYMENTS';
19568 l_event_class_code           := 'RECONCILED PAYMENTS';
19569 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19570 l_line_definition_owner_code := 'S';
19571 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
19572 --
19573 l_balance_type_code          := 'A';
19574 l_segment                     := NULL;
19575 l_ccid                        := NULL;
19576 l_adr_transaction_coa_id      := NULL;
19577 l_adr_accounting_coa_id       := NULL;
19578 l_adr_flexfield_segment_code  := NULL;
19579 l_adr_flex_value_set_id       := NULL;
19580 l_adr_value_type_code         := NULL;
19581 l_adr_value_combination_id    := NULL;
19582 l_adr_value_segment_code      := NULL;
19583 
19584 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
19585 l_bflow_class_code           := '';    -- 4219869 Business Flow
19586 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19587 l_budgetary_control_flag     := 'N';
19588 
19589 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19590 l_bflow_applied_to_amt       := NULL; -- 5132302
19591 l_entered_amt_idx            := NULL;          -- 4262811
19592 l_accted_amt_idx             := NULL;          -- 4262811
19593 l_acc_rev_flag               := NULL;          -- 4262811
19594 l_accrual_line_num           := NULL;          -- 4262811
19595 l_tmp_amt                    := NULL;          -- 4262811
19596 --
19597  
19598 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19599     l_balance_type_code <> 'B' THEN
19600 IF NVL(p_source_57,'
19601 ') <>  'ISSUE_ISSUE' AND 
19602 NVL(p_source_101,'
19603 ') =  'BANK ERROR'
19604  THEN 
19605 
19606    --
19607    XLA_AE_LINES_PKG.SetNewLine;
19608 
19609    p_balance_type_code          := l_balance_type_code;
19610    -- set the flag so later we will know whether the gain loss line needs to be created
19611    
19612    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19613      p_actual_flag :='A';
19614    END IF;
19615 
19616    --
19617    -- bulk performance
19618    --
19619    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19620                                       p_header_num   => 0); -- 4262811
19621    --
19622    -- set accounting line options
19623    --
19624    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19625            p_natural_side_code          => 'D'
19626          , p_gain_or_loss_flag          => 'N'
19627          , p_gl_transfer_mode_code      => 'S'
19628          , p_acct_entry_type_code       => 'A'
19629          , p_switch_side_flag           => 'Y'
19630          , p_merge_duplicate_code       => 'A'
19631          );
19632    --
19633    l_acc_rev_natural_side_code := 'C';  -- 4262811
19634    -- 
19635    --
19636    -- set accounting line type info
19637    --
19638    xla_ae_lines_pkg.SetAcctLineType
19639       (p_component_type             => l_component_type
19640       ,p_event_type_code            => l_event_type_code
19641       ,p_line_definition_owner_code => l_line_definition_owner_code
19642       ,p_line_definition_code       => l_line_definition_code
19643       ,p_accounting_line_code       => l_component_code
19644       ,p_accounting_line_type_code  => l_component_type_code
19645       ,p_accounting_line_appl_id    => l_component_appl_id
19646       ,p_amb_context_code           => l_amb_context_code
19647       ,p_entity_code                => l_entity_code
19648       ,p_event_class_code           => l_event_class_code);
19649    --
19650    -- set accounting class
19651    --
19652    xla_ae_lines_pkg.SetAcctClass(
19653            p_accounting_class_code  => 'BANK_ERROR'
19654          , p_ae_header_id           => l_ae_header_id
19655          );
19656 
19657    --
19658    -- set rounding class
19659    --
19663    --
19660    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19661                       'BANK_ERROR';
19662 
19664    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19665    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19666    --
19667    -- bulk performance
19668    --
19669    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19670 
19671    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19672       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19673 
19674    -- 4955764
19675    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19676       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19677 
19678    -- 4458381 Public Sector Enh
19679    
19680    --
19681    -- set accounting attributes for the line type
19682    --
19683    l_entered_amt_idx := 10;
19684    l_accted_amt_idx  := 15;
19685    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
19686    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19687    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
19688    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19689    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
19690    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19691    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
19692    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19693    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
19694    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19695    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
19696    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19697    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
19698    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19699    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
19700    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19701    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
19702    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19703    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
19704    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19705    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
19706    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19707    l_rec_acct_attrs.array_char_value(11)  := p_source_108;
19708    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19709    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
19710    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19711    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
19712    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19713    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
19714    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19715    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
19716    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19717    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
19718    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19719    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
19720    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19721    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
19722    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19723    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
19724    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19725    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
19726    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19727    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
19728    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19729    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
19730    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19731    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
19732    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19733    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
19734 
19735    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19736    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19737 
19738    ---------------------------------------------------------------------------------------------------------------
19739    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19740    ---------------------------------------------------------------------------------------------------------------
19741    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19742 
19743    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19744    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19745 
19746    IF xla_accounting_cache_pkg.GetValueChar
19747          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19748          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19749    AND l_bflow_method_code = 'PRIOR_ENTRY'
19753        )
19750 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19751    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19752          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19754    THEN
19755          xla_ae_lines_pkg.BflowUpgEntry
19756            (p_business_method_code    => l_bflow_method_code
19757            ,p_business_class_code     => l_bflow_class_code
19758            ,p_balance_type            => l_balance_type_code);
19759    ELSE
19760       NULL;
19761 -- No business flow processing for business flow method of NONE.
19762    END IF;
19763 
19764    --
19765    -- call analytical criteria
19766    --
19767    
19768    --
19769    -- call description
19770    --
19771    -- No description or it is inherited.
19772    --
19773    -- call ADRs
19774    -- Bug 4922099
19775    --
19776    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19777         (NVL(l_actual_upg_option, 'N') = 'O') OR
19778         (NVL(l_enc_upg_option, 'N') = 'O')
19779       )
19780    THEN
19781    NULL;
19782    --
19783    --
19784    
19785   l_ccid := AcctDerRule_29(
19786            p_application_id           => p_application_id
19787          , p_ae_header_id             => l_ae_header_id 
19788 , p_source_10 => p_source_10
19789 , p_source_10_meaning => p_source_10_meaning
19790 , p_source_11 => p_source_11
19791 , p_source_25 => p_source_25
19792          , x_transaction_coa_id       => l_adr_transaction_coa_id
19793          , x_accounting_coa_id        => l_adr_accounting_coa_id
19794          , x_value_type_code          => l_adr_value_type_code
19795          , p_side                     => 'NA'
19796    );
19797 
19798    xla_ae_lines_pkg.set_ccid(
19799     p_code_combination_id          => l_ccid
19800   , p_value_type_code              => l_adr_value_type_code
19801   , p_transaction_coa_id           => l_adr_transaction_coa_id
19802   , p_accounting_coa_id            => l_adr_accounting_coa_id
19803   , p_adr_code                     => 'AP_BANK_ERRORS'
19804   , p_adr_type_code                => 'S'
19805   , p_component_type               => l_component_type
19806   , p_component_code               => l_component_code
19807   , p_component_type_code          => l_component_type_code
19808   , p_component_appl_id            => l_component_appl_id
19809   , p_amb_context_code             => l_amb_context_code
19810   , p_side                         => 'NA'
19811   );
19812 
19813 
19814    l_segment := AcctDerRule_5(
19815            p_application_id           => p_application_id
19816          , p_ae_header_id             => l_ae_header_id 
19817 , p_source_10 => p_source_10
19818 , p_source_10_meaning => p_source_10_meaning
19819 , p_source_11 => p_source_11
19820          , x_transaction_coa_id       => l_adr_transaction_coa_id
19821          , x_accounting_coa_id        => l_adr_accounting_coa_id
19822          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19823          , x_flex_value_set_id        => l_adr_flex_value_set_id
19824          , x_value_type_code          => l_adr_value_type_code
19825          , x_value_combination_id     => l_adr_value_combination_id
19826          , x_value_segment_code       => l_adr_value_segment_code
19827          , p_side                     => 'NA'
19828          , p_override_seg_flag        => 'Y'
19829    );
19830 
19831    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19832 
19833       xla_ae_lines_pkg.set_segment(
19834           p_to_segment_code         => 'GL_ACCOUNT'
19835         , p_segment_value           => l_segment
19836         , p_from_segment_code       => l_adr_value_segment_code
19837         , p_from_combination_id     => l_adr_value_combination_id
19838         , p_value_type_code         => l_adr_value_type_code
19839         , p_transaction_coa_id      => l_adr_transaction_coa_id
19840         , p_accounting_coa_id       => l_adr_accounting_coa_id
19841         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19842         , p_flex_value_set_id       => l_adr_flex_value_set_id
19843         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
19844         , p_adr_type_code           => 'S'
19845         , p_component_type          => l_component_type
19846         , p_component_code          => l_component_code
19847         , p_component_type_code     => l_component_type_code
19848         , p_component_appl_id       => l_component_appl_id
19849         , p_amb_context_code        => l_amb_context_code
19850         , p_entity_code             => 'AP_PAYMENTS'
19851         , p_event_class_code        => 'RECONCILED PAYMENTS'
19852         , p_side                    => 'NA'
19853         );
19854 
19855   END IF;
19856 
19857    l_segment := AcctDerRule_23(
19858            p_application_id           => p_application_id
19859          , p_ae_header_id             => l_ae_header_id 
19860 , p_source_10 => p_source_10
19861 , p_source_10_meaning => p_source_10_meaning
19862 , p_source_25 => p_source_25
19863          , x_transaction_coa_id       => l_adr_transaction_coa_id
19864          , x_accounting_coa_id        => l_adr_accounting_coa_id
19865          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19866          , x_flex_value_set_id        => l_adr_flex_value_set_id
19867          , x_value_type_code          => l_adr_value_type_code
19868          , x_value_combination_id     => l_adr_value_combination_id
19869          , x_value_segment_code       => l_adr_value_segment_code
19873 
19870          , p_side                     => 'NA'
19871          , p_override_seg_flag        => 'Y'
19872    );
19874    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19875 
19876       xla_ae_lines_pkg.set_segment(
19877           p_to_segment_code         => 'GL_BALANCING'
19878         , p_segment_value           => l_segment
19879         , p_from_segment_code       => l_adr_value_segment_code
19880         , p_from_combination_id     => l_adr_value_combination_id
19881         , p_value_type_code         => l_adr_value_type_code
19882         , p_transaction_coa_id      => l_adr_transaction_coa_id
19883         , p_accounting_coa_id       => l_adr_accounting_coa_id
19884         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19885         , p_flex_value_set_id       => l_adr_flex_value_set_id
19886         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
19887         , p_adr_type_code           => 'S'
19888         , p_component_type          => l_component_type
19889         , p_component_code          => l_component_code
19890         , p_component_type_code     => l_component_type_code
19891         , p_component_appl_id       => l_component_appl_id
19892         , p_amb_context_code        => l_amb_context_code
19893         , p_entity_code             => 'AP_PAYMENTS'
19894         , p_event_class_code        => 'RECONCILED PAYMENTS'
19895         , p_side                    => 'NA'
19896         );
19897 
19898   END IF;
19899 
19900    --
19901    --
19902    END IF;
19903    --
19904    -- Bug 4922099
19905    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19906           (NVL(l_enc_upg_option, 'N') = 'O')
19907         ) AND
19908         (l_bflow_method_code = 'PRIOR_ENTRY')
19909       )
19910    THEN
19911       IF
19912       --
19913       1 = 2
19914       --
19915       THEN
19916       xla_accounting_err_pkg.build_message
19917                                     (p_appli_s_name            => 'XLA'
19918                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19919                                     ,p_token_1                 => 'LINE_NUMBER'
19920                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19921                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19922                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19923                                                                              l_component_type
19924                                                                             ,l_component_code
19925                                                                             ,l_component_type_code
19926                                                                             ,l_component_appl_id
19927                                                                             ,l_amb_context_code
19928                                                                             ,l_entity_code
19929                                                                             ,l_event_class_code
19930                                                                            )
19931                                     ,p_token_3                 => 'OWNER'
19932                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19933                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19934                                                                           ,p_lookup_code    => l_component_type_code
19935                                                                          )
19936                                     ,p_token_4                 => 'PRODUCT_NAME'
19937                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19938                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19939                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19940                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19941                                     ,p_ae_header_id            =>  NULL
19942                                        );
19943 
19944         IF (C_LEVEL_ERROR>= g_log_level) THEN
19945                  trace
19946                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19947                       ,p_level    => C_LEVEL_ERROR
19948                       ,p_module   => l_log_module);
19949         END IF;
19950       END IF;
19951    END IF;
19952    --
19953    --
19954    ------------------------------------------------------------------------------------------------
19955    -- 4219869 Business Flow
19956    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19957    -- Prior Entry.  Currently, the following code is always generated.
19958    ------------------------------------------------------------------------------------------------
19959    XLA_AE_LINES_PKG.ValidateCurrentLine;
19960 
19961    ------------------------------------------------------------------------------------
19962    -- 4219869 Business Flow
19963    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19964    ------------------------------------------------------------------------------------
19965    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19966 
19970    ----------------------------------------------------------------------------------
19967    ----------------------------------------------------------------------------------
19968    -- 4219869 Business Flow
19969    -- Update journal entry status -- Need to generate this within IF <condition>
19971    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19972          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19973          ,p_balance_type_code => l_balance_type_code
19974          );
19975 
19976    -------------------------------------------------------------------------------------------
19977    -- 4262811 - Generate the Accrual Reversal lines
19978    -------------------------------------------------------------------------------------------
19979    BEGIN
19980       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19981                               (g_array_event(p_event_id).array_value_num('header_index'));
19982       IF l_acc_rev_flag IS NULL THEN
19983          l_acc_rev_flag := 'N';
19984       END IF;
19985    EXCEPTION
19986       WHEN OTHERS THEN
19987          l_acc_rev_flag := 'N';
19988    END;
19989    --
19990    IF (l_acc_rev_flag = 'Y') THEN
19991 
19992        -- 4645092  ------------------------------------------------------------------------------
19993        -- To allow MPA report to determine if it should generate report process
19994        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19995        ------------------------------------------------------------------------------------------
19996 
19997        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19998        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19999    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20000    -- call ADRs
20001    -- Bug 4922099
20002    --
20003    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20004         (NVL(l_actual_upg_option, 'N') = 'O') OR
20005         (NVL(l_enc_upg_option, 'N') = 'O')
20006       )
20007    THEN
20008    NULL;
20009    --
20010    --
20011    
20012   l_ccid := AcctDerRule_29(
20013            p_application_id           => p_application_id
20014          , p_ae_header_id             => l_ae_header_id 
20015 , p_source_10 => p_source_10
20016 , p_source_10_meaning => p_source_10_meaning
20017 , p_source_11 => p_source_11
20018 , p_source_25 => p_source_25
20019          , x_transaction_coa_id       => l_adr_transaction_coa_id
20020          , x_accounting_coa_id        => l_adr_accounting_coa_id
20021          , x_value_type_code          => l_adr_value_type_code
20022          , p_side                     => 'NA'
20023    );
20024 
20025    xla_ae_lines_pkg.set_ccid(
20026     p_code_combination_id          => l_ccid
20027   , p_value_type_code              => l_adr_value_type_code
20028   , p_transaction_coa_id           => l_adr_transaction_coa_id
20029   , p_accounting_coa_id            => l_adr_accounting_coa_id
20030   , p_adr_code                     => 'AP_BANK_ERRORS'
20031   , p_adr_type_code                => 'S'
20032   , p_component_type               => l_component_type
20033   , p_component_code               => l_component_code
20034   , p_component_type_code          => l_component_type_code
20035   , p_component_appl_id            => l_component_appl_id
20036   , p_amb_context_code             => l_amb_context_code
20037   , p_side                         => 'NA'
20038   );
20039 
20040 
20041    l_segment := AcctDerRule_5(
20042            p_application_id           => p_application_id
20043          , p_ae_header_id             => l_ae_header_id 
20044 , p_source_10 => p_source_10
20045 , p_source_10_meaning => p_source_10_meaning
20046 , p_source_11 => p_source_11
20047          , x_transaction_coa_id       => l_adr_transaction_coa_id
20048          , x_accounting_coa_id        => l_adr_accounting_coa_id
20049          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20050          , x_flex_value_set_id        => l_adr_flex_value_set_id
20051          , x_value_type_code          => l_adr_value_type_code
20052          , x_value_combination_id     => l_adr_value_combination_id
20053          , x_value_segment_code       => l_adr_value_segment_code
20054          , p_side                     => 'NA'
20055          , p_override_seg_flag        => 'Y'
20056    );
20057 
20058    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20059 
20060       xla_ae_lines_pkg.set_segment(
20061           p_to_segment_code         => 'GL_ACCOUNT'
20062         , p_segment_value           => l_segment
20063         , p_from_segment_code       => l_adr_value_segment_code
20064         , p_from_combination_id     => l_adr_value_combination_id
20065         , p_value_type_code         => l_adr_value_type_code
20066         , p_transaction_coa_id      => l_adr_transaction_coa_id
20067         , p_accounting_coa_id       => l_adr_accounting_coa_id
20068         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20069         , p_flex_value_set_id       => l_adr_flex_value_set_id
20070         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
20071         , p_adr_type_code           => 'S'
20072         , p_component_type          => l_component_type
20073         , p_component_code          => l_component_code
20074         , p_component_type_code     => l_component_type_code
20075         , p_component_appl_id       => l_component_appl_id
20079         , p_side                    => 'NA'
20076         , p_amb_context_code        => l_amb_context_code
20077         , p_entity_code             => 'AP_PAYMENTS'
20078         , p_event_class_code        => 'RECONCILED PAYMENTS'
20080         );
20081 
20082   END IF;
20083 
20084    l_segment := AcctDerRule_23(
20085            p_application_id           => p_application_id
20086          , p_ae_header_id             => l_ae_header_id 
20087 , p_source_10 => p_source_10
20088 , p_source_10_meaning => p_source_10_meaning
20089 , p_source_25 => p_source_25
20090          , x_transaction_coa_id       => l_adr_transaction_coa_id
20091          , x_accounting_coa_id        => l_adr_accounting_coa_id
20092          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20093          , x_flex_value_set_id        => l_adr_flex_value_set_id
20094          , x_value_type_code          => l_adr_value_type_code
20095          , x_value_combination_id     => l_adr_value_combination_id
20096          , x_value_segment_code       => l_adr_value_segment_code
20097          , p_side                     => 'NA'
20098          , p_override_seg_flag        => 'Y'
20099    );
20100 
20101    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20102 
20103       xla_ae_lines_pkg.set_segment(
20104           p_to_segment_code         => 'GL_BALANCING'
20105         , p_segment_value           => l_segment
20106         , p_from_segment_code       => l_adr_value_segment_code
20107         , p_from_combination_id     => l_adr_value_combination_id
20108         , p_value_type_code         => l_adr_value_type_code
20109         , p_transaction_coa_id      => l_adr_transaction_coa_id
20110         , p_accounting_coa_id       => l_adr_accounting_coa_id
20111         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20112         , p_flex_value_set_id       => l_adr_flex_value_set_id
20113         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
20114         , p_adr_type_code           => 'S'
20115         , p_component_type          => l_component_type
20116         , p_component_code          => l_component_code
20117         , p_component_type_code     => l_component_type_code
20118         , p_component_appl_id       => l_component_appl_id
20119         , p_amb_context_code        => l_amb_context_code
20120         , p_entity_code             => 'AP_PAYMENTS'
20121         , p_event_class_code        => 'RECONCILED PAYMENTS'
20122         , p_side                    => 'NA'
20123         );
20124 
20125   END IF;
20126 
20127    --
20128    --
20129    END IF;
20130 
20131        --
20132        -- Update the line information that should be overwritten
20133        --
20134        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20135                                          p_header_num   => 1);
20136        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20137 
20138        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20139 
20140        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20141           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20142        END IF;
20143 
20144       --
20145       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20146       --
20147       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20148           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20149       ELSE
20150           ---------------------------------------------------------------------------------------------------
20151           -- 4262811a Switch Sign
20152           ---------------------------------------------------------------------------------------------------
20153           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20154           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20155                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20156           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20157                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20158           -- 5132302
20159           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20160                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20161 
20162       END IF;
20163 
20164       -- 4955764
20165       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20166       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20167 
20168 
20169       XLA_AE_LINES_PKG.ValidateCurrentLine;
20170       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20171 
20172       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20173                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20174                ,p_balance_type_code => l_balance_type_code);
20175 
20176    END IF;
20177 
20178    -----------------------------------------------------------------------------------------
20179    -- 4262811 Multiperiod Accounting
20183 
20180    -----------------------------------------------------------------------------------------
20181      -- No MPA option is assigned.
20182 
20184 END IF;
20185 END IF;
20186 --
20187 
20188 --
20189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20190    trace
20191       (p_msg      => 'END of AcctLineType_69'
20192       ,p_level    => C_LEVEL_PROCEDURE
20193       ,p_module   => l_log_module);
20194 END IF;
20195 --
20196 EXCEPTION
20197   WHEN xla_exceptions_pkg.application_exception THEN
20198       RAISE;
20199   WHEN OTHERS THEN
20200        xla_exceptions_pkg.raise_message
20201            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_69');
20202 END AcctLineType_69;
20203 --
20204 
20205 ---------------------------------------
20206 --
20207 -- PRIVATE FUNCTION
20208 --         AcctLineType_70
20209 --
20210 ---------------------------------------
20211 PROCEDURE AcctLineType_70 (
20212   p_application_id        IN NUMBER
20213  ,p_event_id              IN NUMBER
20214  ,p_calculate_acctd_flag  IN VARCHAR2
20215  ,p_calculate_g_l_flag    IN VARCHAR2
20216  ,p_actual_flag           IN OUT VARCHAR2
20217  ,p_balance_type_code     OUT VARCHAR2
20218  ,p_gain_or_loss_ref      OUT VARCHAR2
20219  
20220 --Payment Currency Code
20221  , p_source_8            IN VARCHAR2
20222 --Automatic Offsets Value
20223  , p_source_10            IN VARCHAR2
20224  , p_source_10_meaning    IN VARCHAR2
20225 --Bank Cash Account
20226  , p_source_12            IN NUMBER
20227 --When to Account for Payment Option
20228  , p_source_57            IN VARCHAR2
20229 --Accounting Reversal Indicator
20230  , p_source_58            IN VARCHAR2
20231 --Distribution Link Type
20232  , p_source_60            IN VARCHAR2
20233 --Override Accounted Amount Indicator
20234  , p_source_85            IN VARCHAR2
20235  , p_source_85_meaning    IN VARCHAR2
20236 --Third Party Type
20237  , p_source_88            IN VARCHAR2
20238 --Invoice Distribution Tax Line Identifier
20239  , p_source_91            IN NUMBER
20240 --Invoice Distribution Summary Tax Line Identifier
20241  , p_source_93            IN NUMBER
20242 --Business Flow Accounts Payable Application Identifier
20243  , p_source_96            IN NUMBER
20244 --Payment Distribution Type
20245  , p_source_101            IN VARCHAR2
20246  , p_source_101_meaning    IN VARCHAR2
20247 --Payment Distribution Amount
20248  , p_source_102            IN NUMBER
20249 --Business Flow Payment Distribution Type
20250  , p_source_103            IN VARCHAR2
20251 --Business Flow Payment Entity Code
20252  , p_source_104            IN VARCHAR2
20253 --Business Flow Payment Distribution Identifier
20254  , p_source_105            IN NUMBER
20255 --Business Flow Payment Identifier
20256  , p_source_106            IN NUMBER
20257 --Payment Distribution Identifier
20258  , p_source_107            IN NUMBER
20259 --Cleared Exchange Date
20260  , p_source_109            IN DATE
20261 --Cleared Exchange Rate
20262  , p_source_110            IN NUMBER
20263 --Cleared Exchange Rate Type
20264  , p_source_111            IN VARCHAR2
20265 --Payment Distribution (Cleared Rate) Ledger Amount
20266  , p_source_112            IN NUMBER
20267 --Payment Supplier Identifier
20268  , p_source_113            IN NUMBER
20269 --Payment Supplier Site Identifier
20270  , p_source_114            IN NUMBER
20271 --Payment Distribution Reversed Identifier
20272  , p_source_115            IN NUMBER
20273 --Pooled Bank Account Option
20274  , p_source_116            IN VARCHAR2
20275  , p_source_116_meaning    IN VARCHAR2
20276 )
20277 IS
20278 
20279 l_component_type              VARCHAR2(80);
20280 l_component_code              VARCHAR2(30);
20281 l_component_type_code         VARCHAR2(1);
20282 l_component_appl_id           INTEGER;
20283 l_amb_context_code            VARCHAR2(30);
20284 l_entity_code                 VARCHAR2(30);
20285 l_event_class_code            VARCHAR2(30);
20286 l_ae_header_id                NUMBER;
20287 l_event_type_code             VARCHAR2(30);
20288 l_line_definition_code        VARCHAR2(30);
20289 l_line_definition_owner_code  VARCHAR2(1);
20290 --
20291 -- adr variables
20292 l_segment                     VARCHAR2(30);
20293 l_ccid                        NUMBER;
20294 l_adr_transaction_coa_id      NUMBER;
20295 l_adr_accounting_coa_id       NUMBER;
20296 l_adr_flexfield_segment_code  VARCHAR2(30);
20297 l_adr_flex_value_set_id       NUMBER;
20298 l_adr_value_type_code         VARCHAR2(30);
20299 l_adr_value_combination_id    NUMBER;
20300 l_adr_value_segment_code      VARCHAR2(30);
20301 
20302 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20303 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20304 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20305 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20306 
20307 -- 4262811 Variables ------------------------------------------------------------------------------------------
20308 l_entered_amt_idx             NUMBER;
20309 l_accted_amt_idx              NUMBER;
20310 l_acc_rev_flag                VARCHAR2(1);
20311 l_accrual_line_num            NUMBER;
20312 l_tmp_amt                     NUMBER;
20313 l_acc_rev_natural_side_code   VARCHAR2(1);
20314 
20315 l_num_entries                 NUMBER;
20319 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20316 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20317 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20318 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20320 l_recog_line_1                NUMBER;
20321 l_recog_line_2                NUMBER;
20322 
20323 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20324 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20325 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20326 
20327 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20328 
20329 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20330 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20331 
20332 ---------------------------------------------------------------------------------------------------------------
20333 
20334 
20335 --
20336 -- bulk performance
20337 --
20338 l_balance_type_code           VARCHAR2(1);
20339 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20340 l_log_module                  VARCHAR2(240);
20341 
20342 --
20343 -- Upgrade strategy
20344 --
20345 l_actual_upg_option           VARCHAR2(1);
20346 l_enc_upg_option           VARCHAR2(1);
20347 
20348 --
20349 BEGIN
20350 --
20351 IF g_log_enabled THEN
20352       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
20353 END IF;
20354 --
20355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20356 
20357       trace
20358          (p_msg      => 'BEGIN of AcctLineType_70'
20359          ,p_level    => C_LEVEL_PROCEDURE
20360          ,p_module   => l_log_module);
20361 
20362 END IF;
20363 --
20364 l_component_type             := 'AMB_JLT';
20365 l_component_code             := 'AP_CASH_CLEARONLY_AOS_AS';
20366 l_component_type_code        := 'S';
20367 l_component_appl_id          :=  200;
20368 l_amb_context_code           := 'DEFAULT';
20369 l_entity_code                := 'AP_PAYMENTS';
20370 l_event_class_code           := 'RECONCILED PAYMENTS';
20371 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20372 l_line_definition_owner_code := 'S';
20373 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
20374 --
20375 l_balance_type_code          := 'A';
20376 l_segment                     := NULL;
20377 l_ccid                        := NULL;
20378 l_adr_transaction_coa_id      := NULL;
20379 l_adr_accounting_coa_id       := NULL;
20380 l_adr_flexfield_segment_code  := NULL;
20381 l_adr_flex_value_set_id       := NULL;
20382 l_adr_value_type_code         := NULL;
20383 l_adr_value_combination_id    := NULL;
20384 l_adr_value_segment_code      := NULL;
20385 
20386 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
20387 l_bflow_class_code           := '';    -- 4219869 Business Flow
20388 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20389 l_budgetary_control_flag     := 'N';
20390 
20391 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20392 l_bflow_applied_to_amt       := NULL; -- 5132302
20393 l_entered_amt_idx            := NULL;          -- 4262811
20394 l_accted_amt_idx             := NULL;          -- 4262811
20395 l_acc_rev_flag               := NULL;          -- 4262811
20396 l_accrual_line_num           := NULL;          -- 4262811
20397 l_tmp_amt                    := NULL;          -- 4262811
20398 --
20399  
20400 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20401     l_balance_type_code <> 'B' THEN
20402 IF NVL(p_source_57,'
20403 ') <>  'ISSUE_ISSUE' AND 
20404 (NVL(p_source_116,'
20405 ') =  'Y' AND 
20406 NVL(p_source_10,'
20407 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
20408 (NVL(p_source_101,'
20409 ') =  'CASH' OR 
20410 NVL(p_source_101,'
20411 ') =  'BANK CHARGE' OR 
20412 NVL(p_source_101,'
20413 ') =  'BANK ERROR')
20414  THEN 
20415 
20416    --
20417    XLA_AE_LINES_PKG.SetNewLine;
20418 
20419    p_balance_type_code          := l_balance_type_code;
20420    -- set the flag so later we will know whether the gain loss line needs to be created
20421    
20422    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20423      p_actual_flag :='A';
20424    END IF;
20425 
20426    --
20427    -- bulk performance
20428    --
20429    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20430                                       p_header_num   => 0); -- 4262811
20431    --
20432    -- set accounting line options
20433    --
20434    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20435            p_natural_side_code          => 'C'
20436          , p_gain_or_loss_flag          => 'N'
20437          , p_gl_transfer_mode_code      => 'S'
20438          , p_acct_entry_type_code       => 'A'
20439          , p_switch_side_flag           => 'Y'
20440          , p_merge_duplicate_code       => 'A'
20441          );
20442    --
20443    l_acc_rev_natural_side_code := 'D';  -- 4262811
20444    -- 
20445    --
20446    -- set accounting line type info
20447    --
20448    xla_ae_lines_pkg.SetAcctLineType
20449       (p_component_type             => l_component_type
20450       ,p_event_type_code            => l_event_type_code
20454       ,p_accounting_line_type_code  => l_component_type_code
20451       ,p_line_definition_owner_code => l_line_definition_owner_code
20452       ,p_line_definition_code       => l_line_definition_code
20453       ,p_accounting_line_code       => l_component_code
20455       ,p_accounting_line_appl_id    => l_component_appl_id
20456       ,p_amb_context_code           => l_amb_context_code
20457       ,p_entity_code                => l_entity_code
20458       ,p_event_class_code           => l_event_class_code);
20459    --
20460    -- set accounting class
20461    --
20462    xla_ae_lines_pkg.SetAcctClass(
20463            p_accounting_class_code  => 'CASH'
20464          , p_ae_header_id           => l_ae_header_id
20465          );
20466 
20467    --
20468    -- set rounding class
20469    --
20470    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20471                       'CASH';
20472 
20473    --
20474    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20475    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20476    --
20477    -- bulk performance
20478    --
20479    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20480 
20481    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20482       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20483 
20484    -- 4955764
20485    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20486       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20487 
20488    -- 4458381 Public Sector Enh
20489    
20490    --
20491    -- set accounting attributes for the line type
20492    --
20493    l_entered_amt_idx := 10;
20494    l_accted_amt_idx  := 15;
20495    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20496    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20497    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
20498    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20499    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
20500    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20501    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
20502    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20503    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
20504    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20505    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
20506    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20507    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
20508    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20509    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
20510    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20511    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
20512    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20513    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
20514    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20515    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
20516    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20517    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
20518    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20519    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
20520    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20521    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
20522    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20523    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
20524    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20525    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
20526    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20527    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
20528    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20529    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
20530    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20531    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
20532    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20533    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
20534    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20535    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
20536    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20537    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
20538    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20539    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
20540    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20541    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
20542    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20543    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
20544 
20545    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20546    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20547 
20551    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20548    ---------------------------------------------------------------------------------------------------------------
20549    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20550    ---------------------------------------------------------------------------------------------------------------
20552 
20553    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20554    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20555 
20556    IF xla_accounting_cache_pkg.GetValueChar
20557          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20558          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20559    AND l_bflow_method_code = 'PRIOR_ENTRY'
20560 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20561    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20562          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20563        )
20564    THEN
20565          xla_ae_lines_pkg.BflowUpgEntry
20566            (p_business_method_code    => l_bflow_method_code
20567            ,p_business_class_code     => l_bflow_class_code
20568            ,p_balance_type            => l_balance_type_code);
20569    ELSE
20570       NULL;
20571 XLA_AE_LINES_PKG.business_flow_validation(
20572                                 p_business_method_code     => l_bflow_method_code
20573                                ,p_business_class_code      => l_bflow_class_code
20574                                ,p_inherit_description_flag => l_inherit_desc_flag);
20575    END IF;
20576 
20577    --
20578    -- call analytical criteria
20579    --
20580    
20581    --
20582    -- call description
20583    --
20584    -- No description or it is inherited.
20585    --
20586    -- call ADRs
20587    -- Bug 4922099
20588    --
20589    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20590         (NVL(l_actual_upg_option, 'N') = 'O') OR
20591         (NVL(l_enc_upg_option, 'N') = 'O')
20592       )
20593    THEN
20594    NULL;
20595    --
20596    --
20597    
20598    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
20599      p_code_combination_id      => TO_NUMBER(C_NUM)
20600    , p_value_type_code          => NULL
20601    , p_transaction_coa_id       => null
20602    , p_accounting_coa_id        => null
20603    , p_adr_code                 => NULL
20604    , p_adr_type_code            => NULL
20605    , p_component_type           => l_component_type
20606    , p_component_code           => l_component_code
20607    , p_component_type_code      => l_component_type_code
20608    , p_component_appl_id        => l_component_appl_id
20609    , p_amb_context_code         => l_amb_context_code
20610    , p_side                     => NULL
20611    );
20612 
20613    
20614   -- initialise segments
20615   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20616   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20617   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20618   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20619   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20620   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20621   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20622   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20623   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20624   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20625   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20626   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20627   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20628   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20629   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20630   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20631   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20632   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20633   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20634   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20635   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20636   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20637   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20638   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20639   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20640   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20641   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20642   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20646 
20643   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20644   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20645   --
20647    --
20648 
20649 
20650    l_segment := AcctDerRule_6(
20651            p_application_id           => p_application_id
20652          , p_ae_header_id             => l_ae_header_id 
20653 , p_source_12 => p_source_12
20654          , x_transaction_coa_id       => l_adr_transaction_coa_id
20655          , x_accounting_coa_id        => l_adr_accounting_coa_id
20656          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20657          , x_flex_value_set_id        => l_adr_flex_value_set_id
20658          , x_value_type_code          => l_adr_value_type_code
20659          , x_value_combination_id     => l_adr_value_combination_id
20660          , x_value_segment_code       => l_adr_value_segment_code
20661          , p_side                     => 'NA'
20662          , p_override_seg_flag        => 'Y'
20663    );
20664 
20665    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20666 
20667       xla_ae_lines_pkg.set_segment(
20668           p_to_segment_code         => 'GL_ACCOUNT'
20669         , p_segment_value           => l_segment
20670         , p_from_segment_code       => l_adr_value_segment_code
20671         , p_from_combination_id     => l_adr_value_combination_id
20672         , p_value_type_code         => l_adr_value_type_code
20673         , p_transaction_coa_id      => l_adr_transaction_coa_id
20674         , p_accounting_coa_id       => l_adr_accounting_coa_id
20675         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20676         , p_flex_value_set_id       => l_adr_flex_value_set_id
20677         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
20678         , p_adr_type_code           => 'S'
20679         , p_component_type          => l_component_type
20680         , p_component_code          => l_component_code
20681         , p_component_type_code     => l_component_type_code
20682         , p_component_appl_id       => l_component_appl_id
20683         , p_amb_context_code        => l_amb_context_code
20684         , p_entity_code             => 'AP_PAYMENTS'
20685         , p_event_class_code        => 'RECONCILED PAYMENTS'
20686         , p_side                    => 'NA'
20687         );
20688 
20689   END IF;
20690 
20691    --
20692    --
20693    END IF;
20694    --
20695    -- Bug 4922099
20696    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20697           (NVL(l_enc_upg_option, 'N') = 'O')
20698         ) AND
20699         (l_bflow_method_code = 'PRIOR_ENTRY')
20700       )
20701    THEN
20702       IF
20703       --
20704       1 = 2
20705       --
20706       THEN
20707       xla_accounting_err_pkg.build_message
20708                                     (p_appli_s_name            => 'XLA'
20709                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20710                                     ,p_token_1                 => 'LINE_NUMBER'
20711                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20712                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20713                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20714                                                                              l_component_type
20715                                                                             ,l_component_code
20716                                                                             ,l_component_type_code
20717                                                                             ,l_component_appl_id
20718                                                                             ,l_amb_context_code
20719                                                                             ,l_entity_code
20720                                                                             ,l_event_class_code
20721                                                                            )
20722                                     ,p_token_3                 => 'OWNER'
20723                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20724                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20725                                                                           ,p_lookup_code    => l_component_type_code
20726                                                                          )
20727                                     ,p_token_4                 => 'PRODUCT_NAME'
20728                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20729                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20730                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20731                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20732                                     ,p_ae_header_id            =>  NULL
20733                                        );
20734 
20735         IF (C_LEVEL_ERROR>= g_log_level) THEN
20736                  trace
20737                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20738                       ,p_level    => C_LEVEL_ERROR
20739                       ,p_module   => l_log_module);
20740         END IF;
20741       END IF;
20742    END IF;
20746    -- 4219869 Business Flow
20743    --
20744    --
20745    ------------------------------------------------------------------------------------------------
20747    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20748    -- Prior Entry.  Currently, the following code is always generated.
20749    ------------------------------------------------------------------------------------------------
20750    XLA_AE_LINES_PKG.ValidateCurrentLine;
20751 
20752    ------------------------------------------------------------------------------------
20753    -- 4219869 Business Flow
20754    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20755    ------------------------------------------------------------------------------------
20756    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20757 
20758    ----------------------------------------------------------------------------------
20759    -- 4219869 Business Flow
20760    -- Update journal entry status -- Need to generate this within IF <condition>
20761    ----------------------------------------------------------------------------------
20762    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20763          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20764          ,p_balance_type_code => l_balance_type_code
20765          );
20766 
20767    -------------------------------------------------------------------------------------------
20768    -- 4262811 - Generate the Accrual Reversal lines
20769    -------------------------------------------------------------------------------------------
20770    BEGIN
20771       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20772                               (g_array_event(p_event_id).array_value_num('header_index'));
20773       IF l_acc_rev_flag IS NULL THEN
20774          l_acc_rev_flag := 'N';
20775       END IF;
20776    EXCEPTION
20777       WHEN OTHERS THEN
20778          l_acc_rev_flag := 'N';
20779    END;
20780    --
20781    IF (l_acc_rev_flag = 'Y') THEN
20782 
20783        -- 4645092  ------------------------------------------------------------------------------
20784        -- To allow MPA report to determine if it should generate report process
20785        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20786        ------------------------------------------------------------------------------------------
20787 
20788        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20789        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20790    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20791    -- call ADRs
20792    -- Bug 4922099
20793    --
20794    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20795         (NVL(l_actual_upg_option, 'N') = 'O') OR
20796         (NVL(l_enc_upg_option, 'N') = 'O')
20797       )
20798    THEN
20799    NULL;
20800    --
20801    --
20802    
20803    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
20804      p_code_combination_id      => TO_NUMBER(C_NUM)
20805    , p_value_type_code          => NULL
20806    , p_transaction_coa_id       => null
20807    , p_accounting_coa_id        => null
20808    , p_adr_code                 => NULL
20809    , p_adr_type_code            => NULL
20810    , p_component_type           => l_component_type
20811    , p_component_code           => l_component_code
20812    , p_component_type_code      => l_component_type_code
20813    , p_component_appl_id        => l_component_appl_id
20814    , p_amb_context_code         => l_amb_context_code
20815    , p_side                     => NULL
20816    );
20817 
20818    
20819   -- initialise segments
20820   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20821   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20822   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20823   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20824   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20825   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20826   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20827   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20828   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
20829   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20830   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20831   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20832   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20833   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20834   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20835   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20836   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20837   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20838   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20839   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20840   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20844   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20841   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20842   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20843   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20845   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20846   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20847   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20848   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20849   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
20850   --
20851 
20852    --
20853 
20854 
20855    l_segment := AcctDerRule_6(
20856            p_application_id           => p_application_id
20857          , p_ae_header_id             => l_ae_header_id 
20858 , p_source_12 => p_source_12
20859          , x_transaction_coa_id       => l_adr_transaction_coa_id
20860          , x_accounting_coa_id        => l_adr_accounting_coa_id
20861          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
20862          , x_flex_value_set_id        => l_adr_flex_value_set_id
20863          , x_value_type_code          => l_adr_value_type_code
20864          , x_value_combination_id     => l_adr_value_combination_id
20865          , x_value_segment_code       => l_adr_value_segment_code
20866          , p_side                     => 'NA'
20867          , p_override_seg_flag        => 'Y'
20868    );
20869 
20870    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
20871 
20872       xla_ae_lines_pkg.set_segment(
20873           p_to_segment_code         => 'GL_ACCOUNT'
20874         , p_segment_value           => l_segment
20875         , p_from_segment_code       => l_adr_value_segment_code
20876         , p_from_combination_id     => l_adr_value_combination_id
20877         , p_value_type_code         => l_adr_value_type_code
20878         , p_transaction_coa_id      => l_adr_transaction_coa_id
20879         , p_accounting_coa_id       => l_adr_accounting_coa_id
20880         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
20881         , p_flex_value_set_id       => l_adr_flex_value_set_id
20882         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
20883         , p_adr_type_code           => 'S'
20884         , p_component_type          => l_component_type
20885         , p_component_code          => l_component_code
20886         , p_component_type_code     => l_component_type_code
20887         , p_component_appl_id       => l_component_appl_id
20888         , p_amb_context_code        => l_amb_context_code
20889         , p_entity_code             => 'AP_PAYMENTS'
20890         , p_event_class_code        => 'RECONCILED PAYMENTS'
20891         , p_side                    => 'NA'
20892         );
20893 
20894   END IF;
20895 
20896    --
20897    --
20898    END IF;
20899 
20900        --
20901        -- Update the line information that should be overwritten
20902        --
20903        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20904                                          p_header_num   => 1);
20905        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20906 
20907        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20908 
20909        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20910           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20911        END IF;
20912 
20913       --
20914       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20915       --
20916       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20917           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20918       ELSE
20919           ---------------------------------------------------------------------------------------------------
20920           -- 4262811a Switch Sign
20921           ---------------------------------------------------------------------------------------------------
20922           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20923           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20924                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20925           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20926                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20927           -- 5132302
20928           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20929                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20930 
20931       END IF;
20932 
20933       -- 4955764
20934       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20935       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20936 
20937 
20938       XLA_AE_LINES_PKG.ValidateCurrentLine;
20939       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20940 
20944 
20941       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20942                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20943                ,p_balance_type_code => l_balance_type_code);
20945    END IF;
20946 
20947    -----------------------------------------------------------------------------------------
20948    -- 4262811 Multiperiod Accounting
20949    -----------------------------------------------------------------------------------------
20950      -- No MPA option is assigned.
20951 
20952 
20953 END IF;
20954 END IF;
20955 --
20956 
20957 --
20958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20959    trace
20960       (p_msg      => 'END of AcctLineType_70'
20961       ,p_level    => C_LEVEL_PROCEDURE
20962       ,p_module   => l_log_module);
20963 END IF;
20964 --
20965 EXCEPTION
20966   WHEN xla_exceptions_pkg.application_exception THEN
20967       RAISE;
20968   WHEN OTHERS THEN
20969        xla_exceptions_pkg.raise_message
20970            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_70');
20971 END AcctLineType_70;
20972 --
20973 
20974 ---------------------------------------
20975 --
20976 -- PRIVATE FUNCTION
20977 --         AcctLineType_71
20978 --
20979 ---------------------------------------
20980 PROCEDURE AcctLineType_71 (
20981   p_application_id        IN NUMBER
20982  ,p_event_id              IN NUMBER
20983  ,p_calculate_acctd_flag  IN VARCHAR2
20984  ,p_calculate_g_l_flag    IN VARCHAR2
20985  ,p_actual_flag           IN OUT VARCHAR2
20986  ,p_balance_type_code     OUT VARCHAR2
20987  ,p_gain_or_loss_ref      OUT VARCHAR2
20988  
20989 --Payment Currency Code
20990  , p_source_8            IN VARCHAR2
20991 --Automatic Offsets Value
20992  , p_source_10            IN VARCHAR2
20993  , p_source_10_meaning    IN VARCHAR2
20994 --Bank Cash Account
20995  , p_source_12            IN NUMBER
20996 --When to Account for Payment Option
20997  , p_source_57            IN VARCHAR2
20998 --Accounting Reversal Indicator
20999  , p_source_58            IN VARCHAR2
21000 --Distribution Link Type
21001  , p_source_60            IN VARCHAR2
21002 --Override Accounted Amount Indicator
21003  , p_source_85            IN VARCHAR2
21004  , p_source_85_meaning    IN VARCHAR2
21005 --Third Party Type
21006  , p_source_88            IN VARCHAR2
21007 --Invoice Distribution Tax Line Identifier
21008  , p_source_91            IN NUMBER
21009 --Invoice Distribution Summary Tax Line Identifier
21010  , p_source_93            IN NUMBER
21011 --Business Flow Accounts Payable Application Identifier
21012  , p_source_96            IN NUMBER
21013 --Payment Distribution Type
21014  , p_source_101            IN VARCHAR2
21015  , p_source_101_meaning    IN VARCHAR2
21016 --Payment Distribution Amount
21017  , p_source_102            IN NUMBER
21018 --Business Flow Payment Distribution Type
21019  , p_source_103            IN VARCHAR2
21020 --Business Flow Payment Entity Code
21021  , p_source_104            IN VARCHAR2
21022 --Business Flow Payment Distribution Identifier
21023  , p_source_105            IN NUMBER
21024 --Business Flow Payment Identifier
21025  , p_source_106            IN NUMBER
21026 --Payment Distribution Identifier
21027  , p_source_107            IN NUMBER
21028 --Cleared Exchange Date
21029  , p_source_109            IN DATE
21030 --Cleared Exchange Rate
21031  , p_source_110            IN NUMBER
21032 --Cleared Exchange Rate Type
21033  , p_source_111            IN VARCHAR2
21034 --Payment Distribution (Cleared Rate) Ledger Amount
21035  , p_source_112            IN NUMBER
21036 --Payment Supplier Identifier
21037  , p_source_113            IN NUMBER
21038 --Payment Supplier Site Identifier
21039  , p_source_114            IN NUMBER
21040 --Payment Distribution Reversed Identifier
21041  , p_source_115            IN NUMBER
21042 --Pooled Bank Account Option
21043  , p_source_116            IN VARCHAR2
21044  , p_source_116_meaning    IN VARCHAR2
21045 )
21046 IS
21047 
21048 l_component_type              VARCHAR2(80);
21049 l_component_code              VARCHAR2(30);
21050 l_component_type_code         VARCHAR2(1);
21051 l_component_appl_id           INTEGER;
21052 l_amb_context_code            VARCHAR2(30);
21053 l_entity_code                 VARCHAR2(30);
21054 l_event_class_code            VARCHAR2(30);
21055 l_ae_header_id                NUMBER;
21056 l_event_type_code             VARCHAR2(30);
21057 l_line_definition_code        VARCHAR2(30);
21058 l_line_definition_owner_code  VARCHAR2(1);
21059 --
21060 -- adr variables
21061 l_segment                     VARCHAR2(30);
21062 l_ccid                        NUMBER;
21063 l_adr_transaction_coa_id      NUMBER;
21064 l_adr_accounting_coa_id       NUMBER;
21065 l_adr_flexfield_segment_code  VARCHAR2(30);
21066 l_adr_flex_value_set_id       NUMBER;
21067 l_adr_value_type_code         VARCHAR2(30);
21068 l_adr_value_combination_id    NUMBER;
21069 l_adr_value_segment_code      VARCHAR2(30);
21070 
21071 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21072 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21073 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21074 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21075 
21079 l_acc_rev_flag                VARCHAR2(1);
21076 -- 4262811 Variables ------------------------------------------------------------------------------------------
21077 l_entered_amt_idx             NUMBER;
21078 l_accted_amt_idx              NUMBER;
21080 l_accrual_line_num            NUMBER;
21081 l_tmp_amt                     NUMBER;
21082 l_acc_rev_natural_side_code   VARCHAR2(1);
21083 
21084 l_num_entries                 NUMBER;
21085 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21086 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21087 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21088 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21089 l_recog_line_1                NUMBER;
21090 l_recog_line_2                NUMBER;
21091 
21092 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21093 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21094 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21095 
21096 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21097 
21098 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21099 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21100 
21101 ---------------------------------------------------------------------------------------------------------------
21102 
21103 
21104 --
21105 -- bulk performance
21106 --
21107 l_balance_type_code           VARCHAR2(1);
21108 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21109 l_log_module                  VARCHAR2(240);
21110 
21111 --
21112 -- Upgrade strategy
21113 --
21114 l_actual_upg_option           VARCHAR2(1);
21115 l_enc_upg_option           VARCHAR2(1);
21116 
21117 --
21118 BEGIN
21119 --
21120 IF g_log_enabled THEN
21121       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
21122 END IF;
21123 --
21124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21125 
21126       trace
21127          (p_msg      => 'BEGIN of AcctLineType_71'
21128          ,p_level    => C_LEVEL_PROCEDURE
21129          ,p_module   => l_log_module);
21130 
21131 END IF;
21132 --
21133 l_component_type             := 'AMB_JLT';
21134 l_component_code             := 'AP_CASH_CLEARONLY_AOS_BS';
21135 l_component_type_code        := 'S';
21136 l_component_appl_id          :=  200;
21137 l_amb_context_code           := 'DEFAULT';
21138 l_entity_code                := 'AP_PAYMENTS';
21139 l_event_class_code           := 'RECONCILED PAYMENTS';
21140 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21141 l_line_definition_owner_code := 'S';
21142 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
21143 --
21144 l_balance_type_code          := 'A';
21145 l_segment                     := NULL;
21146 l_ccid                        := NULL;
21147 l_adr_transaction_coa_id      := NULL;
21148 l_adr_accounting_coa_id       := NULL;
21149 l_adr_flexfield_segment_code  := NULL;
21150 l_adr_flex_value_set_id       := NULL;
21151 l_adr_value_type_code         := NULL;
21152 l_adr_value_combination_id    := NULL;
21153 l_adr_value_segment_code      := NULL;
21154 
21155 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
21156 l_bflow_class_code           := '';    -- 4219869 Business Flow
21157 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21158 l_budgetary_control_flag     := 'N';
21159 
21160 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21161 l_bflow_applied_to_amt       := NULL; -- 5132302
21162 l_entered_amt_idx            := NULL;          -- 4262811
21163 l_accted_amt_idx             := NULL;          -- 4262811
21164 l_acc_rev_flag               := NULL;          -- 4262811
21165 l_accrual_line_num           := NULL;          -- 4262811
21166 l_tmp_amt                    := NULL;          -- 4262811
21167 --
21168  
21169 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21170     l_balance_type_code <> 'B' THEN
21171 IF NVL(p_source_57,'
21172 ') <>  'ISSUE_ISSUE' AND 
21173 (NVL(p_source_116,'
21174 ') =  'Y' AND 
21175 NVL(p_source_10,'
21176 ') =  'BALANCING_SEGMENT') AND 
21177 (NVL(p_source_101,'
21178 ') =  'CASH' OR 
21179 NVL(p_source_101,'
21180 ') =  'BANK CHARGE' OR 
21181 NVL(p_source_101,'
21182 ') =  'BANK ERROR')
21183  THEN 
21184 
21185    --
21186    XLA_AE_LINES_PKG.SetNewLine;
21187 
21188    p_balance_type_code          := l_balance_type_code;
21189    -- set the flag so later we will know whether the gain loss line needs to be created
21190    
21191    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21192      p_actual_flag :='A';
21193    END IF;
21194 
21195    --
21196    -- bulk performance
21197    --
21198    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21199                                       p_header_num   => 0); -- 4262811
21200    --
21201    -- set accounting line options
21202    --
21203    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21204            p_natural_side_code          => 'C'
21205          , p_gain_or_loss_flag          => 'N'
21206          , p_gl_transfer_mode_code      => 'S'
21207          , p_acct_entry_type_code       => 'A'
21208          , p_switch_side_flag           => 'Y'
21212    l_acc_rev_natural_side_code := 'D';  -- 4262811
21209          , p_merge_duplicate_code       => 'A'
21210          );
21211    --
21213    -- 
21214    --
21215    -- set accounting line type info
21216    --
21217    xla_ae_lines_pkg.SetAcctLineType
21218       (p_component_type             => l_component_type
21219       ,p_event_type_code            => l_event_type_code
21220       ,p_line_definition_owner_code => l_line_definition_owner_code
21221       ,p_line_definition_code       => l_line_definition_code
21222       ,p_accounting_line_code       => l_component_code
21223       ,p_accounting_line_type_code  => l_component_type_code
21224       ,p_accounting_line_appl_id    => l_component_appl_id
21225       ,p_amb_context_code           => l_amb_context_code
21226       ,p_entity_code                => l_entity_code
21227       ,p_event_class_code           => l_event_class_code);
21228    --
21229    -- set accounting class
21230    --
21231    xla_ae_lines_pkg.SetAcctClass(
21232            p_accounting_class_code  => 'CASH'
21233          , p_ae_header_id           => l_ae_header_id
21234          );
21235 
21236    --
21237    -- set rounding class
21238    --
21239    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21240                       'CASH';
21241 
21242    --
21243    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21244    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21245    --
21246    -- bulk performance
21247    --
21248    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21249 
21250    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21251       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21252 
21253    -- 4955764
21254    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21255       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21256 
21257    -- 4458381 Public Sector Enh
21258    
21259    --
21260    -- set accounting attributes for the line type
21261    --
21262    l_entered_amt_idx := 10;
21263    l_accted_amt_idx  := 15;
21264    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21265    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21266    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
21267    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21268    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
21269    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21270    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
21271    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21272    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
21273    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21274    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
21275    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21276    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
21277    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21278    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
21279    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21280    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
21281    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21282    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
21283    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21284    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
21285    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21286    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
21287    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21288    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
21289    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21290    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
21291    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21292    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
21293    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21294    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
21295    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
21296    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
21297    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
21298    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
21299    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
21300    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
21301    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
21302    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
21303    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21304    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
21305    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21306    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
21307    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
21308    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
21309    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
21310    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
21311    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
21315    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21312    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
21313 
21314    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21316 
21317    ---------------------------------------------------------------------------------------------------------------
21318    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21319    ---------------------------------------------------------------------------------------------------------------
21320    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21321 
21322    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21323    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21324 
21325    IF xla_accounting_cache_pkg.GetValueChar
21326          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21327          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21328    AND l_bflow_method_code = 'PRIOR_ENTRY'
21329 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21330    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21331          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21332        )
21333    THEN
21334          xla_ae_lines_pkg.BflowUpgEntry
21335            (p_business_method_code    => l_bflow_method_code
21336            ,p_business_class_code     => l_bflow_class_code
21337            ,p_balance_type            => l_balance_type_code);
21338    ELSE
21339       NULL;
21340 XLA_AE_LINES_PKG.business_flow_validation(
21341                                 p_business_method_code     => l_bflow_method_code
21342                                ,p_business_class_code      => l_bflow_class_code
21343                                ,p_inherit_description_flag => l_inherit_desc_flag);
21344    END IF;
21345 
21346    --
21347    -- call analytical criteria
21348    --
21349    
21350    --
21351    -- call description
21352    --
21353    -- No description or it is inherited.
21354    --
21355    -- call ADRs
21356    -- Bug 4922099
21357    --
21358    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21359         (NVL(l_actual_upg_option, 'N') = 'O') OR
21360         (NVL(l_enc_upg_option, 'N') = 'O')
21361       )
21362    THEN
21363    NULL;
21364    --
21365    --
21366    
21367   l_ccid := AcctDerRule_30(
21368            p_application_id           => p_application_id
21369          , p_ae_header_id             => l_ae_header_id 
21370 , p_source_12 => p_source_12
21371          , x_transaction_coa_id       => l_adr_transaction_coa_id
21372          , x_accounting_coa_id        => l_adr_accounting_coa_id
21373          , x_value_type_code          => l_adr_value_type_code
21374          , p_side                     => 'NA'
21375    );
21376 
21377    xla_ae_lines_pkg.set_ccid(
21378     p_code_combination_id          => l_ccid
21379   , p_value_type_code              => l_adr_value_type_code
21380   , p_transaction_coa_id           => l_adr_transaction_coa_id
21381   , p_accounting_coa_id            => l_adr_accounting_coa_id
21382   , p_adr_code                     => 'AP_CASH'
21383   , p_adr_type_code                => 'S'
21384   , p_component_type               => l_component_type
21385   , p_component_code               => l_component_code
21386   , p_component_type_code          => l_component_type_code
21387   , p_component_appl_id            => l_component_appl_id
21388   , p_amb_context_code             => l_amb_context_code
21389   , p_side                         => 'NA'
21390   );
21391 
21392 
21393    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
21394      p_to_segment_code         => 'GL_BALANCING'
21395    , p_segment_value           => C_CHAR
21396    , p_from_segment_code       => NULL
21397    , p_from_combination_id     => NULL
21398    , p_value_type_code         => NULL
21399    , p_transaction_coa_id      => null
21400    , p_accounting_coa_id       => null
21401    , p_flexfield_segment_code  => NULL
21402    , p_flex_value_set_id       => NULL
21403    , p_adr_code                => NULL
21404    , p_adr_type_code           => NULL
21405    , p_component_type          => l_component_type
21406    , p_component_code          => l_component_code
21407    , p_component_type_code     => l_component_type_code
21408    , p_component_appl_id       => l_component_appl_id
21409    , p_amb_context_code        => l_amb_context_code
21410    , p_entity_code             => 'AP_PAYMENTS'
21411    , p_event_class_code        => 'RECONCILED PAYMENTS'
21412    , p_side                    => 'NA'
21413    );
21414    --
21415 
21416 
21417    --
21418    --
21419    END IF;
21420    --
21421    -- Bug 4922099
21422    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21423           (NVL(l_enc_upg_option, 'N') = 'O')
21424         ) AND
21425         (l_bflow_method_code = 'PRIOR_ENTRY')
21426       )
21427    THEN
21428       IF
21429       --
21430       1 = 2
21431       --
21432       THEN
21433       xla_accounting_err_pkg.build_message
21434                                     (p_appli_s_name            => 'XLA'
21435                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21439                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21436                                     ,p_token_1                 => 'LINE_NUMBER'
21437                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21438                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21440                                                                              l_component_type
21441                                                                             ,l_component_code
21442                                                                             ,l_component_type_code
21443                                                                             ,l_component_appl_id
21444                                                                             ,l_amb_context_code
21445                                                                             ,l_entity_code
21446                                                                             ,l_event_class_code
21447                                                                            )
21448                                     ,p_token_3                 => 'OWNER'
21449                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21450                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21451                                                                           ,p_lookup_code    => l_component_type_code
21452                                                                          )
21453                                     ,p_token_4                 => 'PRODUCT_NAME'
21454                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21455                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21456                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21457                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21458                                     ,p_ae_header_id            =>  NULL
21459                                        );
21460 
21461         IF (C_LEVEL_ERROR>= g_log_level) THEN
21462                  trace
21463                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21464                       ,p_level    => C_LEVEL_ERROR
21465                       ,p_module   => l_log_module);
21466         END IF;
21467       END IF;
21468    END IF;
21469    --
21470    --
21471    ------------------------------------------------------------------------------------------------
21472    -- 4219869 Business Flow
21473    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21474    -- Prior Entry.  Currently, the following code is always generated.
21475    ------------------------------------------------------------------------------------------------
21476    XLA_AE_LINES_PKG.ValidateCurrentLine;
21477 
21478    ------------------------------------------------------------------------------------
21479    -- 4219869 Business Flow
21480    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21481    ------------------------------------------------------------------------------------
21482    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21483 
21484    ----------------------------------------------------------------------------------
21485    -- 4219869 Business Flow
21486    -- Update journal entry status -- Need to generate this within IF <condition>
21487    ----------------------------------------------------------------------------------
21488    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21489          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21490          ,p_balance_type_code => l_balance_type_code
21491          );
21492 
21493    -------------------------------------------------------------------------------------------
21494    -- 4262811 - Generate the Accrual Reversal lines
21495    -------------------------------------------------------------------------------------------
21496    BEGIN
21497       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21498                               (g_array_event(p_event_id).array_value_num('header_index'));
21499       IF l_acc_rev_flag IS NULL THEN
21500          l_acc_rev_flag := 'N';
21501       END IF;
21502    EXCEPTION
21503       WHEN OTHERS THEN
21504          l_acc_rev_flag := 'N';
21505    END;
21506    --
21507    IF (l_acc_rev_flag = 'Y') THEN
21508 
21509        -- 4645092  ------------------------------------------------------------------------------
21510        -- To allow MPA report to determine if it should generate report process
21511        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21512        ------------------------------------------------------------------------------------------
21513 
21514        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21515        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21516    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21517    -- call ADRs
21518    -- Bug 4922099
21519    --
21520    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21521         (NVL(l_actual_upg_option, 'N') = 'O') OR
21522         (NVL(l_enc_upg_option, 'N') = 'O')
21523       )
21524    THEN
21525    NULL;
21526    --
21527    --
21528    
21529   l_ccid := AcctDerRule_30(
21533          , x_transaction_coa_id       => l_adr_transaction_coa_id
21530            p_application_id           => p_application_id
21531          , p_ae_header_id             => l_ae_header_id 
21532 , p_source_12 => p_source_12
21534          , x_accounting_coa_id        => l_adr_accounting_coa_id
21535          , x_value_type_code          => l_adr_value_type_code
21536          , p_side                     => 'NA'
21537    );
21538 
21539    xla_ae_lines_pkg.set_ccid(
21540     p_code_combination_id          => l_ccid
21541   , p_value_type_code              => l_adr_value_type_code
21542   , p_transaction_coa_id           => l_adr_transaction_coa_id
21543   , p_accounting_coa_id            => l_adr_accounting_coa_id
21544   , p_adr_code                     => 'AP_CASH'
21545   , p_adr_type_code                => 'S'
21546   , p_component_type               => l_component_type
21547   , p_component_code               => l_component_code
21548   , p_component_type_code          => l_component_type_code
21549   , p_component_appl_id            => l_component_appl_id
21550   , p_amb_context_code             => l_amb_context_code
21551   , p_side                         => 'NA'
21552   );
21553 
21554 
21555    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
21556      p_to_segment_code         => 'GL_BALANCING'
21557    , p_segment_value           => C_CHAR
21558    , p_from_segment_code       => NULL
21559    , p_from_combination_id     => NULL
21560    , p_value_type_code         => NULL
21561    , p_transaction_coa_id      => null
21562    , p_accounting_coa_id       => null
21563    , p_flexfield_segment_code  => NULL
21564    , p_flex_value_set_id       => NULL
21565    , p_adr_code                => NULL
21566    , p_adr_type_code           => NULL
21567    , p_component_type          => l_component_type
21568    , p_component_code          => l_component_code
21569    , p_component_type_code     => l_component_type_code
21570    , p_component_appl_id       => l_component_appl_id
21571    , p_amb_context_code        => l_amb_context_code
21572    , p_entity_code             => 'AP_PAYMENTS'
21573    , p_event_class_code        => 'RECONCILED PAYMENTS'
21574    , p_side                    => 'NA'
21575    );
21576    --
21577 
21578 
21579    --
21580    --
21581    END IF;
21582 
21583        --
21584        -- Update the line information that should be overwritten
21585        --
21586        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21587                                          p_header_num   => 1);
21588        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21589 
21590        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21591 
21592        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21593           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21594        END IF;
21595 
21596       --
21597       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21598       --
21599       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21600           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21601       ELSE
21602           ---------------------------------------------------------------------------------------------------
21603           -- 4262811a Switch Sign
21604           ---------------------------------------------------------------------------------------------------
21605           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21606           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21607                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21608           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21609                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21610           -- 5132302
21611           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21612                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21613 
21614       END IF;
21615 
21616       -- 4955764
21617       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21618       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21619 
21620 
21621       XLA_AE_LINES_PKG.ValidateCurrentLine;
21622       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21623 
21624       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21625                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21626                ,p_balance_type_code => l_balance_type_code);
21627 
21628    END IF;
21629 
21630    -----------------------------------------------------------------------------------------
21631    -- 4262811 Multiperiod Accounting
21632    -----------------------------------------------------------------------------------------
21633      -- No MPA option is assigned.
21634 
21635 
21636 END IF;
21637 END IF;
21638 --
21639 
21640 --
21641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21642    trace
21643       (p_msg      => 'END of AcctLineType_71'
21647 --
21644       ,p_level    => C_LEVEL_PROCEDURE
21645       ,p_module   => l_log_module);
21646 END IF;
21648 EXCEPTION
21649   WHEN xla_exceptions_pkg.application_exception THEN
21650       RAISE;
21651   WHEN OTHERS THEN
21652        xla_exceptions_pkg.raise_message
21653            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_71');
21654 END AcctLineType_71;
21655 --
21656 
21657 ---------------------------------------
21658 --
21659 -- PRIVATE FUNCTION
21660 --         AcctLineType_72
21661 --
21662 ---------------------------------------
21663 PROCEDURE AcctLineType_72 (
21664   p_application_id        IN NUMBER
21665  ,p_event_id              IN NUMBER
21666  ,p_calculate_acctd_flag  IN VARCHAR2
21667  ,p_calculate_g_l_flag    IN VARCHAR2
21668  ,p_actual_flag           IN OUT VARCHAR2
21669  ,p_balance_type_code     OUT VARCHAR2
21670  ,p_gain_or_loss_ref      OUT VARCHAR2
21671  
21672 --Payment Currency Code
21673  , p_source_8            IN VARCHAR2
21674 --Bank Cash Account
21675  , p_source_12            IN NUMBER
21676 --Automatic Offsets Flag
21677  , p_source_43            IN VARCHAR2
21678  , p_source_43_meaning    IN VARCHAR2
21679 --When to Account for Payment Option
21680  , p_source_57            IN VARCHAR2
21681 --Accounting Reversal Indicator
21682  , p_source_58            IN VARCHAR2
21683 --Distribution Link Type
21684  , p_source_60            IN VARCHAR2
21685 --Override Accounted Amount Indicator
21686  , p_source_85            IN VARCHAR2
21687  , p_source_85_meaning    IN VARCHAR2
21688 --Third Party Type
21689  , p_source_88            IN VARCHAR2
21690 --Invoice Distribution Tax Line Identifier
21691  , p_source_91            IN NUMBER
21692 --Invoice Distribution Summary Tax Line Identifier
21693  , p_source_93            IN NUMBER
21694 --Business Flow Accounts Payable Application Identifier
21695  , p_source_96            IN NUMBER
21696 --Payment Distribution Type
21697  , p_source_101            IN VARCHAR2
21698  , p_source_101_meaning    IN VARCHAR2
21699 --Payment Distribution Amount
21700  , p_source_102            IN NUMBER
21701 --Business Flow Payment Distribution Type
21702  , p_source_103            IN VARCHAR2
21703 --Business Flow Payment Entity Code
21704  , p_source_104            IN VARCHAR2
21705 --Business Flow Payment Distribution Identifier
21706  , p_source_105            IN NUMBER
21707 --Business Flow Payment Identifier
21708  , p_source_106            IN NUMBER
21709 --Payment Distribution Identifier
21710  , p_source_107            IN NUMBER
21711 --Cleared Exchange Date
21712  , p_source_109            IN DATE
21713 --Cleared Exchange Rate
21714  , p_source_110            IN NUMBER
21715 --Cleared Exchange Rate Type
21716  , p_source_111            IN VARCHAR2
21717 --Payment Distribution (Cleared Rate) Ledger Amount
21718  , p_source_112            IN NUMBER
21719 --Payment Supplier Identifier
21720  , p_source_113            IN NUMBER
21721 --Payment Supplier Site Identifier
21722  , p_source_114            IN NUMBER
21723 --Payment Distribution Reversed Identifier
21724  , p_source_115            IN NUMBER
21725 --Pooled Bank Account Option
21726  , p_source_116            IN VARCHAR2
21727  , p_source_116_meaning    IN VARCHAR2
21728 )
21729 IS
21730 
21731 l_component_type              VARCHAR2(80);
21732 l_component_code              VARCHAR2(30);
21733 l_component_type_code         VARCHAR2(1);
21734 l_component_appl_id           INTEGER;
21735 l_amb_context_code            VARCHAR2(30);
21736 l_entity_code                 VARCHAR2(30);
21737 l_event_class_code            VARCHAR2(30);
21738 l_ae_header_id                NUMBER;
21739 l_event_type_code             VARCHAR2(30);
21740 l_line_definition_code        VARCHAR2(30);
21741 l_line_definition_owner_code  VARCHAR2(1);
21742 --
21743 -- adr variables
21744 l_segment                     VARCHAR2(30);
21745 l_ccid                        NUMBER;
21746 l_adr_transaction_coa_id      NUMBER;
21747 l_adr_accounting_coa_id       NUMBER;
21748 l_adr_flexfield_segment_code  VARCHAR2(30);
21749 l_adr_flex_value_set_id       NUMBER;
21750 l_adr_value_type_code         VARCHAR2(30);
21751 l_adr_value_combination_id    NUMBER;
21752 l_adr_value_segment_code      VARCHAR2(30);
21753 
21754 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21755 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21756 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21757 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21758 
21759 -- 4262811 Variables ------------------------------------------------------------------------------------------
21760 l_entered_amt_idx             NUMBER;
21761 l_accted_amt_idx              NUMBER;
21762 l_acc_rev_flag                VARCHAR2(1);
21763 l_accrual_line_num            NUMBER;
21764 l_tmp_amt                     NUMBER;
21765 l_acc_rev_natural_side_code   VARCHAR2(1);
21766 
21767 l_num_entries                 NUMBER;
21768 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21769 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21770 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21771 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21775 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21772 l_recog_line_1                NUMBER;
21773 l_recog_line_2                NUMBER;
21774 
21776 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21777 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21778 
21779 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21780 
21781 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21782 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21783 
21784 ---------------------------------------------------------------------------------------------------------------
21785 
21786 
21787 --
21788 -- bulk performance
21789 --
21790 l_balance_type_code           VARCHAR2(1);
21791 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21792 l_log_module                  VARCHAR2(240);
21793 
21794 --
21795 -- Upgrade strategy
21796 --
21797 l_actual_upg_option           VARCHAR2(1);
21798 l_enc_upg_option           VARCHAR2(1);
21799 
21800 --
21801 BEGIN
21802 --
21803 IF g_log_enabled THEN
21804       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
21805 END IF;
21806 --
21807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21808 
21809       trace
21810          (p_msg      => 'BEGIN of AcctLineType_72'
21811          ,p_level    => C_LEVEL_PROCEDURE
21812          ,p_module   => l_log_module);
21813 
21814 END IF;
21815 --
21816 l_component_type             := 'AMB_JLT';
21817 l_component_code             := 'AP_CASH_CLEARONLY_NP';
21818 l_component_type_code        := 'S';
21819 l_component_appl_id          :=  200;
21820 l_amb_context_code           := 'DEFAULT';
21821 l_entity_code                := 'AP_PAYMENTS';
21822 l_event_class_code           := 'RECONCILED PAYMENTS';
21823 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21824 l_line_definition_owner_code := 'S';
21825 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
21826 --
21827 l_balance_type_code          := 'A';
21828 l_segment                     := NULL;
21829 l_ccid                        := NULL;
21830 l_adr_transaction_coa_id      := NULL;
21831 l_adr_accounting_coa_id       := NULL;
21832 l_adr_flexfield_segment_code  := NULL;
21833 l_adr_flex_value_set_id       := NULL;
21834 l_adr_value_type_code         := NULL;
21835 l_adr_value_combination_id    := NULL;
21836 l_adr_value_segment_code      := NULL;
21837 
21838 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
21839 l_bflow_class_code           := '';    -- 4219869 Business Flow
21840 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21841 l_budgetary_control_flag     := 'N';
21842 
21843 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21844 l_bflow_applied_to_amt       := NULL; -- 5132302
21845 l_entered_amt_idx            := NULL;          -- 4262811
21846 l_accted_amt_idx             := NULL;          -- 4262811
21847 l_acc_rev_flag               := NULL;          -- 4262811
21848 l_accrual_line_num           := NULL;          -- 4262811
21849 l_tmp_amt                    := NULL;          -- 4262811
21850 --
21851  
21852 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21853     l_balance_type_code <> 'B' THEN
21854 IF NVL(p_source_57,'
21855 ') <>  'ISSUE_ISSUE' AND 
21856 (NVL(p_source_43,'
21857 ') <>  'Y' OR 
21858 NVL(p_source_43,'
21859 ') =  'Y' AND 
21860 NVL(p_source_116,'
21861 ') <>  'Y') AND 
21862 (NVL(p_source_101,'
21863 ') =  'CASH' OR 
21864 NVL(p_source_101,'
21865 ') =  'BANK CHARGE' OR 
21866 NVL(p_source_101,'
21867 ') =  'BANK ERROR')
21868  THEN 
21869 
21870    --
21871    XLA_AE_LINES_PKG.SetNewLine;
21872 
21873    p_balance_type_code          := l_balance_type_code;
21874    -- set the flag so later we will know whether the gain loss line needs to be created
21875    
21876    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21877      p_actual_flag :='A';
21878    END IF;
21879 
21880    --
21881    -- bulk performance
21882    --
21883    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21884                                       p_header_num   => 0); -- 4262811
21885    --
21886    -- set accounting line options
21887    --
21888    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21889            p_natural_side_code          => 'C'
21890          , p_gain_or_loss_flag          => 'N'
21891          , p_gl_transfer_mode_code      => 'S'
21892          , p_acct_entry_type_code       => 'A'
21893          , p_switch_side_flag           => 'Y'
21894          , p_merge_duplicate_code       => 'A'
21895          );
21896    --
21897    l_acc_rev_natural_side_code := 'D';  -- 4262811
21898    -- 
21899    --
21900    -- set accounting line type info
21901    --
21902    xla_ae_lines_pkg.SetAcctLineType
21903       (p_component_type             => l_component_type
21904       ,p_event_type_code            => l_event_type_code
21905       ,p_line_definition_owner_code => l_line_definition_owner_code
21906       ,p_line_definition_code       => l_line_definition_code
21907       ,p_accounting_line_code       => l_component_code
21908       ,p_accounting_line_type_code  => l_component_type_code
21909       ,p_accounting_line_appl_id    => l_component_appl_id
21913    --
21910       ,p_amb_context_code           => l_amb_context_code
21911       ,p_entity_code                => l_entity_code
21912       ,p_event_class_code           => l_event_class_code);
21914    -- set accounting class
21915    --
21916    xla_ae_lines_pkg.SetAcctClass(
21917            p_accounting_class_code  => 'CASH'
21918          , p_ae_header_id           => l_ae_header_id
21919          );
21920 
21921    --
21922    -- set rounding class
21923    --
21924    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21925                       'CASH';
21926 
21927    --
21928    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21929    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21930    --
21931    -- bulk performance
21932    --
21933    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21934 
21935    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21936       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21937 
21938    -- 4955764
21939    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21940       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21941 
21942    -- 4458381 Public Sector Enh
21943    
21944    --
21945    -- set accounting attributes for the line type
21946    --
21947    l_entered_amt_idx := 10;
21948    l_accted_amt_idx  := 15;
21949    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21950    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21951    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
21952    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21953    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
21954    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21955    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
21956    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21957    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
21958    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21959    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
21960    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21961    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
21962    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21963    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
21964    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21965    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
21966    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21967    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
21968    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21969    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
21970    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21971    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
21972    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
21973    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
21974    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
21975    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
21976    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
21977    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
21978    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
21979    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
21980    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
21981    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
21982    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
21983    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
21984    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
21985    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
21986    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
21987    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
21988    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
21989    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
21990    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
21991    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
21992    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
21993    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
21994    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
21995    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
21996    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
21997    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
21998 
21999    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22000    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22001 
22002    ---------------------------------------------------------------------------------------------------------------
22003    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22004    ---------------------------------------------------------------------------------------------------------------
22005    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22006 
22010    IF xla_accounting_cache_pkg.GetValueChar
22007    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22008    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22009 
22011          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22012          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22013    AND l_bflow_method_code = 'PRIOR_ENTRY'
22014 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22015    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22016          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22017        )
22018    THEN
22019          xla_ae_lines_pkg.BflowUpgEntry
22020            (p_business_method_code    => l_bflow_method_code
22021            ,p_business_class_code     => l_bflow_class_code
22022            ,p_balance_type            => l_balance_type_code);
22023    ELSE
22024       NULL;
22025 -- No business flow processing for business flow method of NONE.
22026    END IF;
22027 
22028    --
22029    -- call analytical criteria
22030    --
22031    
22032    --
22033    -- call description
22034    --
22035    -- No description or it is inherited.
22036    --
22037    -- call ADRs
22038    -- Bug 4922099
22039    --
22040    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22041         (NVL(l_actual_upg_option, 'N') = 'O') OR
22042         (NVL(l_enc_upg_option, 'N') = 'O')
22043       )
22044    THEN
22045    NULL;
22046    --
22047    --
22048    
22049   l_ccid := AcctDerRule_30(
22050            p_application_id           => p_application_id
22051          , p_ae_header_id             => l_ae_header_id 
22052 , p_source_12 => p_source_12
22053          , x_transaction_coa_id       => l_adr_transaction_coa_id
22054          , x_accounting_coa_id        => l_adr_accounting_coa_id
22055          , x_value_type_code          => l_adr_value_type_code
22056          , p_side                     => 'NA'
22057    );
22058 
22059    xla_ae_lines_pkg.set_ccid(
22060     p_code_combination_id          => l_ccid
22061   , p_value_type_code              => l_adr_value_type_code
22062   , p_transaction_coa_id           => l_adr_transaction_coa_id
22063   , p_accounting_coa_id            => l_adr_accounting_coa_id
22064   , p_adr_code                     => 'AP_CASH'
22065   , p_adr_type_code                => 'S'
22066   , p_component_type               => l_component_type
22067   , p_component_code               => l_component_code
22068   , p_component_type_code          => l_component_type_code
22069   , p_component_appl_id            => l_component_appl_id
22070   , p_amb_context_code             => l_amb_context_code
22071   , p_side                         => 'NA'
22072   );
22073 
22074 
22075    --
22076    --
22077    END IF;
22078    --
22079    -- Bug 4922099
22080    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22081           (NVL(l_enc_upg_option, 'N') = 'O')
22082         ) AND
22083         (l_bflow_method_code = 'PRIOR_ENTRY')
22084       )
22085    THEN
22086       IF
22087       --
22088       1 = 2
22089       --
22090       THEN
22091       xla_accounting_err_pkg.build_message
22092                                     (p_appli_s_name            => 'XLA'
22093                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22094                                     ,p_token_1                 => 'LINE_NUMBER'
22095                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22096                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22097                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22098                                                                              l_component_type
22099                                                                             ,l_component_code
22100                                                                             ,l_component_type_code
22101                                                                             ,l_component_appl_id
22102                                                                             ,l_amb_context_code
22103                                                                             ,l_entity_code
22104                                                                             ,l_event_class_code
22105                                                                            )
22106                                     ,p_token_3                 => 'OWNER'
22107                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22108                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22109                                                                           ,p_lookup_code    => l_component_type_code
22110                                                                          )
22111                                     ,p_token_4                 => 'PRODUCT_NAME'
22112                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22113                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22114                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22118 
22115                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22116                                     ,p_ae_header_id            =>  NULL
22117                                        );
22119         IF (C_LEVEL_ERROR>= g_log_level) THEN
22120                  trace
22121                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22122                       ,p_level    => C_LEVEL_ERROR
22123                       ,p_module   => l_log_module);
22124         END IF;
22125       END IF;
22126    END IF;
22127    --
22128    --
22129    ------------------------------------------------------------------------------------------------
22130    -- 4219869 Business Flow
22131    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22132    -- Prior Entry.  Currently, the following code is always generated.
22133    ------------------------------------------------------------------------------------------------
22134    XLA_AE_LINES_PKG.ValidateCurrentLine;
22135 
22136    ------------------------------------------------------------------------------------
22137    -- 4219869 Business Flow
22138    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22139    ------------------------------------------------------------------------------------
22140    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22141 
22142    ----------------------------------------------------------------------------------
22143    -- 4219869 Business Flow
22144    -- Update journal entry status -- Need to generate this within IF <condition>
22145    ----------------------------------------------------------------------------------
22146    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22147          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22148          ,p_balance_type_code => l_balance_type_code
22149          );
22150 
22151    -------------------------------------------------------------------------------------------
22152    -- 4262811 - Generate the Accrual Reversal lines
22153    -------------------------------------------------------------------------------------------
22154    BEGIN
22155       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22156                               (g_array_event(p_event_id).array_value_num('header_index'));
22157       IF l_acc_rev_flag IS NULL THEN
22158          l_acc_rev_flag := 'N';
22159       END IF;
22160    EXCEPTION
22161       WHEN OTHERS THEN
22162          l_acc_rev_flag := 'N';
22163    END;
22164    --
22165    IF (l_acc_rev_flag = 'Y') THEN
22166 
22167        -- 4645092  ------------------------------------------------------------------------------
22168        -- To allow MPA report to determine if it should generate report process
22169        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22170        ------------------------------------------------------------------------------------------
22171 
22172        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22173        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22174    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22175    -- call ADRs
22176    -- Bug 4922099
22177    --
22178    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22179         (NVL(l_actual_upg_option, 'N') = 'O') OR
22180         (NVL(l_enc_upg_option, 'N') = 'O')
22181       )
22182    THEN
22183    NULL;
22184    --
22185    --
22186    
22187   l_ccid := AcctDerRule_30(
22188            p_application_id           => p_application_id
22189          , p_ae_header_id             => l_ae_header_id 
22190 , p_source_12 => p_source_12
22191          , x_transaction_coa_id       => l_adr_transaction_coa_id
22192          , x_accounting_coa_id        => l_adr_accounting_coa_id
22193          , x_value_type_code          => l_adr_value_type_code
22194          , p_side                     => 'NA'
22195    );
22196 
22197    xla_ae_lines_pkg.set_ccid(
22198     p_code_combination_id          => l_ccid
22199   , p_value_type_code              => l_adr_value_type_code
22200   , p_transaction_coa_id           => l_adr_transaction_coa_id
22201   , p_accounting_coa_id            => l_adr_accounting_coa_id
22202   , p_adr_code                     => 'AP_CASH'
22203   , p_adr_type_code                => 'S'
22204   , p_component_type               => l_component_type
22205   , p_component_code               => l_component_code
22206   , p_component_type_code          => l_component_type_code
22207   , p_component_appl_id            => l_component_appl_id
22208   , p_amb_context_code             => l_amb_context_code
22209   , p_side                         => 'NA'
22210   );
22211 
22212 
22213    --
22214    --
22215    END IF;
22216 
22217        --
22218        -- Update the line information that should be overwritten
22219        --
22220        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22221                                          p_header_num   => 1);
22222        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22223 
22224        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22225 
22226        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22230       --
22227           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22228        END IF;
22229 
22231       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22232       --
22233       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22234           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22235       ELSE
22236           ---------------------------------------------------------------------------------------------------
22237           -- 4262811a Switch Sign
22238           ---------------------------------------------------------------------------------------------------
22239           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22240           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22241                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22242           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22243                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22244           -- 5132302
22245           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22246                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22247 
22248       END IF;
22249 
22250       -- 4955764
22251       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22252       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22253 
22254 
22255       XLA_AE_LINES_PKG.ValidateCurrentLine;
22256       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22257 
22258       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22259                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22260                ,p_balance_type_code => l_balance_type_code);
22261 
22262    END IF;
22263 
22264    -----------------------------------------------------------------------------------------
22265    -- 4262811 Multiperiod Accounting
22266    -----------------------------------------------------------------------------------------
22267      -- No MPA option is assigned.
22268 
22269 
22270 END IF;
22271 END IF;
22272 --
22273 
22274 --
22275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22276    trace
22277       (p_msg      => 'END of AcctLineType_72'
22278       ,p_level    => C_LEVEL_PROCEDURE
22279       ,p_module   => l_log_module);
22280 END IF;
22281 --
22282 EXCEPTION
22283   WHEN xla_exceptions_pkg.application_exception THEN
22284       RAISE;
22285   WHEN OTHERS THEN
22286        xla_exceptions_pkg.raise_message
22287            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_72');
22288 END AcctLineType_72;
22289 --
22290 
22291 ---------------------------------------
22292 --
22293 -- PRIVATE FUNCTION
22294 --         AcctLineType_73
22295 --
22296 ---------------------------------------
22297 PROCEDURE AcctLineType_73 (
22298   p_application_id        IN NUMBER
22299  ,p_event_id              IN NUMBER
22300  ,p_calculate_acctd_flag  IN VARCHAR2
22301  ,p_calculate_g_l_flag    IN VARCHAR2
22302  ,p_actual_flag           IN OUT VARCHAR2
22303  ,p_balance_type_code     OUT VARCHAR2
22304  ,p_gain_or_loss_ref      OUT VARCHAR2
22305  
22306 --Payment Currency Code
22307  , p_source_8            IN VARCHAR2
22308 --When to Account for Payment Option
22309  , p_source_57            IN VARCHAR2
22310 --Accounting Reversal Indicator
22311  , p_source_58            IN VARCHAR2
22312 --Distribution Link Type
22313  , p_source_60            IN VARCHAR2
22314 --Override Accounted Amount Indicator
22315  , p_source_85            IN VARCHAR2
22316  , p_source_85_meaning    IN VARCHAR2
22317 --Third Party Type
22318  , p_source_88            IN VARCHAR2
22319 --Invoice Distribution Tax Line Identifier
22320  , p_source_91            IN NUMBER
22321 --Invoice Distribution Summary Tax Line Identifier
22322  , p_source_93            IN NUMBER
22323 --Business Flow Accounts Payable Application Identifier
22324  , p_source_96            IN NUMBER
22325 --Payment Distribution Type
22326  , p_source_101            IN VARCHAR2
22327  , p_source_101_meaning    IN VARCHAR2
22328 --Payment Distribution Amount
22329  , p_source_102            IN NUMBER
22330 --Business Flow Payment Distribution Type
22331  , p_source_103            IN VARCHAR2
22332 --Business Flow Payment Entity Code
22333  , p_source_104            IN VARCHAR2
22334 --Business Flow Payment Distribution Identifier
22335  , p_source_105            IN NUMBER
22336 --Business Flow Payment Identifier
22337  , p_source_106            IN NUMBER
22338 --Payment Distribution Identifier
22339  , p_source_107            IN NUMBER
22340 --Payment Distribution Reversed Identifier
22341  , p_source_115            IN NUMBER
22342 --Payment Maturity Date
22343  , p_source_117            IN DATE
22344 --Payment Distribution (Payment Rate) Ledger Amount
22345  , p_source_118            IN NUMBER
22346 )
22347 IS
22348 
22349 l_component_type              VARCHAR2(80);
22350 l_component_code              VARCHAR2(30);
22351 l_component_type_code         VARCHAR2(1);
22352 l_component_appl_id           INTEGER;
22353 l_amb_context_code            VARCHAR2(30);
22357 l_event_type_code             VARCHAR2(30);
22354 l_entity_code                 VARCHAR2(30);
22355 l_event_class_code            VARCHAR2(30);
22356 l_ae_header_id                NUMBER;
22358 l_line_definition_code        VARCHAR2(30);
22359 l_line_definition_owner_code  VARCHAR2(1);
22360 --
22361 -- adr variables
22362 l_segment                     VARCHAR2(30);
22363 l_ccid                        NUMBER;
22364 l_adr_transaction_coa_id      NUMBER;
22365 l_adr_accounting_coa_id       NUMBER;
22366 l_adr_flexfield_segment_code  VARCHAR2(30);
22367 l_adr_flex_value_set_id       NUMBER;
22368 l_adr_value_type_code         VARCHAR2(30);
22369 l_adr_value_combination_id    NUMBER;
22370 l_adr_value_segment_code      VARCHAR2(30);
22371 
22372 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22373 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22374 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22375 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22376 
22377 -- 4262811 Variables ------------------------------------------------------------------------------------------
22378 l_entered_amt_idx             NUMBER;
22379 l_accted_amt_idx              NUMBER;
22380 l_acc_rev_flag                VARCHAR2(1);
22381 l_accrual_line_num            NUMBER;
22382 l_tmp_amt                     NUMBER;
22383 l_acc_rev_natural_side_code   VARCHAR2(1);
22384 
22385 l_num_entries                 NUMBER;
22386 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22387 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22388 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22389 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22390 l_recog_line_1                NUMBER;
22391 l_recog_line_2                NUMBER;
22392 
22393 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22394 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22395 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22396 
22397 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22398 
22399 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22400 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22401 
22402 ---------------------------------------------------------------------------------------------------------------
22403 
22404 
22405 --
22406 -- bulk performance
22407 --
22408 l_balance_type_code           VARCHAR2(1);
22409 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22410 l_log_module                  VARCHAR2(240);
22411 
22412 --
22413 -- Upgrade strategy
22414 --
22415 l_actual_upg_option           VARCHAR2(1);
22416 l_enc_upg_option           VARCHAR2(1);
22417 
22418 --
22419 BEGIN
22420 --
22421 IF g_log_enabled THEN
22422       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
22423 END IF;
22424 --
22425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22426 
22427       trace
22428          (p_msg      => 'BEGIN of AcctLineType_73'
22429          ,p_level    => C_LEVEL_PROCEDURE
22430          ,p_module   => l_log_module);
22431 
22432 END IF;
22433 --
22434 l_component_type             := 'AMB_JLT';
22435 l_component_code             := 'AP_CASH_CLEAR_CLEAR';
22436 l_component_type_code        := 'S';
22437 l_component_appl_id          :=  200;
22438 l_amb_context_code           := 'DEFAULT';
22439 l_entity_code                := 'AP_PAYMENTS';
22440 l_event_class_code           := 'RECONCILED PAYMENTS';
22441 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
22442 l_line_definition_owner_code := 'S';
22443 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
22444 --
22445 l_balance_type_code          := 'A';
22446 l_segment                     := NULL;
22447 l_ccid                        := NULL;
22448 l_adr_transaction_coa_id      := NULL;
22449 l_adr_accounting_coa_id       := NULL;
22450 l_adr_flexfield_segment_code  := NULL;
22451 l_adr_flex_value_set_id       := NULL;
22452 l_adr_value_type_code         := NULL;
22453 l_adr_value_combination_id    := NULL;
22454 l_adr_value_segment_code      := NULL;
22455 
22456 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
22457 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
22458 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22459 l_budgetary_control_flag     := 'N';
22460 
22461 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22462 l_bflow_applied_to_amt       := NULL; -- 5132302
22463 l_entered_amt_idx            := NULL;          -- 4262811
22464 l_accted_amt_idx             := NULL;          -- 4262811
22465 l_acc_rev_flag               := NULL;          -- 4262811
22466 l_accrual_line_num           := NULL;          -- 4262811
22467 l_tmp_amt                    := NULL;          -- 4262811
22468 --
22469  
22470 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22471     l_balance_type_code <> 'B' THEN
22472 IF (NVL(p_source_57,'
22473 ') =  'ALWAYS_ALWAYS' OR 
22474 NVL(p_source_57,'
22475 ') =  'ALWAYS_ISSUE') AND 
22476 NVL(p_source_101,'
22477 ') =  'CASH' AND 
22478 p_source_117 IS NULL 
22479  THEN 
22480 
22481    --
22482    XLA_AE_LINES_PKG.SetNewLine;
22483 
22484    p_balance_type_code          := l_balance_type_code;
22488      p_actual_flag :='A';
22485    -- set the flag so later we will know whether the gain loss line needs to be created
22486    
22487    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22489    END IF;
22490 
22491    --
22492    -- bulk performance
22493    --
22494    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22495                                       p_header_num   => 0); -- 4262811
22496    --
22497    -- set accounting line options
22498    --
22499    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22500            p_natural_side_code          => 'D'
22501          , p_gain_or_loss_flag          => 'N'
22502          , p_gl_transfer_mode_code      => 'S'
22503          , p_acct_entry_type_code       => 'A'
22504          , p_switch_side_flag           => 'Y'
22505          , p_merge_duplicate_code       => 'A'
22506          );
22507    --
22508    l_acc_rev_natural_side_code := 'C';  -- 4262811
22509    -- 
22510    --
22511    -- set accounting line type info
22512    --
22513    xla_ae_lines_pkg.SetAcctLineType
22514       (p_component_type             => l_component_type
22515       ,p_event_type_code            => l_event_type_code
22516       ,p_line_definition_owner_code => l_line_definition_owner_code
22517       ,p_line_definition_code       => l_line_definition_code
22518       ,p_accounting_line_code       => l_component_code
22519       ,p_accounting_line_type_code  => l_component_type_code
22520       ,p_accounting_line_appl_id    => l_component_appl_id
22521       ,p_amb_context_code           => l_amb_context_code
22522       ,p_entity_code                => l_entity_code
22523       ,p_event_class_code           => l_event_class_code);
22524    --
22525    -- set accounting class
22526    --
22527    xla_ae_lines_pkg.SetAcctClass(
22528            p_accounting_class_code  => 'CASH_CLEARING'
22529          , p_ae_header_id           => l_ae_header_id
22530          );
22531 
22532    --
22533    -- set rounding class
22534    --
22535    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22536                       'CASH_CLEARING';
22537 
22538    --
22539    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22540    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22541    --
22542    -- bulk performance
22543    --
22544    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22545 
22546    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22547       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22548 
22549    -- 4955764
22550    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22551       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22552 
22553    -- 4458381 Public Sector Enh
22554    
22555    --
22556    -- set accounting attributes for the line type
22557    --
22558    l_entered_amt_idx := 10;
22559    l_accted_amt_idx  := 12;
22560    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
22561    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22562    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
22563    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
22564    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
22565    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
22566    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
22567    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22568    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
22569    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
22570    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
22571    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22572    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
22573    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22574    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
22575    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22576    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
22577    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22578    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
22579    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22580    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
22581    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22582    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
22583    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
22584    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
22585    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
22586    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
22587    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
22588    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
22589    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
22590    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
22591    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
22592    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
22593    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
22594    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
22598    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
22595    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
22596    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
22597    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
22599 
22600    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22601    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22602 
22603    ---------------------------------------------------------------------------------------------------------------
22604    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22605    ---------------------------------------------------------------------------------------------------------------
22606    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22607 
22608    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22609    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22610 
22611    IF xla_accounting_cache_pkg.GetValueChar
22612          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22613          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22614    AND l_bflow_method_code = 'PRIOR_ENTRY'
22615 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22616    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22617          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22618        )
22619    THEN
22620          xla_ae_lines_pkg.BflowUpgEntry
22621            (p_business_method_code    => l_bflow_method_code
22622            ,p_business_class_code     => l_bflow_class_code
22623            ,p_balance_type            => l_balance_type_code);
22624    ELSE
22625       NULL;
22626 XLA_AE_LINES_PKG.business_flow_validation(
22627                                 p_business_method_code     => l_bflow_method_code
22628                                ,p_business_class_code      => l_bflow_class_code
22629                                ,p_inherit_description_flag => l_inherit_desc_flag);
22630    END IF;
22631 
22632    --
22633    -- call analytical criteria
22634    --
22635    -- Inherited Analytical Criteria for business flow method of Prior Entry.
22636    --
22637    -- call description
22638    --
22639    -- No description or it is inherited.
22640    --
22641    -- call ADRs
22642    -- Bug 4922099
22643    --
22644    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22645         (NVL(l_actual_upg_option, 'N') = 'O') OR
22646         (NVL(l_enc_upg_option, 'N') = 'O')
22647       )
22648    THEN
22649    NULL;
22650    --
22651    --
22652    
22653    --
22654    --
22655    END IF;
22656    --
22657    -- Bug 4922099
22658    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22659           (NVL(l_enc_upg_option, 'N') = 'O')
22660         ) AND
22661         (l_bflow_method_code = 'PRIOR_ENTRY')
22662       )
22663    THEN
22664       IF
22665       --
22666       1 = 1
22667       --
22668       THEN
22669       xla_accounting_err_pkg.build_message
22670                                     (p_appli_s_name            => 'XLA'
22671                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22672                                     ,p_token_1                 => 'LINE_NUMBER'
22673                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22674                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22675                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22676                                                                              l_component_type
22677                                                                             ,l_component_code
22678                                                                             ,l_component_type_code
22679                                                                             ,l_component_appl_id
22680                                                                             ,l_amb_context_code
22681                                                                             ,l_entity_code
22682                                                                             ,l_event_class_code
22683                                                                            )
22684                                     ,p_token_3                 => 'OWNER'
22685                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22686                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22687                                                                           ,p_lookup_code    => l_component_type_code
22688                                                                          )
22689                                     ,p_token_4                 => 'PRODUCT_NAME'
22690                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22691                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22692                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22693                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22694                                     ,p_ae_header_id            =>  NULL
22698                  trace
22695                                        );
22696 
22697         IF (C_LEVEL_ERROR>= g_log_level) THEN
22699                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22700                       ,p_level    => C_LEVEL_ERROR
22701                       ,p_module   => l_log_module);
22702         END IF;
22703       END IF;
22704    END IF;
22705    --
22706    --
22707    ------------------------------------------------------------------------------------------------
22708    -- 4219869 Business Flow
22709    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22710    -- Prior Entry.  Currently, the following code is always generated.
22711    ------------------------------------------------------------------------------------------------
22712    -- No ValidateCurrentLine for business flow method of Prior Entry
22713 
22714    ------------------------------------------------------------------------------------
22715    -- 4219869 Business Flow
22716    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22717    ------------------------------------------------------------------------------------
22718    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22719 
22720    ----------------------------------------------------------------------------------
22721    -- 4219869 Business Flow
22722    -- Update journal entry status -- Need to generate this within IF <condition>
22723    ----------------------------------------------------------------------------------
22724    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22725          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22726          ,p_balance_type_code => l_balance_type_code
22727          );
22728 
22729    -------------------------------------------------------------------------------------------
22730    -- 4262811 - Generate the Accrual Reversal lines
22731    -------------------------------------------------------------------------------------------
22732    BEGIN
22733       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22734                               (g_array_event(p_event_id).array_value_num('header_index'));
22735       IF l_acc_rev_flag IS NULL THEN
22736          l_acc_rev_flag := 'N';
22737       END IF;
22738    EXCEPTION
22739       WHEN OTHERS THEN
22740          l_acc_rev_flag := 'N';
22741    END;
22742    --
22743    IF (l_acc_rev_flag = 'Y') THEN
22744 
22745        -- 4645092  ------------------------------------------------------------------------------
22746        -- To allow MPA report to determine if it should generate report process
22747        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22748        ------------------------------------------------------------------------------------------
22749 
22750        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22751        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22752    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22753    -- call ADRs
22754    -- Bug 4922099
22755    --
22756    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22757         (NVL(l_actual_upg_option, 'N') = 'O') OR
22758         (NVL(l_enc_upg_option, 'N') = 'O')
22759       )
22760    THEN
22761    NULL;
22762    --
22763    --
22764    
22765    --
22766    --
22767    END IF;
22768 
22769        --
22770        -- Update the line information that should be overwritten
22771        --
22772        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22773                                          p_header_num   => 1);
22774        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22775 
22776        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22777 
22778        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22779           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22780        END IF;
22781 
22782       --
22783       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22784       --
22785       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22786           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22787       ELSE
22788           ---------------------------------------------------------------------------------------------------
22789           -- 4262811a Switch Sign
22790           ---------------------------------------------------------------------------------------------------
22791           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22792           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22793                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22794           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22795                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22796           -- 5132302
22797           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22798                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22799 
22803       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22800       END IF;
22801 
22802       -- 4955764
22804       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22805 
22806 
22807       XLA_AE_LINES_PKG.ValidateCurrentLine;
22808       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22809 
22810       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22811                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22812                ,p_balance_type_code => l_balance_type_code);
22813 
22814    END IF;
22815 
22816    -----------------------------------------------------------------------------------------
22817    -- 4262811 Multiperiod Accounting
22818    -----------------------------------------------------------------------------------------
22819      -- No MPA option is assigned.
22820 
22821 
22822 END IF;
22823 END IF;
22824 --
22825 
22826 --
22827 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22828    trace
22829       (p_msg      => 'END of AcctLineType_73'
22830       ,p_level    => C_LEVEL_PROCEDURE
22831       ,p_module   => l_log_module);
22832 END IF;
22833 --
22834 EXCEPTION
22835   WHEN xla_exceptions_pkg.application_exception THEN
22836       RAISE;
22837   WHEN OTHERS THEN
22838        xla_exceptions_pkg.raise_message
22839            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_73');
22840 END AcctLineType_73;
22841 --
22842 
22843 ---------------------------------------
22844 --
22845 -- PRIVATE FUNCTION
22846 --         AcctLineType_74
22847 --
22848 ---------------------------------------
22849 PROCEDURE AcctLineType_74 (
22850   p_application_id        IN NUMBER
22851  ,p_event_id              IN NUMBER
22852  ,p_calculate_acctd_flag  IN VARCHAR2
22853  ,p_calculate_g_l_flag    IN VARCHAR2
22854  ,p_actual_flag           IN OUT VARCHAR2
22855  ,p_balance_type_code     OUT VARCHAR2
22856  ,p_gain_or_loss_ref      OUT VARCHAR2
22857  
22858 --Payment Currency Code
22859  , p_source_8            IN VARCHAR2
22860 --When to Account for Payment Option
22861  , p_source_57            IN VARCHAR2
22862 --Accounting Reversal Indicator
22863  , p_source_58            IN VARCHAR2
22864 --Distribution Link Type
22865  , p_source_60            IN VARCHAR2
22866 --Override Accounted Amount Indicator
22867  , p_source_85            IN VARCHAR2
22868  , p_source_85_meaning    IN VARCHAR2
22869 --Third Party Type
22870  , p_source_88            IN VARCHAR2
22871 --Invoice Distribution Tax Line Identifier
22872  , p_source_91            IN NUMBER
22873 --Invoice Distribution Summary Tax Line Identifier
22874  , p_source_93            IN NUMBER
22875 --Business Flow Accounts Payable Application Identifier
22876  , p_source_96            IN NUMBER
22877 --Payment Distribution Type
22878  , p_source_101            IN VARCHAR2
22879  , p_source_101_meaning    IN VARCHAR2
22880 --Payment Distribution Amount
22881  , p_source_102            IN NUMBER
22882 --Business Flow Payment Distribution Type
22883  , p_source_103            IN VARCHAR2
22884 --Business Flow Payment Entity Code
22885  , p_source_104            IN VARCHAR2
22886 --Business Flow Payment Distribution Identifier
22887  , p_source_105            IN NUMBER
22888 --Business Flow Payment Identifier
22889  , p_source_106            IN NUMBER
22890 --Payment Distribution Identifier
22891  , p_source_107            IN NUMBER
22892 --Payment Distribution Reversed Identifier
22893  , p_source_115            IN NUMBER
22894 --Payment Maturity Date
22895  , p_source_117            IN DATE
22896 --Payment Distribution (Invoice Rate) Ledger Amount
22897  , p_source_119            IN NUMBER
22898 )
22899 IS
22900 
22901 l_component_type              VARCHAR2(80);
22902 l_component_code              VARCHAR2(30);
22903 l_component_type_code         VARCHAR2(1);
22904 l_component_appl_id           INTEGER;
22905 l_amb_context_code            VARCHAR2(30);
22906 l_entity_code                 VARCHAR2(30);
22907 l_event_class_code            VARCHAR2(30);
22908 l_ae_header_id                NUMBER;
22909 l_event_type_code             VARCHAR2(30);
22910 l_line_definition_code        VARCHAR2(30);
22911 l_line_definition_owner_code  VARCHAR2(1);
22912 --
22913 -- adr variables
22914 l_segment                     VARCHAR2(30);
22915 l_ccid                        NUMBER;
22916 l_adr_transaction_coa_id      NUMBER;
22917 l_adr_accounting_coa_id       NUMBER;
22918 l_adr_flexfield_segment_code  VARCHAR2(30);
22919 l_adr_flex_value_set_id       NUMBER;
22920 l_adr_value_type_code         VARCHAR2(30);
22921 l_adr_value_combination_id    NUMBER;
22922 l_adr_value_segment_code      VARCHAR2(30);
22923 
22924 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22925 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22926 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22927 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22928 
22929 -- 4262811 Variables ------------------------------------------------------------------------------------------
22930 l_entered_amt_idx             NUMBER;
22931 l_accted_amt_idx              NUMBER;
22932 l_acc_rev_flag                VARCHAR2(1);
22933 l_accrual_line_num            NUMBER;
22937 l_num_entries                 NUMBER;
22934 l_tmp_amt                     NUMBER;
22935 l_acc_rev_natural_side_code   VARCHAR2(1);
22936 
22938 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22939 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22940 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22941 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22942 l_recog_line_1                NUMBER;
22943 l_recog_line_2                NUMBER;
22944 
22945 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22946 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22947 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22948 
22949 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22950 
22951 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22952 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22953 
22954 ---------------------------------------------------------------------------------------------------------------
22955 
22956 
22957 --
22958 -- bulk performance
22959 --
22960 l_balance_type_code           VARCHAR2(1);
22961 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22962 l_log_module                  VARCHAR2(240);
22963 
22964 --
22965 -- Upgrade strategy
22966 --
22967 l_actual_upg_option           VARCHAR2(1);
22968 l_enc_upg_option           VARCHAR2(1);
22969 
22970 --
22971 BEGIN
22972 --
22973 IF g_log_enabled THEN
22974       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
22975 END IF;
22976 --
22977 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22978 
22979       trace
22980          (p_msg      => 'BEGIN of AcctLineType_74'
22981          ,p_level    => C_LEVEL_PROCEDURE
22982          ,p_module   => l_log_module);
22983 
22984 END IF;
22985 --
22986 l_component_type             := 'AMB_JLT';
22987 l_component_code             := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
22988 l_component_type_code        := 'S';
22989 l_component_appl_id          :=  200;
22990 l_amb_context_code           := 'DEFAULT';
22991 l_entity_code                := 'AP_PAYMENTS';
22992 l_event_class_code           := 'RECONCILED PAYMENTS';
22993 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
22994 l_line_definition_owner_code := 'S';
22995 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
22996 --
22997 l_balance_type_code          := 'A';
22998 l_segment                     := NULL;
22999 l_ccid                        := NULL;
23000 l_adr_transaction_coa_id      := NULL;
23001 l_adr_accounting_coa_id       := NULL;
23002 l_adr_flexfield_segment_code  := NULL;
23003 l_adr_flex_value_set_id       := NULL;
23004 l_adr_value_type_code         := NULL;
23005 l_adr_value_combination_id    := NULL;
23006 l_adr_value_segment_code      := NULL;
23007 
23008 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
23009 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23010 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23011 l_budgetary_control_flag     := 'N';
23012 
23013 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23014 l_bflow_applied_to_amt       := NULL; -- 5132302
23015 l_entered_amt_idx            := NULL;          -- 4262811
23016 l_accted_amt_idx             := NULL;          -- 4262811
23017 l_acc_rev_flag               := NULL;          -- 4262811
23018 l_accrual_line_num           := NULL;          -- 4262811
23019 l_tmp_amt                    := NULL;          -- 4262811
23020 --
23021  
23022 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23023     l_balance_type_code <> 'B' THEN
23024 IF NVL(p_source_57,'
23025 ') =  'ALWAYS_CLEAR' AND 
23026 NVL(p_source_101,'
23027 ') =  'CASH' AND 
23028 p_source_117 IS NULL 
23029  THEN 
23030 
23031    --
23032    XLA_AE_LINES_PKG.SetNewLine;
23033 
23034    p_balance_type_code          := l_balance_type_code;
23035    -- set the flag so later we will know whether the gain loss line needs to be created
23036    
23037    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23038      p_actual_flag :='A';
23039    END IF;
23040 
23041    --
23042    -- bulk performance
23043    --
23044    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23045                                       p_header_num   => 0); -- 4262811
23046    --
23047    -- set accounting line options
23048    --
23049    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23050            p_natural_side_code          => 'D'
23051          , p_gain_or_loss_flag          => 'N'
23052          , p_gl_transfer_mode_code      => 'S'
23053          , p_acct_entry_type_code       => 'A'
23054          , p_switch_side_flag           => 'Y'
23055          , p_merge_duplicate_code       => 'A'
23056          );
23057    --
23058    l_acc_rev_natural_side_code := 'C';  -- 4262811
23059    -- 
23060    --
23061    -- set accounting line type info
23062    --
23063    xla_ae_lines_pkg.SetAcctLineType
23064       (p_component_type             => l_component_type
23065       ,p_event_type_code            => l_event_type_code
23066       ,p_line_definition_owner_code => l_line_definition_owner_code
23070       ,p_accounting_line_appl_id    => l_component_appl_id
23067       ,p_line_definition_code       => l_line_definition_code
23068       ,p_accounting_line_code       => l_component_code
23069       ,p_accounting_line_type_code  => l_component_type_code
23071       ,p_amb_context_code           => l_amb_context_code
23072       ,p_entity_code                => l_entity_code
23073       ,p_event_class_code           => l_event_class_code);
23074    --
23075    -- set accounting class
23076    --
23077    xla_ae_lines_pkg.SetAcctClass(
23078            p_accounting_class_code  => 'CASH_CLEARING'
23079          , p_ae_header_id           => l_ae_header_id
23080          );
23081 
23082    --
23083    -- set rounding class
23084    --
23085    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23086                       'CASH_CLEARING';
23087 
23088    --
23089    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23090    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23091    --
23092    -- bulk performance
23093    --
23094    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23095 
23096    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23097       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23098 
23099    -- 4955764
23100    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23101       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23102 
23103    -- 4458381 Public Sector Enh
23104    
23105    --
23106    -- set accounting attributes for the line type
23107    --
23108    l_entered_amt_idx := 10;
23109    l_accted_amt_idx  := 12;
23110    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
23111    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23112    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
23113    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
23114    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
23115    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
23116    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
23117    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23118    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
23119    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
23120    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
23121    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
23122    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
23123    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23124    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
23125    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23126    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
23127    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23128    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
23129    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23130    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
23131    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23132    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
23133    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
23134    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
23135    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
23136    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
23137    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
23138    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
23139    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
23140    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
23141    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
23142    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
23143    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
23144    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
23145    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
23146    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
23147    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
23148    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
23149 
23150    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23151    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23152 
23153    ---------------------------------------------------------------------------------------------------------------
23154    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23155    ---------------------------------------------------------------------------------------------------------------
23156    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23157 
23158    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23159    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23160 
23161    IF xla_accounting_cache_pkg.GetValueChar
23162          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23166    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23163          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23164    AND l_bflow_method_code = 'PRIOR_ENTRY'
23165 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23167          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23168        )
23169    THEN
23170          xla_ae_lines_pkg.BflowUpgEntry
23171            (p_business_method_code    => l_bflow_method_code
23172            ,p_business_class_code     => l_bflow_class_code
23173            ,p_balance_type            => l_balance_type_code);
23174    ELSE
23175       NULL;
23176 XLA_AE_LINES_PKG.business_flow_validation(
23177                                 p_business_method_code     => l_bflow_method_code
23178                                ,p_business_class_code      => l_bflow_class_code
23179                                ,p_inherit_description_flag => l_inherit_desc_flag);
23180    END IF;
23181 
23182    --
23183    -- call analytical criteria
23184    --
23185    -- Inherited Analytical Criteria for business flow method of Prior Entry.
23186    --
23187    -- call description
23188    --
23189    -- No description or it is inherited.
23190    --
23191    -- call ADRs
23192    -- Bug 4922099
23193    --
23194    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23195         (NVL(l_actual_upg_option, 'N') = 'O') OR
23196         (NVL(l_enc_upg_option, 'N') = 'O')
23197       )
23198    THEN
23199    NULL;
23200    --
23201    --
23202    
23203    --
23204    --
23205    END IF;
23206    --
23207    -- Bug 4922099
23208    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23209           (NVL(l_enc_upg_option, 'N') = 'O')
23210         ) AND
23211         (l_bflow_method_code = 'PRIOR_ENTRY')
23212       )
23213    THEN
23214       IF
23215       --
23216       1 = 1
23217       --
23218       THEN
23219       xla_accounting_err_pkg.build_message
23220                                     (p_appli_s_name            => 'XLA'
23221                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23222                                     ,p_token_1                 => 'LINE_NUMBER'
23223                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23224                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23225                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23226                                                                              l_component_type
23227                                                                             ,l_component_code
23228                                                                             ,l_component_type_code
23229                                                                             ,l_component_appl_id
23230                                                                             ,l_amb_context_code
23231                                                                             ,l_entity_code
23232                                                                             ,l_event_class_code
23233                                                                            )
23234                                     ,p_token_3                 => 'OWNER'
23235                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23236                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23237                                                                           ,p_lookup_code    => l_component_type_code
23238                                                                          )
23239                                     ,p_token_4                 => 'PRODUCT_NAME'
23240                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23241                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23242                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23243                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23244                                     ,p_ae_header_id            =>  NULL
23245                                        );
23246 
23247         IF (C_LEVEL_ERROR>= g_log_level) THEN
23248                  trace
23249                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23250                       ,p_level    => C_LEVEL_ERROR
23251                       ,p_module   => l_log_module);
23252         END IF;
23253       END IF;
23254    END IF;
23255    --
23256    --
23257    ------------------------------------------------------------------------------------------------
23258    -- 4219869 Business Flow
23259    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23260    -- Prior Entry.  Currently, the following code is always generated.
23261    ------------------------------------------------------------------------------------------------
23262    -- No ValidateCurrentLine for business flow method of Prior Entry
23263 
23264    ------------------------------------------------------------------------------------
23265    -- 4219869 Business Flow
23266    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23267    ------------------------------------------------------------------------------------
23271    -- 4219869 Business Flow
23268    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23269 
23270    ----------------------------------------------------------------------------------
23272    -- Update journal entry status -- Need to generate this within IF <condition>
23273    ----------------------------------------------------------------------------------
23274    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23275          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23276          ,p_balance_type_code => l_balance_type_code
23277          );
23278 
23279    -------------------------------------------------------------------------------------------
23280    -- 4262811 - Generate the Accrual Reversal lines
23281    -------------------------------------------------------------------------------------------
23282    BEGIN
23283       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23284                               (g_array_event(p_event_id).array_value_num('header_index'));
23285       IF l_acc_rev_flag IS NULL THEN
23286          l_acc_rev_flag := 'N';
23287       END IF;
23288    EXCEPTION
23289       WHEN OTHERS THEN
23290          l_acc_rev_flag := 'N';
23291    END;
23292    --
23293    IF (l_acc_rev_flag = 'Y') THEN
23294 
23295        -- 4645092  ------------------------------------------------------------------------------
23296        -- To allow MPA report to determine if it should generate report process
23297        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23298        ------------------------------------------------------------------------------------------
23299 
23300        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23301        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23302    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23303    -- call ADRs
23304    -- Bug 4922099
23305    --
23306    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23307         (NVL(l_actual_upg_option, 'N') = 'O') OR
23308         (NVL(l_enc_upg_option, 'N') = 'O')
23309       )
23310    THEN
23311    NULL;
23312    --
23313    --
23314    
23315    --
23316    --
23317    END IF;
23318 
23319        --
23320        -- Update the line information that should be overwritten
23321        --
23322        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23323                                          p_header_num   => 1);
23324        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23325 
23326        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23327 
23328        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23329           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23330        END IF;
23331 
23332       --
23333       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23334       --
23335       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23336           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23337       ELSE
23338           ---------------------------------------------------------------------------------------------------
23339           -- 4262811a Switch Sign
23340           ---------------------------------------------------------------------------------------------------
23341           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23342           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23343                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23344           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23345                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23346           -- 5132302
23347           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23348                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23349 
23350       END IF;
23351 
23352       -- 4955764
23353       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23354       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23355 
23356 
23357       XLA_AE_LINES_PKG.ValidateCurrentLine;
23358       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23359 
23360       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23361                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23362                ,p_balance_type_code => l_balance_type_code);
23363 
23364    END IF;
23365 
23366    -----------------------------------------------------------------------------------------
23367    -- 4262811 Multiperiod Accounting
23368    -----------------------------------------------------------------------------------------
23369      -- No MPA option is assigned.
23370 
23371 
23372 END IF;
23373 END IF;
23374 --
23375 
23376 --
23377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23378    trace
23379       (p_msg      => 'END of AcctLineType_74'
23380       ,p_level    => C_LEVEL_PROCEDURE
23381       ,p_module   => l_log_module);
23382 END IF;
23383 --
23384 EXCEPTION
23388        xla_exceptions_pkg.raise_message
23385   WHEN xla_exceptions_pkg.application_exception THEN
23386       RAISE;
23387   WHEN OTHERS THEN
23389            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_74');
23390 END AcctLineType_74;
23391 --
23392 
23393 ---------------------------------------
23394 --
23395 -- PRIVATE FUNCTION
23396 --         AcctLineType_75
23397 --
23398 ---------------------------------------
23399 PROCEDURE AcctLineType_75 (
23400   p_application_id        IN NUMBER
23401  ,p_event_id              IN NUMBER
23402  ,p_calculate_acctd_flag  IN VARCHAR2
23403  ,p_calculate_g_l_flag    IN VARCHAR2
23404  ,p_actual_flag           IN OUT VARCHAR2
23405  ,p_balance_type_code     OUT VARCHAR2
23406  ,p_gain_or_loss_ref      OUT VARCHAR2
23407  
23408 --Payment Currency Code
23409  , p_source_8            IN VARCHAR2
23410 --Automatic Offsets Value
23411  , p_source_10            IN VARCHAR2
23412  , p_source_10_meaning    IN VARCHAR2
23413 --Bank Cash Clearing Account
23414  , p_source_30            IN NUMBER
23415 --When to Account for Payment Option
23416  , p_source_57            IN VARCHAR2
23417 --Accounting Reversal Indicator
23418  , p_source_58            IN VARCHAR2
23419 --Distribution Link Type
23420  , p_source_60            IN VARCHAR2
23421 --Override Accounted Amount Indicator
23422  , p_source_85            IN VARCHAR2
23423  , p_source_85_meaning    IN VARCHAR2
23424 --Third Party Type
23425  , p_source_88            IN VARCHAR2
23426 --Business Flow Accounts Payable Application Identifier
23427  , p_source_96            IN NUMBER
23428 --Payment Distribution Type
23429  , p_source_101            IN VARCHAR2
23430  , p_source_101_meaning    IN VARCHAR2
23431 --Payment Distribution Amount
23432  , p_source_102            IN NUMBER
23433 --Business Flow Payment Distribution Type
23434  , p_source_103            IN VARCHAR2
23435 --Business Flow Payment Entity Code
23436  , p_source_104            IN VARCHAR2
23437 --Business Flow Payment Distribution Identifier
23438  , p_source_105            IN NUMBER
23439 --Business Flow Payment Identifier
23440  , p_source_106            IN NUMBER
23441 --Payment Distribution Identifier
23442  , p_source_107            IN NUMBER
23443 --Payment Supplier Identifier
23444  , p_source_113            IN NUMBER
23445 --Payment Supplier Site Identifier
23446  , p_source_114            IN NUMBER
23447 --Payment Distribution Reversed Identifier
23448  , p_source_115            IN NUMBER
23449 --Pooled Bank Account Option
23450  , p_source_116            IN VARCHAR2
23451  , p_source_116_meaning    IN VARCHAR2
23452 --Payment Maturity Date
23453  , p_source_117            IN DATE
23454 --Payment Distribution (Invoice Rate) Ledger Amount
23455  , p_source_119            IN NUMBER
23456 --Payment Exchange Date
23457  , p_source_120            IN DATE
23458 --Payment Exchange Rate
23459  , p_source_121            IN NUMBER
23460 --Payment Exchange Rate Type
23461  , p_source_122            IN VARCHAR2
23462 )
23463 IS
23464 
23465 l_component_type              VARCHAR2(80);
23466 l_component_code              VARCHAR2(30);
23467 l_component_type_code         VARCHAR2(1);
23468 l_component_appl_id           INTEGER;
23469 l_amb_context_code            VARCHAR2(30);
23470 l_entity_code                 VARCHAR2(30);
23471 l_event_class_code            VARCHAR2(30);
23472 l_ae_header_id                NUMBER;
23473 l_event_type_code             VARCHAR2(30);
23474 l_line_definition_code        VARCHAR2(30);
23475 l_line_definition_owner_code  VARCHAR2(1);
23476 --
23477 -- adr variables
23478 l_segment                     VARCHAR2(30);
23479 l_ccid                        NUMBER;
23480 l_adr_transaction_coa_id      NUMBER;
23481 l_adr_accounting_coa_id       NUMBER;
23482 l_adr_flexfield_segment_code  VARCHAR2(30);
23483 l_adr_flex_value_set_id       NUMBER;
23484 l_adr_value_type_code         VARCHAR2(30);
23485 l_adr_value_combination_id    NUMBER;
23486 l_adr_value_segment_code      VARCHAR2(30);
23487 
23488 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23489 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23490 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23491 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23492 
23493 -- 4262811 Variables ------------------------------------------------------------------------------------------
23494 l_entered_amt_idx             NUMBER;
23495 l_accted_amt_idx              NUMBER;
23496 l_acc_rev_flag                VARCHAR2(1);
23497 l_accrual_line_num            NUMBER;
23498 l_tmp_amt                     NUMBER;
23499 l_acc_rev_natural_side_code   VARCHAR2(1);
23500 
23501 l_num_entries                 NUMBER;
23502 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23503 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23504 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23505 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23506 l_recog_line_1                NUMBER;
23507 l_recog_line_2                NUMBER;
23508 
23509 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23510 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23511 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23512 
23516 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23513 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23514 
23515 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23517 
23518 ---------------------------------------------------------------------------------------------------------------
23519 
23520 
23521 --
23522 -- bulk performance
23523 --
23524 l_balance_type_code           VARCHAR2(1);
23525 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23526 l_log_module                  VARCHAR2(240);
23527 
23528 --
23529 -- Upgrade strategy
23530 --
23531 l_actual_upg_option           VARCHAR2(1);
23532 l_enc_upg_option           VARCHAR2(1);
23533 
23534 --
23535 BEGIN
23536 --
23537 IF g_log_enabled THEN
23538       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
23539 END IF;
23540 --
23541 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23542 
23543       trace
23544          (p_msg      => 'BEGIN of AcctLineType_75'
23545          ,p_level    => C_LEVEL_PROCEDURE
23546          ,p_module   => l_log_module);
23547 
23548 END IF;
23549 --
23550 l_component_type             := 'AMB_JLT';
23551 l_component_code             := 'AP_CASH_CLEAR_MAT_AS_INVXRATE';
23552 l_component_type_code        := 'S';
23553 l_component_appl_id          :=  200;
23554 l_amb_context_code           := 'DEFAULT';
23555 l_entity_code                := 'AP_PAYMENTS';
23556 l_event_class_code           := 'FUTURE DATED PAYMENTS';
23557 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
23558 l_line_definition_owner_code := 'S';
23559 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
23560 --
23561 l_balance_type_code          := 'A';
23562 l_segment                     := NULL;
23563 l_ccid                        := NULL;
23564 l_adr_transaction_coa_id      := NULL;
23565 l_adr_accounting_coa_id       := NULL;
23566 l_adr_flexfield_segment_code  := NULL;
23567 l_adr_flex_value_set_id       := NULL;
23568 l_adr_value_type_code         := NULL;
23569 l_adr_value_combination_id    := NULL;
23570 l_adr_value_segment_code      := NULL;
23571 
23572 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
23573 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23574 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23575 l_budgetary_control_flag     := 'N';
23576 
23577 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23578 l_bflow_applied_to_amt       := NULL; -- 5132302
23579 l_entered_amt_idx            := NULL;          -- 4262811
23580 l_accted_amt_idx             := NULL;          -- 4262811
23581 l_acc_rev_flag               := NULL;          -- 4262811
23582 l_accrual_line_num           := NULL;          -- 4262811
23583 l_tmp_amt                    := NULL;          -- 4262811
23584 --
23585  
23586 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23587     l_balance_type_code <> 'B' THEN
23588 IF NVL(p_source_57,'
23589 ') =  'ALWAYS_CLEAR' AND 
23590 (NVL(p_source_116,'
23591 ') =  'Y' AND 
23592 NVL(p_source_10,'
23593 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
23594 p_source_117 IS NOT NULL AND 
23595 NVL(p_source_101,'
23596 ') =  'CASH'
23597  THEN 
23598 
23599    --
23600    XLA_AE_LINES_PKG.SetNewLine;
23601 
23602    p_balance_type_code          := l_balance_type_code;
23603    -- set the flag so later we will know whether the gain loss line needs to be created
23604    
23605    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23606      p_actual_flag :='A';
23607    END IF;
23608 
23609    --
23610    -- bulk performance
23611    --
23612    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23613                                       p_header_num   => 0); -- 4262811
23614    --
23615    -- set accounting line options
23616    --
23617    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23618            p_natural_side_code          => 'C'
23619          , p_gain_or_loss_flag          => 'N'
23620          , p_gl_transfer_mode_code      => 'S'
23621          , p_acct_entry_type_code       => 'A'
23622          , p_switch_side_flag           => 'Y'
23623          , p_merge_duplicate_code       => 'A'
23624          );
23625    --
23626    l_acc_rev_natural_side_code := 'D';  -- 4262811
23627    -- 
23628    --
23629    -- set accounting line type info
23630    --
23631    xla_ae_lines_pkg.SetAcctLineType
23632       (p_component_type             => l_component_type
23633       ,p_event_type_code            => l_event_type_code
23634       ,p_line_definition_owner_code => l_line_definition_owner_code
23635       ,p_line_definition_code       => l_line_definition_code
23636       ,p_accounting_line_code       => l_component_code
23637       ,p_accounting_line_type_code  => l_component_type_code
23638       ,p_accounting_line_appl_id    => l_component_appl_id
23639       ,p_amb_context_code           => l_amb_context_code
23640       ,p_entity_code                => l_entity_code
23641       ,p_event_class_code           => l_event_class_code);
23642    --
23643    -- set accounting class
23644    --
23645    xla_ae_lines_pkg.SetAcctClass(
23646            p_accounting_class_code  => 'CASH_CLEARING'
23647          , p_ae_header_id           => l_ae_header_id
23648          );
23649 
23650    --
23651    -- set rounding class
23652    --
23656    --
23653    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23654                       'CASH_CLEARING';
23655 
23657    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23658    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23659    --
23660    -- bulk performance
23661    --
23662    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23663 
23664    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23665       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23666 
23667    -- 4955764
23668    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23669       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23670 
23671    -- 4458381 Public Sector Enh
23672    
23673    --
23674    -- set accounting attributes for the line type
23675    --
23676    l_entered_amt_idx := 9;
23677    l_accted_amt_idx  := 14;
23678    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
23679    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23680    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
23681    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23682    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
23683    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23684    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
23685    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23686    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
23687    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23688    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
23689    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23690    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
23691    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
23692    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
23693    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
23694    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
23695    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
23696    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
23697    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
23698    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
23699    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
23700    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
23701    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
23702    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
23703    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
23704    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
23705    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
23706    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
23707    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
23708    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
23709    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23710    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
23711    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23712    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
23713    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23714    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
23715    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
23716    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
23717    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
23718    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
23719 
23720    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23721    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23722 
23723    ---------------------------------------------------------------------------------------------------------------
23724    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23725    ---------------------------------------------------------------------------------------------------------------
23726    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23727 
23728    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23729    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23730 
23731    IF xla_accounting_cache_pkg.GetValueChar
23732          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23733          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23734    AND l_bflow_method_code = 'PRIOR_ENTRY'
23735 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23736    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23737          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23738        )
23739    THEN
23740          xla_ae_lines_pkg.BflowUpgEntry
23741            (p_business_method_code    => l_bflow_method_code
23742            ,p_business_class_code     => l_bflow_class_code
23743            ,p_balance_type            => l_balance_type_code);
23744    ELSE
23745       NULL;
23746 XLA_AE_LINES_PKG.business_flow_validation(
23750    END IF;
23747                                 p_business_method_code     => l_bflow_method_code
23748                                ,p_business_class_code      => l_bflow_class_code
23749                                ,p_inherit_description_flag => l_inherit_desc_flag);
23751 
23752    --
23753    -- call analytical criteria
23754    --
23755    
23756    --
23757    -- call description
23758    --
23759    -- No description or it is inherited.
23760    --
23761    -- call ADRs
23762    -- Bug 4922099
23763    --
23764    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23765         (NVL(l_actual_upg_option, 'N') = 'O') OR
23766         (NVL(l_enc_upg_option, 'N') = 'O')
23767       )
23768    THEN
23769    NULL;
23770    --
23771    --
23772    
23773    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
23774      p_code_combination_id      => TO_NUMBER(C_NUM)
23775    , p_value_type_code          => NULL
23776    , p_transaction_coa_id       => null
23777    , p_accounting_coa_id        => null
23778    , p_adr_code                 => NULL
23779    , p_adr_type_code            => NULL
23780    , p_component_type           => l_component_type
23781    , p_component_code           => l_component_code
23782    , p_component_type_code      => l_component_type_code
23783    , p_component_appl_id        => l_component_appl_id
23784    , p_amb_context_code         => l_amb_context_code
23785    , p_side                     => NULL
23786    );
23787 
23788    
23789   -- initialise segments
23790   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23791   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23792   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23793   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23794   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23795   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23796   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23797   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23798   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23799   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23800   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23801   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23802   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23803   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23804   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23805   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23806   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23807   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23808   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23809   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23810   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23811   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23812   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23813   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23814   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23815   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23816   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23817   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23818   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23819   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
23820   --
23821 
23822    --
23823 
23824 
23825    l_segment := AcctDerRule_16(
23826            p_application_id           => p_application_id
23827          , p_ae_header_id             => l_ae_header_id 
23828 , p_source_30 => p_source_30
23829          , x_transaction_coa_id       => l_adr_transaction_coa_id
23830          , x_accounting_coa_id        => l_adr_accounting_coa_id
23831          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
23832          , x_flex_value_set_id        => l_adr_flex_value_set_id
23833          , x_value_type_code          => l_adr_value_type_code
23834          , x_value_combination_id     => l_adr_value_combination_id
23835          , x_value_segment_code       => l_adr_value_segment_code
23836          , p_side                     => 'NA'
23837          , p_override_seg_flag        => 'Y'
23838    );
23839 
23840    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
23841 
23842       xla_ae_lines_pkg.set_segment(
23843           p_to_segment_code         => 'GL_ACCOUNT'
23844         , p_segment_value           => l_segment
23845         , p_from_segment_code       => l_adr_value_segment_code
23846         , p_from_combination_id     => l_adr_value_combination_id
23850         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
23847         , p_value_type_code         => l_adr_value_type_code
23848         , p_transaction_coa_id      => l_adr_transaction_coa_id
23849         , p_accounting_coa_id       => l_adr_accounting_coa_id
23851         , p_flex_value_set_id       => l_adr_flex_value_set_id
23852         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
23853         , p_adr_type_code           => 'S'
23854         , p_component_type          => l_component_type
23855         , p_component_code          => l_component_code
23856         , p_component_type_code     => l_component_type_code
23857         , p_component_appl_id       => l_component_appl_id
23858         , p_amb_context_code        => l_amb_context_code
23859         , p_entity_code             => 'AP_PAYMENTS'
23860         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
23861         , p_side                    => 'NA'
23862         );
23863 
23864   END IF;
23865 
23866    --
23867    --
23868    END IF;
23869    --
23870    -- Bug 4922099
23871    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23872           (NVL(l_enc_upg_option, 'N') = 'O')
23873         ) AND
23874         (l_bflow_method_code = 'PRIOR_ENTRY')
23875       )
23876    THEN
23877       IF
23878       --
23879       1 = 2
23880       --
23881       THEN
23882       xla_accounting_err_pkg.build_message
23883                                     (p_appli_s_name            => 'XLA'
23884                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23885                                     ,p_token_1                 => 'LINE_NUMBER'
23886                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23887                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23888                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23889                                                                              l_component_type
23890                                                                             ,l_component_code
23891                                                                             ,l_component_type_code
23892                                                                             ,l_component_appl_id
23893                                                                             ,l_amb_context_code
23894                                                                             ,l_entity_code
23895                                                                             ,l_event_class_code
23896                                                                            )
23897                                     ,p_token_3                 => 'OWNER'
23898                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23899                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23900                                                                           ,p_lookup_code    => l_component_type_code
23901                                                                          )
23902                                     ,p_token_4                 => 'PRODUCT_NAME'
23903                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23904                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23905                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23906                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23907                                     ,p_ae_header_id            =>  NULL
23908                                        );
23909 
23910         IF (C_LEVEL_ERROR>= g_log_level) THEN
23911                  trace
23912                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23913                       ,p_level    => C_LEVEL_ERROR
23914                       ,p_module   => l_log_module);
23915         END IF;
23916       END IF;
23917    END IF;
23918    --
23919    --
23920    ------------------------------------------------------------------------------------------------
23921    -- 4219869 Business Flow
23922    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23923    -- Prior Entry.  Currently, the following code is always generated.
23924    ------------------------------------------------------------------------------------------------
23925    XLA_AE_LINES_PKG.ValidateCurrentLine;
23926 
23927    ------------------------------------------------------------------------------------
23928    -- 4219869 Business Flow
23929    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23930    ------------------------------------------------------------------------------------
23931    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23932 
23933    ----------------------------------------------------------------------------------
23934    -- 4219869 Business Flow
23935    -- Update journal entry status -- Need to generate this within IF <condition>
23936    ----------------------------------------------------------------------------------
23937    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23938          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23939          ,p_balance_type_code => l_balance_type_code
23943    -- 4262811 - Generate the Accrual Reversal lines
23940          );
23941 
23942    -------------------------------------------------------------------------------------------
23944    -------------------------------------------------------------------------------------------
23945    BEGIN
23946       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23947                               (g_array_event(p_event_id).array_value_num('header_index'));
23948       IF l_acc_rev_flag IS NULL THEN
23949          l_acc_rev_flag := 'N';
23950       END IF;
23951    EXCEPTION
23952       WHEN OTHERS THEN
23953          l_acc_rev_flag := 'N';
23954    END;
23955    --
23956    IF (l_acc_rev_flag = 'Y') THEN
23957 
23958        -- 4645092  ------------------------------------------------------------------------------
23959        -- To allow MPA report to determine if it should generate report process
23960        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23961        ------------------------------------------------------------------------------------------
23962 
23963        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23964        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23965    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23966    -- call ADRs
23967    -- Bug 4922099
23968    --
23969    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23970         (NVL(l_actual_upg_option, 'N') = 'O') OR
23971         (NVL(l_enc_upg_option, 'N') = 'O')
23972       )
23973    THEN
23974    NULL;
23975    --
23976    --
23977    
23978    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
23979      p_code_combination_id      => TO_NUMBER(C_NUM)
23980    , p_value_type_code          => NULL
23981    , p_transaction_coa_id       => null
23982    , p_accounting_coa_id        => null
23983    , p_adr_code                 => NULL
23984    , p_adr_type_code            => NULL
23985    , p_component_type           => l_component_type
23986    , p_component_code           => l_component_code
23987    , p_component_type_code      => l_component_type_code
23988    , p_component_appl_id        => l_component_appl_id
23989    , p_amb_context_code         => l_amb_context_code
23990    , p_side                     => NULL
23991    );
23992 
23993    
23994   -- initialise segments
23995   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23996   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23997   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23998   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
23999   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24000   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24001   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24002   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24003   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
24004   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24005   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24006   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24007   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24008   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24009   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24010   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24011   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24012   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24013   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24014   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24015   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24016   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24017   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24018   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24019   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24020   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24021   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24022   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24023   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24024   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
24025   --
24026 
24027    --
24028 
24029 
24030    l_segment := AcctDerRule_16(
24031            p_application_id           => p_application_id
24032          , p_ae_header_id             => l_ae_header_id 
24033 , p_source_30 => p_source_30
24034          , x_transaction_coa_id       => l_adr_transaction_coa_id
24035          , x_accounting_coa_id        => l_adr_accounting_coa_id
24036          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
24037          , x_flex_value_set_id        => l_adr_flex_value_set_id
24038          , x_value_type_code          => l_adr_value_type_code
24042          , p_override_seg_flag        => 'Y'
24039          , x_value_combination_id     => l_adr_value_combination_id
24040          , x_value_segment_code       => l_adr_value_segment_code
24041          , p_side                     => 'NA'
24043    );
24044 
24045    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
24046 
24047       xla_ae_lines_pkg.set_segment(
24048           p_to_segment_code         => 'GL_ACCOUNT'
24049         , p_segment_value           => l_segment
24050         , p_from_segment_code       => l_adr_value_segment_code
24051         , p_from_combination_id     => l_adr_value_combination_id
24052         , p_value_type_code         => l_adr_value_type_code
24053         , p_transaction_coa_id      => l_adr_transaction_coa_id
24054         , p_accounting_coa_id       => l_adr_accounting_coa_id
24055         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
24056         , p_flex_value_set_id       => l_adr_flex_value_set_id
24057         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
24058         , p_adr_type_code           => 'S'
24059         , p_component_type          => l_component_type
24060         , p_component_code          => l_component_code
24061         , p_component_type_code     => l_component_type_code
24062         , p_component_appl_id       => l_component_appl_id
24063         , p_amb_context_code        => l_amb_context_code
24064         , p_entity_code             => 'AP_PAYMENTS'
24065         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24066         , p_side                    => 'NA'
24067         );
24068 
24069   END IF;
24070 
24071    --
24072    --
24073    END IF;
24074 
24075        --
24076        -- Update the line information that should be overwritten
24077        --
24078        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24079                                          p_header_num   => 1);
24080        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24081 
24082        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24083 
24084        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24085           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24086        END IF;
24087 
24088       --
24089       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24090       --
24091       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24092           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24093       ELSE
24094           ---------------------------------------------------------------------------------------------------
24095           -- 4262811a Switch Sign
24096           ---------------------------------------------------------------------------------------------------
24097           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24098           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24099                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24100           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24101                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24102           -- 5132302
24103           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24104                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24105 
24106       END IF;
24107 
24108       -- 4955764
24109       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24110       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24111 
24112 
24113       XLA_AE_LINES_PKG.ValidateCurrentLine;
24114       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24115 
24116       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24117                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24118                ,p_balance_type_code => l_balance_type_code);
24119 
24120    END IF;
24121 
24122    -----------------------------------------------------------------------------------------
24123    -- 4262811 Multiperiod Accounting
24124    -----------------------------------------------------------------------------------------
24125      -- No MPA option is assigned.
24126 
24127 
24128 END IF;
24129 END IF;
24130 --
24131 
24132 --
24133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24134    trace
24135       (p_msg      => 'END of AcctLineType_75'
24136       ,p_level    => C_LEVEL_PROCEDURE
24137       ,p_module   => l_log_module);
24138 END IF;
24139 --
24140 EXCEPTION
24141   WHEN xla_exceptions_pkg.application_exception THEN
24142       RAISE;
24143   WHEN OTHERS THEN
24144        xla_exceptions_pkg.raise_message
24145            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_75');
24146 END AcctLineType_75;
24147 --
24148 
24149 ---------------------------------------
24150 --
24151 -- PRIVATE FUNCTION
24152 --         AcctLineType_76
24153 --
24154 ---------------------------------------
24155 PROCEDURE AcctLineType_76 (
24156   p_application_id        IN NUMBER
24160  ,p_actual_flag           IN OUT VARCHAR2
24157  ,p_event_id              IN NUMBER
24158  ,p_calculate_acctd_flag  IN VARCHAR2
24159  ,p_calculate_g_l_flag    IN VARCHAR2
24161  ,p_balance_type_code     OUT VARCHAR2
24162  ,p_gain_or_loss_ref      OUT VARCHAR2
24163  
24164 --Payment Currency Code
24165  , p_source_8            IN VARCHAR2
24166 --Automatic Offsets Value
24167  , p_source_10            IN VARCHAR2
24168  , p_source_10_meaning    IN VARCHAR2
24169 --Bank Cash Clearing Account
24170  , p_source_30            IN NUMBER
24171 --When to Account for Payment Option
24172  , p_source_57            IN VARCHAR2
24173 --Accounting Reversal Indicator
24174  , p_source_58            IN VARCHAR2
24175 --Distribution Link Type
24176  , p_source_60            IN VARCHAR2
24177 --Override Accounted Amount Indicator
24178  , p_source_85            IN VARCHAR2
24179  , p_source_85_meaning    IN VARCHAR2
24180 --Third Party Type
24181  , p_source_88            IN VARCHAR2
24182 --Business Flow Accounts Payable Application Identifier
24183  , p_source_96            IN NUMBER
24184 --Payment Distribution Type
24185  , p_source_101            IN VARCHAR2
24186  , p_source_101_meaning    IN VARCHAR2
24187 --Payment Distribution Amount
24188  , p_source_102            IN NUMBER
24189 --Business Flow Payment Distribution Type
24190  , p_source_103            IN VARCHAR2
24191 --Business Flow Payment Entity Code
24192  , p_source_104            IN VARCHAR2
24193 --Business Flow Payment Distribution Identifier
24194  , p_source_105            IN NUMBER
24195 --Business Flow Payment Identifier
24196  , p_source_106            IN NUMBER
24197 --Payment Distribution Identifier
24198  , p_source_107            IN NUMBER
24199 --Payment Supplier Identifier
24200  , p_source_113            IN NUMBER
24201 --Payment Supplier Site Identifier
24202  , p_source_114            IN NUMBER
24203 --Payment Distribution Reversed Identifier
24204  , p_source_115            IN NUMBER
24205 --Pooled Bank Account Option
24206  , p_source_116            IN VARCHAR2
24207  , p_source_116_meaning    IN VARCHAR2
24208 --Payment Maturity Date
24209  , p_source_117            IN DATE
24210 --Payment Distribution (Invoice Rate) Ledger Amount
24211  , p_source_119            IN NUMBER
24212 --Payment Exchange Date
24213  , p_source_120            IN DATE
24214 --Payment Exchange Rate
24215  , p_source_121            IN NUMBER
24216 --Payment Exchange Rate Type
24217  , p_source_122            IN VARCHAR2
24218 )
24219 IS
24220 
24221 l_component_type              VARCHAR2(80);
24222 l_component_code              VARCHAR2(30);
24223 l_component_type_code         VARCHAR2(1);
24224 l_component_appl_id           INTEGER;
24225 l_amb_context_code            VARCHAR2(30);
24226 l_entity_code                 VARCHAR2(30);
24227 l_event_class_code            VARCHAR2(30);
24228 l_ae_header_id                NUMBER;
24229 l_event_type_code             VARCHAR2(30);
24230 l_line_definition_code        VARCHAR2(30);
24231 l_line_definition_owner_code  VARCHAR2(1);
24232 --
24233 -- adr variables
24234 l_segment                     VARCHAR2(30);
24235 l_ccid                        NUMBER;
24236 l_adr_transaction_coa_id      NUMBER;
24237 l_adr_accounting_coa_id       NUMBER;
24238 l_adr_flexfield_segment_code  VARCHAR2(30);
24239 l_adr_flex_value_set_id       NUMBER;
24240 l_adr_value_type_code         VARCHAR2(30);
24241 l_adr_value_combination_id    NUMBER;
24242 l_adr_value_segment_code      VARCHAR2(30);
24243 
24244 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24245 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24246 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24247 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24248 
24249 -- 4262811 Variables ------------------------------------------------------------------------------------------
24250 l_entered_amt_idx             NUMBER;
24251 l_accted_amt_idx              NUMBER;
24252 l_acc_rev_flag                VARCHAR2(1);
24253 l_accrual_line_num            NUMBER;
24254 l_tmp_amt                     NUMBER;
24255 l_acc_rev_natural_side_code   VARCHAR2(1);
24256 
24257 l_num_entries                 NUMBER;
24258 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24259 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24260 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24261 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24262 l_recog_line_1                NUMBER;
24263 l_recog_line_2                NUMBER;
24264 
24265 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24266 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24267 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24268 
24269 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24270 
24271 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24272 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24273 
24274 ---------------------------------------------------------------------------------------------------------------
24275 
24276 
24277 --
24278 -- bulk performance
24279 --
24280 l_balance_type_code           VARCHAR2(1);
24281 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24285 -- Upgrade strategy
24282 l_log_module                  VARCHAR2(240);
24283 
24284 --
24286 --
24287 l_actual_upg_option           VARCHAR2(1);
24288 l_enc_upg_option           VARCHAR2(1);
24289 
24290 --
24291 BEGIN
24292 --
24293 IF g_log_enabled THEN
24294       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
24295 END IF;
24296 --
24297 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24298 
24299       trace
24300          (p_msg      => 'BEGIN of AcctLineType_76'
24301          ,p_level    => C_LEVEL_PROCEDURE
24302          ,p_module   => l_log_module);
24303 
24304 END IF;
24305 --
24306 l_component_type             := 'AMB_JLT';
24307 l_component_code             := 'AP_CASH_CLEAR_MAT_BS_INVXRATE';
24308 l_component_type_code        := 'S';
24309 l_component_appl_id          :=  200;
24310 l_amb_context_code           := 'DEFAULT';
24311 l_entity_code                := 'AP_PAYMENTS';
24312 l_event_class_code           := 'FUTURE DATED PAYMENTS';
24313 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
24314 l_line_definition_owner_code := 'S';
24315 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
24316 --
24317 l_balance_type_code          := 'A';
24318 l_segment                     := NULL;
24319 l_ccid                        := NULL;
24320 l_adr_transaction_coa_id      := NULL;
24321 l_adr_accounting_coa_id       := NULL;
24322 l_adr_flexfield_segment_code  := NULL;
24323 l_adr_flex_value_set_id       := NULL;
24324 l_adr_value_type_code         := NULL;
24325 l_adr_value_combination_id    := NULL;
24326 l_adr_value_segment_code      := NULL;
24327 
24328 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
24329 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24330 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24331 l_budgetary_control_flag     := 'N';
24332 
24333 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24334 l_bflow_applied_to_amt       := NULL; -- 5132302
24335 l_entered_amt_idx            := NULL;          -- 4262811
24336 l_accted_amt_idx             := NULL;          -- 4262811
24337 l_acc_rev_flag               := NULL;          -- 4262811
24338 l_accrual_line_num           := NULL;          -- 4262811
24339 l_tmp_amt                    := NULL;          -- 4262811
24340 --
24341  
24342 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24343     l_balance_type_code <> 'B' THEN
24344 IF NVL(p_source_57,'
24345 ') =  'ALWAYS_CLEAR' AND 
24346 (NVL(p_source_116,'
24347 ') =  'Y' AND 
24348 NVL(p_source_10,'
24349 ') =  'BALANCING_SEGMENT') AND 
24350 p_source_117 IS NOT NULL AND 
24351 NVL(p_source_101,'
24352 ') =  'CASH'
24353  THEN 
24354 
24355    --
24356    XLA_AE_LINES_PKG.SetNewLine;
24357 
24358    p_balance_type_code          := l_balance_type_code;
24359    -- set the flag so later we will know whether the gain loss line needs to be created
24360    
24361    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24362      p_actual_flag :='A';
24363    END IF;
24364 
24365    --
24366    -- bulk performance
24367    --
24368    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24369                                       p_header_num   => 0); -- 4262811
24370    --
24371    -- set accounting line options
24372    --
24373    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24374            p_natural_side_code          => 'C'
24375          , p_gain_or_loss_flag          => 'N'
24376          , p_gl_transfer_mode_code      => 'S'
24377          , p_acct_entry_type_code       => 'A'
24378          , p_switch_side_flag           => 'Y'
24379          , p_merge_duplicate_code       => 'A'
24380          );
24381    --
24382    l_acc_rev_natural_side_code := 'D';  -- 4262811
24383    -- 
24384    --
24385    -- set accounting line type info
24386    --
24387    xla_ae_lines_pkg.SetAcctLineType
24388       (p_component_type             => l_component_type
24389       ,p_event_type_code            => l_event_type_code
24390       ,p_line_definition_owner_code => l_line_definition_owner_code
24391       ,p_line_definition_code       => l_line_definition_code
24392       ,p_accounting_line_code       => l_component_code
24393       ,p_accounting_line_type_code  => l_component_type_code
24394       ,p_accounting_line_appl_id    => l_component_appl_id
24395       ,p_amb_context_code           => l_amb_context_code
24396       ,p_entity_code                => l_entity_code
24397       ,p_event_class_code           => l_event_class_code);
24398    --
24399    -- set accounting class
24400    --
24401    xla_ae_lines_pkg.SetAcctClass(
24402            p_accounting_class_code  => 'CASH_CLEARING'
24403          , p_ae_header_id           => l_ae_header_id
24404          );
24405 
24406    --
24407    -- set rounding class
24408    --
24409    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24410                       'CASH_CLEARING';
24411 
24412    --
24413    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24414    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24415    --
24416    -- bulk performance
24417    --
24418    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24419 
24423    -- 4955764
24420    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24421       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24422 
24424    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24425       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24426 
24427    -- 4458381 Public Sector Enh
24428    
24429    --
24430    -- set accounting attributes for the line type
24431    --
24432    l_entered_amt_idx := 9;
24433    l_accted_amt_idx  := 14;
24434    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
24435    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24436    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
24437    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
24438    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
24439    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24440    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
24441    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
24442    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
24443    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
24444    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
24445    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24446    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
24447    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
24448    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
24449    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
24450    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
24451    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
24452    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
24453    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
24454    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
24455    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
24456    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
24457    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
24458    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
24459    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
24460    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
24461    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
24462    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
24463    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
24464    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
24465    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
24466    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
24467    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
24468    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
24469    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
24470    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
24471    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
24472    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
24473    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
24474    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
24475 
24476    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24477    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24478 
24479    ---------------------------------------------------------------------------------------------------------------
24480    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24481    ---------------------------------------------------------------------------------------------------------------
24482    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24483 
24484    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24485    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24486 
24487    IF xla_accounting_cache_pkg.GetValueChar
24488          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24489          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24490    AND l_bflow_method_code = 'PRIOR_ENTRY'
24491 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24492    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24493          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24494        )
24495    THEN
24496          xla_ae_lines_pkg.BflowUpgEntry
24497            (p_business_method_code    => l_bflow_method_code
24498            ,p_business_class_code     => l_bflow_class_code
24499            ,p_balance_type            => l_balance_type_code);
24500    ELSE
24501       NULL;
24502 XLA_AE_LINES_PKG.business_flow_validation(
24503                                 p_business_method_code     => l_bflow_method_code
24504                                ,p_business_class_code      => l_bflow_class_code
24505                                ,p_inherit_description_flag => l_inherit_desc_flag);
24506    END IF;
24507 
24508    --
24509    -- call analytical criteria
24510    --
24511    
24512    --
24513    -- call description
24514    --
24518    -- Bug 4922099
24515    -- No description or it is inherited.
24516    --
24517    -- call ADRs
24519    --
24520    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24521         (NVL(l_actual_upg_option, 'N') = 'O') OR
24522         (NVL(l_enc_upg_option, 'N') = 'O')
24523       )
24524    THEN
24525    NULL;
24526    --
24527    --
24528    
24529   l_ccid := AcctDerRule_38(
24530            p_application_id           => p_application_id
24531          , p_ae_header_id             => l_ae_header_id 
24532 , p_source_30 => p_source_30
24533          , x_transaction_coa_id       => l_adr_transaction_coa_id
24534          , x_accounting_coa_id        => l_adr_accounting_coa_id
24535          , x_value_type_code          => l_adr_value_type_code
24536          , p_side                     => 'NA'
24537    );
24538 
24539    xla_ae_lines_pkg.set_ccid(
24540     p_code_combination_id          => l_ccid
24541   , p_value_type_code              => l_adr_value_type_code
24542   , p_transaction_coa_id           => l_adr_transaction_coa_id
24543   , p_accounting_coa_id            => l_adr_accounting_coa_id
24544   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24545   , p_adr_type_code                => 'S'
24546   , p_component_type               => l_component_type
24547   , p_component_code               => l_component_code
24548   , p_component_type_code          => l_component_type_code
24549   , p_component_appl_id            => l_component_appl_id
24550   , p_amb_context_code             => l_amb_context_code
24551   , p_side                         => 'NA'
24552   );
24553 
24554 
24555    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
24556      p_to_segment_code         => 'GL_BALANCING'
24557    , p_segment_value           => C_CHAR
24558    , p_from_segment_code       => NULL
24559    , p_from_combination_id     => NULL
24560    , p_value_type_code         => NULL
24561    , p_transaction_coa_id      => null
24562    , p_accounting_coa_id       => null
24563    , p_flexfield_segment_code  => NULL
24564    , p_flex_value_set_id       => NULL
24565    , p_adr_code                => NULL
24566    , p_adr_type_code           => NULL
24567    , p_component_type          => l_component_type
24568    , p_component_code          => l_component_code
24569    , p_component_type_code     => l_component_type_code
24570    , p_component_appl_id       => l_component_appl_id
24571    , p_amb_context_code        => l_amb_context_code
24572    , p_entity_code             => 'AP_PAYMENTS'
24573    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24574    , p_side                    => 'NA'
24575    );
24576    --
24577 
24578 
24579    --
24580    --
24581    END IF;
24582    --
24583    -- Bug 4922099
24584    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24585           (NVL(l_enc_upg_option, 'N') = 'O')
24586         ) AND
24587         (l_bflow_method_code = 'PRIOR_ENTRY')
24588       )
24589    THEN
24590       IF
24591       --
24592       1 = 2
24593       --
24594       THEN
24595       xla_accounting_err_pkg.build_message
24596                                     (p_appli_s_name            => 'XLA'
24597                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24598                                     ,p_token_1                 => 'LINE_NUMBER'
24599                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24600                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24601                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24602                                                                              l_component_type
24603                                                                             ,l_component_code
24604                                                                             ,l_component_type_code
24605                                                                             ,l_component_appl_id
24606                                                                             ,l_amb_context_code
24607                                                                             ,l_entity_code
24608                                                                             ,l_event_class_code
24609                                                                            )
24610                                     ,p_token_3                 => 'OWNER'
24611                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24612                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24613                                                                           ,p_lookup_code    => l_component_type_code
24614                                                                          )
24615                                     ,p_token_4                 => 'PRODUCT_NAME'
24616                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24617                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24618                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24619                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24620                                     ,p_ae_header_id            =>  NULL
24621                                        );
24622 
24626                       ,p_level    => C_LEVEL_ERROR
24623         IF (C_LEVEL_ERROR>= g_log_level) THEN
24624                  trace
24625                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24627                       ,p_module   => l_log_module);
24628         END IF;
24629       END IF;
24630    END IF;
24631    --
24632    --
24633    ------------------------------------------------------------------------------------------------
24634    -- 4219869 Business Flow
24635    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24636    -- Prior Entry.  Currently, the following code is always generated.
24637    ------------------------------------------------------------------------------------------------
24638    XLA_AE_LINES_PKG.ValidateCurrentLine;
24639 
24640    ------------------------------------------------------------------------------------
24641    -- 4219869 Business Flow
24642    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24643    ------------------------------------------------------------------------------------
24644    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24645 
24646    ----------------------------------------------------------------------------------
24647    -- 4219869 Business Flow
24648    -- Update journal entry status -- Need to generate this within IF <condition>
24649    ----------------------------------------------------------------------------------
24650    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24651          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24652          ,p_balance_type_code => l_balance_type_code
24653          );
24654 
24655    -------------------------------------------------------------------------------------------
24656    -- 4262811 - Generate the Accrual Reversal lines
24657    -------------------------------------------------------------------------------------------
24658    BEGIN
24659       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24660                               (g_array_event(p_event_id).array_value_num('header_index'));
24661       IF l_acc_rev_flag IS NULL THEN
24662          l_acc_rev_flag := 'N';
24663       END IF;
24664    EXCEPTION
24665       WHEN OTHERS THEN
24666          l_acc_rev_flag := 'N';
24667    END;
24668    --
24669    IF (l_acc_rev_flag = 'Y') THEN
24670 
24671        -- 4645092  ------------------------------------------------------------------------------
24672        -- To allow MPA report to determine if it should generate report process
24673        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24674        ------------------------------------------------------------------------------------------
24675 
24676        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24677        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24678    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24679    -- call ADRs
24680    -- Bug 4922099
24681    --
24682    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24683         (NVL(l_actual_upg_option, 'N') = 'O') OR
24684         (NVL(l_enc_upg_option, 'N') = 'O')
24685       )
24686    THEN
24687    NULL;
24688    --
24689    --
24690    
24691   l_ccid := AcctDerRule_38(
24692            p_application_id           => p_application_id
24693          , p_ae_header_id             => l_ae_header_id 
24694 , p_source_30 => p_source_30
24695          , x_transaction_coa_id       => l_adr_transaction_coa_id
24696          , x_accounting_coa_id        => l_adr_accounting_coa_id
24697          , x_value_type_code          => l_adr_value_type_code
24698          , p_side                     => 'NA'
24699    );
24700 
24701    xla_ae_lines_pkg.set_ccid(
24702     p_code_combination_id          => l_ccid
24703   , p_value_type_code              => l_adr_value_type_code
24704   , p_transaction_coa_id           => l_adr_transaction_coa_id
24705   , p_accounting_coa_id            => l_adr_accounting_coa_id
24706   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24707   , p_adr_type_code                => 'S'
24708   , p_component_type               => l_component_type
24709   , p_component_code               => l_component_code
24710   , p_component_type_code          => l_component_type_code
24711   , p_component_appl_id            => l_component_appl_id
24712   , p_amb_context_code             => l_amb_context_code
24713   , p_side                         => 'NA'
24714   );
24715 
24716 
24717    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
24718      p_to_segment_code         => 'GL_BALANCING'
24719    , p_segment_value           => C_CHAR
24720    , p_from_segment_code       => NULL
24721    , p_from_combination_id     => NULL
24722    , p_value_type_code         => NULL
24723    , p_transaction_coa_id      => null
24724    , p_accounting_coa_id       => null
24725    , p_flexfield_segment_code  => NULL
24726    , p_flex_value_set_id       => NULL
24727    , p_adr_code                => NULL
24728    , p_adr_type_code           => NULL
24729    , p_component_type          => l_component_type
24730    , p_component_code          => l_component_code
24731    , p_component_type_code     => l_component_type_code
24732    , p_component_appl_id       => l_component_appl_id
24733    , p_amb_context_code        => l_amb_context_code
24734    , p_entity_code             => 'AP_PAYMENTS'
24735    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
24739 
24736    , p_side                    => 'NA'
24737    );
24738    --
24740 
24741    --
24742    --
24743    END IF;
24744 
24745        --
24746        -- Update the line information that should be overwritten
24747        --
24748        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24749                                          p_header_num   => 1);
24750        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24751 
24752        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24753 
24754        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24755           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24756        END IF;
24757 
24758       --
24759       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24760       --
24761       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24762           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24763       ELSE
24764           ---------------------------------------------------------------------------------------------------
24765           -- 4262811a Switch Sign
24766           ---------------------------------------------------------------------------------------------------
24767           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24768           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24769                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24770           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24771                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24772           -- 5132302
24773           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24774                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24775 
24776       END IF;
24777 
24778       -- 4955764
24779       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24780       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24781 
24782 
24783       XLA_AE_LINES_PKG.ValidateCurrentLine;
24784       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24785 
24786       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24787                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24788                ,p_balance_type_code => l_balance_type_code);
24789 
24790    END IF;
24791 
24792    -----------------------------------------------------------------------------------------
24793    -- 4262811 Multiperiod Accounting
24794    -----------------------------------------------------------------------------------------
24795      -- No MPA option is assigned.
24796 
24797 
24798 END IF;
24799 END IF;
24800 --
24801 
24802 --
24803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24804    trace
24805       (p_msg      => 'END of AcctLineType_76'
24806       ,p_level    => C_LEVEL_PROCEDURE
24807       ,p_module   => l_log_module);
24808 END IF;
24809 --
24810 EXCEPTION
24811   WHEN xla_exceptions_pkg.application_exception THEN
24812       RAISE;
24813   WHEN OTHERS THEN
24814        xla_exceptions_pkg.raise_message
24815            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_76');
24816 END AcctLineType_76;
24817 --
24818 
24819 ---------------------------------------
24820 --
24821 -- PRIVATE FUNCTION
24822 --         AcctLineType_77
24823 --
24824 ---------------------------------------
24825 PROCEDURE AcctLineType_77 (
24826   p_application_id        IN NUMBER
24827  ,p_event_id              IN NUMBER
24828  ,p_calculate_acctd_flag  IN VARCHAR2
24829  ,p_calculate_g_l_flag    IN VARCHAR2
24830  ,p_actual_flag           IN OUT VARCHAR2
24831  ,p_balance_type_code     OUT VARCHAR2
24832  ,p_gain_or_loss_ref      OUT VARCHAR2
24833  
24834 --Payment Currency Code
24835  , p_source_8            IN VARCHAR2
24836 --When to Account for Payment Option
24837  , p_source_57            IN VARCHAR2
24838 --Accounting Reversal Indicator
24839  , p_source_58            IN VARCHAR2
24840 --Distribution Link Type
24841  , p_source_60            IN VARCHAR2
24842 --Override Accounted Amount Indicator
24843  , p_source_85            IN VARCHAR2
24844  , p_source_85_meaning    IN VARCHAR2
24845 --Third Party Type
24846  , p_source_88            IN VARCHAR2
24847 --Invoice Distribution Tax Line Identifier
24848  , p_source_91            IN NUMBER
24849 --Invoice Distribution Summary Tax Line Identifier
24850  , p_source_93            IN NUMBER
24851 --Business Flow Accounts Payable Application Identifier
24852  , p_source_96            IN NUMBER
24853 --Payment Distribution Type
24854  , p_source_101            IN VARCHAR2
24855  , p_source_101_meaning    IN VARCHAR2
24856 --Payment Distribution Amount
24857  , p_source_102            IN NUMBER
24858 --Business Flow Payment Distribution Type
24859  , p_source_103            IN VARCHAR2
24860 --Business Flow Payment Entity Code
24861  , p_source_104            IN VARCHAR2
24862 --Business Flow Payment Identifier
24866 --Payment Distribution Reversed Identifier
24863  , p_source_106            IN NUMBER
24864 --Payment Distribution Identifier
24865  , p_source_107            IN NUMBER
24867  , p_source_115            IN NUMBER
24868 --Payment Maturity Date
24869  , p_source_117            IN DATE
24870 --Business Flow Payment Maturity Identifier
24871  , p_source_123            IN NUMBER
24872 --Payment Distribution (Matured Rate) Ledger Amount
24873  , p_source_124            IN NUMBER
24874 )
24875 IS
24876 
24877 l_component_type              VARCHAR2(80);
24878 l_component_code              VARCHAR2(30);
24879 l_component_type_code         VARCHAR2(1);
24880 l_component_appl_id           INTEGER;
24881 l_amb_context_code            VARCHAR2(30);
24882 l_entity_code                 VARCHAR2(30);
24883 l_event_class_code            VARCHAR2(30);
24884 l_ae_header_id                NUMBER;
24885 l_event_type_code             VARCHAR2(30);
24886 l_line_definition_code        VARCHAR2(30);
24887 l_line_definition_owner_code  VARCHAR2(1);
24888 --
24889 -- adr variables
24890 l_segment                     VARCHAR2(30);
24891 l_ccid                        NUMBER;
24892 l_adr_transaction_coa_id      NUMBER;
24893 l_adr_accounting_coa_id       NUMBER;
24894 l_adr_flexfield_segment_code  VARCHAR2(30);
24895 l_adr_flex_value_set_id       NUMBER;
24896 l_adr_value_type_code         VARCHAR2(30);
24897 l_adr_value_combination_id    NUMBER;
24898 l_adr_value_segment_code      VARCHAR2(30);
24899 
24900 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24901 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24902 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24903 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24904 
24905 -- 4262811 Variables ------------------------------------------------------------------------------------------
24906 l_entered_amt_idx             NUMBER;
24907 l_accted_amt_idx              NUMBER;
24908 l_acc_rev_flag                VARCHAR2(1);
24909 l_accrual_line_num            NUMBER;
24910 l_tmp_amt                     NUMBER;
24911 l_acc_rev_natural_side_code   VARCHAR2(1);
24912 
24913 l_num_entries                 NUMBER;
24914 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24915 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24916 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24917 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24918 l_recog_line_1                NUMBER;
24919 l_recog_line_2                NUMBER;
24920 
24921 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24922 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24923 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24924 
24925 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24926 
24927 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24928 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24929 
24930 ---------------------------------------------------------------------------------------------------------------
24931 
24932 
24933 --
24934 -- bulk performance
24935 --
24936 l_balance_type_code           VARCHAR2(1);
24937 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24938 l_log_module                  VARCHAR2(240);
24939 
24940 --
24941 -- Upgrade strategy
24942 --
24943 l_actual_upg_option           VARCHAR2(1);
24944 l_enc_upg_option           VARCHAR2(1);
24945 
24946 --
24947 BEGIN
24948 --
24949 IF g_log_enabled THEN
24950       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
24951 END IF;
24952 --
24953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24954 
24955       trace
24956          (p_msg      => 'BEGIN of AcctLineType_77'
24957          ,p_level    => C_LEVEL_PROCEDURE
24958          ,p_module   => l_log_module);
24959 
24960 END IF;
24961 --
24962 l_component_type             := 'AMB_JLT';
24963 l_component_code             := 'AP_CASH_CLEAR_MAT_CLEAR';
24964 l_component_type_code        := 'S';
24965 l_component_appl_id          :=  200;
24966 l_amb_context_code           := 'DEFAULT';
24967 l_entity_code                := 'AP_PAYMENTS';
24968 l_event_class_code           := 'RECONCILED PAYMENTS';
24969 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
24970 l_line_definition_owner_code := 'S';
24971 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
24972 --
24973 l_balance_type_code          := 'A';
24974 l_segment                     := NULL;
24975 l_ccid                        := NULL;
24976 l_adr_transaction_coa_id      := NULL;
24977 l_adr_accounting_coa_id       := NULL;
24978 l_adr_flexfield_segment_code  := NULL;
24979 l_adr_flex_value_set_id       := NULL;
24980 l_adr_value_type_code         := NULL;
24981 l_adr_value_combination_id    := NULL;
24982 l_adr_value_segment_code      := NULL;
24983 
24984 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
24985 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24986 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24987 l_budgetary_control_flag     := 'N';
24988 
24989 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24990 l_bflow_applied_to_amt       := NULL; -- 5132302
24994 l_accrual_line_num           := NULL;          -- 4262811
24991 l_entered_amt_idx            := NULL;          -- 4262811
24992 l_accted_amt_idx             := NULL;          -- 4262811
24993 l_acc_rev_flag               := NULL;          -- 4262811
24995 l_tmp_amt                    := NULL;          -- 4262811
24996 --
24997  
24998 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24999     l_balance_type_code <> 'B' THEN
25000 IF (NVL(p_source_57,'
25001 ') =  'ALWAYS_ALWAYS' OR 
25002 NVL(p_source_57,'
25003 ') =  'ALWAYS_CLEAR' OR 
25004 NVL(p_source_57,'
25005 ') =  'ALWAYS_ISSUE') AND 
25006 NVL(p_source_101,'
25007 ') =  'CASH' AND 
25008 p_source_117 IS NOT NULL 
25009  THEN 
25010 
25011    --
25012    XLA_AE_LINES_PKG.SetNewLine;
25013 
25014    p_balance_type_code          := l_balance_type_code;
25015    -- set the flag so later we will know whether the gain loss line needs to be created
25016    
25017    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25018      p_actual_flag :='A';
25019    END IF;
25020 
25021    --
25022    -- bulk performance
25023    --
25024    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25025                                       p_header_num   => 0); -- 4262811
25026    --
25027    -- set accounting line options
25028    --
25029    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25030            p_natural_side_code          => 'D'
25031          , p_gain_or_loss_flag          => 'N'
25032          , p_gl_transfer_mode_code      => 'S'
25033          , p_acct_entry_type_code       => 'A'
25034          , p_switch_side_flag           => 'Y'
25035          , p_merge_duplicate_code       => 'A'
25036          );
25037    --
25038    l_acc_rev_natural_side_code := 'C';  -- 4262811
25039    -- 
25040    --
25041    -- set accounting line type info
25042    --
25043    xla_ae_lines_pkg.SetAcctLineType
25044       (p_component_type             => l_component_type
25045       ,p_event_type_code            => l_event_type_code
25046       ,p_line_definition_owner_code => l_line_definition_owner_code
25047       ,p_line_definition_code       => l_line_definition_code
25048       ,p_accounting_line_code       => l_component_code
25049       ,p_accounting_line_type_code  => l_component_type_code
25050       ,p_accounting_line_appl_id    => l_component_appl_id
25051       ,p_amb_context_code           => l_amb_context_code
25052       ,p_entity_code                => l_entity_code
25053       ,p_event_class_code           => l_event_class_code);
25054    --
25055    -- set accounting class
25056    --
25057    xla_ae_lines_pkg.SetAcctClass(
25058            p_accounting_class_code  => 'CASH_CLEARING'
25059          , p_ae_header_id           => l_ae_header_id
25060          );
25061 
25062    --
25063    -- set rounding class
25064    --
25065    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25066                       'CASH_CLEARING';
25067 
25068    --
25069    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25070    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25071    --
25072    -- bulk performance
25073    --
25074    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25075 
25076    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25077       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25078 
25079    -- 4955764
25080    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25081       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25082 
25083    -- 4458381 Public Sector Enh
25084    
25085    --
25086    -- set accounting attributes for the line type
25087    --
25088    l_entered_amt_idx := 10;
25089    l_accted_amt_idx  := 12;
25090    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
25091    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25092    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
25093    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
25094    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
25095    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
25096    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
25097    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25098    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
25099    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
25100    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
25101    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
25102    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_123);
25103    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25104    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
25105    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
25106    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
25107    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
25108    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
25109    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
25110    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
25114    l_rec_acct_attrs.array_num_value(12)  := p_source_124;
25111    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
25112    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
25113    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
25115    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
25116    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
25117    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
25118    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
25119    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
25120    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
25121    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
25122    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
25123    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
25124    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
25125    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
25126    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
25127    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
25128    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
25129 
25130    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25131    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25132 
25133    ---------------------------------------------------------------------------------------------------------------
25134    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25135    ---------------------------------------------------------------------------------------------------------------
25136    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25137 
25138    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25139    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25140 
25141    IF xla_accounting_cache_pkg.GetValueChar
25142          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25143          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25144    AND l_bflow_method_code = 'PRIOR_ENTRY'
25145 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25146    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25147          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25148        )
25149    THEN
25150          xla_ae_lines_pkg.BflowUpgEntry
25151            (p_business_method_code    => l_bflow_method_code
25152            ,p_business_class_code     => l_bflow_class_code
25153            ,p_balance_type            => l_balance_type_code);
25154    ELSE
25155       NULL;
25156 XLA_AE_LINES_PKG.business_flow_validation(
25157                                 p_business_method_code     => l_bflow_method_code
25158                                ,p_business_class_code      => l_bflow_class_code
25159                                ,p_inherit_description_flag => l_inherit_desc_flag);
25160    END IF;
25161 
25162    --
25163    -- call analytical criteria
25164    --
25165    -- Inherited Analytical Criteria for business flow method of Prior Entry.
25166    --
25167    -- call description
25168    --
25169    -- No description or it is inherited.
25170    --
25171    -- call ADRs
25172    -- Bug 4922099
25173    --
25174    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25175         (NVL(l_actual_upg_option, 'N') = 'O') OR
25176         (NVL(l_enc_upg_option, 'N') = 'O')
25177       )
25178    THEN
25179    NULL;
25180    --
25181    --
25182    
25183    --
25184    --
25185    END IF;
25186    --
25187    -- Bug 4922099
25188    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25189           (NVL(l_enc_upg_option, 'N') = 'O')
25190         ) AND
25191         (l_bflow_method_code = 'PRIOR_ENTRY')
25192       )
25193    THEN
25194       IF
25195       --
25196       1 = 1
25197       --
25198       THEN
25199       xla_accounting_err_pkg.build_message
25200                                     (p_appli_s_name            => 'XLA'
25201                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25202                                     ,p_token_1                 => 'LINE_NUMBER'
25203                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25204                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25205                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25206                                                                              l_component_type
25207                                                                             ,l_component_code
25208                                                                             ,l_component_type_code
25209                                                                             ,l_component_appl_id
25210                                                                             ,l_amb_context_code
25211                                                                             ,l_entity_code
25212                                                                             ,l_event_class_code
25213                                                                            )
25214                                     ,p_token_3                 => 'OWNER'
25218                                                                          )
25215                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25216                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25217                                                                           ,p_lookup_code    => l_component_type_code
25219                                     ,p_token_4                 => 'PRODUCT_NAME'
25220                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25221                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25222                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25223                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25224                                     ,p_ae_header_id            =>  NULL
25225                                        );
25226 
25227         IF (C_LEVEL_ERROR>= g_log_level) THEN
25228                  trace
25229                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25230                       ,p_level    => C_LEVEL_ERROR
25231                       ,p_module   => l_log_module);
25232         END IF;
25233       END IF;
25234    END IF;
25235    --
25236    --
25237    ------------------------------------------------------------------------------------------------
25238    -- 4219869 Business Flow
25239    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25240    -- Prior Entry.  Currently, the following code is always generated.
25241    ------------------------------------------------------------------------------------------------
25242    -- No ValidateCurrentLine for business flow method of Prior Entry
25243 
25244    ------------------------------------------------------------------------------------
25245    -- 4219869 Business Flow
25246    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25247    ------------------------------------------------------------------------------------
25248    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25249 
25250    ----------------------------------------------------------------------------------
25251    -- 4219869 Business Flow
25252    -- Update journal entry status -- Need to generate this within IF <condition>
25253    ----------------------------------------------------------------------------------
25254    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25255          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25256          ,p_balance_type_code => l_balance_type_code
25257          );
25258 
25259    -------------------------------------------------------------------------------------------
25260    -- 4262811 - Generate the Accrual Reversal lines
25261    -------------------------------------------------------------------------------------------
25262    BEGIN
25263       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25264                               (g_array_event(p_event_id).array_value_num('header_index'));
25265       IF l_acc_rev_flag IS NULL THEN
25266          l_acc_rev_flag := 'N';
25267       END IF;
25268    EXCEPTION
25269       WHEN OTHERS THEN
25270          l_acc_rev_flag := 'N';
25271    END;
25272    --
25273    IF (l_acc_rev_flag = 'Y') THEN
25274 
25275        -- 4645092  ------------------------------------------------------------------------------
25276        -- To allow MPA report to determine if it should generate report process
25277        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25278        ------------------------------------------------------------------------------------------
25279 
25280        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25281        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25282    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25283    -- call ADRs
25284    -- Bug 4922099
25285    --
25286    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25287         (NVL(l_actual_upg_option, 'N') = 'O') OR
25288         (NVL(l_enc_upg_option, 'N') = 'O')
25289       )
25290    THEN
25291    NULL;
25292    --
25293    --
25294    
25295    --
25296    --
25297    END IF;
25298 
25299        --
25300        -- Update the line information that should be overwritten
25301        --
25302        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25303                                          p_header_num   => 1);
25304        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25305 
25306        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25307 
25308        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25309           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25310        END IF;
25311 
25312       --
25313       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25314       --
25315       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25316           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25317       ELSE
25321           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25318           ---------------------------------------------------------------------------------------------------
25319           -- 4262811a Switch Sign
25320           ---------------------------------------------------------------------------------------------------
25322           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25323                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25324           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25325                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25326           -- 5132302
25327           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25328                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25329 
25330       END IF;
25331 
25332       -- 4955764
25333       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25334       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25335 
25336 
25337       XLA_AE_LINES_PKG.ValidateCurrentLine;
25338       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25339 
25340       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25341                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25342                ,p_balance_type_code => l_balance_type_code);
25343 
25344    END IF;
25345 
25346    -----------------------------------------------------------------------------------------
25347    -- 4262811 Multiperiod Accounting
25348    -----------------------------------------------------------------------------------------
25349      -- No MPA option is assigned.
25350 
25351 
25352 END IF;
25353 END IF;
25354 --
25355 
25356 --
25357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25358    trace
25359       (p_msg      => 'END of AcctLineType_77'
25360       ,p_level    => C_LEVEL_PROCEDURE
25361       ,p_module   => l_log_module);
25362 END IF;
25363 --
25364 EXCEPTION
25365   WHEN xla_exceptions_pkg.application_exception THEN
25366       RAISE;
25367   WHEN OTHERS THEN
25368        xla_exceptions_pkg.raise_message
25369            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_77');
25370 END AcctLineType_77;
25371 --
25372 
25373 ---------------------------------------
25374 --
25375 -- PRIVATE FUNCTION
25376 --         AcctLineType_78
25377 --
25378 ---------------------------------------
25379 PROCEDURE AcctLineType_78 (
25380   p_application_id        IN NUMBER
25381  ,p_event_id              IN NUMBER
25382  ,p_calculate_acctd_flag  IN VARCHAR2
25383  ,p_calculate_g_l_flag    IN VARCHAR2
25384  ,p_actual_flag           IN OUT VARCHAR2
25385  ,p_balance_type_code     OUT VARCHAR2
25386  ,p_gain_or_loss_ref      OUT VARCHAR2
25387  
25388 --Payment Currency Code
25389  , p_source_8            IN VARCHAR2
25390 --Bank Cash Clearing Account
25391  , p_source_30            IN NUMBER
25392 --Automatic Offsets Flag
25393  , p_source_43            IN VARCHAR2
25394  , p_source_43_meaning    IN VARCHAR2
25395 --When to Account for Payment Option
25396  , p_source_57            IN VARCHAR2
25397 --Accounting Reversal Indicator
25398  , p_source_58            IN VARCHAR2
25399 --Distribution Link Type
25400  , p_source_60            IN VARCHAR2
25401 --Override Accounted Amount Indicator
25402  , p_source_85            IN VARCHAR2
25403  , p_source_85_meaning    IN VARCHAR2
25404 --Third Party Type
25405  , p_source_88            IN VARCHAR2
25406 --Invoice Distribution Tax Line Identifier
25407  , p_source_91            IN NUMBER
25408 --Invoice Distribution Tax Distribution Identifier from Tax
25409  , p_source_92            IN NUMBER
25410 --Invoice Distribution Summary Tax Line Identifier
25411  , p_source_93            IN NUMBER
25412 --Business Flow Accounts Payable Application Identifier
25413  , p_source_96            IN NUMBER
25414 --Business Flow Invoice Distribution Type
25415  , p_source_97            IN VARCHAR2
25416 --Business Flow Invoice Entity Code
25417  , p_source_98            IN VARCHAR2
25418 --Business Flow Invoice Distribution Identifier
25419  , p_source_99            IN NUMBER
25420 --Business Flow Invoice Identifier
25421  , p_source_100            IN NUMBER
25422 --Payment Distribution Type
25423  , p_source_101            IN VARCHAR2
25424  , p_source_101_meaning    IN VARCHAR2
25425 --Payment Distribution Amount
25426  , p_source_102            IN NUMBER
25427 --Payment Distribution Identifier
25428  , p_source_107            IN NUMBER
25429 --Payment Supplier Identifier
25430  , p_source_113            IN NUMBER
25431 --Payment Supplier Site Identifier
25432  , p_source_114            IN NUMBER
25433 --Payment Distribution Reversed Identifier
25434  , p_source_115            IN NUMBER
25435 --Pooled Bank Account Option
25436  , p_source_116            IN VARCHAR2
25437  , p_source_116_meaning    IN VARCHAR2
25438 --Payment Maturity Date
25439  , p_source_117            IN DATE
25440 --Payment Distribution (Payment Rate) Ledger Amount
25441  , p_source_118            IN NUMBER
25442 --Payment Exchange Date
25446 --Payment Exchange Rate Type
25443  , p_source_120            IN DATE
25444 --Payment Exchange Rate
25445  , p_source_121            IN NUMBER
25447  , p_source_122            IN VARCHAR2
25448 --Payment Type
25449  , p_source_125            IN VARCHAR2
25450  , p_source_125_meaning    IN VARCHAR2
25451 --Payment Processing Type
25452  , p_source_126            IN VARCHAR2
25453 --Invoice Distribution Amount of the Payment Distribution
25454  , p_source_127            IN NUMBER
25455 )
25456 IS
25457 
25458 l_component_type              VARCHAR2(80);
25459 l_component_code              VARCHAR2(30);
25460 l_component_type_code         VARCHAR2(1);
25461 l_component_appl_id           INTEGER;
25462 l_amb_context_code            VARCHAR2(30);
25463 l_entity_code                 VARCHAR2(30);
25464 l_event_class_code            VARCHAR2(30);
25465 l_ae_header_id                NUMBER;
25466 l_event_type_code             VARCHAR2(30);
25467 l_line_definition_code        VARCHAR2(30);
25468 l_line_definition_owner_code  VARCHAR2(1);
25469 --
25470 -- adr variables
25471 l_segment                     VARCHAR2(30);
25472 l_ccid                        NUMBER;
25473 l_adr_transaction_coa_id      NUMBER;
25474 l_adr_accounting_coa_id       NUMBER;
25475 l_adr_flexfield_segment_code  VARCHAR2(30);
25476 l_adr_flex_value_set_id       NUMBER;
25477 l_adr_value_type_code         VARCHAR2(30);
25478 l_adr_value_combination_id    NUMBER;
25479 l_adr_value_segment_code      VARCHAR2(30);
25480 
25481 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25482 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25483 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25484 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25485 
25486 -- 4262811 Variables ------------------------------------------------------------------------------------------
25487 l_entered_amt_idx             NUMBER;
25488 l_accted_amt_idx              NUMBER;
25489 l_acc_rev_flag                VARCHAR2(1);
25490 l_accrual_line_num            NUMBER;
25491 l_tmp_amt                     NUMBER;
25492 l_acc_rev_natural_side_code   VARCHAR2(1);
25493 
25494 l_num_entries                 NUMBER;
25495 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25496 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25497 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25498 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25499 l_recog_line_1                NUMBER;
25500 l_recog_line_2                NUMBER;
25501 
25502 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25503 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25504 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25505 
25506 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25507 
25508 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25509 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25510 
25511 ---------------------------------------------------------------------------------------------------------------
25512 
25513 
25514 --
25515 -- bulk performance
25516 --
25517 l_balance_type_code           VARCHAR2(1);
25518 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25519 l_log_module                  VARCHAR2(240);
25520 
25521 --
25522 -- Upgrade strategy
25523 --
25524 l_actual_upg_option           VARCHAR2(1);
25525 l_enc_upg_option           VARCHAR2(1);
25526 
25527 --
25528 BEGIN
25529 --
25530 IF g_log_enabled THEN
25531       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
25532 END IF;
25533 --
25534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25535 
25536       trace
25537          (p_msg      => 'BEGIN of AcctLineType_78'
25538          ,p_level    => C_LEVEL_PROCEDURE
25539          ,p_module   => l_log_module);
25540 
25541 END IF;
25542 --
25543 l_component_type             := 'AMB_JLT';
25544 l_component_code             := 'AP_CASH_CLEAR_PMT';
25545 l_component_type_code        := 'S';
25546 l_component_appl_id          :=  200;
25547 l_amb_context_code           := 'DEFAULT';
25548 l_entity_code                := 'AP_PAYMENTS';
25549 l_event_class_code           := 'PAYMENTS';
25550 l_event_type_code            := 'PAYMENTS_ALL';
25551 l_line_definition_owner_code := 'S';
25552 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
25553 --
25554 l_balance_type_code          := 'A';
25555 l_segment                     := NULL;
25556 l_ccid                        := NULL;
25557 l_adr_transaction_coa_id      := NULL;
25558 l_adr_accounting_coa_id       := NULL;
25559 l_adr_flexfield_segment_code  := NULL;
25560 l_adr_flex_value_set_id       := NULL;
25561 l_adr_value_type_code         := NULL;
25562 l_adr_value_combination_id    := NULL;
25563 l_adr_value_segment_code      := NULL;
25564 
25565 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
25566 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25567 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25568 l_budgetary_control_flag     := 'N';
25569 
25570 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25571 l_bflow_applied_to_amt       := NULL; -- 5132302
25572 l_entered_amt_idx            := NULL;          -- 4262811
25576 l_tmp_amt                    := NULL;          -- 4262811
25573 l_accted_amt_idx             := NULL;          -- 4262811
25574 l_acc_rev_flag               := NULL;          -- 4262811
25575 l_accrual_line_num           := NULL;          -- 4262811
25577 --
25578  
25579 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25580     l_balance_type_code <> 'B' THEN
25581 IF NVL(p_source_57,'
25582 ') =  'ALWAYS_ALWAYS' AND 
25583 (NVL(p_source_43,'
25584 ') <>  'Y' OR 
25585 NVL(p_source_43,'
25586 ') =  'Y' AND 
25587 NVL(p_source_116,'
25588 ') <>  'Y') AND 
25589 p_source_117 IS NULL AND 
25590 NVL(p_source_101,'
25591 ') =  'CASH' AND 
25592 NVL(p_source_125,'
25593 ') <>  'R' AND 
25594 NVL(p_source_126,'
25595 ') <>  'PAYMENTCARD'
25596  THEN 
25597 
25598    --
25599    XLA_AE_LINES_PKG.SetNewLine;
25600 
25601    p_balance_type_code          := l_balance_type_code;
25602    -- set the flag so later we will know whether the gain loss line needs to be created
25603    
25604    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25605      p_actual_flag :='A';
25606    END IF;
25607 
25608    --
25609    -- bulk performance
25610    --
25611    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25612                                       p_header_num   => 0); -- 4262811
25613    --
25614    -- set accounting line options
25615    --
25616    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25617            p_natural_side_code          => 'C'
25618          , p_gain_or_loss_flag          => 'N'
25619          , p_gl_transfer_mode_code      => 'S'
25620          , p_acct_entry_type_code       => 'A'
25621          , p_switch_side_flag           => 'Y'
25622          , p_merge_duplicate_code       => 'A'
25623          );
25624    --
25625    l_acc_rev_natural_side_code := 'D';  -- 4262811
25626    -- 
25627    --
25628    -- set accounting line type info
25629    --
25630    xla_ae_lines_pkg.SetAcctLineType
25631       (p_component_type             => l_component_type
25632       ,p_event_type_code            => l_event_type_code
25633       ,p_line_definition_owner_code => l_line_definition_owner_code
25634       ,p_line_definition_code       => l_line_definition_code
25635       ,p_accounting_line_code       => l_component_code
25636       ,p_accounting_line_type_code  => l_component_type_code
25637       ,p_accounting_line_appl_id    => l_component_appl_id
25638       ,p_amb_context_code           => l_amb_context_code
25639       ,p_entity_code                => l_entity_code
25640       ,p_event_class_code           => l_event_class_code);
25641    --
25642    -- set accounting class
25643    --
25644    xla_ae_lines_pkg.SetAcctClass(
25645            p_accounting_class_code  => 'CASH_CLEARING'
25646          , p_ae_header_id           => l_ae_header_id
25647          );
25648 
25649    --
25650    -- set rounding class
25651    --
25652    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25653                       'CASH_CLEARING';
25654 
25655    --
25656    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25657    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25658    --
25659    -- bulk performance
25660    --
25661    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25662 
25663    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25664       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25665 
25666    -- 4955764
25667    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25668       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25669 
25670    -- 4458381 Public Sector Enh
25671    
25672    --
25673    -- set accounting attributes for the line type
25674    --
25675    l_entered_amt_idx := 10;
25676    l_accted_amt_idx  := 15;
25677    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
25678    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25679    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
25680    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
25681    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
25682    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
25683    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
25684    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25685    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
25686    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
25687    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
25688    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
25689    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
25690    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25691    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
25692    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
25693    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
25694    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
25695    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
25696    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
25700    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
25697    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
25698    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
25699    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
25701    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
25702    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
25703    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
25704    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
25705    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
25706    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
25707    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
25708    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
25709    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
25710    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
25711    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
25712    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
25713    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
25714    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
25715    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
25716    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
25717    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
25718    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
25719    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
25720    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
25721    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
25722    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
25723    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
25724    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
25725    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
25726 
25727    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25728    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25729 
25730    ---------------------------------------------------------------------------------------------------------------
25731    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25732    ---------------------------------------------------------------------------------------------------------------
25733    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25734 
25735    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25736    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25737 
25738    IF xla_accounting_cache_pkg.GetValueChar
25739          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25740          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25741    AND l_bflow_method_code = 'PRIOR_ENTRY'
25742 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25743    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25744          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25745        )
25746    THEN
25747          xla_ae_lines_pkg.BflowUpgEntry
25748            (p_business_method_code    => l_bflow_method_code
25749            ,p_business_class_code     => l_bflow_class_code
25750            ,p_balance_type            => l_balance_type_code);
25751    ELSE
25752       NULL;
25753 -- No business flow processing for business flow method of NONE.
25754    END IF;
25755 
25756    --
25757    -- call analytical criteria
25758    --
25759    
25760    --
25761    -- call description
25762    --
25763    -- No description or it is inherited.
25764    --
25765    -- call ADRs
25766    -- Bug 4922099
25767    --
25768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25769         (NVL(l_actual_upg_option, 'N') = 'O') OR
25770         (NVL(l_enc_upg_option, 'N') = 'O')
25771       )
25772    THEN
25773    NULL;
25774    --
25775    --
25776    
25777   l_ccid := AcctDerRule_38(
25778            p_application_id           => p_application_id
25779          , p_ae_header_id             => l_ae_header_id 
25780 , p_source_30 => p_source_30
25781          , x_transaction_coa_id       => l_adr_transaction_coa_id
25782          , x_accounting_coa_id        => l_adr_accounting_coa_id
25783          , x_value_type_code          => l_adr_value_type_code
25784          , p_side                     => 'NA'
25785    );
25786 
25787    xla_ae_lines_pkg.set_ccid(
25788     p_code_combination_id          => l_ccid
25789   , p_value_type_code              => l_adr_value_type_code
25790   , p_transaction_coa_id           => l_adr_transaction_coa_id
25791   , p_accounting_coa_id            => l_adr_accounting_coa_id
25792   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25793   , p_adr_type_code                => 'S'
25794   , p_component_type               => l_component_type
25795   , p_component_code               => l_component_code
25796   , p_component_type_code          => l_component_type_code
25797   , p_component_appl_id            => l_component_appl_id
25798   , p_amb_context_code             => l_amb_context_code
25799   , p_side                         => 'NA'
25800   );
25801 
25802 
25803    --
25804    --
25805    END IF;
25806    --
25807    -- Bug 4922099
25811         (l_bflow_method_code = 'PRIOR_ENTRY')
25808    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25809           (NVL(l_enc_upg_option, 'N') = 'O')
25810         ) AND
25812       )
25813    THEN
25814       IF
25815       --
25816       1 = 2
25817       --
25818       THEN
25819       xla_accounting_err_pkg.build_message
25820                                     (p_appli_s_name            => 'XLA'
25821                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25822                                     ,p_token_1                 => 'LINE_NUMBER'
25823                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25824                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25825                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25826                                                                              l_component_type
25827                                                                             ,l_component_code
25828                                                                             ,l_component_type_code
25829                                                                             ,l_component_appl_id
25830                                                                             ,l_amb_context_code
25831                                                                             ,l_entity_code
25832                                                                             ,l_event_class_code
25833                                                                            )
25834                                     ,p_token_3                 => 'OWNER'
25835                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25836                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25837                                                                           ,p_lookup_code    => l_component_type_code
25838                                                                          )
25839                                     ,p_token_4                 => 'PRODUCT_NAME'
25840                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25841                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25842                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25843                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25844                                     ,p_ae_header_id            =>  NULL
25845                                        );
25846 
25847         IF (C_LEVEL_ERROR>= g_log_level) THEN
25848                  trace
25849                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25850                       ,p_level    => C_LEVEL_ERROR
25851                       ,p_module   => l_log_module);
25852         END IF;
25853       END IF;
25854    END IF;
25855    --
25856    --
25857    ------------------------------------------------------------------------------------------------
25858    -- 4219869 Business Flow
25859    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25860    -- Prior Entry.  Currently, the following code is always generated.
25861    ------------------------------------------------------------------------------------------------
25862    XLA_AE_LINES_PKG.ValidateCurrentLine;
25863 
25864    ------------------------------------------------------------------------------------
25865    -- 4219869 Business Flow
25866    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25867    ------------------------------------------------------------------------------------
25868    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25869 
25870    ----------------------------------------------------------------------------------
25871    -- 4219869 Business Flow
25872    -- Update journal entry status -- Need to generate this within IF <condition>
25873    ----------------------------------------------------------------------------------
25874    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25875          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25876          ,p_balance_type_code => l_balance_type_code
25877          );
25878 
25879    -------------------------------------------------------------------------------------------
25880    -- 4262811 - Generate the Accrual Reversal lines
25881    -------------------------------------------------------------------------------------------
25882    BEGIN
25883       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25884                               (g_array_event(p_event_id).array_value_num('header_index'));
25885       IF l_acc_rev_flag IS NULL THEN
25886          l_acc_rev_flag := 'N';
25887       END IF;
25888    EXCEPTION
25889       WHEN OTHERS THEN
25890          l_acc_rev_flag := 'N';
25891    END;
25892    --
25893    IF (l_acc_rev_flag = 'Y') THEN
25894 
25895        -- 4645092  ------------------------------------------------------------------------------
25896        -- To allow MPA report to determine if it should generate report process
25897        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25898        ------------------------------------------------------------------------------------------
25899 
25900        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25901        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25905    --
25902    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25903    -- call ADRs
25904    -- Bug 4922099
25906    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25907         (NVL(l_actual_upg_option, 'N') = 'O') OR
25908         (NVL(l_enc_upg_option, 'N') = 'O')
25909       )
25910    THEN
25911    NULL;
25912    --
25913    --
25914    
25915   l_ccid := AcctDerRule_38(
25916            p_application_id           => p_application_id
25917          , p_ae_header_id             => l_ae_header_id 
25918 , p_source_30 => p_source_30
25919          , x_transaction_coa_id       => l_adr_transaction_coa_id
25920          , x_accounting_coa_id        => l_adr_accounting_coa_id
25921          , x_value_type_code          => l_adr_value_type_code
25922          , p_side                     => 'NA'
25923    );
25924 
25925    xla_ae_lines_pkg.set_ccid(
25926     p_code_combination_id          => l_ccid
25927   , p_value_type_code              => l_adr_value_type_code
25928   , p_transaction_coa_id           => l_adr_transaction_coa_id
25929   , p_accounting_coa_id            => l_adr_accounting_coa_id
25930   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
25931   , p_adr_type_code                => 'S'
25932   , p_component_type               => l_component_type
25933   , p_component_code               => l_component_code
25934   , p_component_type_code          => l_component_type_code
25935   , p_component_appl_id            => l_component_appl_id
25936   , p_amb_context_code             => l_amb_context_code
25937   , p_side                         => 'NA'
25938   );
25939 
25940 
25941    --
25942    --
25943    END IF;
25944 
25945        --
25946        -- Update the line information that should be overwritten
25947        --
25948        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25949                                          p_header_num   => 1);
25950        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25951 
25952        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25953 
25954        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25955           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25956        END IF;
25957 
25958       --
25959       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25960       --
25961       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25962           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25963       ELSE
25964           ---------------------------------------------------------------------------------------------------
25965           -- 4262811a Switch Sign
25966           ---------------------------------------------------------------------------------------------------
25967           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25968           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25969                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25970           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25971                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25972           -- 5132302
25973           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25974                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25975 
25976       END IF;
25977 
25978       -- 4955764
25979       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25980       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25981 
25982 
25983       XLA_AE_LINES_PKG.ValidateCurrentLine;
25984       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25985 
25986       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25987                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25988                ,p_balance_type_code => l_balance_type_code);
25989 
25990    END IF;
25991 
25992    -----------------------------------------------------------------------------------------
25993    -- 4262811 Multiperiod Accounting
25994    -----------------------------------------------------------------------------------------
25995      -- No MPA option is assigned.
25996 
25997 
25998 END IF;
25999 END IF;
26000 --
26001 
26002 --
26003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26004    trace
26005       (p_msg      => 'END of AcctLineType_78'
26006       ,p_level    => C_LEVEL_PROCEDURE
26007       ,p_module   => l_log_module);
26008 END IF;
26009 --
26010 EXCEPTION
26011   WHEN xla_exceptions_pkg.application_exception THEN
26012       RAISE;
26013   WHEN OTHERS THEN
26014        xla_exceptions_pkg.raise_message
26015            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_78');
26016 END AcctLineType_78;
26017 --
26018 
26019 ---------------------------------------
26020 --
26021 -- PRIVATE FUNCTION
26022 --         AcctLineType_79
26023 --
26027  ,p_event_id              IN NUMBER
26024 ---------------------------------------
26025 PROCEDURE AcctLineType_79 (
26026   p_application_id        IN NUMBER
26028  ,p_calculate_acctd_flag  IN VARCHAR2
26029  ,p_calculate_g_l_flag    IN VARCHAR2
26030  ,p_actual_flag           IN OUT VARCHAR2
26031  ,p_balance_type_code     OUT VARCHAR2
26032  ,p_gain_or_loss_ref      OUT VARCHAR2
26033  
26034 --Payment Currency Code
26035  , p_source_8            IN VARCHAR2
26036 --Automatic Offsets Value
26037  , p_source_10            IN VARCHAR2
26038  , p_source_10_meaning    IN VARCHAR2
26039 --Bank Cash Clearing Account
26040  , p_source_30            IN NUMBER
26041 --When to Account for Payment Option
26042  , p_source_57            IN VARCHAR2
26043 --Accounting Reversal Indicator
26044  , p_source_58            IN VARCHAR2
26045 --Distribution Link Type
26046  , p_source_60            IN VARCHAR2
26047 --Override Accounted Amount Indicator
26048  , p_source_85            IN VARCHAR2
26049  , p_source_85_meaning    IN VARCHAR2
26050 --Third Party Type
26051  , p_source_88            IN VARCHAR2
26052 --Invoice Distribution Tax Line Identifier
26053  , p_source_91            IN NUMBER
26054 --Invoice Distribution Tax Distribution Identifier from Tax
26055  , p_source_92            IN NUMBER
26056 --Invoice Distribution Summary Tax Line Identifier
26057  , p_source_93            IN NUMBER
26058 --Business Flow Accounts Payable Application Identifier
26059  , p_source_96            IN NUMBER
26060 --Business Flow Invoice Distribution Type
26061  , p_source_97            IN VARCHAR2
26062 --Business Flow Invoice Entity Code
26063  , p_source_98            IN VARCHAR2
26064 --Business Flow Invoice Distribution Identifier
26065  , p_source_99            IN NUMBER
26066 --Business Flow Invoice Identifier
26067  , p_source_100            IN NUMBER
26068 --Payment Distribution Type
26069  , p_source_101            IN VARCHAR2
26070  , p_source_101_meaning    IN VARCHAR2
26071 --Payment Distribution Amount
26072  , p_source_102            IN NUMBER
26073 --Payment Distribution Identifier
26074  , p_source_107            IN NUMBER
26075 --Payment Supplier Identifier
26076  , p_source_113            IN NUMBER
26077 --Payment Supplier Site Identifier
26078  , p_source_114            IN NUMBER
26079 --Payment Distribution Reversed Identifier
26080  , p_source_115            IN NUMBER
26081 --Pooled Bank Account Option
26082  , p_source_116            IN VARCHAR2
26083  , p_source_116_meaning    IN VARCHAR2
26084 --Payment Maturity Date
26085  , p_source_117            IN DATE
26086 --Payment Distribution (Payment Rate) Ledger Amount
26087  , p_source_118            IN NUMBER
26088 --Payment Exchange Date
26089  , p_source_120            IN DATE
26090 --Payment Exchange Rate
26091  , p_source_121            IN NUMBER
26092 --Payment Exchange Rate Type
26093  , p_source_122            IN VARCHAR2
26094 --Payment Type
26095  , p_source_125            IN VARCHAR2
26096  , p_source_125_meaning    IN VARCHAR2
26097 --Payment Processing Type
26098  , p_source_126            IN VARCHAR2
26099 --Invoice Distribution Amount of the Payment Distribution
26100  , p_source_127            IN NUMBER
26101 )
26102 IS
26103 
26104 l_component_type              VARCHAR2(80);
26105 l_component_code              VARCHAR2(30);
26106 l_component_type_code         VARCHAR2(1);
26107 l_component_appl_id           INTEGER;
26108 l_amb_context_code            VARCHAR2(30);
26109 l_entity_code                 VARCHAR2(30);
26110 l_event_class_code            VARCHAR2(30);
26111 l_ae_header_id                NUMBER;
26112 l_event_type_code             VARCHAR2(30);
26113 l_line_definition_code        VARCHAR2(30);
26114 l_line_definition_owner_code  VARCHAR2(1);
26115 --
26116 -- adr variables
26117 l_segment                     VARCHAR2(30);
26118 l_ccid                        NUMBER;
26119 l_adr_transaction_coa_id      NUMBER;
26120 l_adr_accounting_coa_id       NUMBER;
26121 l_adr_flexfield_segment_code  VARCHAR2(30);
26122 l_adr_flex_value_set_id       NUMBER;
26123 l_adr_value_type_code         VARCHAR2(30);
26124 l_adr_value_combination_id    NUMBER;
26125 l_adr_value_segment_code      VARCHAR2(30);
26126 
26127 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26128 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26129 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26130 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26131 
26132 -- 4262811 Variables ------------------------------------------------------------------------------------------
26133 l_entered_amt_idx             NUMBER;
26134 l_accted_amt_idx              NUMBER;
26135 l_acc_rev_flag                VARCHAR2(1);
26136 l_accrual_line_num            NUMBER;
26137 l_tmp_amt                     NUMBER;
26138 l_acc_rev_natural_side_code   VARCHAR2(1);
26139 
26140 l_num_entries                 NUMBER;
26141 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26142 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26143 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26144 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26145 l_recog_line_1                NUMBER;
26146 l_recog_line_2                NUMBER;
26147 
26148 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26152 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26149 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26150 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26151 
26153 
26154 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26155 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26156 
26157 ---------------------------------------------------------------------------------------------------------------
26158 
26159 
26160 --
26161 -- bulk performance
26162 --
26163 l_balance_type_code           VARCHAR2(1);
26164 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26165 l_log_module                  VARCHAR2(240);
26166 
26167 --
26168 -- Upgrade strategy
26169 --
26170 l_actual_upg_option           VARCHAR2(1);
26171 l_enc_upg_option           VARCHAR2(1);
26172 
26173 --
26174 BEGIN
26175 --
26176 IF g_log_enabled THEN
26177       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
26178 END IF;
26179 --
26180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26181 
26182       trace
26183          (p_msg      => 'BEGIN of AcctLineType_79'
26184          ,p_level    => C_LEVEL_PROCEDURE
26185          ,p_module   => l_log_module);
26186 
26187 END IF;
26188 --
26189 l_component_type             := 'AMB_JLT';
26190 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_AS';
26191 l_component_type_code        := 'S';
26192 l_component_appl_id          :=  200;
26193 l_amb_context_code           := 'DEFAULT';
26194 l_entity_code                := 'AP_PAYMENTS';
26195 l_event_class_code           := 'PAYMENTS';
26196 l_event_type_code            := 'PAYMENTS_ALL';
26197 l_line_definition_owner_code := 'S';
26198 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
26199 --
26200 l_balance_type_code          := 'A';
26201 l_segment                     := NULL;
26202 l_ccid                        := NULL;
26203 l_adr_transaction_coa_id      := NULL;
26204 l_adr_accounting_coa_id       := NULL;
26205 l_adr_flexfield_segment_code  := NULL;
26206 l_adr_flex_value_set_id       := NULL;
26207 l_adr_value_type_code         := NULL;
26208 l_adr_value_combination_id    := NULL;
26209 l_adr_value_segment_code      := NULL;
26210 
26211 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26212 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26213 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26214 l_budgetary_control_flag     := 'N';
26215 
26216 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26217 l_bflow_applied_to_amt       := NULL; -- 5132302
26218 l_entered_amt_idx            := NULL;          -- 4262811
26219 l_accted_amt_idx             := NULL;          -- 4262811
26220 l_acc_rev_flag               := NULL;          -- 4262811
26221 l_accrual_line_num           := NULL;          -- 4262811
26222 l_tmp_amt                    := NULL;          -- 4262811
26223 --
26224  
26225 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26226     l_balance_type_code <> 'B' THEN
26227 IF NVL(p_source_57,'
26228 ') =  'ALWAYS_ALWAYS' AND 
26229 (NVL(p_source_116,'
26230 ') =  'Y' AND 
26231 NVL(p_source_10,'
26232 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
26233 p_source_117 IS NULL AND 
26234 NVL(p_source_101,'
26235 ') =  'CASH' AND 
26236 NVL(p_source_125,'
26237 ') <>  'R' AND 
26238 NVL(p_source_126,'
26239 ') <>  'PAYMENTCARD'
26240  THEN 
26241 
26242    --
26243    XLA_AE_LINES_PKG.SetNewLine;
26244 
26245    p_balance_type_code          := l_balance_type_code;
26246    -- set the flag so later we will know whether the gain loss line needs to be created
26247    
26248    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26249      p_actual_flag :='A';
26250    END IF;
26251 
26252    --
26253    -- bulk performance
26254    --
26255    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26256                                       p_header_num   => 0); -- 4262811
26257    --
26258    -- set accounting line options
26259    --
26260    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26261            p_natural_side_code          => 'C'
26262          , p_gain_or_loss_flag          => 'N'
26263          , p_gl_transfer_mode_code      => 'S'
26264          , p_acct_entry_type_code       => 'A'
26265          , p_switch_side_flag           => 'Y'
26266          , p_merge_duplicate_code       => 'A'
26267          );
26268    --
26269    l_acc_rev_natural_side_code := 'D';  -- 4262811
26270    -- 
26271    --
26272    -- set accounting line type info
26273    --
26274    xla_ae_lines_pkg.SetAcctLineType
26275       (p_component_type             => l_component_type
26276       ,p_event_type_code            => l_event_type_code
26277       ,p_line_definition_owner_code => l_line_definition_owner_code
26278       ,p_line_definition_code       => l_line_definition_code
26279       ,p_accounting_line_code       => l_component_code
26280       ,p_accounting_line_type_code  => l_component_type_code
26281       ,p_accounting_line_appl_id    => l_component_appl_id
26282       ,p_amb_context_code           => l_amb_context_code
26283       ,p_entity_code                => l_entity_code
26287    --
26284       ,p_event_class_code           => l_event_class_code);
26285    --
26286    -- set accounting class
26288    xla_ae_lines_pkg.SetAcctClass(
26289            p_accounting_class_code  => 'CASH_CLEARING'
26290          , p_ae_header_id           => l_ae_header_id
26291          );
26292 
26293    --
26294    -- set rounding class
26295    --
26296    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26297                       'CASH_CLEARING';
26298 
26299    --
26300    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26301    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26302    --
26303    -- bulk performance
26304    --
26305    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26306 
26307    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26308       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26309 
26310    -- 4955764
26311    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26312       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26313 
26314    -- 4458381 Public Sector Enh
26315    
26316    --
26317    -- set accounting attributes for the line type
26318    --
26319    l_entered_amt_idx := 10;
26320    l_accted_amt_idx  := 15;
26321    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
26322    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26323    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
26324    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
26325    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
26326    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
26327    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
26328    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26329    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
26330    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
26331    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
26332    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
26333    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
26334    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26335    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
26336    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
26337    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
26338    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
26339    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
26340    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26341    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
26342    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26343    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
26344    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
26345    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
26346    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
26347    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
26348    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
26349    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
26350    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
26351    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
26352    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
26353    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
26354    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
26355    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
26356    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
26357    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
26358    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
26359    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
26360    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
26361    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
26362    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
26363    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
26364    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
26365    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
26366    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
26367    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
26368    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
26369    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
26370 
26371    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26372    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26373 
26374    ---------------------------------------------------------------------------------------------------------------
26375    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26376    ---------------------------------------------------------------------------------------------------------------
26377    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26378 
26379    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26383          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26380    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26381 
26382    IF xla_accounting_cache_pkg.GetValueChar
26384          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26385    AND l_bflow_method_code = 'PRIOR_ENTRY'
26386 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26387    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26388          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26389        )
26390    THEN
26391          xla_ae_lines_pkg.BflowUpgEntry
26392            (p_business_method_code    => l_bflow_method_code
26393            ,p_business_class_code     => l_bflow_class_code
26394            ,p_balance_type            => l_balance_type_code);
26395    ELSE
26396       NULL;
26397 XLA_AE_LINES_PKG.business_flow_validation(
26398                                 p_business_method_code     => l_bflow_method_code
26399                                ,p_business_class_code      => l_bflow_class_code
26400                                ,p_inherit_description_flag => l_inherit_desc_flag);
26401    END IF;
26402 
26403    --
26404    -- call analytical criteria
26405    --
26406    
26407    --
26408    -- call description
26409    --
26410    -- No description or it is inherited.
26411    --
26412    -- call ADRs
26413    -- Bug 4922099
26414    --
26415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26416         (NVL(l_actual_upg_option, 'N') = 'O') OR
26417         (NVL(l_enc_upg_option, 'N') = 'O')
26418       )
26419    THEN
26420    NULL;
26421    --
26422    --
26423    
26424    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26425      p_code_combination_id      => TO_NUMBER(C_NUM)
26426    , p_value_type_code          => NULL
26427    , p_transaction_coa_id       => null
26428    , p_accounting_coa_id        => null
26429    , p_adr_code                 => NULL
26430    , p_adr_type_code            => NULL
26431    , p_component_type           => l_component_type
26432    , p_component_code           => l_component_code
26433    , p_component_type_code      => l_component_type_code
26434    , p_component_appl_id        => l_component_appl_id
26435    , p_amb_context_code         => l_amb_context_code
26436    , p_side                     => NULL
26437    );
26438 
26439    
26440   -- initialise segments
26441   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26442   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26443   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26444   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26445   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26446   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26447   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26448   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26449   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26450   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26451   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26452   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26453   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26454   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26455   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26456   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26457   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26458   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26459   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26460   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26461   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26462   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26463   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26464   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26465   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26466   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26467   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26468   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26469   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26470   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26471   --
26472 
26473    --
26474 
26475 
26476    l_segment := AcctDerRule_16(
26477            p_application_id           => p_application_id
26478          , p_ae_header_id             => l_ae_header_id 
26479 , p_source_30 => p_source_30
26480          , x_transaction_coa_id       => l_adr_transaction_coa_id
26481          , x_accounting_coa_id        => l_adr_accounting_coa_id
26485          , x_value_combination_id     => l_adr_value_combination_id
26482          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
26483          , x_flex_value_set_id        => l_adr_flex_value_set_id
26484          , x_value_type_code          => l_adr_value_type_code
26486          , x_value_segment_code       => l_adr_value_segment_code
26487          , p_side                     => 'NA'
26488          , p_override_seg_flag        => 'Y'
26489    );
26490 
26491    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
26492 
26493       xla_ae_lines_pkg.set_segment(
26494           p_to_segment_code         => 'GL_ACCOUNT'
26495         , p_segment_value           => l_segment
26496         , p_from_segment_code       => l_adr_value_segment_code
26497         , p_from_combination_id     => l_adr_value_combination_id
26498         , p_value_type_code         => l_adr_value_type_code
26499         , p_transaction_coa_id      => l_adr_transaction_coa_id
26500         , p_accounting_coa_id       => l_adr_accounting_coa_id
26501         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
26502         , p_flex_value_set_id       => l_adr_flex_value_set_id
26503         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26504         , p_adr_type_code           => 'S'
26505         , p_component_type          => l_component_type
26506         , p_component_code          => l_component_code
26507         , p_component_type_code     => l_component_type_code
26508         , p_component_appl_id       => l_component_appl_id
26509         , p_amb_context_code        => l_amb_context_code
26510         , p_entity_code             => 'AP_PAYMENTS'
26511         , p_event_class_code        => 'PAYMENTS'
26512         , p_side                    => 'NA'
26513         );
26514 
26515   END IF;
26516 
26517    --
26518    --
26519    END IF;
26520    --
26521    -- Bug 4922099
26522    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26523           (NVL(l_enc_upg_option, 'N') = 'O')
26524         ) AND
26525         (l_bflow_method_code = 'PRIOR_ENTRY')
26526       )
26527    THEN
26528       IF
26529       --
26530       1 = 2
26531       --
26532       THEN
26533       xla_accounting_err_pkg.build_message
26534                                     (p_appli_s_name            => 'XLA'
26535                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26536                                     ,p_token_1                 => 'LINE_NUMBER'
26537                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26538                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26539                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26540                                                                              l_component_type
26541                                                                             ,l_component_code
26542                                                                             ,l_component_type_code
26543                                                                             ,l_component_appl_id
26544                                                                             ,l_amb_context_code
26545                                                                             ,l_entity_code
26546                                                                             ,l_event_class_code
26547                                                                            )
26548                                     ,p_token_3                 => 'OWNER'
26549                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26550                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26551                                                                           ,p_lookup_code    => l_component_type_code
26552                                                                          )
26553                                     ,p_token_4                 => 'PRODUCT_NAME'
26554                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26555                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26556                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26557                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26558                                     ,p_ae_header_id            =>  NULL
26559                                        );
26560 
26561         IF (C_LEVEL_ERROR>= g_log_level) THEN
26562                  trace
26563                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26564                       ,p_level    => C_LEVEL_ERROR
26565                       ,p_module   => l_log_module);
26566         END IF;
26567       END IF;
26568    END IF;
26569    --
26570    --
26571    ------------------------------------------------------------------------------------------------
26572    -- 4219869 Business Flow
26573    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26574    -- Prior Entry.  Currently, the following code is always generated.
26575    ------------------------------------------------------------------------------------------------
26576    XLA_AE_LINES_PKG.ValidateCurrentLine;
26577 
26581    ------------------------------------------------------------------------------------
26578    ------------------------------------------------------------------------------------
26579    -- 4219869 Business Flow
26580    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26582    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26583 
26584    ----------------------------------------------------------------------------------
26585    -- 4219869 Business Flow
26586    -- Update journal entry status -- Need to generate this within IF <condition>
26587    ----------------------------------------------------------------------------------
26588    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26589          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26590          ,p_balance_type_code => l_balance_type_code
26591          );
26592 
26593    -------------------------------------------------------------------------------------------
26594    -- 4262811 - Generate the Accrual Reversal lines
26595    -------------------------------------------------------------------------------------------
26596    BEGIN
26597       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26598                               (g_array_event(p_event_id).array_value_num('header_index'));
26599       IF l_acc_rev_flag IS NULL THEN
26600          l_acc_rev_flag := 'N';
26601       END IF;
26602    EXCEPTION
26603       WHEN OTHERS THEN
26604          l_acc_rev_flag := 'N';
26605    END;
26606    --
26607    IF (l_acc_rev_flag = 'Y') THEN
26608 
26609        -- 4645092  ------------------------------------------------------------------------------
26610        -- To allow MPA report to determine if it should generate report process
26611        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26612        ------------------------------------------------------------------------------------------
26613 
26614        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26615        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26616    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26617    -- call ADRs
26618    -- Bug 4922099
26619    --
26620    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26621         (NVL(l_actual_upg_option, 'N') = 'O') OR
26622         (NVL(l_enc_upg_option, 'N') = 'O')
26623       )
26624    THEN
26625    NULL;
26626    --
26627    --
26628    
26629    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26630      p_code_combination_id      => TO_NUMBER(C_NUM)
26631    , p_value_type_code          => NULL
26632    , p_transaction_coa_id       => null
26633    , p_accounting_coa_id        => null
26634    , p_adr_code                 => NULL
26635    , p_adr_type_code            => NULL
26636    , p_component_type           => l_component_type
26637    , p_component_code           => l_component_code
26638    , p_component_type_code      => l_component_type_code
26639    , p_component_appl_id        => l_component_appl_id
26640    , p_amb_context_code         => l_amb_context_code
26641    , p_side                     => NULL
26642    );
26643 
26644    
26645   -- initialise segments
26646   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26647   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26648   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26649   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26650   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26651   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26652   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26653   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26654   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26655   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26656   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26657   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26658   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26659   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26660   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26661   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26662   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26663   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26664   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26665   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26666   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26667   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26668   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26669   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26670   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26671   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26675   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26672   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26673   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26674   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26676   --
26677 
26678    --
26679 
26680 
26681    l_segment := AcctDerRule_16(
26682            p_application_id           => p_application_id
26683          , p_ae_header_id             => l_ae_header_id 
26684 , p_source_30 => p_source_30
26685          , x_transaction_coa_id       => l_adr_transaction_coa_id
26686          , x_accounting_coa_id        => l_adr_accounting_coa_id
26687          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
26688          , x_flex_value_set_id        => l_adr_flex_value_set_id
26689          , x_value_type_code          => l_adr_value_type_code
26690          , x_value_combination_id     => l_adr_value_combination_id
26691          , x_value_segment_code       => l_adr_value_segment_code
26692          , p_side                     => 'NA'
26693          , p_override_seg_flag        => 'Y'
26694    );
26695 
26696    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
26697 
26698       xla_ae_lines_pkg.set_segment(
26699           p_to_segment_code         => 'GL_ACCOUNT'
26700         , p_segment_value           => l_segment
26701         , p_from_segment_code       => l_adr_value_segment_code
26702         , p_from_combination_id     => l_adr_value_combination_id
26703         , p_value_type_code         => l_adr_value_type_code
26704         , p_transaction_coa_id      => l_adr_transaction_coa_id
26705         , p_accounting_coa_id       => l_adr_accounting_coa_id
26706         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
26707         , p_flex_value_set_id       => l_adr_flex_value_set_id
26708         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26709         , p_adr_type_code           => 'S'
26710         , p_component_type          => l_component_type
26711         , p_component_code          => l_component_code
26712         , p_component_type_code     => l_component_type_code
26713         , p_component_appl_id       => l_component_appl_id
26714         , p_amb_context_code        => l_amb_context_code
26715         , p_entity_code             => 'AP_PAYMENTS'
26716         , p_event_class_code        => 'PAYMENTS'
26717         , p_side                    => 'NA'
26718         );
26719 
26720   END IF;
26721 
26722    --
26723    --
26724    END IF;
26725 
26726        --
26727        -- Update the line information that should be overwritten
26728        --
26729        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26730                                          p_header_num   => 1);
26731        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26732 
26733        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26734 
26735        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26736           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26737        END IF;
26738 
26739       --
26740       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26741       --
26742       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26743           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26744       ELSE
26745           ---------------------------------------------------------------------------------------------------
26746           -- 4262811a Switch Sign
26747           ---------------------------------------------------------------------------------------------------
26748           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26749           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26750                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26751           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26752                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26753           -- 5132302
26754           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26755                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26756 
26757       END IF;
26758 
26759       -- 4955764
26760       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26761       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26762 
26763 
26764       XLA_AE_LINES_PKG.ValidateCurrentLine;
26765       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26766 
26767       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26768                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26769                ,p_balance_type_code => l_balance_type_code);
26770 
26771    END IF;
26772 
26773    -----------------------------------------------------------------------------------------
26774    -- 4262811 Multiperiod Accounting
26778 
26775    -----------------------------------------------------------------------------------------
26776      -- No MPA option is assigned.
26777 
26779 END IF;
26780 END IF;
26781 --
26782 
26783 --
26784 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26785    trace
26786       (p_msg      => 'END of AcctLineType_79'
26787       ,p_level    => C_LEVEL_PROCEDURE
26788       ,p_module   => l_log_module);
26789 END IF;
26790 --
26791 EXCEPTION
26792   WHEN xla_exceptions_pkg.application_exception THEN
26793       RAISE;
26794   WHEN OTHERS THEN
26795        xla_exceptions_pkg.raise_message
26796            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_79');
26797 END AcctLineType_79;
26798 --
26799 
26800 ---------------------------------------
26801 --
26802 -- PRIVATE FUNCTION
26803 --         AcctLineType_80
26804 --
26805 ---------------------------------------
26806 PROCEDURE AcctLineType_80 (
26807   p_application_id        IN NUMBER
26808  ,p_event_id              IN NUMBER
26809  ,p_calculate_acctd_flag  IN VARCHAR2
26810  ,p_calculate_g_l_flag    IN VARCHAR2
26811  ,p_actual_flag           IN OUT VARCHAR2
26812  ,p_balance_type_code     OUT VARCHAR2
26813  ,p_gain_or_loss_ref      OUT VARCHAR2
26814  
26815 --Payment Currency Code
26816  , p_source_8            IN VARCHAR2
26817 --Automatic Offsets Value
26818  , p_source_10            IN VARCHAR2
26819  , p_source_10_meaning    IN VARCHAR2
26820 --Bank Cash Clearing Account
26821  , p_source_30            IN NUMBER
26822 --When to Account for Payment Option
26823  , p_source_57            IN VARCHAR2
26824 --Accounting Reversal Indicator
26825  , p_source_58            IN VARCHAR2
26826 --Distribution Link Type
26827  , p_source_60            IN VARCHAR2
26828 --Override Accounted Amount Indicator
26829  , p_source_85            IN VARCHAR2
26830  , p_source_85_meaning    IN VARCHAR2
26831 --Third Party Type
26832  , p_source_88            IN VARCHAR2
26833 --Invoice Distribution Tax Line Identifier
26834  , p_source_91            IN NUMBER
26835 --Invoice Distribution Tax Distribution Identifier from Tax
26836  , p_source_92            IN NUMBER
26837 --Invoice Distribution Summary Tax Line Identifier
26838  , p_source_93            IN NUMBER
26839 --Business Flow Accounts Payable Application Identifier
26840  , p_source_96            IN NUMBER
26841 --Business Flow Invoice Distribution Type
26842  , p_source_97            IN VARCHAR2
26843 --Business Flow Invoice Entity Code
26844  , p_source_98            IN VARCHAR2
26845 --Business Flow Invoice Distribution Identifier
26846  , p_source_99            IN NUMBER
26847 --Business Flow Invoice Identifier
26848  , p_source_100            IN NUMBER
26849 --Payment Distribution Type
26850  , p_source_101            IN VARCHAR2
26851  , p_source_101_meaning    IN VARCHAR2
26852 --Payment Distribution Amount
26853  , p_source_102            IN NUMBER
26854 --Payment Distribution Identifier
26855  , p_source_107            IN NUMBER
26856 --Payment Supplier Identifier
26857  , p_source_113            IN NUMBER
26858 --Payment Supplier Site Identifier
26859  , p_source_114            IN NUMBER
26860 --Payment Distribution Reversed Identifier
26861  , p_source_115            IN NUMBER
26862 --Pooled Bank Account Option
26863  , p_source_116            IN VARCHAR2
26864  , p_source_116_meaning    IN VARCHAR2
26865 --Payment Maturity Date
26866  , p_source_117            IN DATE
26867 --Payment Distribution (Payment Rate) Ledger Amount
26868  , p_source_118            IN NUMBER
26869 --Payment Exchange Date
26870  , p_source_120            IN DATE
26871 --Payment Exchange Rate
26872  , p_source_121            IN NUMBER
26873 --Payment Exchange Rate Type
26874  , p_source_122            IN VARCHAR2
26875 --Payment Type
26876  , p_source_125            IN VARCHAR2
26877  , p_source_125_meaning    IN VARCHAR2
26878 --Payment Processing Type
26879  , p_source_126            IN VARCHAR2
26880 --Invoice Distribution Amount of the Payment Distribution
26881  , p_source_127            IN NUMBER
26882 )
26883 IS
26884 
26885 l_component_type              VARCHAR2(80);
26886 l_component_code              VARCHAR2(30);
26887 l_component_type_code         VARCHAR2(1);
26888 l_component_appl_id           INTEGER;
26889 l_amb_context_code            VARCHAR2(30);
26890 l_entity_code                 VARCHAR2(30);
26891 l_event_class_code            VARCHAR2(30);
26892 l_ae_header_id                NUMBER;
26893 l_event_type_code             VARCHAR2(30);
26894 l_line_definition_code        VARCHAR2(30);
26895 l_line_definition_owner_code  VARCHAR2(1);
26896 --
26897 -- adr variables
26898 l_segment                     VARCHAR2(30);
26899 l_ccid                        NUMBER;
26900 l_adr_transaction_coa_id      NUMBER;
26901 l_adr_accounting_coa_id       NUMBER;
26902 l_adr_flexfield_segment_code  VARCHAR2(30);
26903 l_adr_flex_value_set_id       NUMBER;
26904 l_adr_value_type_code         VARCHAR2(30);
26905 l_adr_value_combination_id    NUMBER;
26906 l_adr_value_segment_code      VARCHAR2(30);
26907 
26908 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26909 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26910 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26911 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26912 
26916 l_acc_rev_flag                VARCHAR2(1);
26913 -- 4262811 Variables ------------------------------------------------------------------------------------------
26914 l_entered_amt_idx             NUMBER;
26915 l_accted_amt_idx              NUMBER;
26917 l_accrual_line_num            NUMBER;
26918 l_tmp_amt                     NUMBER;
26919 l_acc_rev_natural_side_code   VARCHAR2(1);
26920 
26921 l_num_entries                 NUMBER;
26922 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26923 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26924 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26925 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26926 l_recog_line_1                NUMBER;
26927 l_recog_line_2                NUMBER;
26928 
26929 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26930 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26931 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26932 
26933 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26934 
26935 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26936 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26937 
26938 ---------------------------------------------------------------------------------------------------------------
26939 
26940 
26941 --
26942 -- bulk performance
26943 --
26944 l_balance_type_code           VARCHAR2(1);
26945 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26946 l_log_module                  VARCHAR2(240);
26947 
26948 --
26949 -- Upgrade strategy
26950 --
26951 l_actual_upg_option           VARCHAR2(1);
26952 l_enc_upg_option           VARCHAR2(1);
26953 
26954 --
26955 BEGIN
26956 --
26957 IF g_log_enabled THEN
26958       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
26959 END IF;
26960 --
26961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26962 
26963       trace
26964          (p_msg      => 'BEGIN of AcctLineType_80'
26965          ,p_level    => C_LEVEL_PROCEDURE
26966          ,p_module   => l_log_module);
26967 
26968 END IF;
26969 --
26970 l_component_type             := 'AMB_JLT';
26971 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_BS';
26972 l_component_type_code        := 'S';
26973 l_component_appl_id          :=  200;
26974 l_amb_context_code           := 'DEFAULT';
26975 l_entity_code                := 'AP_PAYMENTS';
26976 l_event_class_code           := 'PAYMENTS';
26977 l_event_type_code            := 'PAYMENTS_ALL';
26978 l_line_definition_owner_code := 'S';
26979 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
26980 --
26981 l_balance_type_code          := 'A';
26982 l_segment                     := NULL;
26983 l_ccid                        := NULL;
26984 l_adr_transaction_coa_id      := NULL;
26985 l_adr_accounting_coa_id       := NULL;
26986 l_adr_flexfield_segment_code  := NULL;
26987 l_adr_flex_value_set_id       := NULL;
26988 l_adr_value_type_code         := NULL;
26989 l_adr_value_combination_id    := NULL;
26990 l_adr_value_segment_code      := NULL;
26991 
26992 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26993 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26994 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26995 l_budgetary_control_flag     := 'N';
26996 
26997 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26998 l_bflow_applied_to_amt       := NULL; -- 5132302
26999 l_entered_amt_idx            := NULL;          -- 4262811
27000 l_accted_amt_idx             := NULL;          -- 4262811
27001 l_acc_rev_flag               := NULL;          -- 4262811
27002 l_accrual_line_num           := NULL;          -- 4262811
27003 l_tmp_amt                    := NULL;          -- 4262811
27004 --
27005  
27006 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27007     l_balance_type_code <> 'B' THEN
27008 IF NVL(p_source_57,'
27009 ') =  'ALWAYS_ALWAYS' AND 
27010 (NVL(p_source_116,'
27011 ') =  'Y' AND 
27012 NVL(p_source_10,'
27013 ') =  'BALANCING_SEGMENT') AND 
27014 p_source_117 IS NULL AND 
27015 NVL(p_source_101,'
27016 ') =  'CASH' AND 
27017 NVL(p_source_125,'
27018 ') <>  'R' AND 
27019 NVL(p_source_126,'
27020 ') <>  'PAYMENTCARD'
27021  THEN 
27022 
27023    --
27024    XLA_AE_LINES_PKG.SetNewLine;
27025 
27026    p_balance_type_code          := l_balance_type_code;
27027    -- set the flag so later we will know whether the gain loss line needs to be created
27028    
27029    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27030      p_actual_flag :='A';
27031    END IF;
27032 
27033    --
27034    -- bulk performance
27035    --
27036    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27037                                       p_header_num   => 0); -- 4262811
27038    --
27039    -- set accounting line options
27040    --
27041    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27042            p_natural_side_code          => 'C'
27043          , p_gain_or_loss_flag          => 'N'
27044          , p_gl_transfer_mode_code      => 'S'
27045          , p_acct_entry_type_code       => 'A'
27046          , p_switch_side_flag           => 'Y'
27047          , p_merge_duplicate_code       => 'A'
27051    -- 
27048          );
27049    --
27050    l_acc_rev_natural_side_code := 'D';  -- 4262811
27052    --
27053    -- set accounting line type info
27054    --
27055    xla_ae_lines_pkg.SetAcctLineType
27056       (p_component_type             => l_component_type
27057       ,p_event_type_code            => l_event_type_code
27058       ,p_line_definition_owner_code => l_line_definition_owner_code
27059       ,p_line_definition_code       => l_line_definition_code
27060       ,p_accounting_line_code       => l_component_code
27061       ,p_accounting_line_type_code  => l_component_type_code
27062       ,p_accounting_line_appl_id    => l_component_appl_id
27063       ,p_amb_context_code           => l_amb_context_code
27064       ,p_entity_code                => l_entity_code
27065       ,p_event_class_code           => l_event_class_code);
27066    --
27067    -- set accounting class
27068    --
27069    xla_ae_lines_pkg.SetAcctClass(
27070            p_accounting_class_code  => 'CASH_CLEARING'
27071          , p_ae_header_id           => l_ae_header_id
27072          );
27073 
27074    --
27075    -- set rounding class
27076    --
27077    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27078                       'CASH_CLEARING';
27079 
27080    --
27081    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27082    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27083    --
27084    -- bulk performance
27085    --
27086    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27087 
27088    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27089       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27090 
27091    -- 4955764
27092    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27093       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27094 
27095    -- 4458381 Public Sector Enh
27096    
27097    --
27098    -- set accounting attributes for the line type
27099    --
27100    l_entered_amt_idx := 10;
27101    l_accted_amt_idx  := 15;
27102    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
27103    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27104    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
27105    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27106    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
27107    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27108    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
27109    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27110    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
27111    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27112    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
27113    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27114    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
27115    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27116    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
27117    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27118    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
27119    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27120    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
27121    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27122    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
27123    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27124    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
27125    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27126    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
27127    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27128    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
27129    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27130    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
27131    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27132    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
27133    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27134    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
27135    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27136    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
27137    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27138    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
27139    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27140    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
27141    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27142    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
27143    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27144    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
27145    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27146    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
27147    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27148    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
27152    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27149    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27150    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
27151 
27153    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27154 
27155    ---------------------------------------------------------------------------------------------------------------
27156    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27157    ---------------------------------------------------------------------------------------------------------------
27158    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27159 
27160    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27161    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27162 
27163    IF xla_accounting_cache_pkg.GetValueChar
27164          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27165          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27166    AND l_bflow_method_code = 'PRIOR_ENTRY'
27167 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27168    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27169          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27170        )
27171    THEN
27172          xla_ae_lines_pkg.BflowUpgEntry
27173            (p_business_method_code    => l_bflow_method_code
27174            ,p_business_class_code     => l_bflow_class_code
27175            ,p_balance_type            => l_balance_type_code);
27176    ELSE
27177       NULL;
27178 XLA_AE_LINES_PKG.business_flow_validation(
27179                                 p_business_method_code     => l_bflow_method_code
27180                                ,p_business_class_code      => l_bflow_class_code
27181                                ,p_inherit_description_flag => l_inherit_desc_flag);
27182    END IF;
27183 
27184    --
27185    -- call analytical criteria
27186    --
27187    
27188    --
27189    -- call description
27190    --
27191    -- No description or it is inherited.
27192    --
27193    -- call ADRs
27194    -- Bug 4922099
27195    --
27196    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27197         (NVL(l_actual_upg_option, 'N') = 'O') OR
27198         (NVL(l_enc_upg_option, 'N') = 'O')
27199       )
27200    THEN
27201    NULL;
27202    --
27203    --
27204    
27205   l_ccid := AcctDerRule_38(
27206            p_application_id           => p_application_id
27207          , p_ae_header_id             => l_ae_header_id 
27208 , p_source_30 => p_source_30
27209          , x_transaction_coa_id       => l_adr_transaction_coa_id
27210          , x_accounting_coa_id        => l_adr_accounting_coa_id
27211          , x_value_type_code          => l_adr_value_type_code
27212          , p_side                     => 'NA'
27213    );
27214 
27215    xla_ae_lines_pkg.set_ccid(
27216     p_code_combination_id          => l_ccid
27217   , p_value_type_code              => l_adr_value_type_code
27218   , p_transaction_coa_id           => l_adr_transaction_coa_id
27219   , p_accounting_coa_id            => l_adr_accounting_coa_id
27220   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27221   , p_adr_type_code                => 'S'
27222   , p_component_type               => l_component_type
27223   , p_component_code               => l_component_code
27224   , p_component_type_code          => l_component_type_code
27225   , p_component_appl_id            => l_component_appl_id
27226   , p_amb_context_code             => l_amb_context_code
27227   , p_side                         => 'NA'
27228   );
27229 
27230 
27231    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27232      p_to_segment_code         => 'GL_BALANCING'
27233    , p_segment_value           => C_CHAR
27234    , p_from_segment_code       => NULL
27235    , p_from_combination_id     => NULL
27236    , p_value_type_code         => NULL
27237    , p_transaction_coa_id      => null
27238    , p_accounting_coa_id       => null
27239    , p_flexfield_segment_code  => NULL
27240    , p_flex_value_set_id       => NULL
27241    , p_adr_code                => NULL
27242    , p_adr_type_code           => NULL
27243    , p_component_type          => l_component_type
27244    , p_component_code          => l_component_code
27245    , p_component_type_code     => l_component_type_code
27246    , p_component_appl_id       => l_component_appl_id
27247    , p_amb_context_code        => l_amb_context_code
27248    , p_entity_code             => 'AP_PAYMENTS'
27249    , p_event_class_code        => 'PAYMENTS'
27250    , p_side                    => 'NA'
27251    );
27252    --
27253 
27254 
27255    --
27256    --
27257    END IF;
27258    --
27259    -- Bug 4922099
27260    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27261           (NVL(l_enc_upg_option, 'N') = 'O')
27262         ) AND
27263         (l_bflow_method_code = 'PRIOR_ENTRY')
27264       )
27265    THEN
27266       IF
27267       --
27268       1 = 2
27269       --
27270       THEN
27271       xla_accounting_err_pkg.build_message
27272                                     (p_appli_s_name            => 'XLA'
27273                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27277                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27274                                     ,p_token_1                 => 'LINE_NUMBER'
27275                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27276                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27278                                                                              l_component_type
27279                                                                             ,l_component_code
27280                                                                             ,l_component_type_code
27281                                                                             ,l_component_appl_id
27282                                                                             ,l_amb_context_code
27283                                                                             ,l_entity_code
27284                                                                             ,l_event_class_code
27285                                                                            )
27286                                     ,p_token_3                 => 'OWNER'
27287                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27288                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27289                                                                           ,p_lookup_code    => l_component_type_code
27290                                                                          )
27291                                     ,p_token_4                 => 'PRODUCT_NAME'
27292                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27293                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27294                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27295                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27296                                     ,p_ae_header_id            =>  NULL
27297                                        );
27298 
27299         IF (C_LEVEL_ERROR>= g_log_level) THEN
27300                  trace
27301                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27302                       ,p_level    => C_LEVEL_ERROR
27303                       ,p_module   => l_log_module);
27304         END IF;
27305       END IF;
27306    END IF;
27307    --
27308    --
27309    ------------------------------------------------------------------------------------------------
27310    -- 4219869 Business Flow
27311    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27312    -- Prior Entry.  Currently, the following code is always generated.
27313    ------------------------------------------------------------------------------------------------
27314    XLA_AE_LINES_PKG.ValidateCurrentLine;
27315 
27316    ------------------------------------------------------------------------------------
27317    -- 4219869 Business Flow
27318    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27319    ------------------------------------------------------------------------------------
27320    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27321 
27322    ----------------------------------------------------------------------------------
27323    -- 4219869 Business Flow
27324    -- Update journal entry status -- Need to generate this within IF <condition>
27325    ----------------------------------------------------------------------------------
27326    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27327          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27328          ,p_balance_type_code => l_balance_type_code
27329          );
27330 
27331    -------------------------------------------------------------------------------------------
27332    -- 4262811 - Generate the Accrual Reversal lines
27333    -------------------------------------------------------------------------------------------
27334    BEGIN
27335       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27336                               (g_array_event(p_event_id).array_value_num('header_index'));
27337       IF l_acc_rev_flag IS NULL THEN
27338          l_acc_rev_flag := 'N';
27339       END IF;
27340    EXCEPTION
27341       WHEN OTHERS THEN
27342          l_acc_rev_flag := 'N';
27343    END;
27344    --
27345    IF (l_acc_rev_flag = 'Y') THEN
27346 
27347        -- 4645092  ------------------------------------------------------------------------------
27348        -- To allow MPA report to determine if it should generate report process
27349        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27350        ------------------------------------------------------------------------------------------
27351 
27352        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27353        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27354    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27355    -- call ADRs
27356    -- Bug 4922099
27357    --
27358    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27359         (NVL(l_actual_upg_option, 'N') = 'O') OR
27360         (NVL(l_enc_upg_option, 'N') = 'O')
27361       )
27362    THEN
27363    NULL;
27364    --
27365    --
27366    
27370 , p_source_30 => p_source_30
27367   l_ccid := AcctDerRule_38(
27368            p_application_id           => p_application_id
27369          , p_ae_header_id             => l_ae_header_id 
27371          , x_transaction_coa_id       => l_adr_transaction_coa_id
27372          , x_accounting_coa_id        => l_adr_accounting_coa_id
27373          , x_value_type_code          => l_adr_value_type_code
27374          , p_side                     => 'NA'
27375    );
27376 
27377    xla_ae_lines_pkg.set_ccid(
27378     p_code_combination_id          => l_ccid
27379   , p_value_type_code              => l_adr_value_type_code
27380   , p_transaction_coa_id           => l_adr_transaction_coa_id
27381   , p_accounting_coa_id            => l_adr_accounting_coa_id
27382   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27383   , p_adr_type_code                => 'S'
27384   , p_component_type               => l_component_type
27385   , p_component_code               => l_component_code
27386   , p_component_type_code          => l_component_type_code
27387   , p_component_appl_id            => l_component_appl_id
27388   , p_amb_context_code             => l_amb_context_code
27389   , p_side                         => 'NA'
27390   );
27391 
27392 
27393    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27394      p_to_segment_code         => 'GL_BALANCING'
27395    , p_segment_value           => C_CHAR
27396    , p_from_segment_code       => NULL
27397    , p_from_combination_id     => NULL
27398    , p_value_type_code         => NULL
27399    , p_transaction_coa_id      => null
27400    , p_accounting_coa_id       => null
27401    , p_flexfield_segment_code  => NULL
27402    , p_flex_value_set_id       => NULL
27403    , p_adr_code                => NULL
27404    , p_adr_type_code           => NULL
27405    , p_component_type          => l_component_type
27406    , p_component_code          => l_component_code
27407    , p_component_type_code     => l_component_type_code
27408    , p_component_appl_id       => l_component_appl_id
27409    , p_amb_context_code        => l_amb_context_code
27410    , p_entity_code             => 'AP_PAYMENTS'
27411    , p_event_class_code        => 'PAYMENTS'
27412    , p_side                    => 'NA'
27413    );
27414    --
27415 
27416 
27417    --
27418    --
27419    END IF;
27420 
27421        --
27422        -- Update the line information that should be overwritten
27423        --
27424        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27425                                          p_header_num   => 1);
27426        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27427 
27428        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27429 
27430        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27431           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27432        END IF;
27433 
27434       --
27435       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27436       --
27437       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27438           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27439       ELSE
27440           ---------------------------------------------------------------------------------------------------
27441           -- 4262811a Switch Sign
27442           ---------------------------------------------------------------------------------------------------
27443           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27444           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27445                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27446           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27447                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27448           -- 5132302
27449           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27450                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27451 
27452       END IF;
27453 
27454       -- 4955764
27455       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27456       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27457 
27458 
27459       XLA_AE_LINES_PKG.ValidateCurrentLine;
27460       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27461 
27462       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27463                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27464                ,p_balance_type_code => l_balance_type_code);
27465 
27466    END IF;
27467 
27468    -----------------------------------------------------------------------------------------
27469    -- 4262811 Multiperiod Accounting
27470    -----------------------------------------------------------------------------------------
27471      -- No MPA option is assigned.
27472 
27473 
27474 END IF;
27475 END IF;
27476 --
27477 
27478 --
27479 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27480    trace
27484 END IF;
27481       (p_msg      => 'END of AcctLineType_80'
27482       ,p_level    => C_LEVEL_PROCEDURE
27483       ,p_module   => l_log_module);
27485 --
27486 EXCEPTION
27487   WHEN xla_exceptions_pkg.application_exception THEN
27488       RAISE;
27489   WHEN OTHERS THEN
27490        xla_exceptions_pkg.raise_message
27491            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_80');
27492 END AcctLineType_80;
27493 --
27494 
27495 ---------------------------------------
27496 --
27497 -- PRIVATE FUNCTION
27498 --         AcctLineType_81
27499 --
27500 ---------------------------------------
27501 PROCEDURE AcctLineType_81 (
27502   p_application_id        IN NUMBER
27503  ,p_event_id              IN NUMBER
27504  ,p_calculate_acctd_flag  IN VARCHAR2
27505  ,p_calculate_g_l_flag    IN VARCHAR2
27506  ,p_actual_flag           IN OUT VARCHAR2
27507  ,p_balance_type_code     OUT VARCHAR2
27508  ,p_gain_or_loss_ref      OUT VARCHAR2
27509  
27510 --Payment Currency Code
27511  , p_source_8            IN VARCHAR2
27512 --Automatic Offsets Value
27513  , p_source_10            IN VARCHAR2
27514  , p_source_10_meaning    IN VARCHAR2
27515 --Bank Cash Clearing Account
27516  , p_source_30            IN NUMBER
27517 --When to Account for Payment Option
27518  , p_source_57            IN VARCHAR2
27519 --Accounting Reversal Indicator
27520  , p_source_58            IN VARCHAR2
27521 --Distribution Link Type
27522  , p_source_60            IN VARCHAR2
27523 --Override Accounted Amount Indicator
27524  , p_source_85            IN VARCHAR2
27525  , p_source_85_meaning    IN VARCHAR2
27526 --Third Party Type
27527  , p_source_88            IN VARCHAR2
27528 --Invoice Distribution Tax Line Identifier
27529  , p_source_91            IN NUMBER
27530 --Invoice Distribution Tax Distribution Identifier from Tax
27531  , p_source_92            IN NUMBER
27532 --Invoice Distribution Summary Tax Line Identifier
27533  , p_source_93            IN NUMBER
27534 --Business Flow Accounts Payable Application Identifier
27535  , p_source_96            IN NUMBER
27536 --Business Flow Invoice Distribution Type
27537  , p_source_97            IN VARCHAR2
27538 --Business Flow Invoice Entity Code
27539  , p_source_98            IN VARCHAR2
27540 --Business Flow Invoice Distribution Identifier
27541  , p_source_99            IN NUMBER
27542 --Business Flow Invoice Identifier
27543  , p_source_100            IN NUMBER
27544 --Payment Distribution Type
27545  , p_source_101            IN VARCHAR2
27546  , p_source_101_meaning    IN VARCHAR2
27547 --Payment Distribution Amount
27548  , p_source_102            IN NUMBER
27549 --Payment Distribution Identifier
27550  , p_source_107            IN NUMBER
27551 --Payment Supplier Identifier
27552  , p_source_113            IN NUMBER
27553 --Payment Supplier Site Identifier
27554  , p_source_114            IN NUMBER
27555 --Payment Distribution Reversed Identifier
27556  , p_source_115            IN NUMBER
27557 --Pooled Bank Account Option
27558  , p_source_116            IN VARCHAR2
27559  , p_source_116_meaning    IN VARCHAR2
27560 --Payment Maturity Date
27561  , p_source_117            IN DATE
27562 --Payment Distribution (Invoice Rate) Ledger Amount
27563  , p_source_119            IN NUMBER
27564 --Payment Exchange Date
27565  , p_source_120            IN DATE
27566 --Payment Exchange Rate
27567  , p_source_121            IN NUMBER
27568 --Payment Exchange Rate Type
27569  , p_source_122            IN VARCHAR2
27570 --Payment Type
27571  , p_source_125            IN VARCHAR2
27572  , p_source_125_meaning    IN VARCHAR2
27573 --Payment Processing Type
27574  , p_source_126            IN VARCHAR2
27575 --Invoice Distribution Amount of the Payment Distribution
27576  , p_source_127            IN NUMBER
27577 )
27578 IS
27579 
27580 l_component_type              VARCHAR2(80);
27581 l_component_code              VARCHAR2(30);
27582 l_component_type_code         VARCHAR2(1);
27583 l_component_appl_id           INTEGER;
27584 l_amb_context_code            VARCHAR2(30);
27585 l_entity_code                 VARCHAR2(30);
27586 l_event_class_code            VARCHAR2(30);
27587 l_ae_header_id                NUMBER;
27588 l_event_type_code             VARCHAR2(30);
27589 l_line_definition_code        VARCHAR2(30);
27590 l_line_definition_owner_code  VARCHAR2(1);
27591 --
27592 -- adr variables
27593 l_segment                     VARCHAR2(30);
27594 l_ccid                        NUMBER;
27595 l_adr_transaction_coa_id      NUMBER;
27596 l_adr_accounting_coa_id       NUMBER;
27597 l_adr_flexfield_segment_code  VARCHAR2(30);
27598 l_adr_flex_value_set_id       NUMBER;
27599 l_adr_value_type_code         VARCHAR2(30);
27600 l_adr_value_combination_id    NUMBER;
27601 l_adr_value_segment_code      VARCHAR2(30);
27602 
27603 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27604 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27605 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27606 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27607 
27608 -- 4262811 Variables ------------------------------------------------------------------------------------------
27609 l_entered_amt_idx             NUMBER;
27610 l_accted_amt_idx              NUMBER;
27611 l_acc_rev_flag                VARCHAR2(1);
27612 l_accrual_line_num            NUMBER;
27616 l_num_entries                 NUMBER;
27613 l_tmp_amt                     NUMBER;
27614 l_acc_rev_natural_side_code   VARCHAR2(1);
27615 
27617 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27618 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27619 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27620 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27621 l_recog_line_1                NUMBER;
27622 l_recog_line_2                NUMBER;
27623 
27624 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27625 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27626 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27627 
27628 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27629 
27630 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27631 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27632 
27633 ---------------------------------------------------------------------------------------------------------------
27634 
27635 
27636 --
27637 -- bulk performance
27638 --
27639 l_balance_type_code           VARCHAR2(1);
27640 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27641 l_log_module                  VARCHAR2(240);
27642 
27643 --
27644 -- Upgrade strategy
27645 --
27646 l_actual_upg_option           VARCHAR2(1);
27647 l_enc_upg_option           VARCHAR2(1);
27648 
27649 --
27650 BEGIN
27651 --
27652 IF g_log_enabled THEN
27653       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
27654 END IF;
27655 --
27656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27657 
27658       trace
27659          (p_msg      => 'BEGIN of AcctLineType_81'
27660          ,p_level    => C_LEVEL_PROCEDURE
27661          ,p_module   => l_log_module);
27662 
27663 END IF;
27664 --
27665 l_component_type             := 'AMB_JLT';
27666 l_component_code             := 'AP_CASH_CLEAR_PMT_AS_INVXRATE';
27667 l_component_type_code        := 'S';
27668 l_component_appl_id          :=  200;
27669 l_amb_context_code           := 'DEFAULT';
27670 l_entity_code                := 'AP_PAYMENTS';
27671 l_event_class_code           := 'PAYMENTS';
27672 l_event_type_code            := 'PAYMENTS_ALL';
27673 l_line_definition_owner_code := 'S';
27674 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
27675 --
27676 l_balance_type_code          := 'A';
27677 l_segment                     := NULL;
27678 l_ccid                        := NULL;
27679 l_adr_transaction_coa_id      := NULL;
27680 l_adr_accounting_coa_id       := NULL;
27681 l_adr_flexfield_segment_code  := NULL;
27682 l_adr_flex_value_set_id       := NULL;
27683 l_adr_value_type_code         := NULL;
27684 l_adr_value_combination_id    := NULL;
27685 l_adr_value_segment_code      := NULL;
27686 
27687 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
27688 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
27689 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
27690 l_budgetary_control_flag     := 'N';
27691 
27692 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27693 l_bflow_applied_to_amt       := NULL; -- 5132302
27694 l_entered_amt_idx            := NULL;          -- 4262811
27695 l_accted_amt_idx             := NULL;          -- 4262811
27696 l_acc_rev_flag               := NULL;          -- 4262811
27697 l_accrual_line_num           := NULL;          -- 4262811
27698 l_tmp_amt                    := NULL;          -- 4262811
27699 --
27700  
27701 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27702     l_balance_type_code <> 'B' THEN
27703 IF NVL(p_source_57,'
27704 ') =  'ALWAYS_CLEAR' AND 
27705 (NVL(p_source_116,'
27706 ') =  'Y' AND 
27707 NVL(p_source_10,'
27708 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
27709 p_source_117 IS NULL AND 
27710 NVL(p_source_101,'
27711 ') =  'CASH' AND 
27712 NVL(p_source_125,'
27713 ') <>  'R' AND 
27714 NVL(p_source_126,'
27715 ') <>  'PAYMENTCARD'
27716  THEN 
27717 
27718    --
27719    XLA_AE_LINES_PKG.SetNewLine;
27720 
27721    p_balance_type_code          := l_balance_type_code;
27722    -- set the flag so later we will know whether the gain loss line needs to be created
27723    
27724    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27725      p_actual_flag :='A';
27726    END IF;
27727 
27728    --
27729    -- bulk performance
27730    --
27731    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27732                                       p_header_num   => 0); -- 4262811
27733    --
27734    -- set accounting line options
27735    --
27736    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27737            p_natural_side_code          => 'C'
27738          , p_gain_or_loss_flag          => 'N'
27739          , p_gl_transfer_mode_code      => 'S'
27740          , p_acct_entry_type_code       => 'A'
27741          , p_switch_side_flag           => 'Y'
27742          , p_merge_duplicate_code       => 'A'
27743          );
27744    --
27745    l_acc_rev_natural_side_code := 'D';  -- 4262811
27746    -- 
27747    --
27748    -- set accounting line type info
27749    --
27750    xla_ae_lines_pkg.SetAcctLineType
27754       ,p_line_definition_code       => l_line_definition_code
27751       (p_component_type             => l_component_type
27752       ,p_event_type_code            => l_event_type_code
27753       ,p_line_definition_owner_code => l_line_definition_owner_code
27755       ,p_accounting_line_code       => l_component_code
27756       ,p_accounting_line_type_code  => l_component_type_code
27757       ,p_accounting_line_appl_id    => l_component_appl_id
27758       ,p_amb_context_code           => l_amb_context_code
27759       ,p_entity_code                => l_entity_code
27760       ,p_event_class_code           => l_event_class_code);
27761    --
27762    -- set accounting class
27763    --
27764    xla_ae_lines_pkg.SetAcctClass(
27765            p_accounting_class_code  => 'CASH_CLEARING'
27766          , p_ae_header_id           => l_ae_header_id
27767          );
27768 
27769    --
27770    -- set rounding class
27771    --
27772    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27773                       'CASH_CLEARING';
27774 
27775    --
27776    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27777    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27778    --
27779    -- bulk performance
27780    --
27781    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27782 
27783    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27784       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27785 
27786    -- 4955764
27787    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27788       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27789 
27790    -- 4458381 Public Sector Enh
27791    
27792    --
27793    -- set accounting attributes for the line type
27794    --
27795    l_entered_amt_idx := 10;
27796    l_accted_amt_idx  := 15;
27797    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
27798    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27799    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
27800    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27801    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
27802    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27803    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
27804    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27805    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
27806    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27807    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
27808    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27809    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
27810    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27811    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
27812    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27813    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
27814    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27815    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
27816    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27817    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
27818    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27819    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
27820    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27821    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
27822    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27823    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
27824    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27825    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
27826    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27827    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
27828    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27829    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
27830    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27831    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
27832    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27833    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
27834    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27835    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
27836    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27837    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
27838    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27839    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
27840    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27841    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
27842    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27843    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
27844    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27845    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
27846 
27847    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27848    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27849 
27853    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27850    ---------------------------------------------------------------------------------------------------------------
27851    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27852    ---------------------------------------------------------------------------------------------------------------
27854 
27855    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27856    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27857 
27858    IF xla_accounting_cache_pkg.GetValueChar
27859          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27860          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27861    AND l_bflow_method_code = 'PRIOR_ENTRY'
27862 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27863    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27864          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27865        )
27866    THEN
27867          xla_ae_lines_pkg.BflowUpgEntry
27868            (p_business_method_code    => l_bflow_method_code
27869            ,p_business_class_code     => l_bflow_class_code
27870            ,p_balance_type            => l_balance_type_code);
27871    ELSE
27872       NULL;
27873 XLA_AE_LINES_PKG.business_flow_validation(
27874                                 p_business_method_code     => l_bflow_method_code
27875                                ,p_business_class_code      => l_bflow_class_code
27876                                ,p_inherit_description_flag => l_inherit_desc_flag);
27877    END IF;
27878 
27879    --
27880    -- call analytical criteria
27881    --
27882    
27883    --
27884    -- call description
27885    --
27886    -- No description or it is inherited.
27887    --
27888    -- call ADRs
27889    -- Bug 4922099
27890    --
27891    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27892         (NVL(l_actual_upg_option, 'N') = 'O') OR
27893         (NVL(l_enc_upg_option, 'N') = 'O')
27894       )
27895    THEN
27896    NULL;
27897    --
27898    --
27899    
27900    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
27901      p_code_combination_id      => TO_NUMBER(C_NUM)
27902    , p_value_type_code          => NULL
27903    , p_transaction_coa_id       => null
27904    , p_accounting_coa_id        => null
27905    , p_adr_code                 => NULL
27906    , p_adr_type_code            => NULL
27907    , p_component_type           => l_component_type
27908    , p_component_code           => l_component_code
27909    , p_component_type_code      => l_component_type_code
27910    , p_component_appl_id        => l_component_appl_id
27911    , p_amb_context_code         => l_amb_context_code
27912    , p_side                     => NULL
27913    );
27914 
27915    
27916   -- initialise segments
27917   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27918   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27919   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27920   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27921   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27922   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27923   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27924   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27925   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27926   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27927   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27928   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27929   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27930   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27931   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27932   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27933   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27934   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27935   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27936   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27937   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27938   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27939   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27940   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27941   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27942   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27943   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27944   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27945   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27949    --
27946   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27947   --
27948 
27950 
27951 
27952    l_segment := AcctDerRule_16(
27953            p_application_id           => p_application_id
27954          , p_ae_header_id             => l_ae_header_id 
27955 , p_source_30 => p_source_30
27956          , x_transaction_coa_id       => l_adr_transaction_coa_id
27957          , x_accounting_coa_id        => l_adr_accounting_coa_id
27958          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27959          , x_flex_value_set_id        => l_adr_flex_value_set_id
27960          , x_value_type_code          => l_adr_value_type_code
27961          , x_value_combination_id     => l_adr_value_combination_id
27962          , x_value_segment_code       => l_adr_value_segment_code
27963          , p_side                     => 'NA'
27964          , p_override_seg_flag        => 'Y'
27965    );
27966 
27967    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27968 
27969       xla_ae_lines_pkg.set_segment(
27970           p_to_segment_code         => 'GL_ACCOUNT'
27971         , p_segment_value           => l_segment
27972         , p_from_segment_code       => l_adr_value_segment_code
27973         , p_from_combination_id     => l_adr_value_combination_id
27974         , p_value_type_code         => l_adr_value_type_code
27975         , p_transaction_coa_id      => l_adr_transaction_coa_id
27976         , p_accounting_coa_id       => l_adr_accounting_coa_id
27977         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27978         , p_flex_value_set_id       => l_adr_flex_value_set_id
27979         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27980         , p_adr_type_code           => 'S'
27981         , p_component_type          => l_component_type
27982         , p_component_code          => l_component_code
27983         , p_component_type_code     => l_component_type_code
27984         , p_component_appl_id       => l_component_appl_id
27985         , p_amb_context_code        => l_amb_context_code
27986         , p_entity_code             => 'AP_PAYMENTS'
27987         , p_event_class_code        => 'PAYMENTS'
27988         , p_side                    => 'NA'
27989         );
27990 
27991   END IF;
27992 
27993    --
27994    --
27995    END IF;
27996    --
27997    -- Bug 4922099
27998    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27999           (NVL(l_enc_upg_option, 'N') = 'O')
28000         ) AND
28001         (l_bflow_method_code = 'PRIOR_ENTRY')
28002       )
28003    THEN
28004       IF
28005       --
28006       1 = 2
28007       --
28008       THEN
28009       xla_accounting_err_pkg.build_message
28010                                     (p_appli_s_name            => 'XLA'
28011                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28012                                     ,p_token_1                 => 'LINE_NUMBER'
28013                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28014                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28015                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28016                                                                              l_component_type
28017                                                                             ,l_component_code
28018                                                                             ,l_component_type_code
28019                                                                             ,l_component_appl_id
28020                                                                             ,l_amb_context_code
28021                                                                             ,l_entity_code
28022                                                                             ,l_event_class_code
28023                                                                            )
28024                                     ,p_token_3                 => 'OWNER'
28025                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28026                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28027                                                                           ,p_lookup_code    => l_component_type_code
28028                                                                          )
28029                                     ,p_token_4                 => 'PRODUCT_NAME'
28030                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28031                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28032                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28033                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28034                                     ,p_ae_header_id            =>  NULL
28035                                        );
28036 
28037         IF (C_LEVEL_ERROR>= g_log_level) THEN
28038                  trace
28039                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28040                       ,p_level    => C_LEVEL_ERROR
28041                       ,p_module   => l_log_module);
28042         END IF;
28043       END IF;
28044    END IF;
28045    --
28049    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28046    --
28047    ------------------------------------------------------------------------------------------------
28048    -- 4219869 Business Flow
28050    -- Prior Entry.  Currently, the following code is always generated.
28051    ------------------------------------------------------------------------------------------------
28052    XLA_AE_LINES_PKG.ValidateCurrentLine;
28053 
28054    ------------------------------------------------------------------------------------
28055    -- 4219869 Business Flow
28056    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28057    ------------------------------------------------------------------------------------
28058    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28059 
28060    ----------------------------------------------------------------------------------
28061    -- 4219869 Business Flow
28062    -- Update journal entry status -- Need to generate this within IF <condition>
28063    ----------------------------------------------------------------------------------
28064    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28065          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28066          ,p_balance_type_code => l_balance_type_code
28067          );
28068 
28069    -------------------------------------------------------------------------------------------
28070    -- 4262811 - Generate the Accrual Reversal lines
28071    -------------------------------------------------------------------------------------------
28072    BEGIN
28073       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28074                               (g_array_event(p_event_id).array_value_num('header_index'));
28075       IF l_acc_rev_flag IS NULL THEN
28076          l_acc_rev_flag := 'N';
28077       END IF;
28078    EXCEPTION
28079       WHEN OTHERS THEN
28080          l_acc_rev_flag := 'N';
28081    END;
28082    --
28083    IF (l_acc_rev_flag = 'Y') THEN
28084 
28085        -- 4645092  ------------------------------------------------------------------------------
28086        -- To allow MPA report to determine if it should generate report process
28087        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28088        ------------------------------------------------------------------------------------------
28089 
28090        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28091        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28092    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28093    -- call ADRs
28094    -- Bug 4922099
28095    --
28096    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28097         (NVL(l_actual_upg_option, 'N') = 'O') OR
28098         (NVL(l_enc_upg_option, 'N') = 'O')
28099       )
28100    THEN
28101    NULL;
28102    --
28103    --
28104    
28105    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
28106      p_code_combination_id      => TO_NUMBER(C_NUM)
28107    , p_value_type_code          => NULL
28108    , p_transaction_coa_id       => null
28109    , p_accounting_coa_id        => null
28110    , p_adr_code                 => NULL
28111    , p_adr_type_code            => NULL
28112    , p_component_type           => l_component_type
28113    , p_component_code           => l_component_code
28114    , p_component_type_code      => l_component_type_code
28115    , p_component_appl_id        => l_component_appl_id
28116    , p_amb_context_code         => l_amb_context_code
28117    , p_side                     => NULL
28118    );
28119 
28120    
28121   -- initialise segments
28122   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28123   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28124   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28125   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28126   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28127   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28128   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28129   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28130   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
28131   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28132   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28133   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28134   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28135   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28136   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28137   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28138   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28139   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28140   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28141   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28145   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28142   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28143   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28144   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28146   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28147   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28148   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28149   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28150   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28151   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
28152   --
28153 
28154    --
28155 
28156 
28157    l_segment := AcctDerRule_16(
28158            p_application_id           => p_application_id
28159          , p_ae_header_id             => l_ae_header_id 
28160 , p_source_30 => p_source_30
28161          , x_transaction_coa_id       => l_adr_transaction_coa_id
28162          , x_accounting_coa_id        => l_adr_accounting_coa_id
28163          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
28164          , x_flex_value_set_id        => l_adr_flex_value_set_id
28165          , x_value_type_code          => l_adr_value_type_code
28166          , x_value_combination_id     => l_adr_value_combination_id
28167          , x_value_segment_code       => l_adr_value_segment_code
28168          , p_side                     => 'NA'
28169          , p_override_seg_flag        => 'Y'
28170    );
28171 
28172    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
28173 
28174       xla_ae_lines_pkg.set_segment(
28175           p_to_segment_code         => 'GL_ACCOUNT'
28176         , p_segment_value           => l_segment
28177         , p_from_segment_code       => l_adr_value_segment_code
28178         , p_from_combination_id     => l_adr_value_combination_id
28179         , p_value_type_code         => l_adr_value_type_code
28180         , p_transaction_coa_id      => l_adr_transaction_coa_id
28181         , p_accounting_coa_id       => l_adr_accounting_coa_id
28182         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
28183         , p_flex_value_set_id       => l_adr_flex_value_set_id
28184         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
28185         , p_adr_type_code           => 'S'
28186         , p_component_type          => l_component_type
28187         , p_component_code          => l_component_code
28188         , p_component_type_code     => l_component_type_code
28189         , p_component_appl_id       => l_component_appl_id
28190         , p_amb_context_code        => l_amb_context_code
28191         , p_entity_code             => 'AP_PAYMENTS'
28192         , p_event_class_code        => 'PAYMENTS'
28193         , p_side                    => 'NA'
28194         );
28195 
28196   END IF;
28197 
28198    --
28199    --
28200    END IF;
28201 
28202        --
28203        -- Update the line information that should be overwritten
28204        --
28205        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28206                                          p_header_num   => 1);
28207        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28208 
28209        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28210 
28211        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28212           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28213        END IF;
28214 
28215       --
28216       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28217       --
28218       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28219           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28220       ELSE
28221           ---------------------------------------------------------------------------------------------------
28222           -- 4262811a Switch Sign
28223           ---------------------------------------------------------------------------------------------------
28224           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28225           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28226                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28227           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28228                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28229           -- 5132302
28230           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28231                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28232 
28233       END IF;
28234 
28235       -- 4955764
28236       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28237       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28238 
28239 
28240       XLA_AE_LINES_PKG.ValidateCurrentLine;
28244                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28241       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28242 
28243       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28245                ,p_balance_type_code => l_balance_type_code);
28246 
28247    END IF;
28248 
28249    -----------------------------------------------------------------------------------------
28250    -- 4262811 Multiperiod Accounting
28251    -----------------------------------------------------------------------------------------
28252      -- No MPA option is assigned.
28253 
28254 
28255 END IF;
28256 END IF;
28257 --
28258 
28259 --
28260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28261    trace
28262       (p_msg      => 'END of AcctLineType_81'
28263       ,p_level    => C_LEVEL_PROCEDURE
28264       ,p_module   => l_log_module);
28265 END IF;
28266 --
28267 EXCEPTION
28268   WHEN xla_exceptions_pkg.application_exception THEN
28269       RAISE;
28270   WHEN OTHERS THEN
28271        xla_exceptions_pkg.raise_message
28272            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_81');
28273 END AcctLineType_81;
28274 --
28275 
28276 ---------------------------------------
28277 --
28278 -- PRIVATE FUNCTION
28279 --         AcctLineType_82
28280 --
28281 ---------------------------------------
28282 PROCEDURE AcctLineType_82 (
28283   p_application_id        IN NUMBER
28284  ,p_event_id              IN NUMBER
28285  ,p_calculate_acctd_flag  IN VARCHAR2
28286  ,p_calculate_g_l_flag    IN VARCHAR2
28287  ,p_actual_flag           IN OUT VARCHAR2
28288  ,p_balance_type_code     OUT VARCHAR2
28289  ,p_gain_or_loss_ref      OUT VARCHAR2
28290  
28291 --Payment Currency Code
28292  , p_source_8            IN VARCHAR2
28293 --Automatic Offsets Value
28294  , p_source_10            IN VARCHAR2
28295  , p_source_10_meaning    IN VARCHAR2
28296 --Bank Cash Clearing Account
28297  , p_source_30            IN NUMBER
28298 --When to Account for Payment Option
28299  , p_source_57            IN VARCHAR2
28300 --Accounting Reversal Indicator
28301  , p_source_58            IN VARCHAR2
28302 --Distribution Link Type
28303  , p_source_60            IN VARCHAR2
28304 --Override Accounted Amount Indicator
28305  , p_source_85            IN VARCHAR2
28306  , p_source_85_meaning    IN VARCHAR2
28307 --Third Party Type
28308  , p_source_88            IN VARCHAR2
28309 --Invoice Distribution Tax Line Identifier
28310  , p_source_91            IN NUMBER
28311 --Invoice Distribution Tax Distribution Identifier from Tax
28312  , p_source_92            IN NUMBER
28313 --Invoice Distribution Summary Tax Line Identifier
28314  , p_source_93            IN NUMBER
28315 --Business Flow Accounts Payable Application Identifier
28316  , p_source_96            IN NUMBER
28317 --Business Flow Invoice Distribution Type
28318  , p_source_97            IN VARCHAR2
28319 --Business Flow Invoice Entity Code
28320  , p_source_98            IN VARCHAR2
28321 --Business Flow Invoice Distribution Identifier
28322  , p_source_99            IN NUMBER
28323 --Business Flow Invoice Identifier
28324  , p_source_100            IN NUMBER
28325 --Payment Distribution Type
28326  , p_source_101            IN VARCHAR2
28327  , p_source_101_meaning    IN VARCHAR2
28328 --Payment Distribution Amount
28329  , p_source_102            IN NUMBER
28330 --Payment Distribution Identifier
28331  , p_source_107            IN NUMBER
28332 --Payment Supplier Identifier
28333  , p_source_113            IN NUMBER
28334 --Payment Supplier Site Identifier
28335  , p_source_114            IN NUMBER
28336 --Payment Distribution Reversed Identifier
28337  , p_source_115            IN NUMBER
28338 --Pooled Bank Account Option
28339  , p_source_116            IN VARCHAR2
28340  , p_source_116_meaning    IN VARCHAR2
28341 --Payment Maturity Date
28342  , p_source_117            IN DATE
28343 --Payment Distribution (Invoice Rate) Ledger Amount
28344  , p_source_119            IN NUMBER
28345 --Payment Exchange Date
28346  , p_source_120            IN DATE
28347 --Payment Exchange Rate
28348  , p_source_121            IN NUMBER
28349 --Payment Exchange Rate Type
28350  , p_source_122            IN VARCHAR2
28351 --Payment Type
28352  , p_source_125            IN VARCHAR2
28353  , p_source_125_meaning    IN VARCHAR2
28354 --Payment Processing Type
28355  , p_source_126            IN VARCHAR2
28356 --Invoice Distribution Amount of the Payment Distribution
28357  , p_source_127            IN NUMBER
28358 )
28359 IS
28360 
28361 l_component_type              VARCHAR2(80);
28362 l_component_code              VARCHAR2(30);
28363 l_component_type_code         VARCHAR2(1);
28364 l_component_appl_id           INTEGER;
28365 l_amb_context_code            VARCHAR2(30);
28366 l_entity_code                 VARCHAR2(30);
28367 l_event_class_code            VARCHAR2(30);
28368 l_ae_header_id                NUMBER;
28369 l_event_type_code             VARCHAR2(30);
28370 l_line_definition_code        VARCHAR2(30);
28371 l_line_definition_owner_code  VARCHAR2(1);
28372 --
28373 -- adr variables
28374 l_segment                     VARCHAR2(30);
28375 l_ccid                        NUMBER;
28376 l_adr_transaction_coa_id      NUMBER;
28377 l_adr_accounting_coa_id       NUMBER;
28378 l_adr_flexfield_segment_code  VARCHAR2(30);
28379 l_adr_flex_value_set_id       NUMBER;
28380 l_adr_value_type_code         VARCHAR2(30);
28384 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28381 l_adr_value_combination_id    NUMBER;
28382 l_adr_value_segment_code      VARCHAR2(30);
28383 
28385 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28386 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28387 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28388 
28389 -- 4262811 Variables ------------------------------------------------------------------------------------------
28390 l_entered_amt_idx             NUMBER;
28391 l_accted_amt_idx              NUMBER;
28392 l_acc_rev_flag                VARCHAR2(1);
28393 l_accrual_line_num            NUMBER;
28394 l_tmp_amt                     NUMBER;
28395 l_acc_rev_natural_side_code   VARCHAR2(1);
28396 
28397 l_num_entries                 NUMBER;
28398 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28399 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28400 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28401 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28402 l_recog_line_1                NUMBER;
28403 l_recog_line_2                NUMBER;
28404 
28405 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28406 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28407 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28408 
28409 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28410 
28411 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28412 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28413 
28414 ---------------------------------------------------------------------------------------------------------------
28415 
28416 
28417 --
28418 -- bulk performance
28419 --
28420 l_balance_type_code           VARCHAR2(1);
28421 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28422 l_log_module                  VARCHAR2(240);
28423 
28424 --
28425 -- Upgrade strategy
28426 --
28427 l_actual_upg_option           VARCHAR2(1);
28428 l_enc_upg_option           VARCHAR2(1);
28429 
28430 --
28431 BEGIN
28432 --
28433 IF g_log_enabled THEN
28434       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
28435 END IF;
28436 --
28437 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28438 
28439       trace
28440          (p_msg      => 'BEGIN of AcctLineType_82'
28441          ,p_level    => C_LEVEL_PROCEDURE
28442          ,p_module   => l_log_module);
28443 
28444 END IF;
28445 --
28446 l_component_type             := 'AMB_JLT';
28447 l_component_code             := 'AP_CASH_CLEAR_PMT_BS_INVXRATE';
28448 l_component_type_code        := 'S';
28449 l_component_appl_id          :=  200;
28450 l_amb_context_code           := 'DEFAULT';
28451 l_entity_code                := 'AP_PAYMENTS';
28452 l_event_class_code           := 'PAYMENTS';
28453 l_event_type_code            := 'PAYMENTS_ALL';
28454 l_line_definition_owner_code := 'S';
28455 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
28456 --
28457 l_balance_type_code          := 'A';
28458 l_segment                     := NULL;
28459 l_ccid                        := NULL;
28460 l_adr_transaction_coa_id      := NULL;
28461 l_adr_accounting_coa_id       := NULL;
28462 l_adr_flexfield_segment_code  := NULL;
28463 l_adr_flex_value_set_id       := NULL;
28464 l_adr_value_type_code         := NULL;
28465 l_adr_value_combination_id    := NULL;
28466 l_adr_value_segment_code      := NULL;
28467 
28468 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
28469 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28470 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28471 l_budgetary_control_flag     := 'N';
28472 
28473 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28474 l_bflow_applied_to_amt       := NULL; -- 5132302
28475 l_entered_amt_idx            := NULL;          -- 4262811
28476 l_accted_amt_idx             := NULL;          -- 4262811
28477 l_acc_rev_flag               := NULL;          -- 4262811
28478 l_accrual_line_num           := NULL;          -- 4262811
28479 l_tmp_amt                    := NULL;          -- 4262811
28480 --
28481  
28482 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28483     l_balance_type_code <> 'B' THEN
28484 IF NVL(p_source_57,'
28485 ') =  'ALWAYS_CLEAR' AND 
28486 (NVL(p_source_116,'
28487 ') =  'Y' AND 
28488 NVL(p_source_10,'
28489 ') =  'BALANCING_SEGMENT') AND 
28490 p_source_117 IS NULL AND 
28491 NVL(p_source_101,'
28492 ') =  'CASH' AND 
28493 NVL(p_source_125,'
28494 ') <>  'R' AND 
28495 NVL(p_source_126,'
28496 ') <>  'PAYMENTCARD'
28497  THEN 
28498 
28499    --
28500    XLA_AE_LINES_PKG.SetNewLine;
28501 
28502    p_balance_type_code          := l_balance_type_code;
28503    -- set the flag so later we will know whether the gain loss line needs to be created
28504    
28505    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28506      p_actual_flag :='A';
28507    END IF;
28508 
28509    --
28510    -- bulk performance
28511    --
28512    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28513                                       p_header_num   => 0); -- 4262811
28517    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28514    --
28515    -- set accounting line options
28516    --
28518            p_natural_side_code          => 'C'
28519          , p_gain_or_loss_flag          => 'N'
28520          , p_gl_transfer_mode_code      => 'S'
28521          , p_acct_entry_type_code       => 'A'
28522          , p_switch_side_flag           => 'Y'
28523          , p_merge_duplicate_code       => 'A'
28524          );
28525    --
28526    l_acc_rev_natural_side_code := 'D';  -- 4262811
28527    -- 
28528    --
28529    -- set accounting line type info
28530    --
28531    xla_ae_lines_pkg.SetAcctLineType
28532       (p_component_type             => l_component_type
28533       ,p_event_type_code            => l_event_type_code
28534       ,p_line_definition_owner_code => l_line_definition_owner_code
28535       ,p_line_definition_code       => l_line_definition_code
28536       ,p_accounting_line_code       => l_component_code
28537       ,p_accounting_line_type_code  => l_component_type_code
28538       ,p_accounting_line_appl_id    => l_component_appl_id
28539       ,p_amb_context_code           => l_amb_context_code
28540       ,p_entity_code                => l_entity_code
28541       ,p_event_class_code           => l_event_class_code);
28542    --
28543    -- set accounting class
28544    --
28545    xla_ae_lines_pkg.SetAcctClass(
28546            p_accounting_class_code  => 'CASH_CLEARING'
28547          , p_ae_header_id           => l_ae_header_id
28548          );
28549 
28550    --
28551    -- set rounding class
28552    --
28553    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28554                       'CASH_CLEARING';
28555 
28556    --
28557    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28558    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28559    --
28560    -- bulk performance
28561    --
28562    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28563 
28564    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28565       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28566 
28567    -- 4955764
28568    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28569       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28570 
28571    -- 4458381 Public Sector Enh
28572    
28573    --
28574    -- set accounting attributes for the line type
28575    --
28576    l_entered_amt_idx := 10;
28577    l_accted_amt_idx  := 15;
28578    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28579    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28580    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
28581    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28582    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
28583    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28584    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
28585    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28586    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
28587    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28588    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
28589    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28590    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
28591    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28592    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
28593    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28594    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
28595    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28596    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
28597    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28598    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
28599    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28600    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
28601    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28602    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
28603    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28604    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
28605    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28606    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
28607    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28608    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
28609    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28610    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
28611    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28612    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
28613    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28614    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
28615    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28616    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
28617    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28618    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
28622    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
28619    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28620    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
28621    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28623    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28624    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
28625    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28626    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
28627 
28628    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28629    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28630 
28631    ---------------------------------------------------------------------------------------------------------------
28632    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28633    ---------------------------------------------------------------------------------------------------------------
28634    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28635 
28636    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28637    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28638 
28639    IF xla_accounting_cache_pkg.GetValueChar
28640          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28641          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28642    AND l_bflow_method_code = 'PRIOR_ENTRY'
28643 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28644    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28645          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28646        )
28647    THEN
28648          xla_ae_lines_pkg.BflowUpgEntry
28649            (p_business_method_code    => l_bflow_method_code
28650            ,p_business_class_code     => l_bflow_class_code
28651            ,p_balance_type            => l_balance_type_code);
28652    ELSE
28653       NULL;
28654 XLA_AE_LINES_PKG.business_flow_validation(
28655                                 p_business_method_code     => l_bflow_method_code
28656                                ,p_business_class_code      => l_bflow_class_code
28657                                ,p_inherit_description_flag => l_inherit_desc_flag);
28658    END IF;
28659 
28660    --
28661    -- call analytical criteria
28662    --
28663    
28664    --
28665    -- call description
28666    --
28667    -- No description or it is inherited.
28668    --
28669    -- call ADRs
28670    -- Bug 4922099
28671    --
28672    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28673         (NVL(l_actual_upg_option, 'N') = 'O') OR
28674         (NVL(l_enc_upg_option, 'N') = 'O')
28675       )
28676    THEN
28677    NULL;
28678    --
28679    --
28680    
28681   l_ccid := AcctDerRule_38(
28682            p_application_id           => p_application_id
28683          , p_ae_header_id             => l_ae_header_id 
28684 , p_source_30 => p_source_30
28685          , x_transaction_coa_id       => l_adr_transaction_coa_id
28686          , x_accounting_coa_id        => l_adr_accounting_coa_id
28687          , x_value_type_code          => l_adr_value_type_code
28688          , p_side                     => 'NA'
28689    );
28690 
28691    xla_ae_lines_pkg.set_ccid(
28692     p_code_combination_id          => l_ccid
28693   , p_value_type_code              => l_adr_value_type_code
28694   , p_transaction_coa_id           => l_adr_transaction_coa_id
28695   , p_accounting_coa_id            => l_adr_accounting_coa_id
28696   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28697   , p_adr_type_code                => 'S'
28698   , p_component_type               => l_component_type
28699   , p_component_code               => l_component_code
28700   , p_component_type_code          => l_component_type_code
28701   , p_component_appl_id            => l_component_appl_id
28702   , p_amb_context_code             => l_amb_context_code
28703   , p_side                         => 'NA'
28704   );
28705 
28706 
28707    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
28708      p_to_segment_code         => 'GL_BALANCING'
28709    , p_segment_value           => C_CHAR
28710    , p_from_segment_code       => NULL
28711    , p_from_combination_id     => NULL
28712    , p_value_type_code         => NULL
28713    , p_transaction_coa_id      => null
28714    , p_accounting_coa_id       => null
28715    , p_flexfield_segment_code  => NULL
28716    , p_flex_value_set_id       => NULL
28717    , p_adr_code                => NULL
28718    , p_adr_type_code           => NULL
28719    , p_component_type          => l_component_type
28720    , p_component_code          => l_component_code
28721    , p_component_type_code     => l_component_type_code
28722    , p_component_appl_id       => l_component_appl_id
28723    , p_amb_context_code        => l_amb_context_code
28724    , p_entity_code             => 'AP_PAYMENTS'
28725    , p_event_class_code        => 'PAYMENTS'
28726    , p_side                    => 'NA'
28727    );
28728    --
28729 
28730 
28731    --
28732    --
28733    END IF;
28734    --
28735    -- Bug 4922099
28739         (l_bflow_method_code = 'PRIOR_ENTRY')
28736    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28737           (NVL(l_enc_upg_option, 'N') = 'O')
28738         ) AND
28740       )
28741    THEN
28742       IF
28743       --
28744       1 = 2
28745       --
28746       THEN
28747       xla_accounting_err_pkg.build_message
28748                                     (p_appli_s_name            => 'XLA'
28749                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28750                                     ,p_token_1                 => 'LINE_NUMBER'
28751                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28752                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28753                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28754                                                                              l_component_type
28755                                                                             ,l_component_code
28756                                                                             ,l_component_type_code
28757                                                                             ,l_component_appl_id
28758                                                                             ,l_amb_context_code
28759                                                                             ,l_entity_code
28760                                                                             ,l_event_class_code
28761                                                                            )
28762                                     ,p_token_3                 => 'OWNER'
28763                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28764                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28765                                                                           ,p_lookup_code    => l_component_type_code
28766                                                                          )
28767                                     ,p_token_4                 => 'PRODUCT_NAME'
28768                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28769                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28770                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28771                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28772                                     ,p_ae_header_id            =>  NULL
28773                                        );
28774 
28775         IF (C_LEVEL_ERROR>= g_log_level) THEN
28776                  trace
28777                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28778                       ,p_level    => C_LEVEL_ERROR
28779                       ,p_module   => l_log_module);
28780         END IF;
28781       END IF;
28782    END IF;
28783    --
28784    --
28785    ------------------------------------------------------------------------------------------------
28786    -- 4219869 Business Flow
28787    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28788    -- Prior Entry.  Currently, the following code is always generated.
28789    ------------------------------------------------------------------------------------------------
28790    XLA_AE_LINES_PKG.ValidateCurrentLine;
28791 
28792    ------------------------------------------------------------------------------------
28793    -- 4219869 Business Flow
28794    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28795    ------------------------------------------------------------------------------------
28796    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28797 
28798    ----------------------------------------------------------------------------------
28799    -- 4219869 Business Flow
28800    -- Update journal entry status -- Need to generate this within IF <condition>
28801    ----------------------------------------------------------------------------------
28802    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28803          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28804          ,p_balance_type_code => l_balance_type_code
28805          );
28806 
28807    -------------------------------------------------------------------------------------------
28808    -- 4262811 - Generate the Accrual Reversal lines
28809    -------------------------------------------------------------------------------------------
28810    BEGIN
28811       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28812                               (g_array_event(p_event_id).array_value_num('header_index'));
28813       IF l_acc_rev_flag IS NULL THEN
28814          l_acc_rev_flag := 'N';
28815       END IF;
28816    EXCEPTION
28817       WHEN OTHERS THEN
28818          l_acc_rev_flag := 'N';
28819    END;
28820    --
28821    IF (l_acc_rev_flag = 'Y') THEN
28822 
28823        -- 4645092  ------------------------------------------------------------------------------
28824        -- To allow MPA report to determine if it should generate report process
28825        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28826        ------------------------------------------------------------------------------------------
28830    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28827 
28828        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28829        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28831    -- call ADRs
28832    -- Bug 4922099
28833    --
28834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28835         (NVL(l_actual_upg_option, 'N') = 'O') OR
28836         (NVL(l_enc_upg_option, 'N') = 'O')
28837       )
28838    THEN
28839    NULL;
28840    --
28841    --
28842    
28843   l_ccid := AcctDerRule_38(
28844            p_application_id           => p_application_id
28845          , p_ae_header_id             => l_ae_header_id 
28846 , p_source_30 => p_source_30
28847          , x_transaction_coa_id       => l_adr_transaction_coa_id
28848          , x_accounting_coa_id        => l_adr_accounting_coa_id
28849          , x_value_type_code          => l_adr_value_type_code
28850          , p_side                     => 'NA'
28851    );
28852 
28853    xla_ae_lines_pkg.set_ccid(
28854     p_code_combination_id          => l_ccid
28855   , p_value_type_code              => l_adr_value_type_code
28856   , p_transaction_coa_id           => l_adr_transaction_coa_id
28857   , p_accounting_coa_id            => l_adr_accounting_coa_id
28858   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28859   , p_adr_type_code                => 'S'
28860   , p_component_type               => l_component_type
28861   , p_component_code               => l_component_code
28862   , p_component_type_code          => l_component_type_code
28863   , p_component_appl_id            => l_component_appl_id
28864   , p_amb_context_code             => l_amb_context_code
28865   , p_side                         => 'NA'
28866   );
28867 
28868 
28869    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
28870      p_to_segment_code         => 'GL_BALANCING'
28871    , p_segment_value           => C_CHAR
28872    , p_from_segment_code       => NULL
28873    , p_from_combination_id     => NULL
28874    , p_value_type_code         => NULL
28875    , p_transaction_coa_id      => null
28876    , p_accounting_coa_id       => null
28877    , p_flexfield_segment_code  => NULL
28878    , p_flex_value_set_id       => NULL
28879    , p_adr_code                => NULL
28880    , p_adr_type_code           => NULL
28881    , p_component_type          => l_component_type
28882    , p_component_code          => l_component_code
28883    , p_component_type_code     => l_component_type_code
28884    , p_component_appl_id       => l_component_appl_id
28885    , p_amb_context_code        => l_amb_context_code
28886    , p_entity_code             => 'AP_PAYMENTS'
28887    , p_event_class_code        => 'PAYMENTS'
28888    , p_side                    => 'NA'
28889    );
28890    --
28891 
28892 
28893    --
28894    --
28895    END IF;
28896 
28897        --
28898        -- Update the line information that should be overwritten
28899        --
28900        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28901                                          p_header_num   => 1);
28902        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28903 
28904        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28905 
28906        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28907           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28908        END IF;
28909 
28910       --
28911       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28912       --
28913       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28914           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28915       ELSE
28916           ---------------------------------------------------------------------------------------------------
28917           -- 4262811a Switch Sign
28918           ---------------------------------------------------------------------------------------------------
28919           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28920           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28921                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28922           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28923                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28924           -- 5132302
28925           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28926                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28927 
28928       END IF;
28929 
28930       -- 4955764
28931       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28932       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28933 
28934 
28935       XLA_AE_LINES_PKG.ValidateCurrentLine;
28936       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28937 
28938       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28939                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28943 
28940                ,p_balance_type_code => l_balance_type_code);
28941 
28942    END IF;
28944    -----------------------------------------------------------------------------------------
28945    -- 4262811 Multiperiod Accounting
28946    -----------------------------------------------------------------------------------------
28947      -- No MPA option is assigned.
28948 
28949 
28950 END IF;
28951 END IF;
28952 --
28953 
28954 --
28955 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28956    trace
28957       (p_msg      => 'END of AcctLineType_82'
28958       ,p_level    => C_LEVEL_PROCEDURE
28959       ,p_module   => l_log_module);
28960 END IF;
28961 --
28962 EXCEPTION
28963   WHEN xla_exceptions_pkg.application_exception THEN
28964       RAISE;
28965   WHEN OTHERS THEN
28966        xla_exceptions_pkg.raise_message
28967            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_82');
28968 END AcctLineType_82;
28969 --
28970 
28971 ---------------------------------------
28972 --
28973 -- PRIVATE FUNCTION
28974 --         AcctLineType_83
28975 --
28976 ---------------------------------------
28977 PROCEDURE AcctLineType_83 (
28978   p_application_id        IN NUMBER
28979  ,p_event_id              IN NUMBER
28980  ,p_calculate_acctd_flag  IN VARCHAR2
28981  ,p_calculate_g_l_flag    IN VARCHAR2
28982  ,p_actual_flag           IN OUT VARCHAR2
28983  ,p_balance_type_code     OUT VARCHAR2
28984  ,p_gain_or_loss_ref      OUT VARCHAR2
28985  
28986 --Payment Currency Code
28987  , p_source_8            IN VARCHAR2
28988 --Bank Cash Clearing Account
28989  , p_source_30            IN NUMBER
28990 --Automatic Offsets Flag
28991  , p_source_43            IN VARCHAR2
28992  , p_source_43_meaning    IN VARCHAR2
28993 --When to Account for Payment Option
28994  , p_source_57            IN VARCHAR2
28995 --Accounting Reversal Indicator
28996  , p_source_58            IN VARCHAR2
28997 --Distribution Link Type
28998  , p_source_60            IN VARCHAR2
28999 --Override Accounted Amount Indicator
29000  , p_source_85            IN VARCHAR2
29001  , p_source_85_meaning    IN VARCHAR2
29002 --Third Party Type
29003  , p_source_88            IN VARCHAR2
29004 --Invoice Distribution Tax Line Identifier
29005  , p_source_91            IN NUMBER
29006 --Invoice Distribution Tax Distribution Identifier from Tax
29007  , p_source_92            IN NUMBER
29008 --Invoice Distribution Summary Tax Line Identifier
29009  , p_source_93            IN NUMBER
29010 --Business Flow Accounts Payable Application Identifier
29011  , p_source_96            IN NUMBER
29012 --Business Flow Invoice Distribution Type
29013  , p_source_97            IN VARCHAR2
29014 --Business Flow Invoice Entity Code
29015  , p_source_98            IN VARCHAR2
29016 --Business Flow Invoice Distribution Identifier
29017  , p_source_99            IN NUMBER
29018 --Business Flow Invoice Identifier
29019  , p_source_100            IN NUMBER
29020 --Payment Distribution Type
29021  , p_source_101            IN VARCHAR2
29022  , p_source_101_meaning    IN VARCHAR2
29023 --Payment Distribution Amount
29024  , p_source_102            IN NUMBER
29025 --Payment Distribution Identifier
29026  , p_source_107            IN NUMBER
29027 --Payment Supplier Identifier
29028  , p_source_113            IN NUMBER
29029 --Payment Supplier Site Identifier
29030  , p_source_114            IN NUMBER
29031 --Payment Distribution Reversed Identifier
29032  , p_source_115            IN NUMBER
29033 --Pooled Bank Account Option
29034  , p_source_116            IN VARCHAR2
29035  , p_source_116_meaning    IN VARCHAR2
29036 --Payment Maturity Date
29037  , p_source_117            IN DATE
29038 --Payment Distribution (Invoice Rate) Ledger Amount
29039  , p_source_119            IN NUMBER
29040 --Payment Exchange Date
29041  , p_source_120            IN DATE
29042 --Payment Exchange Rate
29043  , p_source_121            IN NUMBER
29044 --Payment Exchange Rate Type
29045  , p_source_122            IN VARCHAR2
29046 --Payment Type
29047  , p_source_125            IN VARCHAR2
29048  , p_source_125_meaning    IN VARCHAR2
29049 --Payment Processing Type
29050  , p_source_126            IN VARCHAR2
29051 --Invoice Distribution Amount of the Payment Distribution
29052  , p_source_127            IN NUMBER
29053 )
29054 IS
29055 
29056 l_component_type              VARCHAR2(80);
29057 l_component_code              VARCHAR2(30);
29058 l_component_type_code         VARCHAR2(1);
29059 l_component_appl_id           INTEGER;
29060 l_amb_context_code            VARCHAR2(30);
29061 l_entity_code                 VARCHAR2(30);
29062 l_event_class_code            VARCHAR2(30);
29063 l_ae_header_id                NUMBER;
29064 l_event_type_code             VARCHAR2(30);
29065 l_line_definition_code        VARCHAR2(30);
29066 l_line_definition_owner_code  VARCHAR2(1);
29067 --
29068 -- adr variables
29069 l_segment                     VARCHAR2(30);
29070 l_ccid                        NUMBER;
29071 l_adr_transaction_coa_id      NUMBER;
29072 l_adr_accounting_coa_id       NUMBER;
29073 l_adr_flexfield_segment_code  VARCHAR2(30);
29074 l_adr_flex_value_set_id       NUMBER;
29075 l_adr_value_type_code         VARCHAR2(30);
29076 l_adr_value_combination_id    NUMBER;
29077 l_adr_value_segment_code      VARCHAR2(30);
29078 
29079 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29083 
29080 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29081 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29082 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29084 -- 4262811 Variables ------------------------------------------------------------------------------------------
29085 l_entered_amt_idx             NUMBER;
29086 l_accted_amt_idx              NUMBER;
29087 l_acc_rev_flag                VARCHAR2(1);
29088 l_accrual_line_num            NUMBER;
29089 l_tmp_amt                     NUMBER;
29090 l_acc_rev_natural_side_code   VARCHAR2(1);
29091 
29092 l_num_entries                 NUMBER;
29093 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29094 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29095 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29096 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29097 l_recog_line_1                NUMBER;
29098 l_recog_line_2                NUMBER;
29099 
29100 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29101 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29102 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29103 
29104 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29105 
29106 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29107 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29108 
29109 ---------------------------------------------------------------------------------------------------------------
29110 
29111 
29112 --
29113 -- bulk performance
29114 --
29115 l_balance_type_code           VARCHAR2(1);
29116 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29117 l_log_module                  VARCHAR2(240);
29118 
29119 --
29120 -- Upgrade strategy
29121 --
29122 l_actual_upg_option           VARCHAR2(1);
29123 l_enc_upg_option           VARCHAR2(1);
29124 
29125 --
29126 BEGIN
29127 --
29128 IF g_log_enabled THEN
29129       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
29130 END IF;
29131 --
29132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29133 
29134       trace
29135          (p_msg      => 'BEGIN of AcctLineType_83'
29136          ,p_level    => C_LEVEL_PROCEDURE
29137          ,p_module   => l_log_module);
29138 
29139 END IF;
29140 --
29141 l_component_type             := 'AMB_JLT';
29142 l_component_code             := 'AP_CASH_CLEAR_PMT_INVXRATE';
29143 l_component_type_code        := 'S';
29144 l_component_appl_id          :=  200;
29145 l_amb_context_code           := 'DEFAULT';
29146 l_entity_code                := 'AP_PAYMENTS';
29147 l_event_class_code           := 'PAYMENTS';
29148 l_event_type_code            := 'PAYMENTS_ALL';
29149 l_line_definition_owner_code := 'S';
29150 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
29151 --
29152 l_balance_type_code          := 'A';
29153 l_segment                     := NULL;
29154 l_ccid                        := NULL;
29155 l_adr_transaction_coa_id      := NULL;
29156 l_adr_accounting_coa_id       := NULL;
29157 l_adr_flexfield_segment_code  := NULL;
29158 l_adr_flex_value_set_id       := NULL;
29159 l_adr_value_type_code         := NULL;
29160 l_adr_value_combination_id    := NULL;
29161 l_adr_value_segment_code      := NULL;
29162 
29163 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
29164 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
29165 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29166 l_budgetary_control_flag     := 'N';
29167 
29168 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29169 l_bflow_applied_to_amt       := NULL; -- 5132302
29170 l_entered_amt_idx            := NULL;          -- 4262811
29171 l_accted_amt_idx             := NULL;          -- 4262811
29172 l_acc_rev_flag               := NULL;          -- 4262811
29173 l_accrual_line_num           := NULL;          -- 4262811
29174 l_tmp_amt                    := NULL;          -- 4262811
29175 --
29176  
29177 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29178     l_balance_type_code <> 'B' THEN
29179 IF NVL(p_source_57,'
29180 ') =  'ALWAYS_CLEAR' AND 
29181 (NVL(p_source_43,'
29182 ') <>  'Y' OR 
29183 NVL(p_source_43,'
29184 ') =  'Y' AND 
29185 NVL(p_source_116,'
29186 ') <>  'Y') AND 
29187 p_source_117 IS NULL AND 
29188 NVL(p_source_101,'
29189 ') =  'CASH' AND 
29190 NVL(p_source_125,'
29191 ') <>  'R' AND 
29192 NVL(p_source_126,'
29193 ') <>  'PAYMENTCARD'
29194  THEN 
29195 
29196    --
29197    XLA_AE_LINES_PKG.SetNewLine;
29198 
29199    p_balance_type_code          := l_balance_type_code;
29200    -- set the flag so later we will know whether the gain loss line needs to be created
29201    
29202    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29203      p_actual_flag :='A';
29204    END IF;
29205 
29206    --
29207    -- bulk performance
29208    --
29209    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29210                                       p_header_num   => 0); -- 4262811
29211    --
29212    -- set accounting line options
29213    --
29214    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29215            p_natural_side_code          => 'C'
29219          , p_switch_side_flag           => 'Y'
29216          , p_gain_or_loss_flag          => 'N'
29217          , p_gl_transfer_mode_code      => 'S'
29218          , p_acct_entry_type_code       => 'A'
29220          , p_merge_duplicate_code       => 'A'
29221          );
29222    --
29223    l_acc_rev_natural_side_code := 'D';  -- 4262811
29224    -- 
29225    --
29226    -- set accounting line type info
29227    --
29228    xla_ae_lines_pkg.SetAcctLineType
29229       (p_component_type             => l_component_type
29230       ,p_event_type_code            => l_event_type_code
29231       ,p_line_definition_owner_code => l_line_definition_owner_code
29232       ,p_line_definition_code       => l_line_definition_code
29233       ,p_accounting_line_code       => l_component_code
29234       ,p_accounting_line_type_code  => l_component_type_code
29235       ,p_accounting_line_appl_id    => l_component_appl_id
29236       ,p_amb_context_code           => l_amb_context_code
29237       ,p_entity_code                => l_entity_code
29238       ,p_event_class_code           => l_event_class_code);
29239    --
29240    -- set accounting class
29241    --
29242    xla_ae_lines_pkg.SetAcctClass(
29243            p_accounting_class_code  => 'CASH_CLEARING'
29244          , p_ae_header_id           => l_ae_header_id
29245          );
29246 
29247    --
29248    -- set rounding class
29249    --
29250    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29251                       'CASH_CLEARING';
29252 
29253    --
29254    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29255    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29256    --
29257    -- bulk performance
29258    --
29259    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29260 
29261    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29262       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29263 
29264    -- 4955764
29265    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29266       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29267 
29268    -- 4458381 Public Sector Enh
29269    
29270    --
29271    -- set accounting attributes for the line type
29272    --
29273    l_entered_amt_idx := 10;
29274    l_accted_amt_idx  := 15;
29275    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
29276    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29277    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
29278    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
29279    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
29280    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
29281    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
29282    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29283    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
29284    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
29285    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
29286    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
29287    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
29288    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29289    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
29290    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
29291    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
29292    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
29293    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
29294    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
29295    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
29296    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
29297    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
29298    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
29299    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
29300    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
29301    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
29302    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
29303    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
29304    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
29305    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
29306    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
29307    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
29308    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
29309    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
29310    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
29311    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
29312    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
29313    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
29314    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
29315    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
29316    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
29317    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
29321    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
29318    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
29319    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
29320    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
29322    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
29323    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
29324 
29325    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29326    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29327 
29328    ---------------------------------------------------------------------------------------------------------------
29329    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29330    ---------------------------------------------------------------------------------------------------------------
29331    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29332 
29333    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29334    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29335 
29336    IF xla_accounting_cache_pkg.GetValueChar
29337          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29338          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29339    AND l_bflow_method_code = 'PRIOR_ENTRY'
29340 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29341    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29342          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29343        )
29344    THEN
29345          xla_ae_lines_pkg.BflowUpgEntry
29346            (p_business_method_code    => l_bflow_method_code
29347            ,p_business_class_code     => l_bflow_class_code
29348            ,p_balance_type            => l_balance_type_code);
29349    ELSE
29350       NULL;
29351 -- No business flow processing for business flow method of NONE.
29352    END IF;
29353 
29354    --
29355    -- call analytical criteria
29356    --
29357    
29358    --
29359    -- call description
29360    --
29361    -- No description or it is inherited.
29362    --
29363    -- call ADRs
29364    -- Bug 4922099
29365    --
29366    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29367         (NVL(l_actual_upg_option, 'N') = 'O') OR
29368         (NVL(l_enc_upg_option, 'N') = 'O')
29369       )
29370    THEN
29371    NULL;
29372    --
29373    --
29374    
29375   l_ccid := AcctDerRule_38(
29376            p_application_id           => p_application_id
29377          , p_ae_header_id             => l_ae_header_id 
29378 , p_source_30 => p_source_30
29379          , x_transaction_coa_id       => l_adr_transaction_coa_id
29380          , x_accounting_coa_id        => l_adr_accounting_coa_id
29381          , x_value_type_code          => l_adr_value_type_code
29382          , p_side                     => 'NA'
29383    );
29384 
29385    xla_ae_lines_pkg.set_ccid(
29386     p_code_combination_id          => l_ccid
29387   , p_value_type_code              => l_adr_value_type_code
29388   , p_transaction_coa_id           => l_adr_transaction_coa_id
29389   , p_accounting_coa_id            => l_adr_accounting_coa_id
29390   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29391   , p_adr_type_code                => 'S'
29392   , p_component_type               => l_component_type
29393   , p_component_code               => l_component_code
29394   , p_component_type_code          => l_component_type_code
29395   , p_component_appl_id            => l_component_appl_id
29396   , p_amb_context_code             => l_amb_context_code
29397   , p_side                         => 'NA'
29398   );
29399 
29400 
29401    --
29402    --
29403    END IF;
29404    --
29405    -- Bug 4922099
29406    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29407           (NVL(l_enc_upg_option, 'N') = 'O')
29408         ) AND
29409         (l_bflow_method_code = 'PRIOR_ENTRY')
29410       )
29411    THEN
29412       IF
29413       --
29414       1 = 2
29415       --
29416       THEN
29417       xla_accounting_err_pkg.build_message
29418                                     (p_appli_s_name            => 'XLA'
29419                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29420                                     ,p_token_1                 => 'LINE_NUMBER'
29421                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29422                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29423                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29424                                                                              l_component_type
29425                                                                             ,l_component_code
29426                                                                             ,l_component_type_code
29427                                                                             ,l_component_appl_id
29428                                                                             ,l_amb_context_code
29429                                                                             ,l_entity_code
29433                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29430                                                                             ,l_event_class_code
29431                                                                            )
29432                                     ,p_token_3                 => 'OWNER'
29434                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29435                                                                           ,p_lookup_code    => l_component_type_code
29436                                                                          )
29437                                     ,p_token_4                 => 'PRODUCT_NAME'
29438                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29439                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29440                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29441                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29442                                     ,p_ae_header_id            =>  NULL
29443                                        );
29444 
29445         IF (C_LEVEL_ERROR>= g_log_level) THEN
29446                  trace
29447                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29448                       ,p_level    => C_LEVEL_ERROR
29449                       ,p_module   => l_log_module);
29450         END IF;
29451       END IF;
29452    END IF;
29453    --
29454    --
29455    ------------------------------------------------------------------------------------------------
29456    -- 4219869 Business Flow
29457    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29458    -- Prior Entry.  Currently, the following code is always generated.
29459    ------------------------------------------------------------------------------------------------
29460    XLA_AE_LINES_PKG.ValidateCurrentLine;
29461 
29462    ------------------------------------------------------------------------------------
29463    -- 4219869 Business Flow
29464    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29465    ------------------------------------------------------------------------------------
29466    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29467 
29468    ----------------------------------------------------------------------------------
29469    -- 4219869 Business Flow
29470    -- Update journal entry status -- Need to generate this within IF <condition>
29471    ----------------------------------------------------------------------------------
29472    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29473          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29474          ,p_balance_type_code => l_balance_type_code
29475          );
29476 
29477    -------------------------------------------------------------------------------------------
29478    -- 4262811 - Generate the Accrual Reversal lines
29479    -------------------------------------------------------------------------------------------
29480    BEGIN
29481       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29482                               (g_array_event(p_event_id).array_value_num('header_index'));
29483       IF l_acc_rev_flag IS NULL THEN
29484          l_acc_rev_flag := 'N';
29485       END IF;
29486    EXCEPTION
29487       WHEN OTHERS THEN
29488          l_acc_rev_flag := 'N';
29489    END;
29490    --
29491    IF (l_acc_rev_flag = 'Y') THEN
29492 
29493        -- 4645092  ------------------------------------------------------------------------------
29494        -- To allow MPA report to determine if it should generate report process
29495        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29496        ------------------------------------------------------------------------------------------
29497 
29498        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29499        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29500    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29501    -- call ADRs
29502    -- Bug 4922099
29503    --
29504    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29505         (NVL(l_actual_upg_option, 'N') = 'O') OR
29506         (NVL(l_enc_upg_option, 'N') = 'O')
29507       )
29508    THEN
29509    NULL;
29510    --
29511    --
29512    
29513   l_ccid := AcctDerRule_38(
29514            p_application_id           => p_application_id
29515          , p_ae_header_id             => l_ae_header_id 
29516 , p_source_30 => p_source_30
29517          , x_transaction_coa_id       => l_adr_transaction_coa_id
29518          , x_accounting_coa_id        => l_adr_accounting_coa_id
29519          , x_value_type_code          => l_adr_value_type_code
29520          , p_side                     => 'NA'
29521    );
29522 
29523    xla_ae_lines_pkg.set_ccid(
29524     p_code_combination_id          => l_ccid
29525   , p_value_type_code              => l_adr_value_type_code
29526   , p_transaction_coa_id           => l_adr_transaction_coa_id
29527   , p_accounting_coa_id            => l_adr_accounting_coa_id
29528   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29529   , p_adr_type_code                => 'S'
29530   , p_component_type               => l_component_type
29534   , p_amb_context_code             => l_amb_context_code
29531   , p_component_code               => l_component_code
29532   , p_component_type_code          => l_component_type_code
29533   , p_component_appl_id            => l_component_appl_id
29535   , p_side                         => 'NA'
29536   );
29537 
29538 
29539    --
29540    --
29541    END IF;
29542 
29543        --
29544        -- Update the line information that should be overwritten
29545        --
29546        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29547                                          p_header_num   => 1);
29548        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29549 
29550        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29551 
29552        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29553           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29554        END IF;
29555 
29556       --
29557       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29558       --
29559       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29560           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29561       ELSE
29562           ---------------------------------------------------------------------------------------------------
29563           -- 4262811a Switch Sign
29564           ---------------------------------------------------------------------------------------------------
29565           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29566           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29567                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29568           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29569                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29570           -- 5132302
29571           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29572                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29573 
29574       END IF;
29575 
29576       -- 4955764
29577       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29578       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29579 
29580 
29581       XLA_AE_LINES_PKG.ValidateCurrentLine;
29582       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29583 
29584       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29585                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29586                ,p_balance_type_code => l_balance_type_code);
29587 
29588    END IF;
29589 
29590    -----------------------------------------------------------------------------------------
29591    -- 4262811 Multiperiod Accounting
29592    -----------------------------------------------------------------------------------------
29593      -- No MPA option is assigned.
29594 
29595 
29596 END IF;
29597 END IF;
29598 --
29599 
29600 --
29601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29602    trace
29603       (p_msg      => 'END of AcctLineType_83'
29604       ,p_level    => C_LEVEL_PROCEDURE
29605       ,p_module   => l_log_module);
29606 END IF;
29607 --
29608 EXCEPTION
29609   WHEN xla_exceptions_pkg.application_exception THEN
29610       RAISE;
29611   WHEN OTHERS THEN
29612        xla_exceptions_pkg.raise_message
29613            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_83');
29614 END AcctLineType_83;
29615 --
29616 
29617 ---------------------------------------
29618 --
29619 -- PRIVATE FUNCTION
29620 --         AcctLineType_84
29621 --
29622 ---------------------------------------
29623 PROCEDURE AcctLineType_84 (
29624   p_application_id        IN NUMBER
29625  ,p_event_id              IN NUMBER
29626  ,p_calculate_acctd_flag  IN VARCHAR2
29627  ,p_calculate_g_l_flag    IN VARCHAR2
29628  ,p_actual_flag           IN OUT VARCHAR2
29629  ,p_balance_type_code     OUT VARCHAR2
29630  ,p_gain_or_loss_ref      OUT VARCHAR2
29631  
29632 --Payment Currency Code
29633  , p_source_8            IN VARCHAR2
29634 --Bank Cash Clearing Account
29635  , p_source_30            IN NUMBER
29636 --Automatic Offsets Flag
29637  , p_source_43            IN VARCHAR2
29638  , p_source_43_meaning    IN VARCHAR2
29639 --When to Account for Payment Option
29640  , p_source_57            IN VARCHAR2
29641 --Accounting Reversal Indicator
29642  , p_source_58            IN VARCHAR2
29643 --Distribution Link Type
29644  , p_source_60            IN VARCHAR2
29645 --Override Accounted Amount Indicator
29646  , p_source_85            IN VARCHAR2
29647  , p_source_85_meaning    IN VARCHAR2
29648 --Third Party Type
29649  , p_source_88            IN VARCHAR2
29650 --Business Flow Accounts Payable Application Identifier
29651  , p_source_96            IN NUMBER
29652 --Payment Distribution Type
29653  , p_source_101            IN VARCHAR2
29654  , p_source_101_meaning    IN VARCHAR2
29655 --Payment Distribution Amount
29656  , p_source_102            IN NUMBER
29660  , p_source_104            IN VARCHAR2
29657 --Business Flow Payment Distribution Type
29658  , p_source_103            IN VARCHAR2
29659 --Business Flow Payment Entity Code
29661 --Business Flow Payment Distribution Identifier
29662  , p_source_105            IN NUMBER
29663 --Business Flow Payment Identifier
29664  , p_source_106            IN NUMBER
29665 --Payment Distribution Identifier
29666  , p_source_107            IN NUMBER
29667 --Payment Supplier Identifier
29668  , p_source_113            IN NUMBER
29669 --Payment Supplier Site Identifier
29670  , p_source_114            IN NUMBER
29671 --Payment Distribution Reversed Identifier
29672  , p_source_115            IN NUMBER
29673 --Pooled Bank Account Option
29674  , p_source_116            IN VARCHAR2
29675  , p_source_116_meaning    IN VARCHAR2
29676 --Payment Maturity Date
29677  , p_source_117            IN DATE
29678 --Payment Exchange Date
29679  , p_source_120            IN DATE
29680 --Payment Exchange Rate
29681  , p_source_121            IN NUMBER
29682 --Payment Exchange Rate Type
29683  , p_source_122            IN VARCHAR2
29684 --Payment Distribution (Matured Rate) Ledger Amount
29685  , p_source_124            IN NUMBER
29686 )
29687 IS
29688 
29689 l_component_type              VARCHAR2(80);
29690 l_component_code              VARCHAR2(30);
29691 l_component_type_code         VARCHAR2(1);
29692 l_component_appl_id           INTEGER;
29693 l_amb_context_code            VARCHAR2(30);
29694 l_entity_code                 VARCHAR2(30);
29695 l_event_class_code            VARCHAR2(30);
29696 l_ae_header_id                NUMBER;
29697 l_event_type_code             VARCHAR2(30);
29698 l_line_definition_code        VARCHAR2(30);
29699 l_line_definition_owner_code  VARCHAR2(1);
29700 --
29701 -- adr variables
29702 l_segment                     VARCHAR2(30);
29703 l_ccid                        NUMBER;
29704 l_adr_transaction_coa_id      NUMBER;
29705 l_adr_accounting_coa_id       NUMBER;
29706 l_adr_flexfield_segment_code  VARCHAR2(30);
29707 l_adr_flex_value_set_id       NUMBER;
29708 l_adr_value_type_code         VARCHAR2(30);
29709 l_adr_value_combination_id    NUMBER;
29710 l_adr_value_segment_code      VARCHAR2(30);
29711 
29712 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29713 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29714 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29715 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29716 
29717 -- 4262811 Variables ------------------------------------------------------------------------------------------
29718 l_entered_amt_idx             NUMBER;
29719 l_accted_amt_idx              NUMBER;
29720 l_acc_rev_flag                VARCHAR2(1);
29721 l_accrual_line_num            NUMBER;
29722 l_tmp_amt                     NUMBER;
29723 l_acc_rev_natural_side_code   VARCHAR2(1);
29724 
29725 l_num_entries                 NUMBER;
29726 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29727 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29728 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29729 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29730 l_recog_line_1                NUMBER;
29731 l_recog_line_2                NUMBER;
29732 
29733 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29734 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29735 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29736 
29737 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29738 
29739 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29740 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29741 
29742 ---------------------------------------------------------------------------------------------------------------
29743 
29744 
29745 --
29746 -- bulk performance
29747 --
29748 l_balance_type_code           VARCHAR2(1);
29749 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29750 l_log_module                  VARCHAR2(240);
29751 
29752 --
29753 -- Upgrade strategy
29754 --
29755 l_actual_upg_option           VARCHAR2(1);
29756 l_enc_upg_option           VARCHAR2(1);
29757 
29758 --
29759 BEGIN
29760 --
29761 IF g_log_enabled THEN
29762       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
29763 END IF;
29764 --
29765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29766 
29767       trace
29768          (p_msg      => 'BEGIN of AcctLineType_84'
29769          ,p_level    => C_LEVEL_PROCEDURE
29770          ,p_module   => l_log_module);
29771 
29772 END IF;
29773 --
29774 l_component_type             := 'AMB_JLT';
29775 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT';
29776 l_component_type_code        := 'S';
29777 l_component_appl_id          :=  200;
29778 l_amb_context_code           := 'DEFAULT';
29779 l_entity_code                := 'AP_PAYMENTS';
29780 l_event_class_code           := 'FUTURE DATED PAYMENTS';
29781 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
29782 l_line_definition_owner_code := 'S';
29783 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
29784 --
29785 l_balance_type_code          := 'A';
29786 l_segment                     := NULL;
29790 l_adr_flexfield_segment_code  := NULL;
29787 l_ccid                        := NULL;
29788 l_adr_transaction_coa_id      := NULL;
29789 l_adr_accounting_coa_id       := NULL;
29791 l_adr_flex_value_set_id       := NULL;
29792 l_adr_value_type_code         := NULL;
29793 l_adr_value_combination_id    := NULL;
29794 l_adr_value_segment_code      := NULL;
29795 
29796 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
29797 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
29798 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29799 l_budgetary_control_flag     := 'N';
29800 
29801 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29802 l_bflow_applied_to_amt       := NULL; -- 5132302
29803 l_entered_amt_idx            := NULL;          -- 4262811
29804 l_accted_amt_idx             := NULL;          -- 4262811
29805 l_acc_rev_flag               := NULL;          -- 4262811
29806 l_accrual_line_num           := NULL;          -- 4262811
29807 l_tmp_amt                    := NULL;          -- 4262811
29808 --
29809  
29810 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29811     l_balance_type_code <> 'B' THEN
29812 IF (NVL(p_source_57,'
29813 ') =  'ALWAYS_ALWAYS' OR 
29814 NVL(p_source_57,'
29815 ') =  'ALWAYS_ISSUE') AND 
29816 (NVL(p_source_43,'
29817 ') <>  'Y' OR 
29818 NVL(p_source_43,'
29819 ') =  'Y' AND 
29820 NVL(p_source_116,'
29821 ') <>  'Y') AND 
29822 p_source_117 IS NOT NULL AND 
29823 NVL(p_source_101,'
29824 ') =  'CASH'
29825  THEN 
29826 
29827    --
29828    XLA_AE_LINES_PKG.SetNewLine;
29829 
29830    p_balance_type_code          := l_balance_type_code;
29831    -- set the flag so later we will know whether the gain loss line needs to be created
29832    
29833    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29834      p_actual_flag :='A';
29835    END IF;
29836 
29837    --
29838    -- bulk performance
29839    --
29840    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29841                                       p_header_num   => 0); -- 4262811
29842    --
29843    -- set accounting line options
29844    --
29845    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29846            p_natural_side_code          => 'C'
29847          , p_gain_or_loss_flag          => 'N'
29848          , p_gl_transfer_mode_code      => 'S'
29849          , p_acct_entry_type_code       => 'A'
29850          , p_switch_side_flag           => 'Y'
29851          , p_merge_duplicate_code       => 'A'
29852          );
29853    --
29854    l_acc_rev_natural_side_code := 'D';  -- 4262811
29855    -- 
29856    --
29857    -- set accounting line type info
29858    --
29859    xla_ae_lines_pkg.SetAcctLineType
29860       (p_component_type             => l_component_type
29861       ,p_event_type_code            => l_event_type_code
29862       ,p_line_definition_owner_code => l_line_definition_owner_code
29863       ,p_line_definition_code       => l_line_definition_code
29864       ,p_accounting_line_code       => l_component_code
29865       ,p_accounting_line_type_code  => l_component_type_code
29866       ,p_accounting_line_appl_id    => l_component_appl_id
29867       ,p_amb_context_code           => l_amb_context_code
29868       ,p_entity_code                => l_entity_code
29869       ,p_event_class_code           => l_event_class_code);
29870    --
29871    -- set accounting class
29872    --
29873    xla_ae_lines_pkg.SetAcctClass(
29874            p_accounting_class_code  => 'CASH_CLEARING'
29875          , p_ae_header_id           => l_ae_header_id
29876          );
29877 
29878    --
29879    -- set rounding class
29880    --
29881    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29882                       'CASH_CLEARING';
29883 
29884    --
29885    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29886    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29887    --
29888    -- bulk performance
29889    --
29890    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29891 
29892    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29893       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29894 
29895    -- 4955764
29896    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29897       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29898 
29899    -- 4458381 Public Sector Enh
29900    
29901    --
29902    -- set accounting attributes for the line type
29903    --
29904    l_entered_amt_idx := 9;
29905    l_accted_amt_idx  := 14;
29906    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
29907    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29908    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
29909    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
29910    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
29911    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29912    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
29913    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
29914    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
29915    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
29919    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
29916    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
29917    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29918    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
29920    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
29921    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
29922    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
29923    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
29924    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
29925    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
29926    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
29927    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
29928    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
29929    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
29930    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
29931    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
29932    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
29933    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
29934    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
29935    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
29936    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
29937    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
29938    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
29939    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
29940    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
29941    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
29942    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
29943    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
29944    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
29945    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
29946    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
29947 
29948    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29949    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29950 
29951    ---------------------------------------------------------------------------------------------------------------
29952    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29953    ---------------------------------------------------------------------------------------------------------------
29954    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29955 
29956    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29957    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29958 
29959    IF xla_accounting_cache_pkg.GetValueChar
29960          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29961          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29962    AND l_bflow_method_code = 'PRIOR_ENTRY'
29963 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29964    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29965          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29966        )
29967    THEN
29968          xla_ae_lines_pkg.BflowUpgEntry
29969            (p_business_method_code    => l_bflow_method_code
29970            ,p_business_class_code     => l_bflow_class_code
29971            ,p_balance_type            => l_balance_type_code);
29972    ELSE
29973       NULL;
29974 -- No business flow processing for business flow method of NONE.
29975    END IF;
29976 
29977    --
29978    -- call analytical criteria
29979    --
29980    
29981    --
29982    -- call description
29983    --
29984    -- No description or it is inherited.
29985    --
29986    -- call ADRs
29987    -- Bug 4922099
29988    --
29989    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29990         (NVL(l_actual_upg_option, 'N') = 'O') OR
29991         (NVL(l_enc_upg_option, 'N') = 'O')
29992       )
29993    THEN
29994    NULL;
29995    --
29996    --
29997    
29998   l_ccid := AcctDerRule_38(
29999            p_application_id           => p_application_id
30000          , p_ae_header_id             => l_ae_header_id 
30001 , p_source_30 => p_source_30
30002          , x_transaction_coa_id       => l_adr_transaction_coa_id
30003          , x_accounting_coa_id        => l_adr_accounting_coa_id
30004          , x_value_type_code          => l_adr_value_type_code
30005          , p_side                     => 'NA'
30006    );
30007 
30008    xla_ae_lines_pkg.set_ccid(
30009     p_code_combination_id          => l_ccid
30010   , p_value_type_code              => l_adr_value_type_code
30011   , p_transaction_coa_id           => l_adr_transaction_coa_id
30012   , p_accounting_coa_id            => l_adr_accounting_coa_id
30013   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30014   , p_adr_type_code                => 'S'
30015   , p_component_type               => l_component_type
30016   , p_component_code               => l_component_code
30017   , p_component_type_code          => l_component_type_code
30018   , p_component_appl_id            => l_component_appl_id
30019   , p_amb_context_code             => l_amb_context_code
30023 
30020   , p_side                         => 'NA'
30021   );
30022 
30024    --
30025    --
30026    END IF;
30027    --
30028    -- Bug 4922099
30029    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30030           (NVL(l_enc_upg_option, 'N') = 'O')
30031         ) AND
30032         (l_bflow_method_code = 'PRIOR_ENTRY')
30033       )
30034    THEN
30035       IF
30036       --
30037       1 = 2
30038       --
30039       THEN
30040       xla_accounting_err_pkg.build_message
30041                                     (p_appli_s_name            => 'XLA'
30042                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30043                                     ,p_token_1                 => 'LINE_NUMBER'
30044                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30045                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30046                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30047                                                                              l_component_type
30048                                                                             ,l_component_code
30049                                                                             ,l_component_type_code
30050                                                                             ,l_component_appl_id
30051                                                                             ,l_amb_context_code
30052                                                                             ,l_entity_code
30053                                                                             ,l_event_class_code
30054                                                                            )
30055                                     ,p_token_3                 => 'OWNER'
30056                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30057                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30058                                                                           ,p_lookup_code    => l_component_type_code
30059                                                                          )
30060                                     ,p_token_4                 => 'PRODUCT_NAME'
30061                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30062                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30063                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30064                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30065                                     ,p_ae_header_id            =>  NULL
30066                                        );
30067 
30068         IF (C_LEVEL_ERROR>= g_log_level) THEN
30069                  trace
30070                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30071                       ,p_level    => C_LEVEL_ERROR
30072                       ,p_module   => l_log_module);
30073         END IF;
30074       END IF;
30075    END IF;
30076    --
30077    --
30078    ------------------------------------------------------------------------------------------------
30079    -- 4219869 Business Flow
30080    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30081    -- Prior Entry.  Currently, the following code is always generated.
30082    ------------------------------------------------------------------------------------------------
30083    XLA_AE_LINES_PKG.ValidateCurrentLine;
30084 
30085    ------------------------------------------------------------------------------------
30086    -- 4219869 Business Flow
30087    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30088    ------------------------------------------------------------------------------------
30089    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30090 
30091    ----------------------------------------------------------------------------------
30092    -- 4219869 Business Flow
30093    -- Update journal entry status -- Need to generate this within IF <condition>
30094    ----------------------------------------------------------------------------------
30095    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30096          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30097          ,p_balance_type_code => l_balance_type_code
30098          );
30099 
30100    -------------------------------------------------------------------------------------------
30101    -- 4262811 - Generate the Accrual Reversal lines
30102    -------------------------------------------------------------------------------------------
30103    BEGIN
30104       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30105                               (g_array_event(p_event_id).array_value_num('header_index'));
30106       IF l_acc_rev_flag IS NULL THEN
30107          l_acc_rev_flag := 'N';
30108       END IF;
30109    EXCEPTION
30110       WHEN OTHERS THEN
30111          l_acc_rev_flag := 'N';
30112    END;
30113    --
30114    IF (l_acc_rev_flag = 'Y') THEN
30115 
30116        -- 4645092  ------------------------------------------------------------------------------
30120 
30117        -- To allow MPA report to determine if it should generate report process
30118        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30119        ------------------------------------------------------------------------------------------
30121        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30122        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30123    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30124    -- call ADRs
30125    -- Bug 4922099
30126    --
30127    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30128         (NVL(l_actual_upg_option, 'N') = 'O') OR
30129         (NVL(l_enc_upg_option, 'N') = 'O')
30130       )
30131    THEN
30132    NULL;
30133    --
30134    --
30135    
30136   l_ccid := AcctDerRule_38(
30137            p_application_id           => p_application_id
30138          , p_ae_header_id             => l_ae_header_id 
30139 , p_source_30 => p_source_30
30140          , x_transaction_coa_id       => l_adr_transaction_coa_id
30141          , x_accounting_coa_id        => l_adr_accounting_coa_id
30142          , x_value_type_code          => l_adr_value_type_code
30143          , p_side                     => 'NA'
30144    );
30145 
30146    xla_ae_lines_pkg.set_ccid(
30147     p_code_combination_id          => l_ccid
30148   , p_value_type_code              => l_adr_value_type_code
30149   , p_transaction_coa_id           => l_adr_transaction_coa_id
30150   , p_accounting_coa_id            => l_adr_accounting_coa_id
30151   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30152   , p_adr_type_code                => 'S'
30153   , p_component_type               => l_component_type
30154   , p_component_code               => l_component_code
30155   , p_component_type_code          => l_component_type_code
30156   , p_component_appl_id            => l_component_appl_id
30157   , p_amb_context_code             => l_amb_context_code
30158   , p_side                         => 'NA'
30159   );
30160 
30161 
30162    --
30163    --
30164    END IF;
30165 
30166        --
30167        -- Update the line information that should be overwritten
30168        --
30169        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30170                                          p_header_num   => 1);
30171        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30172 
30173        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30174 
30175        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30176           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30177        END IF;
30178 
30179       --
30180       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30181       --
30182       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30183           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30184       ELSE
30185           ---------------------------------------------------------------------------------------------------
30186           -- 4262811a Switch Sign
30187           ---------------------------------------------------------------------------------------------------
30188           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30189           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30190                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30191           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30192                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30193           -- 5132302
30194           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30195                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30196 
30197       END IF;
30198 
30199       -- 4955764
30200       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30201       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30202 
30203 
30204       XLA_AE_LINES_PKG.ValidateCurrentLine;
30205       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30206 
30207       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30208                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30209                ,p_balance_type_code => l_balance_type_code);
30210 
30211    END IF;
30212 
30213    -----------------------------------------------------------------------------------------
30214    -- 4262811 Multiperiod Accounting
30215    -----------------------------------------------------------------------------------------
30216      -- No MPA option is assigned.
30217 
30218 
30219 END IF;
30220 END IF;
30221 --
30222 
30223 --
30224 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30225    trace
30226       (p_msg      => 'END of AcctLineType_84'
30227       ,p_level    => C_LEVEL_PROCEDURE
30228       ,p_module   => l_log_module);
30229 END IF;
30230 --
30231 EXCEPTION
30232   WHEN xla_exceptions_pkg.application_exception THEN
30236            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_84');
30233       RAISE;
30234   WHEN OTHERS THEN
30235        xla_exceptions_pkg.raise_message
30237 END AcctLineType_84;
30238 --
30239 
30240 ---------------------------------------
30241 --
30242 -- PRIVATE FUNCTION
30243 --         AcctLineType_85
30244 --
30245 ---------------------------------------
30246 PROCEDURE AcctLineType_85 (
30247   p_application_id        IN NUMBER
30248  ,p_event_id              IN NUMBER
30249  ,p_calculate_acctd_flag  IN VARCHAR2
30250  ,p_calculate_g_l_flag    IN VARCHAR2
30251  ,p_actual_flag           IN OUT VARCHAR2
30252  ,p_balance_type_code     OUT VARCHAR2
30253  ,p_gain_or_loss_ref      OUT VARCHAR2
30254  
30255 --Payment Currency Code
30256  , p_source_8            IN VARCHAR2
30257 --Automatic Offsets Value
30258  , p_source_10            IN VARCHAR2
30259  , p_source_10_meaning    IN VARCHAR2
30260 --Bank Cash Clearing Account
30261  , p_source_30            IN NUMBER
30262 --When to Account for Payment Option
30263  , p_source_57            IN VARCHAR2
30264 --Accounting Reversal Indicator
30265  , p_source_58            IN VARCHAR2
30266 --Distribution Link Type
30267  , p_source_60            IN VARCHAR2
30268 --Override Accounted Amount Indicator
30269  , p_source_85            IN VARCHAR2
30270  , p_source_85_meaning    IN VARCHAR2
30271 --Third Party Type
30272  , p_source_88            IN VARCHAR2
30273 --Business Flow Accounts Payable Application Identifier
30274  , p_source_96            IN NUMBER
30275 --Payment Distribution Type
30276  , p_source_101            IN VARCHAR2
30277  , p_source_101_meaning    IN VARCHAR2
30278 --Payment Distribution Amount
30279  , p_source_102            IN NUMBER
30280 --Business Flow Payment Distribution Type
30281  , p_source_103            IN VARCHAR2
30282 --Business Flow Payment Entity Code
30283  , p_source_104            IN VARCHAR2
30284 --Business Flow Payment Distribution Identifier
30285  , p_source_105            IN NUMBER
30286 --Business Flow Payment Identifier
30287  , p_source_106            IN NUMBER
30288 --Payment Distribution Identifier
30289  , p_source_107            IN NUMBER
30290 --Payment Supplier Identifier
30291  , p_source_113            IN NUMBER
30292 --Payment Supplier Site Identifier
30293  , p_source_114            IN NUMBER
30294 --Payment Distribution Reversed Identifier
30295  , p_source_115            IN NUMBER
30296 --Pooled Bank Account Option
30297  , p_source_116            IN VARCHAR2
30298  , p_source_116_meaning    IN VARCHAR2
30299 --Payment Maturity Date
30300  , p_source_117            IN DATE
30301 --Payment Exchange Date
30302  , p_source_120            IN DATE
30303 --Payment Exchange Rate
30304  , p_source_121            IN NUMBER
30305 --Payment Exchange Rate Type
30306  , p_source_122            IN VARCHAR2
30307 --Payment Distribution (Matured Rate) Ledger Amount
30308  , p_source_124            IN NUMBER
30309 )
30310 IS
30311 
30312 l_component_type              VARCHAR2(80);
30313 l_component_code              VARCHAR2(30);
30314 l_component_type_code         VARCHAR2(1);
30315 l_component_appl_id           INTEGER;
30316 l_amb_context_code            VARCHAR2(30);
30317 l_entity_code                 VARCHAR2(30);
30318 l_event_class_code            VARCHAR2(30);
30319 l_ae_header_id                NUMBER;
30320 l_event_type_code             VARCHAR2(30);
30321 l_line_definition_code        VARCHAR2(30);
30322 l_line_definition_owner_code  VARCHAR2(1);
30323 --
30324 -- adr variables
30325 l_segment                     VARCHAR2(30);
30326 l_ccid                        NUMBER;
30327 l_adr_transaction_coa_id      NUMBER;
30328 l_adr_accounting_coa_id       NUMBER;
30329 l_adr_flexfield_segment_code  VARCHAR2(30);
30330 l_adr_flex_value_set_id       NUMBER;
30331 l_adr_value_type_code         VARCHAR2(30);
30332 l_adr_value_combination_id    NUMBER;
30333 l_adr_value_segment_code      VARCHAR2(30);
30334 
30335 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30336 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30337 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30338 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30339 
30340 -- 4262811 Variables ------------------------------------------------------------------------------------------
30341 l_entered_amt_idx             NUMBER;
30342 l_accted_amt_idx              NUMBER;
30343 l_acc_rev_flag                VARCHAR2(1);
30344 l_accrual_line_num            NUMBER;
30345 l_tmp_amt                     NUMBER;
30346 l_acc_rev_natural_side_code   VARCHAR2(1);
30347 
30348 l_num_entries                 NUMBER;
30349 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30350 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30351 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30352 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30353 l_recog_line_1                NUMBER;
30354 l_recog_line_2                NUMBER;
30355 
30356 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30357 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30358 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30359 
30360 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30361 
30365 ---------------------------------------------------------------------------------------------------------------
30362 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30363 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30364 
30366 
30367 
30368 --
30369 -- bulk performance
30370 --
30371 l_balance_type_code           VARCHAR2(1);
30372 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30373 l_log_module                  VARCHAR2(240);
30374 
30375 --
30376 -- Upgrade strategy
30377 --
30378 l_actual_upg_option           VARCHAR2(1);
30379 l_enc_upg_option           VARCHAR2(1);
30380 
30381 --
30382 BEGIN
30383 --
30384 IF g_log_enabled THEN
30385       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
30386 END IF;
30387 --
30388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30389 
30390       trace
30391          (p_msg      => 'BEGIN of AcctLineType_85'
30392          ,p_level    => C_LEVEL_PROCEDURE
30393          ,p_module   => l_log_module);
30394 
30395 END IF;
30396 --
30397 l_component_type             := 'AMB_JLT';
30398 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
30399 l_component_type_code        := 'S';
30400 l_component_appl_id          :=  200;
30401 l_amb_context_code           := 'DEFAULT';
30402 l_entity_code                := 'AP_PAYMENTS';
30403 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30404 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30405 l_line_definition_owner_code := 'S';
30406 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
30407 --
30408 l_balance_type_code          := 'A';
30409 l_segment                     := NULL;
30410 l_ccid                        := NULL;
30411 l_adr_transaction_coa_id      := NULL;
30412 l_adr_accounting_coa_id       := NULL;
30413 l_adr_flexfield_segment_code  := NULL;
30414 l_adr_flex_value_set_id       := NULL;
30415 l_adr_value_type_code         := NULL;
30416 l_adr_value_combination_id    := NULL;
30417 l_adr_value_segment_code      := NULL;
30418 
30419 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
30420 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30421 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30422 l_budgetary_control_flag     := 'N';
30423 
30424 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30425 l_bflow_applied_to_amt       := NULL; -- 5132302
30426 l_entered_amt_idx            := NULL;          -- 4262811
30427 l_accted_amt_idx             := NULL;          -- 4262811
30428 l_acc_rev_flag               := NULL;          -- 4262811
30429 l_accrual_line_num           := NULL;          -- 4262811
30430 l_tmp_amt                    := NULL;          -- 4262811
30431 --
30432  
30433 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30434     l_balance_type_code <> 'B' THEN
30435 IF (NVL(p_source_57,'
30436 ') =  'ALWAYS_ALWAYS' OR 
30437 NVL(p_source_57,'
30438 ') =  'ALWAYS_ISSUE') AND 
30439 (NVL(p_source_116,'
30440 ') =  'Y' AND 
30441 NVL(p_source_10,'
30442 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
30443 p_source_117 IS NOT NULL AND 
30444 NVL(p_source_101,'
30445 ') =  'CASH'
30446  THEN 
30447 
30448    --
30449    XLA_AE_LINES_PKG.SetNewLine;
30450 
30451    p_balance_type_code          := l_balance_type_code;
30452    -- set the flag so later we will know whether the gain loss line needs to be created
30453    
30454    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30455      p_actual_flag :='A';
30456    END IF;
30457 
30458    --
30459    -- bulk performance
30460    --
30461    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30462                                       p_header_num   => 0); -- 4262811
30463    --
30464    -- set accounting line options
30465    --
30466    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30467            p_natural_side_code          => 'C'
30468          , p_gain_or_loss_flag          => 'N'
30469          , p_gl_transfer_mode_code      => 'S'
30470          , p_acct_entry_type_code       => 'A'
30471          , p_switch_side_flag           => 'Y'
30472          , p_merge_duplicate_code       => 'A'
30473          );
30474    --
30475    l_acc_rev_natural_side_code := 'D';  -- 4262811
30476    -- 
30477    --
30478    -- set accounting line type info
30479    --
30480    xla_ae_lines_pkg.SetAcctLineType
30481       (p_component_type             => l_component_type
30482       ,p_event_type_code            => l_event_type_code
30483       ,p_line_definition_owner_code => l_line_definition_owner_code
30484       ,p_line_definition_code       => l_line_definition_code
30485       ,p_accounting_line_code       => l_component_code
30486       ,p_accounting_line_type_code  => l_component_type_code
30487       ,p_accounting_line_appl_id    => l_component_appl_id
30488       ,p_amb_context_code           => l_amb_context_code
30489       ,p_entity_code                => l_entity_code
30490       ,p_event_class_code           => l_event_class_code);
30491    --
30492    -- set accounting class
30493    --
30494    xla_ae_lines_pkg.SetAcctClass(
30495            p_accounting_class_code  => 'CASH_CLEARING'
30496          , p_ae_header_id           => l_ae_header_id
30497          );
30498 
30502    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30499    --
30500    -- set rounding class
30501    --
30503                       'CASH_CLEARING';
30504 
30505    --
30506    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30507    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30508    --
30509    -- bulk performance
30510    --
30511    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30512 
30513    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30514       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30515 
30516    -- 4955764
30517    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30518       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30519 
30520    -- 4458381 Public Sector Enh
30521    
30522    --
30523    -- set accounting attributes for the line type
30524    --
30525    l_entered_amt_idx := 9;
30526    l_accted_amt_idx  := 14;
30527    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30528    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30529    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
30530    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30531    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
30532    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30533    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
30534    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30535    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
30536    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30537    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
30538    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30539    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
30540    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30541    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
30542    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30543    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
30544    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30545    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
30546    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30547    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
30548    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30549    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
30550    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30551    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
30552    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30553    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
30554    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30555    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
30556    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30557    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
30558    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30559    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
30560    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30561    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
30562    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30563    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
30564    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30565    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
30566    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30567    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
30568 
30569    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30570    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30571 
30572    ---------------------------------------------------------------------------------------------------------------
30573    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30574    ---------------------------------------------------------------------------------------------------------------
30575    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30576 
30577    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30578    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30579 
30580    IF xla_accounting_cache_pkg.GetValueChar
30581          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30582          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30583    AND l_bflow_method_code = 'PRIOR_ENTRY'
30584 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30585    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30586          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30587        )
30588    THEN
30589          xla_ae_lines_pkg.BflowUpgEntry
30590            (p_business_method_code    => l_bflow_method_code
30591            ,p_business_class_code     => l_bflow_class_code
30592            ,p_balance_type            => l_balance_type_code);
30593    ELSE
30594       NULL;
30595 XLA_AE_LINES_PKG.business_flow_validation(
30599    END IF;
30596                                 p_business_method_code     => l_bflow_method_code
30597                                ,p_business_class_code      => l_bflow_class_code
30598                                ,p_inherit_description_flag => l_inherit_desc_flag);
30600 
30601    --
30602    -- call analytical criteria
30603    --
30604    
30605    --
30606    -- call description
30607    --
30608    -- No description or it is inherited.
30609    --
30610    -- call ADRs
30611    -- Bug 4922099
30612    --
30613    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30614         (NVL(l_actual_upg_option, 'N') = 'O') OR
30615         (NVL(l_enc_upg_option, 'N') = 'O')
30616       )
30617    THEN
30618    NULL;
30619    --
30620    --
30621    
30622    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
30623      p_code_combination_id      => TO_NUMBER(C_NUM)
30624    , p_value_type_code          => NULL
30625    , p_transaction_coa_id       => null
30626    , p_accounting_coa_id        => null
30627    , p_adr_code                 => NULL
30628    , p_adr_type_code            => NULL
30629    , p_component_type           => l_component_type
30630    , p_component_code           => l_component_code
30631    , p_component_type_code      => l_component_type_code
30632    , p_component_appl_id        => l_component_appl_id
30633    , p_amb_context_code         => l_amb_context_code
30634    , p_side                     => NULL
30635    );
30636 
30637    
30638   -- initialise segments
30639   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30640   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30641   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30642   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30643   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30644   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30645   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30646   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30647   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30648   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30649   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30650   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30651   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30652   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30653   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30654   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30655   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30656   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30657   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30658   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30659   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30660   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30661   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30662   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30663   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30664   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30665   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30666   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30667   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30668   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30669   --
30670 
30671    --
30672 
30673 
30674    l_segment := AcctDerRule_16(
30675            p_application_id           => p_application_id
30676          , p_ae_header_id             => l_ae_header_id 
30677 , p_source_30 => p_source_30
30678          , x_transaction_coa_id       => l_adr_transaction_coa_id
30679          , x_accounting_coa_id        => l_adr_accounting_coa_id
30680          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
30681          , x_flex_value_set_id        => l_adr_flex_value_set_id
30682          , x_value_type_code          => l_adr_value_type_code
30683          , x_value_combination_id     => l_adr_value_combination_id
30684          , x_value_segment_code       => l_adr_value_segment_code
30685          , p_side                     => 'NA'
30686          , p_override_seg_flag        => 'Y'
30687    );
30688 
30689    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
30690 
30691       xla_ae_lines_pkg.set_segment(
30692           p_to_segment_code         => 'GL_ACCOUNT'
30693         , p_segment_value           => l_segment
30694         , p_from_segment_code       => l_adr_value_segment_code
30695         , p_from_combination_id     => l_adr_value_combination_id
30696         , p_value_type_code         => l_adr_value_type_code
30700         , p_flex_value_set_id       => l_adr_flex_value_set_id
30697         , p_transaction_coa_id      => l_adr_transaction_coa_id
30698         , p_accounting_coa_id       => l_adr_accounting_coa_id
30699         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
30701         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
30702         , p_adr_type_code           => 'S'
30703         , p_component_type          => l_component_type
30704         , p_component_code          => l_component_code
30705         , p_component_type_code     => l_component_type_code
30706         , p_component_appl_id       => l_component_appl_id
30707         , p_amb_context_code        => l_amb_context_code
30708         , p_entity_code             => 'AP_PAYMENTS'
30709         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30710         , p_side                    => 'NA'
30711         );
30712 
30713   END IF;
30714 
30715    --
30716    --
30717    END IF;
30718    --
30719    -- Bug 4922099
30720    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30721           (NVL(l_enc_upg_option, 'N') = 'O')
30722         ) AND
30723         (l_bflow_method_code = 'PRIOR_ENTRY')
30724       )
30725    THEN
30726       IF
30727       --
30728       1 = 2
30729       --
30730       THEN
30731       xla_accounting_err_pkg.build_message
30732                                     (p_appli_s_name            => 'XLA'
30733                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30734                                     ,p_token_1                 => 'LINE_NUMBER'
30735                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30736                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30737                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30738                                                                              l_component_type
30739                                                                             ,l_component_code
30740                                                                             ,l_component_type_code
30741                                                                             ,l_component_appl_id
30742                                                                             ,l_amb_context_code
30743                                                                             ,l_entity_code
30744                                                                             ,l_event_class_code
30745                                                                            )
30746                                     ,p_token_3                 => 'OWNER'
30747                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30748                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30749                                                                           ,p_lookup_code    => l_component_type_code
30750                                                                          )
30751                                     ,p_token_4                 => 'PRODUCT_NAME'
30752                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30753                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30754                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30755                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30756                                     ,p_ae_header_id            =>  NULL
30757                                        );
30758 
30759         IF (C_LEVEL_ERROR>= g_log_level) THEN
30760                  trace
30761                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30762                       ,p_level    => C_LEVEL_ERROR
30763                       ,p_module   => l_log_module);
30764         END IF;
30765       END IF;
30766    END IF;
30767    --
30768    --
30769    ------------------------------------------------------------------------------------------------
30770    -- 4219869 Business Flow
30771    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30772    -- Prior Entry.  Currently, the following code is always generated.
30773    ------------------------------------------------------------------------------------------------
30774    XLA_AE_LINES_PKG.ValidateCurrentLine;
30775 
30776    ------------------------------------------------------------------------------------
30777    -- 4219869 Business Flow
30778    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30779    ------------------------------------------------------------------------------------
30780    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30781 
30782    ----------------------------------------------------------------------------------
30783    -- 4219869 Business Flow
30784    -- Update journal entry status -- Need to generate this within IF <condition>
30785    ----------------------------------------------------------------------------------
30786    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30787          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30788          ,p_balance_type_code => l_balance_type_code
30789          );
30790 
30794    BEGIN
30791    -------------------------------------------------------------------------------------------
30792    -- 4262811 - Generate the Accrual Reversal lines
30793    -------------------------------------------------------------------------------------------
30795       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30796                               (g_array_event(p_event_id).array_value_num('header_index'));
30797       IF l_acc_rev_flag IS NULL THEN
30798          l_acc_rev_flag := 'N';
30799       END IF;
30800    EXCEPTION
30801       WHEN OTHERS THEN
30802          l_acc_rev_flag := 'N';
30803    END;
30804    --
30805    IF (l_acc_rev_flag = 'Y') THEN
30806 
30807        -- 4645092  ------------------------------------------------------------------------------
30808        -- To allow MPA report to determine if it should generate report process
30809        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30810        ------------------------------------------------------------------------------------------
30811 
30812        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30813        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30814    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30815    -- call ADRs
30816    -- Bug 4922099
30817    --
30818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30819         (NVL(l_actual_upg_option, 'N') = 'O') OR
30820         (NVL(l_enc_upg_option, 'N') = 'O')
30821       )
30822    THEN
30823    NULL;
30824    --
30825    --
30826    
30827    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
30828      p_code_combination_id      => TO_NUMBER(C_NUM)
30829    , p_value_type_code          => NULL
30830    , p_transaction_coa_id       => null
30831    , p_accounting_coa_id        => null
30832    , p_adr_code                 => NULL
30833    , p_adr_type_code            => NULL
30834    , p_component_type           => l_component_type
30835    , p_component_code           => l_component_code
30836    , p_component_type_code      => l_component_type_code
30837    , p_component_appl_id        => l_component_appl_id
30838    , p_amb_context_code         => l_amb_context_code
30839    , p_side                     => NULL
30840    );
30841 
30842    
30843   -- initialise segments
30844   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30845   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30846   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30847   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30848   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30849   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30850   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30851   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30852   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
30853   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30854   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30855   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30856   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30857   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30858   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30859   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30860   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30861   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30862   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30863   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30864   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30865   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30866   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30867   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30868   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30869   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30870   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30871   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30872   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30873   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
30874   --
30875 
30876    --
30877 
30878 
30879    l_segment := AcctDerRule_16(
30880            p_application_id           => p_application_id
30881          , p_ae_header_id             => l_ae_header_id 
30882 , p_source_30 => p_source_30
30883          , x_transaction_coa_id       => l_adr_transaction_coa_id
30884          , x_accounting_coa_id        => l_adr_accounting_coa_id
30885          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
30886          , x_flex_value_set_id        => l_adr_flex_value_set_id
30890          , p_side                     => 'NA'
30887          , x_value_type_code          => l_adr_value_type_code
30888          , x_value_combination_id     => l_adr_value_combination_id
30889          , x_value_segment_code       => l_adr_value_segment_code
30891          , p_override_seg_flag        => 'Y'
30892    );
30893 
30894    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
30895 
30896       xla_ae_lines_pkg.set_segment(
30897           p_to_segment_code         => 'GL_ACCOUNT'
30898         , p_segment_value           => l_segment
30899         , p_from_segment_code       => l_adr_value_segment_code
30900         , p_from_combination_id     => l_adr_value_combination_id
30901         , p_value_type_code         => l_adr_value_type_code
30902         , p_transaction_coa_id      => l_adr_transaction_coa_id
30903         , p_accounting_coa_id       => l_adr_accounting_coa_id
30904         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
30905         , p_flex_value_set_id       => l_adr_flex_value_set_id
30906         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
30907         , p_adr_type_code           => 'S'
30908         , p_component_type          => l_component_type
30909         , p_component_code          => l_component_code
30910         , p_component_type_code     => l_component_type_code
30911         , p_component_appl_id       => l_component_appl_id
30912         , p_amb_context_code        => l_amb_context_code
30913         , p_entity_code             => 'AP_PAYMENTS'
30914         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30915         , p_side                    => 'NA'
30916         );
30917 
30918   END IF;
30919 
30920    --
30921    --
30922    END IF;
30923 
30924        --
30925        -- Update the line information that should be overwritten
30926        --
30927        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30928                                          p_header_num   => 1);
30929        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30930 
30931        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30932 
30933        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30934           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30935        END IF;
30936 
30937       --
30938       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30939       --
30940       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30941           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30942       ELSE
30943           ---------------------------------------------------------------------------------------------------
30944           -- 4262811a Switch Sign
30945           ---------------------------------------------------------------------------------------------------
30946           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30947           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30948                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30949           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30950                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30951           -- 5132302
30952           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30953                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30954 
30955       END IF;
30956 
30957       -- 4955764
30958       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30959       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30960 
30961 
30962       XLA_AE_LINES_PKG.ValidateCurrentLine;
30963       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30964 
30965       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30966                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30967                ,p_balance_type_code => l_balance_type_code);
30968 
30969    END IF;
30970 
30971    -----------------------------------------------------------------------------------------
30972    -- 4262811 Multiperiod Accounting
30973    -----------------------------------------------------------------------------------------
30974      -- No MPA option is assigned.
30975 
30976 
30977 END IF;
30978 END IF;
30979 --
30980 
30981 --
30982 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30983    trace
30984       (p_msg      => 'END of AcctLineType_85'
30985       ,p_level    => C_LEVEL_PROCEDURE
30986       ,p_module   => l_log_module);
30987 END IF;
30988 --
30989 EXCEPTION
30990   WHEN xla_exceptions_pkg.application_exception THEN
30991       RAISE;
30992   WHEN OTHERS THEN
30993        xla_exceptions_pkg.raise_message
30994            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_85');
30995 END AcctLineType_85;
30996 --
30997 
30998 ---------------------------------------
30999 --
31000 -- PRIVATE FUNCTION
31001 --         AcctLineType_86
31002 --
31003 ---------------------------------------
31004 PROCEDURE AcctLineType_86 (
31008  ,p_calculate_g_l_flag    IN VARCHAR2
31005   p_application_id        IN NUMBER
31006  ,p_event_id              IN NUMBER
31007  ,p_calculate_acctd_flag  IN VARCHAR2
31009  ,p_actual_flag           IN OUT VARCHAR2
31010  ,p_balance_type_code     OUT VARCHAR2
31011  ,p_gain_or_loss_ref      OUT VARCHAR2
31012  
31013 --Payment Currency Code
31014  , p_source_8            IN VARCHAR2
31015 --Automatic Offsets Value
31016  , p_source_10            IN VARCHAR2
31017  , p_source_10_meaning    IN VARCHAR2
31018 --Bank Cash Clearing Account
31019  , p_source_30            IN NUMBER
31020 --When to Account for Payment Option
31021  , p_source_57            IN VARCHAR2
31022 --Accounting Reversal Indicator
31023  , p_source_58            IN VARCHAR2
31024 --Distribution Link Type
31025  , p_source_60            IN VARCHAR2
31026 --Override Accounted Amount Indicator
31027  , p_source_85            IN VARCHAR2
31028  , p_source_85_meaning    IN VARCHAR2
31029 --Third Party Type
31030  , p_source_88            IN VARCHAR2
31031 --Business Flow Accounts Payable Application Identifier
31032  , p_source_96            IN NUMBER
31033 --Payment Distribution Type
31034  , p_source_101            IN VARCHAR2
31035  , p_source_101_meaning    IN VARCHAR2
31036 --Payment Distribution Amount
31037  , p_source_102            IN NUMBER
31038 --Business Flow Payment Distribution Type
31039  , p_source_103            IN VARCHAR2
31040 --Business Flow Payment Entity Code
31041  , p_source_104            IN VARCHAR2
31042 --Business Flow Payment Distribution Identifier
31043  , p_source_105            IN NUMBER
31044 --Business Flow Payment Identifier
31045  , p_source_106            IN NUMBER
31046 --Payment Distribution Identifier
31047  , p_source_107            IN NUMBER
31048 --Payment Supplier Identifier
31049  , p_source_113            IN NUMBER
31050 --Payment Supplier Site Identifier
31051  , p_source_114            IN NUMBER
31052 --Payment Distribution Reversed Identifier
31053  , p_source_115            IN NUMBER
31054 --Pooled Bank Account Option
31055  , p_source_116            IN VARCHAR2
31056  , p_source_116_meaning    IN VARCHAR2
31057 --Payment Maturity Date
31058  , p_source_117            IN DATE
31059 --Payment Exchange Date
31060  , p_source_120            IN DATE
31061 --Payment Exchange Rate
31062  , p_source_121            IN NUMBER
31063 --Payment Exchange Rate Type
31064  , p_source_122            IN VARCHAR2
31065 --Payment Distribution (Matured Rate) Ledger Amount
31066  , p_source_124            IN NUMBER
31067 )
31068 IS
31069 
31070 l_component_type              VARCHAR2(80);
31071 l_component_code              VARCHAR2(30);
31072 l_component_type_code         VARCHAR2(1);
31073 l_component_appl_id           INTEGER;
31074 l_amb_context_code            VARCHAR2(30);
31075 l_entity_code                 VARCHAR2(30);
31076 l_event_class_code            VARCHAR2(30);
31077 l_ae_header_id                NUMBER;
31078 l_event_type_code             VARCHAR2(30);
31079 l_line_definition_code        VARCHAR2(30);
31080 l_line_definition_owner_code  VARCHAR2(1);
31081 --
31082 -- adr variables
31083 l_segment                     VARCHAR2(30);
31084 l_ccid                        NUMBER;
31085 l_adr_transaction_coa_id      NUMBER;
31086 l_adr_accounting_coa_id       NUMBER;
31087 l_adr_flexfield_segment_code  VARCHAR2(30);
31088 l_adr_flex_value_set_id       NUMBER;
31089 l_adr_value_type_code         VARCHAR2(30);
31090 l_adr_value_combination_id    NUMBER;
31091 l_adr_value_segment_code      VARCHAR2(30);
31092 
31093 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31094 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31095 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31096 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31097 
31098 -- 4262811 Variables ------------------------------------------------------------------------------------------
31099 l_entered_amt_idx             NUMBER;
31100 l_accted_amt_idx              NUMBER;
31101 l_acc_rev_flag                VARCHAR2(1);
31102 l_accrual_line_num            NUMBER;
31103 l_tmp_amt                     NUMBER;
31104 l_acc_rev_natural_side_code   VARCHAR2(1);
31105 
31106 l_num_entries                 NUMBER;
31107 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31108 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31109 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31110 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31111 l_recog_line_1                NUMBER;
31112 l_recog_line_2                NUMBER;
31113 
31114 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31115 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31116 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31117 
31118 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31119 
31120 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31121 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31122 
31123 ---------------------------------------------------------------------------------------------------------------
31124 
31125 
31126 --
31127 -- bulk performance
31128 --
31129 l_balance_type_code           VARCHAR2(1);
31133 --
31130 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31131 l_log_module                  VARCHAR2(240);
31132 
31134 -- Upgrade strategy
31135 --
31136 l_actual_upg_option           VARCHAR2(1);
31137 l_enc_upg_option           VARCHAR2(1);
31138 
31139 --
31140 BEGIN
31141 --
31142 IF g_log_enabled THEN
31143       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
31144 END IF;
31145 --
31146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31147 
31148       trace
31149          (p_msg      => 'BEGIN of AcctLineType_86'
31150          ,p_level    => C_LEVEL_PROCEDURE
31151          ,p_module   => l_log_module);
31152 
31153 END IF;
31154 --
31155 l_component_type             := 'AMB_JLT';
31156 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
31157 l_component_type_code        := 'S';
31158 l_component_appl_id          :=  200;
31159 l_amb_context_code           := 'DEFAULT';
31160 l_entity_code                := 'AP_PAYMENTS';
31161 l_event_class_code           := 'FUTURE DATED PAYMENTS';
31162 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
31163 l_line_definition_owner_code := 'S';
31164 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
31165 --
31166 l_balance_type_code          := 'A';
31167 l_segment                     := NULL;
31168 l_ccid                        := NULL;
31169 l_adr_transaction_coa_id      := NULL;
31170 l_adr_accounting_coa_id       := NULL;
31171 l_adr_flexfield_segment_code  := NULL;
31172 l_adr_flex_value_set_id       := NULL;
31173 l_adr_value_type_code         := NULL;
31174 l_adr_value_combination_id    := NULL;
31175 l_adr_value_segment_code      := NULL;
31176 
31177 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
31178 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
31179 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31180 l_budgetary_control_flag     := 'N';
31181 
31182 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31183 l_bflow_applied_to_amt       := NULL; -- 5132302
31184 l_entered_amt_idx            := NULL;          -- 4262811
31185 l_accted_amt_idx             := NULL;          -- 4262811
31186 l_acc_rev_flag               := NULL;          -- 4262811
31187 l_accrual_line_num           := NULL;          -- 4262811
31188 l_tmp_amt                    := NULL;          -- 4262811
31189 --
31190  
31191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31192     l_balance_type_code <> 'B' THEN
31193 IF (NVL(p_source_57,'
31194 ') =  'ALWAYS_ALWAYS' OR 
31195 NVL(p_source_57,'
31196 ') =  'ALWAYS_CLEAR' OR 
31197 NVL(p_source_57,'
31198 ') =  'ALWAYS_ISSUE') AND 
31199 (NVL(p_source_116,'
31200 ') =  'Y' AND 
31201 NVL(p_source_10,'
31202 ') =  'BALANCING_SEGMENT') AND 
31203 p_source_117 IS NOT NULL AND 
31204 NVL(p_source_101,'
31205 ') =  'CASH'
31206  THEN 
31207 
31208    --
31209    XLA_AE_LINES_PKG.SetNewLine;
31210 
31211    p_balance_type_code          := l_balance_type_code;
31212    -- set the flag so later we will know whether the gain loss line needs to be created
31213    
31214    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31215      p_actual_flag :='A';
31216    END IF;
31217 
31218    --
31219    -- bulk performance
31220    --
31221    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31222                                       p_header_num   => 0); -- 4262811
31223    --
31224    -- set accounting line options
31225    --
31226    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31227            p_natural_side_code          => 'C'
31228          , p_gain_or_loss_flag          => 'N'
31229          , p_gl_transfer_mode_code      => 'S'
31230          , p_acct_entry_type_code       => 'A'
31231          , p_switch_side_flag           => 'Y'
31232          , p_merge_duplicate_code       => 'A'
31233          );
31234    --
31235    l_acc_rev_natural_side_code := 'D';  -- 4262811
31236    -- 
31237    --
31238    -- set accounting line type info
31239    --
31240    xla_ae_lines_pkg.SetAcctLineType
31241       (p_component_type             => l_component_type
31242       ,p_event_type_code            => l_event_type_code
31243       ,p_line_definition_owner_code => l_line_definition_owner_code
31244       ,p_line_definition_code       => l_line_definition_code
31245       ,p_accounting_line_code       => l_component_code
31246       ,p_accounting_line_type_code  => l_component_type_code
31247       ,p_accounting_line_appl_id    => l_component_appl_id
31248       ,p_amb_context_code           => l_amb_context_code
31249       ,p_entity_code                => l_entity_code
31250       ,p_event_class_code           => l_event_class_code);
31251    --
31252    -- set accounting class
31253    --
31254    xla_ae_lines_pkg.SetAcctClass(
31255            p_accounting_class_code  => 'CASH_CLEARING'
31256          , p_ae_header_id           => l_ae_header_id
31257          );
31258 
31259    --
31260    -- set rounding class
31261    --
31262    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31263                       'CASH_CLEARING';
31264 
31265    --
31266    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31267    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31271    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31268    --
31269    -- bulk performance
31270    --
31272 
31273    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31274       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31275 
31276    -- 4955764
31277    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31278       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31279 
31280    -- 4458381 Public Sector Enh
31281    
31282    --
31283    -- set accounting attributes for the line type
31284    --
31285    l_entered_amt_idx := 9;
31286    l_accted_amt_idx  := 14;
31287    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31288    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31289    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
31290    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31291    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
31292    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31293    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
31294    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31295    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
31296    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31297    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
31298    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31299    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
31300    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31301    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
31302    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31303    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
31304    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31305    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
31306    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31307    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
31308    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31309    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
31310    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31311    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
31312    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31313    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
31314    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31315    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
31316    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31317    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
31318    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31319    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
31320    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31321    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
31322    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31323    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
31324    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31325    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
31326    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31327    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
31328 
31329    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31330    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31331 
31332    ---------------------------------------------------------------------------------------------------------------
31333    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31334    ---------------------------------------------------------------------------------------------------------------
31335    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31336 
31337    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31338    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31339 
31340    IF xla_accounting_cache_pkg.GetValueChar
31341          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31342          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31343    AND l_bflow_method_code = 'PRIOR_ENTRY'
31344 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31345    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31346          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31347        )
31348    THEN
31349          xla_ae_lines_pkg.BflowUpgEntry
31350            (p_business_method_code    => l_bflow_method_code
31351            ,p_business_class_code     => l_bflow_class_code
31352            ,p_balance_type            => l_balance_type_code);
31353    ELSE
31354       NULL;
31355 XLA_AE_LINES_PKG.business_flow_validation(
31356                                 p_business_method_code     => l_bflow_method_code
31357                                ,p_business_class_code      => l_bflow_class_code
31358                                ,p_inherit_description_flag => l_inherit_desc_flag);
31359    END IF;
31363    --
31360 
31361    --
31362    -- call analytical criteria
31364    
31365    --
31366    -- call description
31367    --
31368    -- No description or it is inherited.
31369    --
31370    -- call ADRs
31371    -- Bug 4922099
31372    --
31373    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31374         (NVL(l_actual_upg_option, 'N') = 'O') OR
31375         (NVL(l_enc_upg_option, 'N') = 'O')
31376       )
31377    THEN
31378    NULL;
31379    --
31380    --
31381    
31382   l_ccid := AcctDerRule_38(
31383            p_application_id           => p_application_id
31384          , p_ae_header_id             => l_ae_header_id 
31385 , p_source_30 => p_source_30
31386          , x_transaction_coa_id       => l_adr_transaction_coa_id
31387          , x_accounting_coa_id        => l_adr_accounting_coa_id
31388          , x_value_type_code          => l_adr_value_type_code
31389          , p_side                     => 'NA'
31390    );
31391 
31392    xla_ae_lines_pkg.set_ccid(
31393     p_code_combination_id          => l_ccid
31394   , p_value_type_code              => l_adr_value_type_code
31395   , p_transaction_coa_id           => l_adr_transaction_coa_id
31396   , p_accounting_coa_id            => l_adr_accounting_coa_id
31397   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31398   , p_adr_type_code                => 'S'
31399   , p_component_type               => l_component_type
31400   , p_component_code               => l_component_code
31401   , p_component_type_code          => l_component_type_code
31402   , p_component_appl_id            => l_component_appl_id
31403   , p_amb_context_code             => l_amb_context_code
31404   , p_side                         => 'NA'
31405   );
31406 
31407 
31408    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
31409      p_to_segment_code         => 'GL_BALANCING'
31410    , p_segment_value           => C_CHAR
31411    , p_from_segment_code       => NULL
31412    , p_from_combination_id     => NULL
31413    , p_value_type_code         => NULL
31414    , p_transaction_coa_id      => null
31415    , p_accounting_coa_id       => null
31416    , p_flexfield_segment_code  => NULL
31417    , p_flex_value_set_id       => NULL
31418    , p_adr_code                => NULL
31419    , p_adr_type_code           => NULL
31420    , p_component_type          => l_component_type
31421    , p_component_code          => l_component_code
31422    , p_component_type_code     => l_component_type_code
31423    , p_component_appl_id       => l_component_appl_id
31424    , p_amb_context_code        => l_amb_context_code
31425    , p_entity_code             => 'AP_PAYMENTS'
31426    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31427    , p_side                    => 'NA'
31428    );
31429    --
31430 
31431 
31432    --
31433    --
31434    END IF;
31435    --
31436    -- Bug 4922099
31437    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31438           (NVL(l_enc_upg_option, 'N') = 'O')
31439         ) AND
31440         (l_bflow_method_code = 'PRIOR_ENTRY')
31441       )
31442    THEN
31443       IF
31444       --
31445       1 = 2
31446       --
31447       THEN
31448       xla_accounting_err_pkg.build_message
31449                                     (p_appli_s_name            => 'XLA'
31450                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31451                                     ,p_token_1                 => 'LINE_NUMBER'
31452                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31453                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31454                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31455                                                                              l_component_type
31456                                                                             ,l_component_code
31457                                                                             ,l_component_type_code
31458                                                                             ,l_component_appl_id
31459                                                                             ,l_amb_context_code
31460                                                                             ,l_entity_code
31461                                                                             ,l_event_class_code
31462                                                                            )
31463                                     ,p_token_3                 => 'OWNER'
31464                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31465                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31466                                                                           ,p_lookup_code    => l_component_type_code
31467                                                                          )
31468                                     ,p_token_4                 => 'PRODUCT_NAME'
31469                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31470                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31471                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31475 
31472                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31473                                     ,p_ae_header_id            =>  NULL
31474                                        );
31476         IF (C_LEVEL_ERROR>= g_log_level) THEN
31477                  trace
31478                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31479                       ,p_level    => C_LEVEL_ERROR
31480                       ,p_module   => l_log_module);
31481         END IF;
31482       END IF;
31483    END IF;
31484    --
31485    --
31486    ------------------------------------------------------------------------------------------------
31487    -- 4219869 Business Flow
31488    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31489    -- Prior Entry.  Currently, the following code is always generated.
31490    ------------------------------------------------------------------------------------------------
31491    XLA_AE_LINES_PKG.ValidateCurrentLine;
31492 
31493    ------------------------------------------------------------------------------------
31494    -- 4219869 Business Flow
31495    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31496    ------------------------------------------------------------------------------------
31497    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31498 
31499    ----------------------------------------------------------------------------------
31500    -- 4219869 Business Flow
31501    -- Update journal entry status -- Need to generate this within IF <condition>
31502    ----------------------------------------------------------------------------------
31503    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31504          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31505          ,p_balance_type_code => l_balance_type_code
31506          );
31507 
31508    -------------------------------------------------------------------------------------------
31509    -- 4262811 - Generate the Accrual Reversal lines
31510    -------------------------------------------------------------------------------------------
31511    BEGIN
31512       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31513                               (g_array_event(p_event_id).array_value_num('header_index'));
31514       IF l_acc_rev_flag IS NULL THEN
31515          l_acc_rev_flag := 'N';
31516       END IF;
31517    EXCEPTION
31518       WHEN OTHERS THEN
31519          l_acc_rev_flag := 'N';
31520    END;
31521    --
31522    IF (l_acc_rev_flag = 'Y') THEN
31523 
31524        -- 4645092  ------------------------------------------------------------------------------
31525        -- To allow MPA report to determine if it should generate report process
31526        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31527        ------------------------------------------------------------------------------------------
31528 
31529        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31530        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31531    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31532    -- call ADRs
31533    -- Bug 4922099
31534    --
31535    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31536         (NVL(l_actual_upg_option, 'N') = 'O') OR
31537         (NVL(l_enc_upg_option, 'N') = 'O')
31538       )
31539    THEN
31540    NULL;
31541    --
31542    --
31543    
31544   l_ccid := AcctDerRule_38(
31545            p_application_id           => p_application_id
31546          , p_ae_header_id             => l_ae_header_id 
31547 , p_source_30 => p_source_30
31548          , x_transaction_coa_id       => l_adr_transaction_coa_id
31549          , x_accounting_coa_id        => l_adr_accounting_coa_id
31550          , x_value_type_code          => l_adr_value_type_code
31551          , p_side                     => 'NA'
31552    );
31553 
31554    xla_ae_lines_pkg.set_ccid(
31555     p_code_combination_id          => l_ccid
31556   , p_value_type_code              => l_adr_value_type_code
31557   , p_transaction_coa_id           => l_adr_transaction_coa_id
31558   , p_accounting_coa_id            => l_adr_accounting_coa_id
31559   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31560   , p_adr_type_code                => 'S'
31561   , p_component_type               => l_component_type
31562   , p_component_code               => l_component_code
31563   , p_component_type_code          => l_component_type_code
31564   , p_component_appl_id            => l_component_appl_id
31565   , p_amb_context_code             => l_amb_context_code
31566   , p_side                         => 'NA'
31567   );
31568 
31569 
31570    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
31571      p_to_segment_code         => 'GL_BALANCING'
31572    , p_segment_value           => C_CHAR
31573    , p_from_segment_code       => NULL
31574    , p_from_combination_id     => NULL
31575    , p_value_type_code         => NULL
31576    , p_transaction_coa_id      => null
31577    , p_accounting_coa_id       => null
31578    , p_flexfield_segment_code  => NULL
31579    , p_flex_value_set_id       => NULL
31580    , p_adr_code                => NULL
31581    , p_adr_type_code           => NULL
31582    , p_component_type          => l_component_type
31583    , p_component_code          => l_component_code
31584    , p_component_type_code     => l_component_type_code
31588    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
31585    , p_component_appl_id       => l_component_appl_id
31586    , p_amb_context_code        => l_amb_context_code
31587    , p_entity_code             => 'AP_PAYMENTS'
31589    , p_side                    => 'NA'
31590    );
31591    --
31592 
31593 
31594    --
31595    --
31596    END IF;
31597 
31598        --
31599        -- Update the line information that should be overwritten
31600        --
31601        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31602                                          p_header_num   => 1);
31603        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31604 
31605        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31606 
31607        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31608           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31609        END IF;
31610 
31611       --
31612       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31613       --
31614       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31615           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31616       ELSE
31617           ---------------------------------------------------------------------------------------------------
31618           -- 4262811a Switch Sign
31619           ---------------------------------------------------------------------------------------------------
31620           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31621           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31622                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31623           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31624                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31625           -- 5132302
31626           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31627                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31628 
31629       END IF;
31630 
31631       -- 4955764
31632       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31633       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31634 
31635 
31636       XLA_AE_LINES_PKG.ValidateCurrentLine;
31637       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31638 
31639       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31640                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31641                ,p_balance_type_code => l_balance_type_code);
31642 
31643    END IF;
31644 
31645    -----------------------------------------------------------------------------------------
31646    -- 4262811 Multiperiod Accounting
31647    -----------------------------------------------------------------------------------------
31648      -- No MPA option is assigned.
31649 
31650 
31651 END IF;
31652 END IF;
31653 --
31654 
31655 --
31656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31657    trace
31658       (p_msg      => 'END of AcctLineType_86'
31659       ,p_level    => C_LEVEL_PROCEDURE
31660       ,p_module   => l_log_module);
31661 END IF;
31662 --
31663 EXCEPTION
31664   WHEN xla_exceptions_pkg.application_exception THEN
31665       RAISE;
31666   WHEN OTHERS THEN
31667        xla_exceptions_pkg.raise_message
31668            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_86');
31669 END AcctLineType_86;
31670 --
31671 
31672 ---------------------------------------
31673 --
31674 -- PRIVATE FUNCTION
31675 --         AcctLineType_87
31676 --
31677 ---------------------------------------
31678 PROCEDURE AcctLineType_87 (
31679   p_application_id        IN NUMBER
31680  ,p_event_id              IN NUMBER
31681  ,p_calculate_acctd_flag  IN VARCHAR2
31682  ,p_calculate_g_l_flag    IN VARCHAR2
31683  ,p_actual_flag           IN OUT VARCHAR2
31684  ,p_balance_type_code     OUT VARCHAR2
31685  ,p_gain_or_loss_ref      OUT VARCHAR2
31686  
31687 --Payment Currency Code
31688  , p_source_8            IN VARCHAR2
31689 --Bank Cash Clearing Account
31690  , p_source_30            IN NUMBER
31691 --Automatic Offsets Flag
31692  , p_source_43            IN VARCHAR2
31693  , p_source_43_meaning    IN VARCHAR2
31694 --When to Account for Payment Option
31695  , p_source_57            IN VARCHAR2
31696 --Accounting Reversal Indicator
31697  , p_source_58            IN VARCHAR2
31698 --Distribution Link Type
31699  , p_source_60            IN VARCHAR2
31700 --Override Accounted Amount Indicator
31701  , p_source_85            IN VARCHAR2
31702  , p_source_85_meaning    IN VARCHAR2
31703 --Third Party Type
31704  , p_source_88            IN VARCHAR2
31705 --Business Flow Accounts Payable Application Identifier
31706  , p_source_96            IN NUMBER
31707 --Payment Distribution Type
31708  , p_source_101            IN VARCHAR2
31709  , p_source_101_meaning    IN VARCHAR2
31710 --Payment Distribution Amount
31711  , p_source_102            IN NUMBER
31715  , p_source_104            IN VARCHAR2
31712 --Business Flow Payment Distribution Type
31713  , p_source_103            IN VARCHAR2
31714 --Business Flow Payment Entity Code
31716 --Business Flow Payment Distribution Identifier
31717  , p_source_105            IN NUMBER
31718 --Business Flow Payment Identifier
31719  , p_source_106            IN NUMBER
31720 --Payment Distribution Identifier
31721  , p_source_107            IN NUMBER
31722 --Payment Supplier Identifier
31723  , p_source_113            IN NUMBER
31724 --Payment Supplier Site Identifier
31725  , p_source_114            IN NUMBER
31726 --Payment Distribution Reversed Identifier
31727  , p_source_115            IN NUMBER
31728 --Pooled Bank Account Option
31729  , p_source_116            IN VARCHAR2
31730  , p_source_116_meaning    IN VARCHAR2
31731 --Payment Maturity Date
31732  , p_source_117            IN DATE
31733 --Payment Distribution (Invoice Rate) Ledger Amount
31734  , p_source_119            IN NUMBER
31735 --Payment Exchange Date
31736  , p_source_120            IN DATE
31737 --Payment Exchange Rate
31738  , p_source_121            IN NUMBER
31739 --Payment Exchange Rate Type
31740  , p_source_122            IN VARCHAR2
31741 )
31742 IS
31743 
31744 l_component_type              VARCHAR2(80);
31745 l_component_code              VARCHAR2(30);
31746 l_component_type_code         VARCHAR2(1);
31747 l_component_appl_id           INTEGER;
31748 l_amb_context_code            VARCHAR2(30);
31749 l_entity_code                 VARCHAR2(30);
31750 l_event_class_code            VARCHAR2(30);
31751 l_ae_header_id                NUMBER;
31752 l_event_type_code             VARCHAR2(30);
31753 l_line_definition_code        VARCHAR2(30);
31754 l_line_definition_owner_code  VARCHAR2(1);
31755 --
31756 -- adr variables
31757 l_segment                     VARCHAR2(30);
31758 l_ccid                        NUMBER;
31759 l_adr_transaction_coa_id      NUMBER;
31760 l_adr_accounting_coa_id       NUMBER;
31761 l_adr_flexfield_segment_code  VARCHAR2(30);
31762 l_adr_flex_value_set_id       NUMBER;
31763 l_adr_value_type_code         VARCHAR2(30);
31764 l_adr_value_combination_id    NUMBER;
31765 l_adr_value_segment_code      VARCHAR2(30);
31766 
31767 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31768 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31769 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31770 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31771 
31772 -- 4262811 Variables ------------------------------------------------------------------------------------------
31773 l_entered_amt_idx             NUMBER;
31774 l_accted_amt_idx              NUMBER;
31775 l_acc_rev_flag                VARCHAR2(1);
31776 l_accrual_line_num            NUMBER;
31777 l_tmp_amt                     NUMBER;
31778 l_acc_rev_natural_side_code   VARCHAR2(1);
31779 
31780 l_num_entries                 NUMBER;
31781 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31782 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31783 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31784 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31785 l_recog_line_1                NUMBER;
31786 l_recog_line_2                NUMBER;
31787 
31788 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31789 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31790 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31791 
31792 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31793 
31794 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31795 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31796 
31797 ---------------------------------------------------------------------------------------------------------------
31798 
31799 
31800 --
31801 -- bulk performance
31802 --
31803 l_balance_type_code           VARCHAR2(1);
31804 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31805 l_log_module                  VARCHAR2(240);
31806 
31807 --
31808 -- Upgrade strategy
31809 --
31810 l_actual_upg_option           VARCHAR2(1);
31811 l_enc_upg_option           VARCHAR2(1);
31812 
31813 --
31814 BEGIN
31815 --
31816 IF g_log_enabled THEN
31817       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
31818 END IF;
31819 --
31820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31821 
31822       trace
31823          (p_msg      => 'BEGIN of AcctLineType_87'
31824          ,p_level    => C_LEVEL_PROCEDURE
31825          ,p_module   => l_log_module);
31826 
31827 END IF;
31828 --
31829 l_component_type             := 'AMB_JLT';
31830 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_INVXRATE';
31831 l_component_type_code        := 'S';
31832 l_component_appl_id          :=  200;
31833 l_amb_context_code           := 'DEFAULT';
31834 l_entity_code                := 'AP_PAYMENTS';
31835 l_event_class_code           := 'FUTURE DATED PAYMENTS';
31836 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
31837 l_line_definition_owner_code := 'S';
31838 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
31839 --
31840 l_balance_type_code          := 'A';
31841 l_segment                     := NULL;
31845 l_adr_flexfield_segment_code  := NULL;
31842 l_ccid                        := NULL;
31843 l_adr_transaction_coa_id      := NULL;
31844 l_adr_accounting_coa_id       := NULL;
31846 l_adr_flex_value_set_id       := NULL;
31847 l_adr_value_type_code         := NULL;
31848 l_adr_value_combination_id    := NULL;
31849 l_adr_value_segment_code      := NULL;
31850 
31851 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
31852 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
31853 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31854 l_budgetary_control_flag     := 'N';
31855 
31856 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31857 l_bflow_applied_to_amt       := NULL; -- 5132302
31858 l_entered_amt_idx            := NULL;          -- 4262811
31859 l_accted_amt_idx             := NULL;          -- 4262811
31860 l_acc_rev_flag               := NULL;          -- 4262811
31861 l_accrual_line_num           := NULL;          -- 4262811
31862 l_tmp_amt                    := NULL;          -- 4262811
31863 --
31864  
31865 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31866     l_balance_type_code <> 'B' THEN
31867 IF NVL(p_source_57,'
31868 ') =  'ALWAYS_CLEAR' AND 
31869 (NVL(p_source_43,'
31870 ') <>  'Y' OR 
31871 NVL(p_source_43,'
31872 ') =  'Y' AND 
31873 NVL(p_source_116,'
31874 ') <>  'Y') AND 
31875 p_source_117 IS NOT NULL AND 
31876 NVL(p_source_101,'
31877 ') =  'CASH'
31878  THEN 
31879 
31880    --
31881    XLA_AE_LINES_PKG.SetNewLine;
31882 
31883    p_balance_type_code          := l_balance_type_code;
31884    -- set the flag so later we will know whether the gain loss line needs to be created
31885    
31886    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31887      p_actual_flag :='A';
31888    END IF;
31889 
31890    --
31891    -- bulk performance
31892    --
31893    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31894                                       p_header_num   => 0); -- 4262811
31895    --
31896    -- set accounting line options
31897    --
31898    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31899            p_natural_side_code          => 'C'
31900          , p_gain_or_loss_flag          => 'N'
31901          , p_gl_transfer_mode_code      => 'S'
31902          , p_acct_entry_type_code       => 'A'
31903          , p_switch_side_flag           => 'Y'
31904          , p_merge_duplicate_code       => 'A'
31905          );
31906    --
31907    l_acc_rev_natural_side_code := 'D';  -- 4262811
31908    -- 
31909    --
31910    -- set accounting line type info
31911    --
31912    xla_ae_lines_pkg.SetAcctLineType
31913       (p_component_type             => l_component_type
31914       ,p_event_type_code            => l_event_type_code
31915       ,p_line_definition_owner_code => l_line_definition_owner_code
31916       ,p_line_definition_code       => l_line_definition_code
31917       ,p_accounting_line_code       => l_component_code
31918       ,p_accounting_line_type_code  => l_component_type_code
31919       ,p_accounting_line_appl_id    => l_component_appl_id
31920       ,p_amb_context_code           => l_amb_context_code
31921       ,p_entity_code                => l_entity_code
31922       ,p_event_class_code           => l_event_class_code);
31923    --
31924    -- set accounting class
31925    --
31926    xla_ae_lines_pkg.SetAcctClass(
31927            p_accounting_class_code  => 'CASH_CLEARING'
31928          , p_ae_header_id           => l_ae_header_id
31929          );
31930 
31931    --
31932    -- set rounding class
31933    --
31934    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31935                       'CASH_CLEARING';
31936 
31937    --
31938    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31939    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31940    --
31941    -- bulk performance
31942    --
31943    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31944 
31945    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31946       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31947 
31948    -- 4955764
31949    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31950       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31951 
31952    -- 4458381 Public Sector Enh
31953    
31954    --
31955    -- set accounting attributes for the line type
31956    --
31957    l_entered_amt_idx := 9;
31958    l_accted_amt_idx  := 14;
31959    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31960    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31961    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
31962    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31963    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
31964    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31965    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
31966    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31967    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
31968    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31972    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31969    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
31970    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31971    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
31973    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
31974    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31975    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
31976    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31977    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
31978    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31979    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
31980    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31981    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
31982    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31983    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
31984    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31985    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
31986    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31987    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
31988    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31989    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
31990    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31991    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
31992    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31993    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
31994    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31995    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
31996    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31997    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
31998    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31999    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
32000 
32001    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32002    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32003 
32004    ---------------------------------------------------------------------------------------------------------------
32005    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32006    ---------------------------------------------------------------------------------------------------------------
32007    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32008 
32009    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32010    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32011 
32012    IF xla_accounting_cache_pkg.GetValueChar
32013          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32014          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32015    AND l_bflow_method_code = 'PRIOR_ENTRY'
32016 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32017    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32018          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32019        )
32020    THEN
32021          xla_ae_lines_pkg.BflowUpgEntry
32022            (p_business_method_code    => l_bflow_method_code
32023            ,p_business_class_code     => l_bflow_class_code
32024            ,p_balance_type            => l_balance_type_code);
32025    ELSE
32026       NULL;
32027 -- No business flow processing for business flow method of NONE.
32028    END IF;
32029 
32030    --
32031    -- call analytical criteria
32032    --
32033    
32034    --
32035    -- call description
32036    --
32037    -- No description or it is inherited.
32038    --
32039    -- call ADRs
32040    -- Bug 4922099
32041    --
32042    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32043         (NVL(l_actual_upg_option, 'N') = 'O') OR
32044         (NVL(l_enc_upg_option, 'N') = 'O')
32045       )
32046    THEN
32047    NULL;
32048    --
32049    --
32050    
32051   l_ccid := AcctDerRule_38(
32052            p_application_id           => p_application_id
32053          , p_ae_header_id             => l_ae_header_id 
32054 , p_source_30 => p_source_30
32055          , x_transaction_coa_id       => l_adr_transaction_coa_id
32056          , x_accounting_coa_id        => l_adr_accounting_coa_id
32057          , x_value_type_code          => l_adr_value_type_code
32058          , p_side                     => 'NA'
32059    );
32060 
32061    xla_ae_lines_pkg.set_ccid(
32062     p_code_combination_id          => l_ccid
32063   , p_value_type_code              => l_adr_value_type_code
32064   , p_transaction_coa_id           => l_adr_transaction_coa_id
32065   , p_accounting_coa_id            => l_adr_accounting_coa_id
32066   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32067   , p_adr_type_code                => 'S'
32068   , p_component_type               => l_component_type
32069   , p_component_code               => l_component_code
32070   , p_component_type_code          => l_component_type_code
32071   , p_component_appl_id            => l_component_appl_id
32075 
32072   , p_amb_context_code             => l_amb_context_code
32073   , p_side                         => 'NA'
32074   );
32076 
32077    --
32078    --
32079    END IF;
32080    --
32081    -- Bug 4922099
32082    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32083           (NVL(l_enc_upg_option, 'N') = 'O')
32084         ) AND
32085         (l_bflow_method_code = 'PRIOR_ENTRY')
32086       )
32087    THEN
32088       IF
32089       --
32090       1 = 2
32091       --
32092       THEN
32093       xla_accounting_err_pkg.build_message
32094                                     (p_appli_s_name            => 'XLA'
32095                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32096                                     ,p_token_1                 => 'LINE_NUMBER'
32097                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32098                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32099                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32100                                                                              l_component_type
32101                                                                             ,l_component_code
32102                                                                             ,l_component_type_code
32103                                                                             ,l_component_appl_id
32104                                                                             ,l_amb_context_code
32105                                                                             ,l_entity_code
32106                                                                             ,l_event_class_code
32107                                                                            )
32108                                     ,p_token_3                 => 'OWNER'
32109                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32110                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32111                                                                           ,p_lookup_code    => l_component_type_code
32112                                                                          )
32113                                     ,p_token_4                 => 'PRODUCT_NAME'
32114                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32115                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32116                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32117                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32118                                     ,p_ae_header_id            =>  NULL
32119                                        );
32120 
32121         IF (C_LEVEL_ERROR>= g_log_level) THEN
32122                  trace
32123                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32124                       ,p_level    => C_LEVEL_ERROR
32125                       ,p_module   => l_log_module);
32126         END IF;
32127       END IF;
32128    END IF;
32129    --
32130    --
32131    ------------------------------------------------------------------------------------------------
32132    -- 4219869 Business Flow
32133    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32134    -- Prior Entry.  Currently, the following code is always generated.
32135    ------------------------------------------------------------------------------------------------
32136    XLA_AE_LINES_PKG.ValidateCurrentLine;
32137 
32138    ------------------------------------------------------------------------------------
32139    -- 4219869 Business Flow
32140    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32141    ------------------------------------------------------------------------------------
32142    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32143 
32144    ----------------------------------------------------------------------------------
32145    -- 4219869 Business Flow
32146    -- Update journal entry status -- Need to generate this within IF <condition>
32147    ----------------------------------------------------------------------------------
32148    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32149          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32150          ,p_balance_type_code => l_balance_type_code
32151          );
32152 
32153    -------------------------------------------------------------------------------------------
32154    -- 4262811 - Generate the Accrual Reversal lines
32155    -------------------------------------------------------------------------------------------
32156    BEGIN
32157       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32158                               (g_array_event(p_event_id).array_value_num('header_index'));
32159       IF l_acc_rev_flag IS NULL THEN
32160          l_acc_rev_flag := 'N';
32161       END IF;
32162    EXCEPTION
32163       WHEN OTHERS THEN
32164          l_acc_rev_flag := 'N';
32165    END;
32166    --
32167    IF (l_acc_rev_flag = 'Y') THEN
32168 
32169        -- 4645092  ------------------------------------------------------------------------------
32173 
32170        -- To allow MPA report to determine if it should generate report process
32171        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32172        ------------------------------------------------------------------------------------------
32174        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32175        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32176    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32177    -- call ADRs
32178    -- Bug 4922099
32179    --
32180    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32181         (NVL(l_actual_upg_option, 'N') = 'O') OR
32182         (NVL(l_enc_upg_option, 'N') = 'O')
32183       )
32184    THEN
32185    NULL;
32186    --
32187    --
32188    
32189   l_ccid := AcctDerRule_38(
32190            p_application_id           => p_application_id
32191          , p_ae_header_id             => l_ae_header_id 
32192 , p_source_30 => p_source_30
32193          , x_transaction_coa_id       => l_adr_transaction_coa_id
32194          , x_accounting_coa_id        => l_adr_accounting_coa_id
32195          , x_value_type_code          => l_adr_value_type_code
32196          , p_side                     => 'NA'
32197    );
32198 
32199    xla_ae_lines_pkg.set_ccid(
32200     p_code_combination_id          => l_ccid
32201   , p_value_type_code              => l_adr_value_type_code
32202   , p_transaction_coa_id           => l_adr_transaction_coa_id
32203   , p_accounting_coa_id            => l_adr_accounting_coa_id
32204   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32205   , p_adr_type_code                => 'S'
32206   , p_component_type               => l_component_type
32207   , p_component_code               => l_component_code
32208   , p_component_type_code          => l_component_type_code
32209   , p_component_appl_id            => l_component_appl_id
32210   , p_amb_context_code             => l_amb_context_code
32211   , p_side                         => 'NA'
32212   );
32213 
32214 
32215    --
32216    --
32217    END IF;
32218 
32219        --
32220        -- Update the line information that should be overwritten
32221        --
32222        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32223                                          p_header_num   => 1);
32224        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32225 
32226        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32227 
32228        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32229           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32230        END IF;
32231 
32232       --
32233       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32234       --
32235       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32236           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32237       ELSE
32238           ---------------------------------------------------------------------------------------------------
32239           -- 4262811a Switch Sign
32240           ---------------------------------------------------------------------------------------------------
32241           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32242           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32243                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32244           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32245                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32246           -- 5132302
32247           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32248                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32249 
32250       END IF;
32251 
32252       -- 4955764
32253       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32254       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32255 
32256 
32257       XLA_AE_LINES_PKG.ValidateCurrentLine;
32258       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32259 
32260       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32261                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32262                ,p_balance_type_code => l_balance_type_code);
32263 
32264    END IF;
32265 
32266    -----------------------------------------------------------------------------------------
32267    -- 4262811 Multiperiod Accounting
32268    -----------------------------------------------------------------------------------------
32269      -- No MPA option is assigned.
32270 
32271 
32272 END IF;
32273 END IF;
32274 --
32275 
32276 --
32277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32278    trace
32279       (p_msg      => 'END of AcctLineType_87'
32280       ,p_level    => C_LEVEL_PROCEDURE
32281       ,p_module   => l_log_module);
32282 END IF;
32283 --
32284 EXCEPTION
32285   WHEN xla_exceptions_pkg.application_exception THEN
32286       RAISE;
32287   WHEN OTHERS THEN
32291 --
32288        xla_exceptions_pkg.raise_message
32289            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_87');
32290 END AcctLineType_87;
32292 
32293 ---------------------------------------
32294 --
32295 -- PRIVATE FUNCTION
32296 --         AcctLineType_88
32297 --
32298 ---------------------------------------
32299 PROCEDURE AcctLineType_88 (
32300   p_application_id        IN NUMBER
32301  ,p_event_id              IN NUMBER
32302  ,p_calculate_acctd_flag  IN VARCHAR2
32303  ,p_calculate_g_l_flag    IN VARCHAR2
32304  ,p_actual_flag           IN OUT VARCHAR2
32305  ,p_balance_type_code     OUT VARCHAR2
32306  ,p_gain_or_loss_ref      OUT VARCHAR2
32307  
32308 --Payment Currency Code
32309  , p_source_8            IN VARCHAR2
32310 --Bank Cash Clearing Account
32311  , p_source_30            IN NUMBER
32312 --Automatic Offsets Flag
32313  , p_source_43            IN VARCHAR2
32314  , p_source_43_meaning    IN VARCHAR2
32315 --When to Account for Payment Option
32316  , p_source_57            IN VARCHAR2
32317 --Accounting Reversal Indicator
32318  , p_source_58            IN VARCHAR2
32319 --Distribution Link Type
32320  , p_source_60            IN VARCHAR2
32321 --Override Accounted Amount Indicator
32322  , p_source_85            IN VARCHAR2
32323  , p_source_85_meaning    IN VARCHAR2
32324 --Third Party Type
32325  , p_source_88            IN VARCHAR2
32326 --Invoice Distribution Tax Line Identifier
32327  , p_source_91            IN NUMBER
32328 --Invoice Distribution Tax Distribution Identifier from Tax
32329  , p_source_92            IN NUMBER
32330 --Invoice Distribution Summary Tax Line Identifier
32331  , p_source_93            IN NUMBER
32332 --Business Flow Accounts Payable Application Identifier
32333  , p_source_96            IN NUMBER
32334 --Business Flow Invoice Distribution Type
32335  , p_source_97            IN VARCHAR2
32336 --Business Flow Invoice Entity Code
32337  , p_source_98            IN VARCHAR2
32338 --Business Flow Invoice Distribution Identifier
32339  , p_source_99            IN NUMBER
32340 --Business Flow Invoice Identifier
32341  , p_source_100            IN NUMBER
32342 --Payment Distribution Type
32343  , p_source_101            IN VARCHAR2
32344  , p_source_101_meaning    IN VARCHAR2
32345 --Payment Distribution Amount
32346  , p_source_102            IN NUMBER
32347 --Payment Distribution Identifier
32348  , p_source_107            IN NUMBER
32349 --Payment Supplier Identifier
32350  , p_source_113            IN NUMBER
32351 --Payment Supplier Site Identifier
32352  , p_source_114            IN NUMBER
32353 --Payment Distribution Reversed Identifier
32354  , p_source_115            IN NUMBER
32355 --Pooled Bank Account Option
32356  , p_source_116            IN VARCHAR2
32357  , p_source_116_meaning    IN VARCHAR2
32358 --Payment Maturity Date
32359  , p_source_117            IN DATE
32360 --Payment Distribution (Payment Rate) Ledger Amount
32361  , p_source_118            IN NUMBER
32362 --Payment Exchange Date
32363  , p_source_120            IN DATE
32364 --Payment Exchange Rate
32365  , p_source_121            IN NUMBER
32366 --Payment Exchange Rate Type
32367  , p_source_122            IN VARCHAR2
32368 --Payment Type
32369  , p_source_125            IN VARCHAR2
32370  , p_source_125_meaning    IN VARCHAR2
32371 )
32372 IS
32373 
32374 l_component_type              VARCHAR2(80);
32375 l_component_code              VARCHAR2(30);
32376 l_component_type_code         VARCHAR2(1);
32377 l_component_appl_id           INTEGER;
32378 l_amb_context_code            VARCHAR2(30);
32379 l_entity_code                 VARCHAR2(30);
32380 l_event_class_code            VARCHAR2(30);
32381 l_ae_header_id                NUMBER;
32382 l_event_type_code             VARCHAR2(30);
32383 l_line_definition_code        VARCHAR2(30);
32384 l_line_definition_owner_code  VARCHAR2(1);
32385 --
32386 -- adr variables
32387 l_segment                     VARCHAR2(30);
32388 l_ccid                        NUMBER;
32389 l_adr_transaction_coa_id      NUMBER;
32390 l_adr_accounting_coa_id       NUMBER;
32391 l_adr_flexfield_segment_code  VARCHAR2(30);
32392 l_adr_flex_value_set_id       NUMBER;
32393 l_adr_value_type_code         VARCHAR2(30);
32394 l_adr_value_combination_id    NUMBER;
32395 l_adr_value_segment_code      VARCHAR2(30);
32396 
32397 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32398 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32399 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32400 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32401 
32402 -- 4262811 Variables ------------------------------------------------------------------------------------------
32403 l_entered_amt_idx             NUMBER;
32404 l_accted_amt_idx              NUMBER;
32405 l_acc_rev_flag                VARCHAR2(1);
32406 l_accrual_line_num            NUMBER;
32407 l_tmp_amt                     NUMBER;
32408 l_acc_rev_natural_side_code   VARCHAR2(1);
32409 
32410 l_num_entries                 NUMBER;
32411 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32412 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32413 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32414 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32415 l_recog_line_1                NUMBER;
32416 l_recog_line_2                NUMBER;
32417 
32421 
32418 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32419 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32420 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32422 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32423 
32424 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32425 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32426 
32427 ---------------------------------------------------------------------------------------------------------------
32428 
32429 
32430 --
32431 -- bulk performance
32432 --
32433 l_balance_type_code           VARCHAR2(1);
32434 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32435 l_log_module                  VARCHAR2(240);
32436 
32437 --
32438 -- Upgrade strategy
32439 --
32440 l_actual_upg_option           VARCHAR2(1);
32441 l_enc_upg_option           VARCHAR2(1);
32442 
32443 --
32444 BEGIN
32445 --
32446 IF g_log_enabled THEN
32447       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
32448 END IF;
32449 --
32450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32451 
32452       trace
32453          (p_msg      => 'BEGIN of AcctLineType_88'
32454          ,p_level    => C_LEVEL_PROCEDURE
32455          ,p_module   => l_log_module);
32456 
32457 END IF;
32458 --
32459 l_component_type             := 'AMB_JLT';
32460 l_component_code             := 'AP_CASH_CLEAR_REF';
32461 l_component_type_code        := 'S';
32462 l_component_appl_id          :=  200;
32463 l_amb_context_code           := 'DEFAULT';
32464 l_entity_code                := 'AP_PAYMENTS';
32465 l_event_class_code           := 'REFUNDS';
32466 l_event_type_code            := 'REFUNDS_ALL';
32467 l_line_definition_owner_code := 'S';
32468 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
32469 --
32470 l_balance_type_code          := 'A';
32471 l_segment                     := NULL;
32472 l_ccid                        := NULL;
32473 l_adr_transaction_coa_id      := NULL;
32474 l_adr_accounting_coa_id       := NULL;
32475 l_adr_flexfield_segment_code  := NULL;
32476 l_adr_flex_value_set_id       := NULL;
32477 l_adr_value_type_code         := NULL;
32478 l_adr_value_combination_id    := NULL;
32479 l_adr_value_segment_code      := NULL;
32480 
32481 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
32482 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
32483 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32484 l_budgetary_control_flag     := 'N';
32485 
32486 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32487 l_bflow_applied_to_amt       := NULL; -- 5132302
32488 l_entered_amt_idx            := NULL;          -- 4262811
32489 l_accted_amt_idx             := NULL;          -- 4262811
32490 l_acc_rev_flag               := NULL;          -- 4262811
32491 l_accrual_line_num           := NULL;          -- 4262811
32492 l_tmp_amt                    := NULL;          -- 4262811
32493 --
32494  
32495 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32496     l_balance_type_code <> 'B' THEN
32497 IF NVL(p_source_57,'
32498 ') =  'ALWAYS_ALWAYS' AND 
32499 (NVL(p_source_43,'
32500 ') <>  'Y' OR 
32501 NVL(p_source_43,'
32502 ') =  'Y' AND 
32503 NVL(p_source_116,'
32504 ') <>  'Y') AND 
32505 p_source_117 IS NULL AND 
32506 NVL(p_source_101,'
32507 ') =  'CASH' AND 
32508 NVL(p_source_125,'
32509 ') =  'R'
32510  THEN 
32511 
32512    --
32513    XLA_AE_LINES_PKG.SetNewLine;
32514 
32515    p_balance_type_code          := l_balance_type_code;
32516    -- set the flag so later we will know whether the gain loss line needs to be created
32517    
32518    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32519      p_actual_flag :='A';
32520    END IF;
32521 
32522    --
32523    -- bulk performance
32524    --
32525    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32526                                       p_header_num   => 0); -- 4262811
32527    --
32528    -- set accounting line options
32529    --
32530    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32531            p_natural_side_code          => 'C'
32532          , p_gain_or_loss_flag          => 'N'
32533          , p_gl_transfer_mode_code      => 'S'
32534          , p_acct_entry_type_code       => 'A'
32535          , p_switch_side_flag           => 'Y'
32536          , p_merge_duplicate_code       => 'A'
32537          );
32538    --
32539    l_acc_rev_natural_side_code := 'D';  -- 4262811
32540    -- 
32541    --
32542    -- set accounting line type info
32543    --
32544    xla_ae_lines_pkg.SetAcctLineType
32545       (p_component_type             => l_component_type
32546       ,p_event_type_code            => l_event_type_code
32547       ,p_line_definition_owner_code => l_line_definition_owner_code
32548       ,p_line_definition_code       => l_line_definition_code
32549       ,p_accounting_line_code       => l_component_code
32550       ,p_accounting_line_type_code  => l_component_type_code
32551       ,p_accounting_line_appl_id    => l_component_appl_id
32552       ,p_amb_context_code           => l_amb_context_code
32556    -- set accounting class
32553       ,p_entity_code                => l_entity_code
32554       ,p_event_class_code           => l_event_class_code);
32555    --
32557    --
32558    xla_ae_lines_pkg.SetAcctClass(
32559            p_accounting_class_code  => 'CASH_CLEARING'
32560          , p_ae_header_id           => l_ae_header_id
32561          );
32562 
32563    --
32564    -- set rounding class
32565    --
32566    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32567                       'CASH_CLEARING';
32568 
32569    --
32570    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32571    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32572    --
32573    -- bulk performance
32574    --
32575    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32576 
32577    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32578       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32579 
32580    -- 4955764
32581    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32582       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32583 
32584    -- 4458381 Public Sector Enh
32585    
32586    --
32587    -- set accounting attributes for the line type
32588    --
32589    l_entered_amt_idx := 9;
32590    l_accted_amt_idx  := 14;
32591    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32592    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32593    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
32594    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32595    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
32596    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32597    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
32598    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32599    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
32600    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32601    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
32602    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32603    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
32604    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32605    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
32606    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32607    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
32608    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32609    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
32610    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32611    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
32612    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32613    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
32614    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32615    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
32616    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32617    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
32618    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32619    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
32620    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32621    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
32622    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32623    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
32624    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32625    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
32626    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32627    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
32628    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32629    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
32630    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32631    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
32632    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32633    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
32634    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32635    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
32636    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32637    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
32638 
32639    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32640    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32641 
32642    ---------------------------------------------------------------------------------------------------------------
32643    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32644    ---------------------------------------------------------------------------------------------------------------
32645    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32646 
32647    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32648    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32649 
32650    IF xla_accounting_cache_pkg.GetValueChar
32654 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32651          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32652          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32653    AND l_bflow_method_code = 'PRIOR_ENTRY'
32655    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32656          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32657        )
32658    THEN
32659          xla_ae_lines_pkg.BflowUpgEntry
32660            (p_business_method_code    => l_bflow_method_code
32661            ,p_business_class_code     => l_bflow_class_code
32662            ,p_balance_type            => l_balance_type_code);
32663    ELSE
32664       NULL;
32665 -- No business flow processing for business flow method of NONE.
32666    END IF;
32667 
32668    --
32669    -- call analytical criteria
32670    --
32671    
32672    --
32673    -- call description
32674    --
32675    -- No description or it is inherited.
32676    --
32677    -- call ADRs
32678    -- Bug 4922099
32679    --
32680    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32681         (NVL(l_actual_upg_option, 'N') = 'O') OR
32682         (NVL(l_enc_upg_option, 'N') = 'O')
32683       )
32684    THEN
32685    NULL;
32686    --
32687    --
32688    
32689   l_ccid := AcctDerRule_38(
32690            p_application_id           => p_application_id
32691          , p_ae_header_id             => l_ae_header_id 
32692 , p_source_30 => p_source_30
32693          , x_transaction_coa_id       => l_adr_transaction_coa_id
32694          , x_accounting_coa_id        => l_adr_accounting_coa_id
32695          , x_value_type_code          => l_adr_value_type_code
32696          , p_side                     => 'NA'
32697    );
32698 
32699    xla_ae_lines_pkg.set_ccid(
32700     p_code_combination_id          => l_ccid
32701   , p_value_type_code              => l_adr_value_type_code
32702   , p_transaction_coa_id           => l_adr_transaction_coa_id
32703   , p_accounting_coa_id            => l_adr_accounting_coa_id
32704   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32705   , p_adr_type_code                => 'S'
32706   , p_component_type               => l_component_type
32707   , p_component_code               => l_component_code
32708   , p_component_type_code          => l_component_type_code
32709   , p_component_appl_id            => l_component_appl_id
32710   , p_amb_context_code             => l_amb_context_code
32711   , p_side                         => 'NA'
32712   );
32713 
32714 
32715    --
32716    --
32717    END IF;
32718    --
32719    -- Bug 4922099
32720    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32721           (NVL(l_enc_upg_option, 'N') = 'O')
32722         ) AND
32723         (l_bflow_method_code = 'PRIOR_ENTRY')
32724       )
32725    THEN
32726       IF
32727       --
32728       1 = 2
32729       --
32730       THEN
32731       xla_accounting_err_pkg.build_message
32732                                     (p_appli_s_name            => 'XLA'
32733                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32734                                     ,p_token_1                 => 'LINE_NUMBER'
32735                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32736                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32737                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32738                                                                              l_component_type
32739                                                                             ,l_component_code
32740                                                                             ,l_component_type_code
32741                                                                             ,l_component_appl_id
32742                                                                             ,l_amb_context_code
32743                                                                             ,l_entity_code
32744                                                                             ,l_event_class_code
32745                                                                            )
32746                                     ,p_token_3                 => 'OWNER'
32747                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32748                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32749                                                                           ,p_lookup_code    => l_component_type_code
32750                                                                          )
32751                                     ,p_token_4                 => 'PRODUCT_NAME'
32752                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32753                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32754                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32755                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32756                                     ,p_ae_header_id            =>  NULL
32757                                        );
32758 
32759         IF (C_LEVEL_ERROR>= g_log_level) THEN
32760                  trace
32764         END IF;
32761                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32762                       ,p_level    => C_LEVEL_ERROR
32763                       ,p_module   => l_log_module);
32765       END IF;
32766    END IF;
32767    --
32768    --
32769    ------------------------------------------------------------------------------------------------
32770    -- 4219869 Business Flow
32771    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32772    -- Prior Entry.  Currently, the following code is always generated.
32773    ------------------------------------------------------------------------------------------------
32774    XLA_AE_LINES_PKG.ValidateCurrentLine;
32775 
32776    ------------------------------------------------------------------------------------
32777    -- 4219869 Business Flow
32778    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32779    ------------------------------------------------------------------------------------
32780    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32781 
32782    ----------------------------------------------------------------------------------
32783    -- 4219869 Business Flow
32784    -- Update journal entry status -- Need to generate this within IF <condition>
32785    ----------------------------------------------------------------------------------
32786    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32787          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32788          ,p_balance_type_code => l_balance_type_code
32789          );
32790 
32791    -------------------------------------------------------------------------------------------
32792    -- 4262811 - Generate the Accrual Reversal lines
32793    -------------------------------------------------------------------------------------------
32794    BEGIN
32795       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32796                               (g_array_event(p_event_id).array_value_num('header_index'));
32797       IF l_acc_rev_flag IS NULL THEN
32798          l_acc_rev_flag := 'N';
32799       END IF;
32800    EXCEPTION
32801       WHEN OTHERS THEN
32802          l_acc_rev_flag := 'N';
32803    END;
32804    --
32805    IF (l_acc_rev_flag = 'Y') THEN
32806 
32807        -- 4645092  ------------------------------------------------------------------------------
32808        -- To allow MPA report to determine if it should generate report process
32809        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32810        ------------------------------------------------------------------------------------------
32811 
32812        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32813        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32814    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32815    -- call ADRs
32816    -- Bug 4922099
32817    --
32818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32819         (NVL(l_actual_upg_option, 'N') = 'O') OR
32820         (NVL(l_enc_upg_option, 'N') = 'O')
32821       )
32822    THEN
32823    NULL;
32824    --
32825    --
32826    
32827   l_ccid := AcctDerRule_38(
32828            p_application_id           => p_application_id
32829          , p_ae_header_id             => l_ae_header_id 
32830 , p_source_30 => p_source_30
32831          , x_transaction_coa_id       => l_adr_transaction_coa_id
32832          , x_accounting_coa_id        => l_adr_accounting_coa_id
32833          , x_value_type_code          => l_adr_value_type_code
32834          , p_side                     => 'NA'
32835    );
32836 
32837    xla_ae_lines_pkg.set_ccid(
32838     p_code_combination_id          => l_ccid
32839   , p_value_type_code              => l_adr_value_type_code
32840   , p_transaction_coa_id           => l_adr_transaction_coa_id
32841   , p_accounting_coa_id            => l_adr_accounting_coa_id
32842   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32843   , p_adr_type_code                => 'S'
32844   , p_component_type               => l_component_type
32845   , p_component_code               => l_component_code
32846   , p_component_type_code          => l_component_type_code
32847   , p_component_appl_id            => l_component_appl_id
32848   , p_amb_context_code             => l_amb_context_code
32849   , p_side                         => 'NA'
32850   );
32851 
32852 
32853    --
32854    --
32855    END IF;
32856 
32857        --
32858        -- Update the line information that should be overwritten
32859        --
32860        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32861                                          p_header_num   => 1);
32862        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32863 
32864        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32865 
32866        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32867           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32868        END IF;
32869 
32870       --
32871       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32872       --
32873       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32877           -- 4262811a Switch Sign
32874           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32875       ELSE
32876           ---------------------------------------------------------------------------------------------------
32878           ---------------------------------------------------------------------------------------------------
32879           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32880           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32881                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32882           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32883                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32884           -- 5132302
32885           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32886                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32887 
32888       END IF;
32889 
32890       -- 4955764
32891       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32892       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32893 
32894 
32895       XLA_AE_LINES_PKG.ValidateCurrentLine;
32896       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32897 
32898       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32899                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32900                ,p_balance_type_code => l_balance_type_code);
32901 
32902    END IF;
32903 
32904    -----------------------------------------------------------------------------------------
32905    -- 4262811 Multiperiod Accounting
32906    -----------------------------------------------------------------------------------------
32907      -- No MPA option is assigned.
32908 
32909 
32910 END IF;
32911 END IF;
32912 --
32913 
32914 --
32915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32916    trace
32917       (p_msg      => 'END of AcctLineType_88'
32918       ,p_level    => C_LEVEL_PROCEDURE
32919       ,p_module   => l_log_module);
32920 END IF;
32921 --
32922 EXCEPTION
32923   WHEN xla_exceptions_pkg.application_exception THEN
32924       RAISE;
32925   WHEN OTHERS THEN
32926        xla_exceptions_pkg.raise_message
32927            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_88');
32928 END AcctLineType_88;
32929 --
32930 
32931 ---------------------------------------
32932 --
32933 -- PRIVATE FUNCTION
32934 --         AcctLineType_89
32935 --
32936 ---------------------------------------
32937 PROCEDURE AcctLineType_89 (
32938   p_application_id        IN NUMBER
32939  ,p_event_id              IN NUMBER
32940  ,p_calculate_acctd_flag  IN VARCHAR2
32941  ,p_calculate_g_l_flag    IN VARCHAR2
32942  ,p_actual_flag           IN OUT VARCHAR2
32943  ,p_balance_type_code     OUT VARCHAR2
32944  ,p_gain_or_loss_ref      OUT VARCHAR2
32945  
32946 --Payment Currency Code
32947  , p_source_8            IN VARCHAR2
32948 --Automatic Offsets Value
32949  , p_source_10            IN VARCHAR2
32950  , p_source_10_meaning    IN VARCHAR2
32951 --Bank Cash Clearing Account
32952  , p_source_30            IN NUMBER
32953 --When to Account for Payment Option
32954  , p_source_57            IN VARCHAR2
32955 --Accounting Reversal Indicator
32956  , p_source_58            IN VARCHAR2
32957 --Distribution Link Type
32958  , p_source_60            IN VARCHAR2
32959 --Override Accounted Amount Indicator
32960  , p_source_85            IN VARCHAR2
32961  , p_source_85_meaning    IN VARCHAR2
32962 --Third Party Type
32963  , p_source_88            IN VARCHAR2
32964 --Invoice Distribution Tax Line Identifier
32965  , p_source_91            IN NUMBER
32966 --Invoice Distribution Tax Distribution Identifier from Tax
32967  , p_source_92            IN NUMBER
32968 --Invoice Distribution Summary Tax Line Identifier
32969  , p_source_93            IN NUMBER
32970 --Business Flow Accounts Payable Application Identifier
32971  , p_source_96            IN NUMBER
32972 --Business Flow Invoice Distribution Type
32973  , p_source_97            IN VARCHAR2
32974 --Business Flow Invoice Entity Code
32975  , p_source_98            IN VARCHAR2
32976 --Business Flow Invoice Distribution Identifier
32977  , p_source_99            IN NUMBER
32978 --Business Flow Invoice Identifier
32979  , p_source_100            IN NUMBER
32980 --Payment Distribution Type
32981  , p_source_101            IN VARCHAR2
32982  , p_source_101_meaning    IN VARCHAR2
32983 --Payment Distribution Amount
32984  , p_source_102            IN NUMBER
32985 --Payment Distribution Identifier
32986  , p_source_107            IN NUMBER
32987 --Payment Supplier Identifier
32988  , p_source_113            IN NUMBER
32989 --Payment Supplier Site Identifier
32990  , p_source_114            IN NUMBER
32991 --Payment Distribution Reversed Identifier
32992  , p_source_115            IN NUMBER
32993 --Pooled Bank Account Option
32994  , p_source_116            IN VARCHAR2
32995  , p_source_116_meaning    IN VARCHAR2
32996 --Payment Maturity Date
32997  , p_source_117            IN DATE
33001  , p_source_120            IN DATE
32998 --Payment Distribution (Payment Rate) Ledger Amount
32999  , p_source_118            IN NUMBER
33000 --Payment Exchange Date
33002 --Payment Exchange Rate
33003  , p_source_121            IN NUMBER
33004 --Payment Exchange Rate Type
33005  , p_source_122            IN VARCHAR2
33006 --Payment Type
33007  , p_source_125            IN VARCHAR2
33008  , p_source_125_meaning    IN VARCHAR2
33009 )
33010 IS
33011 
33012 l_component_type              VARCHAR2(80);
33013 l_component_code              VARCHAR2(30);
33014 l_component_type_code         VARCHAR2(1);
33015 l_component_appl_id           INTEGER;
33016 l_amb_context_code            VARCHAR2(30);
33017 l_entity_code                 VARCHAR2(30);
33018 l_event_class_code            VARCHAR2(30);
33019 l_ae_header_id                NUMBER;
33020 l_event_type_code             VARCHAR2(30);
33021 l_line_definition_code        VARCHAR2(30);
33022 l_line_definition_owner_code  VARCHAR2(1);
33023 --
33024 -- adr variables
33025 l_segment                     VARCHAR2(30);
33026 l_ccid                        NUMBER;
33027 l_adr_transaction_coa_id      NUMBER;
33028 l_adr_accounting_coa_id       NUMBER;
33029 l_adr_flexfield_segment_code  VARCHAR2(30);
33030 l_adr_flex_value_set_id       NUMBER;
33031 l_adr_value_type_code         VARCHAR2(30);
33032 l_adr_value_combination_id    NUMBER;
33033 l_adr_value_segment_code      VARCHAR2(30);
33034 
33035 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33036 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33037 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33038 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33039 
33040 -- 4262811 Variables ------------------------------------------------------------------------------------------
33041 l_entered_amt_idx             NUMBER;
33042 l_accted_amt_idx              NUMBER;
33043 l_acc_rev_flag                VARCHAR2(1);
33044 l_accrual_line_num            NUMBER;
33045 l_tmp_amt                     NUMBER;
33046 l_acc_rev_natural_side_code   VARCHAR2(1);
33047 
33048 l_num_entries                 NUMBER;
33049 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33050 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33051 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33052 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33053 l_recog_line_1                NUMBER;
33054 l_recog_line_2                NUMBER;
33055 
33056 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33057 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33058 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33059 
33060 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33061 
33062 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33063 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33064 
33065 ---------------------------------------------------------------------------------------------------------------
33066 
33067 
33068 --
33069 -- bulk performance
33070 --
33071 l_balance_type_code           VARCHAR2(1);
33072 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33073 l_log_module                  VARCHAR2(240);
33074 
33075 --
33076 -- Upgrade strategy
33077 --
33078 l_actual_upg_option           VARCHAR2(1);
33079 l_enc_upg_option           VARCHAR2(1);
33080 
33081 --
33082 BEGIN
33083 --
33084 IF g_log_enabled THEN
33085       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
33086 END IF;
33087 --
33088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33089 
33090       trace
33091          (p_msg      => 'BEGIN of AcctLineType_89'
33092          ,p_level    => C_LEVEL_PROCEDURE
33093          ,p_module   => l_log_module);
33094 
33095 END IF;
33096 --
33097 l_component_type             := 'AMB_JLT';
33098 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_AS';
33099 l_component_type_code        := 'S';
33100 l_component_appl_id          :=  200;
33101 l_amb_context_code           := 'DEFAULT';
33102 l_entity_code                := 'AP_PAYMENTS';
33103 l_event_class_code           := 'REFUNDS';
33104 l_event_type_code            := 'REFUNDS_ALL';
33105 l_line_definition_owner_code := 'S';
33106 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
33107 --
33108 l_balance_type_code          := 'A';
33109 l_segment                     := NULL;
33110 l_ccid                        := NULL;
33111 l_adr_transaction_coa_id      := NULL;
33112 l_adr_accounting_coa_id       := NULL;
33113 l_adr_flexfield_segment_code  := NULL;
33114 l_adr_flex_value_set_id       := NULL;
33115 l_adr_value_type_code         := NULL;
33116 l_adr_value_combination_id    := NULL;
33117 l_adr_value_segment_code      := NULL;
33118 
33119 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33120 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
33121 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33122 l_budgetary_control_flag     := 'N';
33123 
33124 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33125 l_bflow_applied_to_amt       := NULL; -- 5132302
33126 l_entered_amt_idx            := NULL;          -- 4262811
33130 l_tmp_amt                    := NULL;          -- 4262811
33127 l_accted_amt_idx             := NULL;          -- 4262811
33128 l_acc_rev_flag               := NULL;          -- 4262811
33129 l_accrual_line_num           := NULL;          -- 4262811
33131 --
33132  
33133 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33134     l_balance_type_code <> 'B' THEN
33135 IF NVL(p_source_57,'
33136 ') =  'ALWAYS_ALWAYS' AND 
33137 (NVL(p_source_116,'
33138 ') =  'Y' AND 
33139 NVL(p_source_10,'
33140 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
33141 p_source_117 IS NULL AND 
33142 NVL(p_source_101,'
33143 ') =  'CASH' AND 
33144 NVL(p_source_125,'
33145 ') =  'R'
33146  THEN 
33147 
33148    --
33149    XLA_AE_LINES_PKG.SetNewLine;
33150 
33151    p_balance_type_code          := l_balance_type_code;
33152    -- set the flag so later we will know whether the gain loss line needs to be created
33153    
33154    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33155      p_actual_flag :='A';
33156    END IF;
33157 
33158    --
33159    -- bulk performance
33160    --
33161    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33162                                       p_header_num   => 0); -- 4262811
33163    --
33164    -- set accounting line options
33165    --
33166    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33167            p_natural_side_code          => 'C'
33168          , p_gain_or_loss_flag          => 'N'
33169          , p_gl_transfer_mode_code      => 'S'
33170          , p_acct_entry_type_code       => 'A'
33171          , p_switch_side_flag           => 'Y'
33172          , p_merge_duplicate_code       => 'A'
33173          );
33174    --
33175    l_acc_rev_natural_side_code := 'D';  -- 4262811
33176    -- 
33177    --
33178    -- set accounting line type info
33179    --
33180    xla_ae_lines_pkg.SetAcctLineType
33181       (p_component_type             => l_component_type
33182       ,p_event_type_code            => l_event_type_code
33183       ,p_line_definition_owner_code => l_line_definition_owner_code
33184       ,p_line_definition_code       => l_line_definition_code
33185       ,p_accounting_line_code       => l_component_code
33186       ,p_accounting_line_type_code  => l_component_type_code
33187       ,p_accounting_line_appl_id    => l_component_appl_id
33188       ,p_amb_context_code           => l_amb_context_code
33189       ,p_entity_code                => l_entity_code
33190       ,p_event_class_code           => l_event_class_code);
33191    --
33192    -- set accounting class
33193    --
33194    xla_ae_lines_pkg.SetAcctClass(
33195            p_accounting_class_code  => 'CASH_CLEARING'
33196          , p_ae_header_id           => l_ae_header_id
33197          );
33198 
33199    --
33200    -- set rounding class
33201    --
33202    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33203                       'CASH_CLEARING';
33204 
33205    --
33206    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33207    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33208    --
33209    -- bulk performance
33210    --
33211    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33212 
33213    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33214       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33215 
33216    -- 4955764
33217    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33218       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33219 
33220    -- 4458381 Public Sector Enh
33221    
33222    --
33223    -- set accounting attributes for the line type
33224    --
33225    l_entered_amt_idx := 9;
33226    l_accted_amt_idx  := 14;
33227    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33228    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33229    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
33230    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33231    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
33232    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33233    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
33234    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33235    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
33236    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33237    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
33238    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33239    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
33240    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33241    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
33242    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33243    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
33244    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33245    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
33246    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33247    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
33248    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33252    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33249    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
33250    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33251    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
33253    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
33254    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33255    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
33256    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33257    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
33258    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33259    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
33260    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33261    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
33262    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33263    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
33264    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33265    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
33266    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33267    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
33268    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33269    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
33270    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33271    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
33272    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33273    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
33274 
33275    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33276    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33277 
33278    ---------------------------------------------------------------------------------------------------------------
33279    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33280    ---------------------------------------------------------------------------------------------------------------
33281    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33282 
33283    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33284    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33285 
33286    IF xla_accounting_cache_pkg.GetValueChar
33287          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33288          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33289    AND l_bflow_method_code = 'PRIOR_ENTRY'
33290 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33291    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33292          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33293        )
33294    THEN
33295          xla_ae_lines_pkg.BflowUpgEntry
33296            (p_business_method_code    => l_bflow_method_code
33297            ,p_business_class_code     => l_bflow_class_code
33298            ,p_balance_type            => l_balance_type_code);
33299    ELSE
33300       NULL;
33301 XLA_AE_LINES_PKG.business_flow_validation(
33302                                 p_business_method_code     => l_bflow_method_code
33303                                ,p_business_class_code      => l_bflow_class_code
33304                                ,p_inherit_description_flag => l_inherit_desc_flag);
33305    END IF;
33306 
33307    --
33308    -- call analytical criteria
33309    --
33310    
33311    --
33312    -- call description
33313    --
33314    -- No description or it is inherited.
33315    --
33316    -- call ADRs
33317    -- Bug 4922099
33318    --
33319    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33320         (NVL(l_actual_upg_option, 'N') = 'O') OR
33321         (NVL(l_enc_upg_option, 'N') = 'O')
33322       )
33323    THEN
33324    NULL;
33325    --
33326    --
33327    
33328    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33329      p_code_combination_id      => TO_NUMBER(C_NUM)
33330    , p_value_type_code          => NULL
33331    , p_transaction_coa_id       => null
33332    , p_accounting_coa_id        => null
33333    , p_adr_code                 => NULL
33334    , p_adr_type_code            => NULL
33335    , p_component_type           => l_component_type
33336    , p_component_code           => l_component_code
33337    , p_component_type_code      => l_component_type_code
33338    , p_component_appl_id        => l_component_appl_id
33339    , p_amb_context_code         => l_amb_context_code
33340    , p_side                     => NULL
33341    );
33342 
33343    
33344   -- initialise segments
33345   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33346   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33347   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33348   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33349   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33350   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33351   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33355   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33352   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33353   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33354   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33356   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33357   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33358   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33359   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33360   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33361   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33362   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33363   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33364   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33365   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33366   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33367   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33368   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33369   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33370   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33371   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33372   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33373   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33374   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33375   --
33376 
33377    --
33378 
33379 
33380    l_segment := AcctDerRule_16(
33381            p_application_id           => p_application_id
33382          , p_ae_header_id             => l_ae_header_id 
33383 , p_source_30 => p_source_30
33384          , x_transaction_coa_id       => l_adr_transaction_coa_id
33385          , x_accounting_coa_id        => l_adr_accounting_coa_id
33386          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
33387          , x_flex_value_set_id        => l_adr_flex_value_set_id
33388          , x_value_type_code          => l_adr_value_type_code
33389          , x_value_combination_id     => l_adr_value_combination_id
33390          , x_value_segment_code       => l_adr_value_segment_code
33391          , p_side                     => 'NA'
33392          , p_override_seg_flag        => 'Y'
33393    );
33394 
33395    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
33396 
33397       xla_ae_lines_pkg.set_segment(
33398           p_to_segment_code         => 'GL_ACCOUNT'
33399         , p_segment_value           => l_segment
33400         , p_from_segment_code       => l_adr_value_segment_code
33401         , p_from_combination_id     => l_adr_value_combination_id
33402         , p_value_type_code         => l_adr_value_type_code
33403         , p_transaction_coa_id      => l_adr_transaction_coa_id
33404         , p_accounting_coa_id       => l_adr_accounting_coa_id
33405         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
33406         , p_flex_value_set_id       => l_adr_flex_value_set_id
33407         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
33408         , p_adr_type_code           => 'S'
33409         , p_component_type          => l_component_type
33410         , p_component_code          => l_component_code
33411         , p_component_type_code     => l_component_type_code
33412         , p_component_appl_id       => l_component_appl_id
33413         , p_amb_context_code        => l_amb_context_code
33414         , p_entity_code             => 'AP_PAYMENTS'
33415         , p_event_class_code        => 'REFUNDS'
33416         , p_side                    => 'NA'
33417         );
33418 
33419   END IF;
33420 
33421    --
33422    --
33423    END IF;
33424    --
33425    -- Bug 4922099
33426    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33427           (NVL(l_enc_upg_option, 'N') = 'O')
33428         ) AND
33429         (l_bflow_method_code = 'PRIOR_ENTRY')
33430       )
33431    THEN
33432       IF
33433       --
33434       1 = 2
33435       --
33436       THEN
33437       xla_accounting_err_pkg.build_message
33438                                     (p_appli_s_name            => 'XLA'
33439                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33440                                     ,p_token_1                 => 'LINE_NUMBER'
33441                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33442                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33443                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33444                                                                              l_component_type
33445                                                                             ,l_component_code
33446                                                                             ,l_component_type_code
33447                                                                             ,l_component_appl_id
33451                                                                            )
33448                                                                             ,l_amb_context_code
33449                                                                             ,l_entity_code
33450                                                                             ,l_event_class_code
33452                                     ,p_token_3                 => 'OWNER'
33453                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33454                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33455                                                                           ,p_lookup_code    => l_component_type_code
33456                                                                          )
33457                                     ,p_token_4                 => 'PRODUCT_NAME'
33458                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33459                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33460                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33461                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33462                                     ,p_ae_header_id            =>  NULL
33463                                        );
33464 
33465         IF (C_LEVEL_ERROR>= g_log_level) THEN
33466                  trace
33467                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33468                       ,p_level    => C_LEVEL_ERROR
33469                       ,p_module   => l_log_module);
33470         END IF;
33471       END IF;
33472    END IF;
33473    --
33474    --
33475    ------------------------------------------------------------------------------------------------
33476    -- 4219869 Business Flow
33477    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33478    -- Prior Entry.  Currently, the following code is always generated.
33479    ------------------------------------------------------------------------------------------------
33480    XLA_AE_LINES_PKG.ValidateCurrentLine;
33481 
33482    ------------------------------------------------------------------------------------
33483    -- 4219869 Business Flow
33484    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33485    ------------------------------------------------------------------------------------
33486    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33487 
33488    ----------------------------------------------------------------------------------
33489    -- 4219869 Business Flow
33490    -- Update journal entry status -- Need to generate this within IF <condition>
33491    ----------------------------------------------------------------------------------
33492    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33493          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33494          ,p_balance_type_code => l_balance_type_code
33495          );
33496 
33497    -------------------------------------------------------------------------------------------
33498    -- 4262811 - Generate the Accrual Reversal lines
33499    -------------------------------------------------------------------------------------------
33500    BEGIN
33501       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33502                               (g_array_event(p_event_id).array_value_num('header_index'));
33503       IF l_acc_rev_flag IS NULL THEN
33504          l_acc_rev_flag := 'N';
33505       END IF;
33506    EXCEPTION
33507       WHEN OTHERS THEN
33508          l_acc_rev_flag := 'N';
33509    END;
33510    --
33511    IF (l_acc_rev_flag = 'Y') THEN
33512 
33513        -- 4645092  ------------------------------------------------------------------------------
33514        -- To allow MPA report to determine if it should generate report process
33515        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33516        ------------------------------------------------------------------------------------------
33517 
33518        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33519        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33520    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33521    -- call ADRs
33522    -- Bug 4922099
33523    --
33524    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33525         (NVL(l_actual_upg_option, 'N') = 'O') OR
33526         (NVL(l_enc_upg_option, 'N') = 'O')
33527       )
33528    THEN
33529    NULL;
33530    --
33531    --
33532    
33533    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33534      p_code_combination_id      => TO_NUMBER(C_NUM)
33535    , p_value_type_code          => NULL
33536    , p_transaction_coa_id       => null
33537    , p_accounting_coa_id        => null
33538    , p_adr_code                 => NULL
33539    , p_adr_type_code            => NULL
33540    , p_component_type           => l_component_type
33541    , p_component_code           => l_component_code
33542    , p_component_type_code      => l_component_type_code
33543    , p_component_appl_id        => l_component_appl_id
33544    , p_amb_context_code         => l_amb_context_code
33545    , p_side                     => NULL
33546    );
33547 
33548    
33552   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33549   -- initialise segments
33550   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33551   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33553   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33554   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33555   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33556   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33557   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33558   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33559   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33560   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33561   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33562   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33563   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33564   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33565   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33566   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33567   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33568   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33569   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33570   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33571   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33572   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33573   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33574   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33575   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33576   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33577   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33578   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33579   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33580   --
33581 
33582    --
33583 
33584 
33585    l_segment := AcctDerRule_16(
33586            p_application_id           => p_application_id
33587          , p_ae_header_id             => l_ae_header_id 
33588 , p_source_30 => p_source_30
33589          , x_transaction_coa_id       => l_adr_transaction_coa_id
33590          , x_accounting_coa_id        => l_adr_accounting_coa_id
33591          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
33592          , x_flex_value_set_id        => l_adr_flex_value_set_id
33593          , x_value_type_code          => l_adr_value_type_code
33594          , x_value_combination_id     => l_adr_value_combination_id
33595          , x_value_segment_code       => l_adr_value_segment_code
33596          , p_side                     => 'NA'
33597          , p_override_seg_flag        => 'Y'
33598    );
33599 
33600    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
33601 
33602       xla_ae_lines_pkg.set_segment(
33603           p_to_segment_code         => 'GL_ACCOUNT'
33604         , p_segment_value           => l_segment
33605         , p_from_segment_code       => l_adr_value_segment_code
33606         , p_from_combination_id     => l_adr_value_combination_id
33607         , p_value_type_code         => l_adr_value_type_code
33608         , p_transaction_coa_id      => l_adr_transaction_coa_id
33609         , p_accounting_coa_id       => l_adr_accounting_coa_id
33610         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
33611         , p_flex_value_set_id       => l_adr_flex_value_set_id
33612         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
33613         , p_adr_type_code           => 'S'
33614         , p_component_type          => l_component_type
33615         , p_component_code          => l_component_code
33616         , p_component_type_code     => l_component_type_code
33617         , p_component_appl_id       => l_component_appl_id
33618         , p_amb_context_code        => l_amb_context_code
33619         , p_entity_code             => 'AP_PAYMENTS'
33620         , p_event_class_code        => 'REFUNDS'
33621         , p_side                    => 'NA'
33622         );
33623 
33624   END IF;
33625 
33626    --
33627    --
33628    END IF;
33629 
33630        --
33631        -- Update the line information that should be overwritten
33632        --
33633        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33634                                          p_header_num   => 1);
33635        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33636 
33637        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33638 
33639        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33643       --
33640           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33641        END IF;
33642 
33644       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33645       --
33646       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33647           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33648       ELSE
33649           ---------------------------------------------------------------------------------------------------
33650           -- 4262811a Switch Sign
33651           ---------------------------------------------------------------------------------------------------
33652           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33653           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33654                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33655           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33656                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33657           -- 5132302
33658           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33659                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33660 
33661       END IF;
33662 
33663       -- 4955764
33664       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33665       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33666 
33667 
33668       XLA_AE_LINES_PKG.ValidateCurrentLine;
33669       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33670 
33671       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33672                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33673                ,p_balance_type_code => l_balance_type_code);
33674 
33675    END IF;
33676 
33677    -----------------------------------------------------------------------------------------
33678    -- 4262811 Multiperiod Accounting
33679    -----------------------------------------------------------------------------------------
33680      -- No MPA option is assigned.
33681 
33682 
33683 END IF;
33684 END IF;
33685 --
33686 
33687 --
33688 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33689    trace
33690       (p_msg      => 'END of AcctLineType_89'
33691       ,p_level    => C_LEVEL_PROCEDURE
33692       ,p_module   => l_log_module);
33693 END IF;
33694 --
33695 EXCEPTION
33696   WHEN xla_exceptions_pkg.application_exception THEN
33697       RAISE;
33698   WHEN OTHERS THEN
33699        xla_exceptions_pkg.raise_message
33700            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_89');
33701 END AcctLineType_89;
33702 --
33703 
33704 ---------------------------------------
33705 --
33706 -- PRIVATE FUNCTION
33707 --         AcctLineType_90
33708 --
33709 ---------------------------------------
33710 PROCEDURE AcctLineType_90 (
33711   p_application_id        IN NUMBER
33712  ,p_event_id              IN NUMBER
33713  ,p_calculate_acctd_flag  IN VARCHAR2
33714  ,p_calculate_g_l_flag    IN VARCHAR2
33715  ,p_actual_flag           IN OUT VARCHAR2
33716  ,p_balance_type_code     OUT VARCHAR2
33717  ,p_gain_or_loss_ref      OUT VARCHAR2
33718  
33719 --Payment Currency Code
33720  , p_source_8            IN VARCHAR2
33721 --Automatic Offsets Value
33722  , p_source_10            IN VARCHAR2
33723  , p_source_10_meaning    IN VARCHAR2
33724 --Bank Cash Clearing Account
33725  , p_source_30            IN NUMBER
33726 --When to Account for Payment Option
33727  , p_source_57            IN VARCHAR2
33728 --Accounting Reversal Indicator
33729  , p_source_58            IN VARCHAR2
33730 --Distribution Link Type
33731  , p_source_60            IN VARCHAR2
33732 --Override Accounted Amount Indicator
33733  , p_source_85            IN VARCHAR2
33734  , p_source_85_meaning    IN VARCHAR2
33735 --Third Party Type
33736  , p_source_88            IN VARCHAR2
33737 --Invoice Distribution Tax Line Identifier
33738  , p_source_91            IN NUMBER
33739 --Invoice Distribution Tax Distribution Identifier from Tax
33740  , p_source_92            IN NUMBER
33741 --Invoice Distribution Summary Tax Line Identifier
33742  , p_source_93            IN NUMBER
33743 --Business Flow Accounts Payable Application Identifier
33744  , p_source_96            IN NUMBER
33745 --Business Flow Invoice Distribution Type
33746  , p_source_97            IN VARCHAR2
33747 --Business Flow Invoice Entity Code
33748  , p_source_98            IN VARCHAR2
33749 --Business Flow Invoice Distribution Identifier
33750  , p_source_99            IN NUMBER
33751 --Business Flow Invoice Identifier
33752  , p_source_100            IN NUMBER
33753 --Payment Distribution Type
33754  , p_source_101            IN VARCHAR2
33755  , p_source_101_meaning    IN VARCHAR2
33756 --Payment Distribution Amount
33757  , p_source_102            IN NUMBER
33758 --Payment Distribution Identifier
33759  , p_source_107            IN NUMBER
33760 --Payment Supplier Identifier
33761  , p_source_113            IN NUMBER
33765  , p_source_115            IN NUMBER
33762 --Payment Supplier Site Identifier
33763  , p_source_114            IN NUMBER
33764 --Payment Distribution Reversed Identifier
33766 --Pooled Bank Account Option
33767  , p_source_116            IN VARCHAR2
33768  , p_source_116_meaning    IN VARCHAR2
33769 --Payment Maturity Date
33770  , p_source_117            IN DATE
33771 --Payment Distribution (Payment Rate) Ledger Amount
33772  , p_source_118            IN NUMBER
33773 --Payment Exchange Date
33774  , p_source_120            IN DATE
33775 --Payment Exchange Rate
33776  , p_source_121            IN NUMBER
33777 --Payment Exchange Rate Type
33778  , p_source_122            IN VARCHAR2
33779 --Payment Type
33780  , p_source_125            IN VARCHAR2
33781  , p_source_125_meaning    IN VARCHAR2
33782 )
33783 IS
33784 
33785 l_component_type              VARCHAR2(80);
33786 l_component_code              VARCHAR2(30);
33787 l_component_type_code         VARCHAR2(1);
33788 l_component_appl_id           INTEGER;
33789 l_amb_context_code            VARCHAR2(30);
33790 l_entity_code                 VARCHAR2(30);
33791 l_event_class_code            VARCHAR2(30);
33792 l_ae_header_id                NUMBER;
33793 l_event_type_code             VARCHAR2(30);
33794 l_line_definition_code        VARCHAR2(30);
33795 l_line_definition_owner_code  VARCHAR2(1);
33796 --
33797 -- adr variables
33798 l_segment                     VARCHAR2(30);
33799 l_ccid                        NUMBER;
33800 l_adr_transaction_coa_id      NUMBER;
33801 l_adr_accounting_coa_id       NUMBER;
33802 l_adr_flexfield_segment_code  VARCHAR2(30);
33803 l_adr_flex_value_set_id       NUMBER;
33804 l_adr_value_type_code         VARCHAR2(30);
33805 l_adr_value_combination_id    NUMBER;
33806 l_adr_value_segment_code      VARCHAR2(30);
33807 
33808 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33809 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33810 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33811 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33812 
33813 -- 4262811 Variables ------------------------------------------------------------------------------------------
33814 l_entered_amt_idx             NUMBER;
33815 l_accted_amt_idx              NUMBER;
33816 l_acc_rev_flag                VARCHAR2(1);
33817 l_accrual_line_num            NUMBER;
33818 l_tmp_amt                     NUMBER;
33819 l_acc_rev_natural_side_code   VARCHAR2(1);
33820 
33821 l_num_entries                 NUMBER;
33822 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33823 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33824 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33825 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33826 l_recog_line_1                NUMBER;
33827 l_recog_line_2                NUMBER;
33828 
33829 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33830 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33831 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33832 
33833 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33834 
33835 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33836 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33837 
33838 ---------------------------------------------------------------------------------------------------------------
33839 
33840 
33841 --
33842 -- bulk performance
33843 --
33844 l_balance_type_code           VARCHAR2(1);
33845 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33846 l_log_module                  VARCHAR2(240);
33847 
33848 --
33849 -- Upgrade strategy
33850 --
33851 l_actual_upg_option           VARCHAR2(1);
33852 l_enc_upg_option           VARCHAR2(1);
33853 
33854 --
33855 BEGIN
33856 --
33857 IF g_log_enabled THEN
33858       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
33859 END IF;
33860 --
33861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33862 
33863       trace
33864          (p_msg      => 'BEGIN of AcctLineType_90'
33865          ,p_level    => C_LEVEL_PROCEDURE
33866          ,p_module   => l_log_module);
33867 
33868 END IF;
33869 --
33870 l_component_type             := 'AMB_JLT';
33871 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_BS';
33872 l_component_type_code        := 'S';
33873 l_component_appl_id          :=  200;
33874 l_amb_context_code           := 'DEFAULT';
33875 l_entity_code                := 'AP_PAYMENTS';
33876 l_event_class_code           := 'REFUNDS';
33877 l_event_type_code            := 'REFUNDS_ALL';
33878 l_line_definition_owner_code := 'S';
33879 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
33880 --
33881 l_balance_type_code          := 'A';
33882 l_segment                     := NULL;
33883 l_ccid                        := NULL;
33884 l_adr_transaction_coa_id      := NULL;
33885 l_adr_accounting_coa_id       := NULL;
33886 l_adr_flexfield_segment_code  := NULL;
33887 l_adr_flex_value_set_id       := NULL;
33888 l_adr_value_type_code         := NULL;
33889 l_adr_value_combination_id    := NULL;
33890 l_adr_value_segment_code      := NULL;
33891 
33892 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33896 
33893 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
33894 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33895 l_budgetary_control_flag     := 'N';
33897 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33898 l_bflow_applied_to_amt       := NULL; -- 5132302
33899 l_entered_amt_idx            := NULL;          -- 4262811
33900 l_accted_amt_idx             := NULL;          -- 4262811
33901 l_acc_rev_flag               := NULL;          -- 4262811
33902 l_accrual_line_num           := NULL;          -- 4262811
33903 l_tmp_amt                    := NULL;          -- 4262811
33904 --
33905  
33906 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33907     l_balance_type_code <> 'B' THEN
33908 IF NVL(p_source_57,'
33909 ') =  'ALWAYS_ALWAYS' AND 
33910 (NVL(p_source_116,'
33911 ') =  'Y' AND 
33912 NVL(p_source_10,'
33913 ') =  'BALANCING_SEGMENT') AND 
33914 p_source_117 IS NULL AND 
33915 NVL(p_source_101,'
33916 ') =  'CASH' AND 
33917 NVL(p_source_125,'
33918 ') =  'R'
33919  THEN 
33920 
33921    --
33922    XLA_AE_LINES_PKG.SetNewLine;
33923 
33924    p_balance_type_code          := l_balance_type_code;
33925    -- set the flag so later we will know whether the gain loss line needs to be created
33926    
33927    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33928      p_actual_flag :='A';
33929    END IF;
33930 
33931    --
33932    -- bulk performance
33933    --
33934    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33935                                       p_header_num   => 0); -- 4262811
33936    --
33937    -- set accounting line options
33938    --
33939    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33940            p_natural_side_code          => 'C'
33941          , p_gain_or_loss_flag          => 'N'
33942          , p_gl_transfer_mode_code      => 'S'
33943          , p_acct_entry_type_code       => 'A'
33944          , p_switch_side_flag           => 'Y'
33945          , p_merge_duplicate_code       => 'A'
33946          );
33947    --
33948    l_acc_rev_natural_side_code := 'D';  -- 4262811
33949    -- 
33950    --
33951    -- set accounting line type info
33952    --
33953    xla_ae_lines_pkg.SetAcctLineType
33954       (p_component_type             => l_component_type
33955       ,p_event_type_code            => l_event_type_code
33956       ,p_line_definition_owner_code => l_line_definition_owner_code
33957       ,p_line_definition_code       => l_line_definition_code
33958       ,p_accounting_line_code       => l_component_code
33959       ,p_accounting_line_type_code  => l_component_type_code
33960       ,p_accounting_line_appl_id    => l_component_appl_id
33961       ,p_amb_context_code           => l_amb_context_code
33962       ,p_entity_code                => l_entity_code
33963       ,p_event_class_code           => l_event_class_code);
33964    --
33965    -- set accounting class
33966    --
33967    xla_ae_lines_pkg.SetAcctClass(
33968            p_accounting_class_code  => 'CASH_CLEARING'
33969          , p_ae_header_id           => l_ae_header_id
33970          );
33971 
33972    --
33973    -- set rounding class
33974    --
33975    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33976                       'CASH_CLEARING';
33977 
33978    --
33979    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33980    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33981    --
33982    -- bulk performance
33983    --
33984    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33985 
33986    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33987       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33988 
33989    -- 4955764
33990    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33991       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33992 
33993    -- 4458381 Public Sector Enh
33994    
33995    --
33996    -- set accounting attributes for the line type
33997    --
33998    l_entered_amt_idx := 9;
33999    l_accted_amt_idx  := 14;
34000    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
34001    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34002    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
34003    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
34004    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
34005    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34006    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
34007    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
34008    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
34009    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
34010    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
34011    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34012    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
34013    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
34014    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
34015    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
34019    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
34016    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
34017    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
34018    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
34020    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
34021    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
34022    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
34023    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
34024    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
34025    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
34026    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
34027    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
34028    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
34029    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
34030    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
34031    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
34032    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
34033    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
34034    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
34035    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
34036    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
34037    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
34038    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
34039    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
34040    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
34041    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
34042    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
34043    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
34044    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
34045    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
34046    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
34047 
34048    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34049    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34050 
34051    ---------------------------------------------------------------------------------------------------------------
34052    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34053    ---------------------------------------------------------------------------------------------------------------
34054    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34055 
34056    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34057    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34058 
34059    IF xla_accounting_cache_pkg.GetValueChar
34060          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34061          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34062    AND l_bflow_method_code = 'PRIOR_ENTRY'
34063 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34064    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34065          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34066        )
34067    THEN
34068          xla_ae_lines_pkg.BflowUpgEntry
34069            (p_business_method_code    => l_bflow_method_code
34070            ,p_business_class_code     => l_bflow_class_code
34071            ,p_balance_type            => l_balance_type_code);
34072    ELSE
34073       NULL;
34074 XLA_AE_LINES_PKG.business_flow_validation(
34075                                 p_business_method_code     => l_bflow_method_code
34076                                ,p_business_class_code      => l_bflow_class_code
34077                                ,p_inherit_description_flag => l_inherit_desc_flag);
34078    END IF;
34079 
34080    --
34081    -- call analytical criteria
34082    --
34083    
34084    --
34085    -- call description
34086    --
34087    -- No description or it is inherited.
34088    --
34089    -- call ADRs
34090    -- Bug 4922099
34091    --
34092    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34093         (NVL(l_actual_upg_option, 'N') = 'O') OR
34094         (NVL(l_enc_upg_option, 'N') = 'O')
34095       )
34096    THEN
34097    NULL;
34098    --
34099    --
34100    
34101   l_ccid := AcctDerRule_38(
34102            p_application_id           => p_application_id
34103          , p_ae_header_id             => l_ae_header_id 
34104 , p_source_30 => p_source_30
34105          , x_transaction_coa_id       => l_adr_transaction_coa_id
34106          , x_accounting_coa_id        => l_adr_accounting_coa_id
34107          , x_value_type_code          => l_adr_value_type_code
34108          , p_side                     => 'NA'
34109    );
34110 
34111    xla_ae_lines_pkg.set_ccid(
34112     p_code_combination_id          => l_ccid
34113   , p_value_type_code              => l_adr_value_type_code
34114   , p_transaction_coa_id           => l_adr_transaction_coa_id
34115   , p_accounting_coa_id            => l_adr_accounting_coa_id
34116   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
34117   , p_adr_type_code                => 'S'
34118   , p_component_type               => l_component_type
34119   , p_component_code               => l_component_code
34123   , p_side                         => 'NA'
34120   , p_component_type_code          => l_component_type_code
34121   , p_component_appl_id            => l_component_appl_id
34122   , p_amb_context_code             => l_amb_context_code
34124   );
34125 
34126 
34127    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34128      p_to_segment_code         => 'GL_BALANCING'
34129    , p_segment_value           => C_CHAR
34130    , p_from_segment_code       => NULL
34131    , p_from_combination_id     => NULL
34132    , p_value_type_code         => NULL
34133    , p_transaction_coa_id      => null
34134    , p_accounting_coa_id       => null
34135    , p_flexfield_segment_code  => NULL
34136    , p_flex_value_set_id       => NULL
34137    , p_adr_code                => NULL
34138    , p_adr_type_code           => NULL
34139    , p_component_type          => l_component_type
34140    , p_component_code          => l_component_code
34141    , p_component_type_code     => l_component_type_code
34142    , p_component_appl_id       => l_component_appl_id
34143    , p_amb_context_code        => l_amb_context_code
34144    , p_entity_code             => 'AP_PAYMENTS'
34145    , p_event_class_code        => 'REFUNDS'
34146    , p_side                    => 'NA'
34147    );
34148    --
34149 
34150 
34151    --
34152    --
34153    END IF;
34154    --
34155    -- Bug 4922099
34156    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34157           (NVL(l_enc_upg_option, 'N') = 'O')
34158         ) AND
34159         (l_bflow_method_code = 'PRIOR_ENTRY')
34160       )
34161    THEN
34162       IF
34163       --
34164       1 = 2
34165       --
34166       THEN
34167       xla_accounting_err_pkg.build_message
34168                                     (p_appli_s_name            => 'XLA'
34169                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34170                                     ,p_token_1                 => 'LINE_NUMBER'
34171                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34172                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34173                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34174                                                                              l_component_type
34175                                                                             ,l_component_code
34176                                                                             ,l_component_type_code
34177                                                                             ,l_component_appl_id
34178                                                                             ,l_amb_context_code
34179                                                                             ,l_entity_code
34180                                                                             ,l_event_class_code
34181                                                                            )
34182                                     ,p_token_3                 => 'OWNER'
34183                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34184                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34185                                                                           ,p_lookup_code    => l_component_type_code
34186                                                                          )
34187                                     ,p_token_4                 => 'PRODUCT_NAME'
34188                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34189                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34190                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34191                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34192                                     ,p_ae_header_id            =>  NULL
34193                                        );
34194 
34195         IF (C_LEVEL_ERROR>= g_log_level) THEN
34196                  trace
34197                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34198                       ,p_level    => C_LEVEL_ERROR
34199                       ,p_module   => l_log_module);
34200         END IF;
34201       END IF;
34202    END IF;
34203    --
34204    --
34205    ------------------------------------------------------------------------------------------------
34206    -- 4219869 Business Flow
34207    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34208    -- Prior Entry.  Currently, the following code is always generated.
34209    ------------------------------------------------------------------------------------------------
34210    XLA_AE_LINES_PKG.ValidateCurrentLine;
34211 
34212    ------------------------------------------------------------------------------------
34213    -- 4219869 Business Flow
34214    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34215    ------------------------------------------------------------------------------------
34216    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34217 
34218    ----------------------------------------------------------------------------------
34219    -- 4219869 Business Flow
34220    -- Update journal entry status -- Need to generate this within IF <condition>
34221    ----------------------------------------------------------------------------------
34225          );
34222    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34223          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34224          ,p_balance_type_code => l_balance_type_code
34226 
34227    -------------------------------------------------------------------------------------------
34228    -- 4262811 - Generate the Accrual Reversal lines
34229    -------------------------------------------------------------------------------------------
34230    BEGIN
34231       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34232                               (g_array_event(p_event_id).array_value_num('header_index'));
34233       IF l_acc_rev_flag IS NULL THEN
34234          l_acc_rev_flag := 'N';
34235       END IF;
34236    EXCEPTION
34237       WHEN OTHERS THEN
34238          l_acc_rev_flag := 'N';
34239    END;
34240    --
34241    IF (l_acc_rev_flag = 'Y') THEN
34242 
34243        -- 4645092  ------------------------------------------------------------------------------
34244        -- To allow MPA report to determine if it should generate report process
34245        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34246        ------------------------------------------------------------------------------------------
34247 
34248        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34249        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34250    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34251    -- call ADRs
34252    -- Bug 4922099
34253    --
34254    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34255         (NVL(l_actual_upg_option, 'N') = 'O') OR
34256         (NVL(l_enc_upg_option, 'N') = 'O')
34257       )
34258    THEN
34259    NULL;
34260    --
34261    --
34262    
34263   l_ccid := AcctDerRule_38(
34264            p_application_id           => p_application_id
34265          , p_ae_header_id             => l_ae_header_id 
34266 , p_source_30 => p_source_30
34267          , x_transaction_coa_id       => l_adr_transaction_coa_id
34268          , x_accounting_coa_id        => l_adr_accounting_coa_id
34269          , x_value_type_code          => l_adr_value_type_code
34270          , p_side                     => 'NA'
34271    );
34272 
34273    xla_ae_lines_pkg.set_ccid(
34274     p_code_combination_id          => l_ccid
34275   , p_value_type_code              => l_adr_value_type_code
34276   , p_transaction_coa_id           => l_adr_transaction_coa_id
34277   , p_accounting_coa_id            => l_adr_accounting_coa_id
34278   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
34279   , p_adr_type_code                => 'S'
34280   , p_component_type               => l_component_type
34281   , p_component_code               => l_component_code
34282   , p_component_type_code          => l_component_type_code
34283   , p_component_appl_id            => l_component_appl_id
34284   , p_amb_context_code             => l_amb_context_code
34285   , p_side                         => 'NA'
34286   );
34287 
34288 
34289    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34290      p_to_segment_code         => 'GL_BALANCING'
34291    , p_segment_value           => C_CHAR
34292    , p_from_segment_code       => NULL
34293    , p_from_combination_id     => NULL
34294    , p_value_type_code         => NULL
34295    , p_transaction_coa_id      => null
34296    , p_accounting_coa_id       => null
34297    , p_flexfield_segment_code  => NULL
34298    , p_flex_value_set_id       => NULL
34299    , p_adr_code                => NULL
34300    , p_adr_type_code           => NULL
34301    , p_component_type          => l_component_type
34302    , p_component_code          => l_component_code
34303    , p_component_type_code     => l_component_type_code
34304    , p_component_appl_id       => l_component_appl_id
34305    , p_amb_context_code        => l_amb_context_code
34306    , p_entity_code             => 'AP_PAYMENTS'
34307    , p_event_class_code        => 'REFUNDS'
34308    , p_side                    => 'NA'
34309    );
34310    --
34311 
34312 
34313    --
34314    --
34315    END IF;
34316 
34317        --
34318        -- Update the line information that should be overwritten
34319        --
34320        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34321                                          p_header_num   => 1);
34322        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34323 
34324        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34325 
34326        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34327           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34328        END IF;
34329 
34330       --
34331       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34332       --
34333       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34334           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34335       ELSE
34336           ---------------------------------------------------------------------------------------------------
34337           -- 4262811a Switch Sign
34338           ---------------------------------------------------------------------------------------------------
34342           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34339           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34340           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34341                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34343                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34344           -- 5132302
34345           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34346                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34347 
34348       END IF;
34349 
34350       -- 4955764
34351       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34352       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34353 
34354 
34355       XLA_AE_LINES_PKG.ValidateCurrentLine;
34356       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34357 
34358       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34359                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34360                ,p_balance_type_code => l_balance_type_code);
34361 
34362    END IF;
34363 
34364    -----------------------------------------------------------------------------------------
34365    -- 4262811 Multiperiod Accounting
34366    -----------------------------------------------------------------------------------------
34367      -- No MPA option is assigned.
34368 
34369 
34370 END IF;
34371 END IF;
34372 --
34373 
34374 --
34375 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34376    trace
34377       (p_msg      => 'END of AcctLineType_90'
34378       ,p_level    => C_LEVEL_PROCEDURE
34379       ,p_module   => l_log_module);
34380 END IF;
34381 --
34382 EXCEPTION
34383   WHEN xla_exceptions_pkg.application_exception THEN
34384       RAISE;
34385   WHEN OTHERS THEN
34386        xla_exceptions_pkg.raise_message
34387            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_90');
34388 END AcctLineType_90;
34389 --
34390 
34391 ---------------------------------------
34392 --
34393 -- PRIVATE FUNCTION
34394 --         AcctLineType_91
34395 --
34396 ---------------------------------------
34397 PROCEDURE AcctLineType_91 (
34398   p_application_id        IN NUMBER
34399  ,p_event_id              IN NUMBER
34400  ,p_calculate_acctd_flag  IN VARCHAR2
34401  ,p_calculate_g_l_flag    IN VARCHAR2
34402  ,p_actual_flag           IN OUT VARCHAR2
34403  ,p_balance_type_code     OUT VARCHAR2
34404  ,p_gain_or_loss_ref      OUT VARCHAR2
34405  
34406 --Payment Currency Code
34407  , p_source_8            IN VARCHAR2
34408 --Automatic Offsets Value
34409  , p_source_10            IN VARCHAR2
34410  , p_source_10_meaning    IN VARCHAR2
34411 --Bank Cash Clearing Account
34412  , p_source_30            IN NUMBER
34413 --When to Account for Payment Option
34414  , p_source_57            IN VARCHAR2
34415 --Accounting Reversal Indicator
34416  , p_source_58            IN VARCHAR2
34417 --Distribution Link Type
34418  , p_source_60            IN VARCHAR2
34419 --Override Accounted Amount Indicator
34420  , p_source_85            IN VARCHAR2
34421  , p_source_85_meaning    IN VARCHAR2
34422 --Third Party Type
34423  , p_source_88            IN VARCHAR2
34424 --Invoice Distribution Tax Line Identifier
34425  , p_source_91            IN NUMBER
34426 --Invoice Distribution Tax Distribution Identifier from Tax
34427  , p_source_92            IN NUMBER
34428 --Invoice Distribution Summary Tax Line Identifier
34429  , p_source_93            IN NUMBER
34430 --Business Flow Accounts Payable Application Identifier
34431  , p_source_96            IN NUMBER
34432 --Business Flow Invoice Distribution Type
34433  , p_source_97            IN VARCHAR2
34434 --Business Flow Invoice Entity Code
34435  , p_source_98            IN VARCHAR2
34436 --Business Flow Invoice Distribution Identifier
34437  , p_source_99            IN NUMBER
34438 --Business Flow Invoice Identifier
34439  , p_source_100            IN NUMBER
34440 --Payment Distribution Type
34441  , p_source_101            IN VARCHAR2
34442  , p_source_101_meaning    IN VARCHAR2
34443 --Payment Distribution Amount
34444  , p_source_102            IN NUMBER
34445 --Payment Distribution Identifier
34446  , p_source_107            IN NUMBER
34447 --Payment Supplier Identifier
34448  , p_source_113            IN NUMBER
34449 --Payment Supplier Site Identifier
34450  , p_source_114            IN NUMBER
34451 --Payment Distribution Reversed Identifier
34452  , p_source_115            IN NUMBER
34453 --Pooled Bank Account Option
34454  , p_source_116            IN VARCHAR2
34455  , p_source_116_meaning    IN VARCHAR2
34456 --Payment Maturity Date
34457  , p_source_117            IN DATE
34458 --Payment Distribution (Invoice Rate) Ledger Amount
34459  , p_source_119            IN NUMBER
34460 --Payment Exchange Date
34461  , p_source_120            IN DATE
34462 --Payment Exchange Rate
34463  , p_source_121            IN NUMBER
34464 --Payment Exchange Rate Type
34465  , p_source_122            IN VARCHAR2
34466 --Payment Type
34467  , p_source_125            IN VARCHAR2
34471 
34468  , p_source_125_meaning    IN VARCHAR2
34469 )
34470 IS
34472 l_component_type              VARCHAR2(80);
34473 l_component_code              VARCHAR2(30);
34474 l_component_type_code         VARCHAR2(1);
34475 l_component_appl_id           INTEGER;
34476 l_amb_context_code            VARCHAR2(30);
34477 l_entity_code                 VARCHAR2(30);
34478 l_event_class_code            VARCHAR2(30);
34479 l_ae_header_id                NUMBER;
34480 l_event_type_code             VARCHAR2(30);
34481 l_line_definition_code        VARCHAR2(30);
34482 l_line_definition_owner_code  VARCHAR2(1);
34483 --
34484 -- adr variables
34485 l_segment                     VARCHAR2(30);
34486 l_ccid                        NUMBER;
34487 l_adr_transaction_coa_id      NUMBER;
34488 l_adr_accounting_coa_id       NUMBER;
34489 l_adr_flexfield_segment_code  VARCHAR2(30);
34490 l_adr_flex_value_set_id       NUMBER;
34491 l_adr_value_type_code         VARCHAR2(30);
34492 l_adr_value_combination_id    NUMBER;
34493 l_adr_value_segment_code      VARCHAR2(30);
34494 
34495 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34496 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34497 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34498 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34499 
34500 -- 4262811 Variables ------------------------------------------------------------------------------------------
34501 l_entered_amt_idx             NUMBER;
34502 l_accted_amt_idx              NUMBER;
34503 l_acc_rev_flag                VARCHAR2(1);
34504 l_accrual_line_num            NUMBER;
34505 l_tmp_amt                     NUMBER;
34506 l_acc_rev_natural_side_code   VARCHAR2(1);
34507 
34508 l_num_entries                 NUMBER;
34509 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34510 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34511 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34512 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34513 l_recog_line_1                NUMBER;
34514 l_recog_line_2                NUMBER;
34515 
34516 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34517 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34518 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34519 
34520 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34521 
34522 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34523 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34524 
34525 ---------------------------------------------------------------------------------------------------------------
34526 
34527 
34528 --
34529 -- bulk performance
34530 --
34531 l_balance_type_code           VARCHAR2(1);
34532 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34533 l_log_module                  VARCHAR2(240);
34534 
34535 --
34536 -- Upgrade strategy
34537 --
34538 l_actual_upg_option           VARCHAR2(1);
34539 l_enc_upg_option           VARCHAR2(1);
34540 
34541 --
34542 BEGIN
34543 --
34544 IF g_log_enabled THEN
34545       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
34546 END IF;
34547 --
34548 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34549 
34550       trace
34551          (p_msg      => 'BEGIN of AcctLineType_91'
34552          ,p_level    => C_LEVEL_PROCEDURE
34553          ,p_module   => l_log_module);
34554 
34555 END IF;
34556 --
34557 l_component_type             := 'AMB_JLT';
34558 l_component_code             := 'AP_CASH_CLEAR_REF_AS_INVXRATE';
34559 l_component_type_code        := 'S';
34560 l_component_appl_id          :=  200;
34561 l_amb_context_code           := 'DEFAULT';
34562 l_entity_code                := 'AP_PAYMENTS';
34563 l_event_class_code           := 'REFUNDS';
34564 l_event_type_code            := 'REFUNDS_ALL';
34565 l_line_definition_owner_code := 'S';
34566 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
34567 --
34568 l_balance_type_code          := 'A';
34569 l_segment                     := NULL;
34570 l_ccid                        := NULL;
34571 l_adr_transaction_coa_id      := NULL;
34572 l_adr_accounting_coa_id       := NULL;
34573 l_adr_flexfield_segment_code  := NULL;
34574 l_adr_flex_value_set_id       := NULL;
34575 l_adr_value_type_code         := NULL;
34576 l_adr_value_combination_id    := NULL;
34577 l_adr_value_segment_code      := NULL;
34578 
34579 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
34580 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
34581 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34582 l_budgetary_control_flag     := 'N';
34583 
34584 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34585 l_bflow_applied_to_amt       := NULL; -- 5132302
34586 l_entered_amt_idx            := NULL;          -- 4262811
34587 l_accted_amt_idx             := NULL;          -- 4262811
34588 l_acc_rev_flag               := NULL;          -- 4262811
34589 l_accrual_line_num           := NULL;          -- 4262811
34590 l_tmp_amt                    := NULL;          -- 4262811
34591 --
34592  
34596 ') =  'ALWAYS_CLEAR' AND 
34593 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34594     l_balance_type_code <> 'B' THEN
34595 IF NVL(p_source_57,'
34597 (NVL(p_source_116,'
34598 ') =  'Y' AND 
34599 NVL(p_source_10,'
34600 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
34601 p_source_117 IS NULL AND 
34602 NVL(p_source_101,'
34603 ') =  'CASH' AND 
34604 NVL(p_source_125,'
34605 ') =  'R'
34606  THEN 
34607 
34608    --
34609    XLA_AE_LINES_PKG.SetNewLine;
34610 
34611    p_balance_type_code          := l_balance_type_code;
34612    -- set the flag so later we will know whether the gain loss line needs to be created
34613    
34614    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34615      p_actual_flag :='A';
34616    END IF;
34617 
34618    --
34619    -- bulk performance
34620    --
34621    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34622                                       p_header_num   => 0); -- 4262811
34623    --
34624    -- set accounting line options
34625    --
34626    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34627            p_natural_side_code          => 'C'
34628          , p_gain_or_loss_flag          => 'N'
34629          , p_gl_transfer_mode_code      => 'S'
34630          , p_acct_entry_type_code       => 'A'
34631          , p_switch_side_flag           => 'Y'
34632          , p_merge_duplicate_code       => 'A'
34633          );
34634    --
34635    l_acc_rev_natural_side_code := 'D';  -- 4262811
34636    -- 
34637    --
34638    -- set accounting line type info
34639    --
34640    xla_ae_lines_pkg.SetAcctLineType
34641       (p_component_type             => l_component_type
34642       ,p_event_type_code            => l_event_type_code
34643       ,p_line_definition_owner_code => l_line_definition_owner_code
34644       ,p_line_definition_code       => l_line_definition_code
34645       ,p_accounting_line_code       => l_component_code
34646       ,p_accounting_line_type_code  => l_component_type_code
34647       ,p_accounting_line_appl_id    => l_component_appl_id
34648       ,p_amb_context_code           => l_amb_context_code
34649       ,p_entity_code                => l_entity_code
34650       ,p_event_class_code           => l_event_class_code);
34651    --
34652    -- set accounting class
34653    --
34654    xla_ae_lines_pkg.SetAcctClass(
34655            p_accounting_class_code  => 'CASH_CLEARING'
34656          , p_ae_header_id           => l_ae_header_id
34657          );
34658 
34659    --
34660    -- set rounding class
34661    --
34662    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34663                       'CASH_CLEARING';
34664 
34665    --
34666    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34667    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34668    --
34669    -- bulk performance
34670    --
34671    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34672 
34673    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34674       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34675 
34676    -- 4955764
34677    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34678       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34679 
34680    -- 4458381 Public Sector Enh
34681    
34682    --
34683    -- set accounting attributes for the line type
34684    --
34685    l_entered_amt_idx := 9;
34686    l_accted_amt_idx  := 14;
34687    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
34688    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34689    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
34690    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
34691    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
34692    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34693    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
34694    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
34695    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
34696    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
34697    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
34698    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34699    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
34700    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
34701    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
34702    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
34703    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
34704    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
34705    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
34706    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
34707    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
34708    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
34709    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
34710    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
34711    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
34712    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
34716    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
34713    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
34714    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
34715    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
34717    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
34718    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
34719    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
34720    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
34721    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
34722    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
34723    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
34724    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
34725    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
34726    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
34727    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
34728    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
34729    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
34730    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
34731    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
34732    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
34733    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
34734 
34735    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34736    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34737 
34738    ---------------------------------------------------------------------------------------------------------------
34739    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34740    ---------------------------------------------------------------------------------------------------------------
34741    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34742 
34743    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34744    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34745 
34746    IF xla_accounting_cache_pkg.GetValueChar
34747          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34748          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34749    AND l_bflow_method_code = 'PRIOR_ENTRY'
34750 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34751    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34752          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34753        )
34754    THEN
34755          xla_ae_lines_pkg.BflowUpgEntry
34756            (p_business_method_code    => l_bflow_method_code
34757            ,p_business_class_code     => l_bflow_class_code
34758            ,p_balance_type            => l_balance_type_code);
34759    ELSE
34760       NULL;
34761 XLA_AE_LINES_PKG.business_flow_validation(
34762                                 p_business_method_code     => l_bflow_method_code
34763                                ,p_business_class_code      => l_bflow_class_code
34764                                ,p_inherit_description_flag => l_inherit_desc_flag);
34765    END IF;
34766 
34767    --
34768    -- call analytical criteria
34769    --
34770    
34771    --
34772    -- call description
34773    --
34774    -- No description or it is inherited.
34775    --
34776    -- call ADRs
34777    -- Bug 4922099
34778    --
34779    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34780         (NVL(l_actual_upg_option, 'N') = 'O') OR
34781         (NVL(l_enc_upg_option, 'N') = 'O')
34782       )
34783    THEN
34784    NULL;
34785    --
34786    --
34787    
34788    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
34789      p_code_combination_id      => TO_NUMBER(C_NUM)
34790    , p_value_type_code          => NULL
34791    , p_transaction_coa_id       => null
34792    , p_accounting_coa_id        => null
34793    , p_adr_code                 => NULL
34794    , p_adr_type_code            => NULL
34795    , p_component_type           => l_component_type
34796    , p_component_code           => l_component_code
34797    , p_component_type_code      => l_component_type_code
34798    , p_component_appl_id        => l_component_appl_id
34799    , p_amb_context_code         => l_amb_context_code
34800    , p_side                     => NULL
34801    );
34802 
34803    
34804   -- initialise segments
34805   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34806   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34807   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34808   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34809   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34810   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34811   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34812   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34813   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34814   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34815   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34819   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34816   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34817   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34818   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34820   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34821   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34822   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34823   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34824   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34825   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34826   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34827   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34828   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34829   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34830   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34831   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34832   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34833   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34834   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34835   --
34836 
34837    --
34838 
34839 
34840    l_segment := AcctDerRule_16(
34841            p_application_id           => p_application_id
34842          , p_ae_header_id             => l_ae_header_id 
34843 , p_source_30 => p_source_30
34844          , x_transaction_coa_id       => l_adr_transaction_coa_id
34845          , x_accounting_coa_id        => l_adr_accounting_coa_id
34846          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34847          , x_flex_value_set_id        => l_adr_flex_value_set_id
34848          , x_value_type_code          => l_adr_value_type_code
34849          , x_value_combination_id     => l_adr_value_combination_id
34850          , x_value_segment_code       => l_adr_value_segment_code
34851          , p_side                     => 'NA'
34852          , p_override_seg_flag        => 'Y'
34853    );
34854 
34855    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34856 
34857       xla_ae_lines_pkg.set_segment(
34858           p_to_segment_code         => 'GL_ACCOUNT'
34859         , p_segment_value           => l_segment
34860         , p_from_segment_code       => l_adr_value_segment_code
34861         , p_from_combination_id     => l_adr_value_combination_id
34862         , p_value_type_code         => l_adr_value_type_code
34863         , p_transaction_coa_id      => l_adr_transaction_coa_id
34864         , p_accounting_coa_id       => l_adr_accounting_coa_id
34865         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34866         , p_flex_value_set_id       => l_adr_flex_value_set_id
34867         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
34868         , p_adr_type_code           => 'S'
34869         , p_component_type          => l_component_type
34870         , p_component_code          => l_component_code
34871         , p_component_type_code     => l_component_type_code
34872         , p_component_appl_id       => l_component_appl_id
34873         , p_amb_context_code        => l_amb_context_code
34874         , p_entity_code             => 'AP_PAYMENTS'
34875         , p_event_class_code        => 'REFUNDS'
34876         , p_side                    => 'NA'
34877         );
34878 
34879   END IF;
34880 
34881    --
34882    --
34883    END IF;
34884    --
34885    -- Bug 4922099
34886    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34887           (NVL(l_enc_upg_option, 'N') = 'O')
34888         ) AND
34889         (l_bflow_method_code = 'PRIOR_ENTRY')
34890       )
34891    THEN
34892       IF
34893       --
34894       1 = 2
34895       --
34896       THEN
34897       xla_accounting_err_pkg.build_message
34898                                     (p_appli_s_name            => 'XLA'
34899                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34900                                     ,p_token_1                 => 'LINE_NUMBER'
34901                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34902                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34903                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34904                                                                              l_component_type
34905                                                                             ,l_component_code
34906                                                                             ,l_component_type_code
34907                                                                             ,l_component_appl_id
34908                                                                             ,l_amb_context_code
34909                                                                             ,l_entity_code
34910                                                                             ,l_event_class_code
34914                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34911                                                                            )
34912                                     ,p_token_3                 => 'OWNER'
34913                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34915                                                                           ,p_lookup_code    => l_component_type_code
34916                                                                          )
34917                                     ,p_token_4                 => 'PRODUCT_NAME'
34918                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34919                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34920                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34921                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34922                                     ,p_ae_header_id            =>  NULL
34923                                        );
34924 
34925         IF (C_LEVEL_ERROR>= g_log_level) THEN
34926                  trace
34927                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34928                       ,p_level    => C_LEVEL_ERROR
34929                       ,p_module   => l_log_module);
34930         END IF;
34931       END IF;
34932    END IF;
34933    --
34934    --
34935    ------------------------------------------------------------------------------------------------
34936    -- 4219869 Business Flow
34937    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34938    -- Prior Entry.  Currently, the following code is always generated.
34939    ------------------------------------------------------------------------------------------------
34940    XLA_AE_LINES_PKG.ValidateCurrentLine;
34941 
34942    ------------------------------------------------------------------------------------
34943    -- 4219869 Business Flow
34944    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34945    ------------------------------------------------------------------------------------
34946    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34947 
34948    ----------------------------------------------------------------------------------
34949    -- 4219869 Business Flow
34950    -- Update journal entry status -- Need to generate this within IF <condition>
34951    ----------------------------------------------------------------------------------
34952    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34953          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34954          ,p_balance_type_code => l_balance_type_code
34955          );
34956 
34957    -------------------------------------------------------------------------------------------
34958    -- 4262811 - Generate the Accrual Reversal lines
34959    -------------------------------------------------------------------------------------------
34960    BEGIN
34961       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34962                               (g_array_event(p_event_id).array_value_num('header_index'));
34963       IF l_acc_rev_flag IS NULL THEN
34964          l_acc_rev_flag := 'N';
34965       END IF;
34966    EXCEPTION
34967       WHEN OTHERS THEN
34968          l_acc_rev_flag := 'N';
34969    END;
34970    --
34971    IF (l_acc_rev_flag = 'Y') THEN
34972 
34973        -- 4645092  ------------------------------------------------------------------------------
34974        -- To allow MPA report to determine if it should generate report process
34975        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34976        ------------------------------------------------------------------------------------------
34977 
34978        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34979        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34980    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34981    -- call ADRs
34982    -- Bug 4922099
34983    --
34984    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34985         (NVL(l_actual_upg_option, 'N') = 'O') OR
34986         (NVL(l_enc_upg_option, 'N') = 'O')
34987       )
34988    THEN
34989    NULL;
34990    --
34991    --
34992    
34993    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
34994      p_code_combination_id      => TO_NUMBER(C_NUM)
34995    , p_value_type_code          => NULL
34996    , p_transaction_coa_id       => null
34997    , p_accounting_coa_id        => null
34998    , p_adr_code                 => NULL
34999    , p_adr_type_code            => NULL
35000    , p_component_type           => l_component_type
35001    , p_component_code           => l_component_code
35002    , p_component_type_code      => l_component_type_code
35003    , p_component_appl_id        => l_component_appl_id
35004    , p_amb_context_code         => l_amb_context_code
35005    , p_side                     => NULL
35006    );
35007 
35008    
35009   -- initialise segments
35010   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35011   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35012   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35013   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35017   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35014   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35015   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35016   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35018   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
35019   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35020   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35021   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35022   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35023   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35024   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35025   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35026   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35027   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35028   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35029   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35030   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35031   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35032   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35033   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35034   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35035   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35036   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35037   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35038   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35039   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
35040   --
35041 
35042    --
35043 
35044 
35045    l_segment := AcctDerRule_16(
35046            p_application_id           => p_application_id
35047          , p_ae_header_id             => l_ae_header_id 
35048 , p_source_30 => p_source_30
35049          , x_transaction_coa_id       => l_adr_transaction_coa_id
35050          , x_accounting_coa_id        => l_adr_accounting_coa_id
35051          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
35052          , x_flex_value_set_id        => l_adr_flex_value_set_id
35053          , x_value_type_code          => l_adr_value_type_code
35054          , x_value_combination_id     => l_adr_value_combination_id
35055          , x_value_segment_code       => l_adr_value_segment_code
35056          , p_side                     => 'NA'
35057          , p_override_seg_flag        => 'Y'
35058    );
35059 
35060    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
35061 
35062       xla_ae_lines_pkg.set_segment(
35063           p_to_segment_code         => 'GL_ACCOUNT'
35064         , p_segment_value           => l_segment
35065         , p_from_segment_code       => l_adr_value_segment_code
35066         , p_from_combination_id     => l_adr_value_combination_id
35067         , p_value_type_code         => l_adr_value_type_code
35068         , p_transaction_coa_id      => l_adr_transaction_coa_id
35069         , p_accounting_coa_id       => l_adr_accounting_coa_id
35070         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
35071         , p_flex_value_set_id       => l_adr_flex_value_set_id
35072         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
35073         , p_adr_type_code           => 'S'
35074         , p_component_type          => l_component_type
35075         , p_component_code          => l_component_code
35076         , p_component_type_code     => l_component_type_code
35077         , p_component_appl_id       => l_component_appl_id
35078         , p_amb_context_code        => l_amb_context_code
35079         , p_entity_code             => 'AP_PAYMENTS'
35080         , p_event_class_code        => 'REFUNDS'
35081         , p_side                    => 'NA'
35082         );
35083 
35084   END IF;
35085 
35086    --
35087    --
35088    END IF;
35089 
35090        --
35091        -- Update the line information that should be overwritten
35092        --
35093        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35094                                          p_header_num   => 1);
35095        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35096 
35097        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35098 
35099        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35100           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35101        END IF;
35102 
35103       --
35104       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35105       --
35106       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35110           -- 4262811a Switch Sign
35107           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35108       ELSE
35109           ---------------------------------------------------------------------------------------------------
35111           ---------------------------------------------------------------------------------------------------
35112           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35113           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35114                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35115           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35116                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35117           -- 5132302
35118           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35119                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35120 
35121       END IF;
35122 
35123       -- 4955764
35124       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35125       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35126 
35127 
35128       XLA_AE_LINES_PKG.ValidateCurrentLine;
35129       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35130 
35131       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35132                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35133                ,p_balance_type_code => l_balance_type_code);
35134 
35135    END IF;
35136 
35137    -----------------------------------------------------------------------------------------
35138    -- 4262811 Multiperiod Accounting
35139    -----------------------------------------------------------------------------------------
35140      -- No MPA option is assigned.
35141 
35142 
35143 END IF;
35144 END IF;
35145 --
35146 
35147 --
35148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35149    trace
35150       (p_msg      => 'END of AcctLineType_91'
35151       ,p_level    => C_LEVEL_PROCEDURE
35152       ,p_module   => l_log_module);
35153 END IF;
35154 --
35155 EXCEPTION
35156   WHEN xla_exceptions_pkg.application_exception THEN
35157       RAISE;
35158   WHEN OTHERS THEN
35159        xla_exceptions_pkg.raise_message
35160            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_91');
35161 END AcctLineType_91;
35162 --
35163 
35164 ---------------------------------------
35165 --
35166 -- PRIVATE FUNCTION
35167 --         AcctLineType_92
35168 --
35169 ---------------------------------------
35170 PROCEDURE AcctLineType_92 (
35171   p_application_id        IN NUMBER
35172  ,p_event_id              IN NUMBER
35173  ,p_calculate_acctd_flag  IN VARCHAR2
35174  ,p_calculate_g_l_flag    IN VARCHAR2
35175  ,p_actual_flag           IN OUT VARCHAR2
35176  ,p_balance_type_code     OUT VARCHAR2
35177  ,p_gain_or_loss_ref      OUT VARCHAR2
35178  
35179 --Payment Currency Code
35180  , p_source_8            IN VARCHAR2
35181 --Automatic Offsets Value
35182  , p_source_10            IN VARCHAR2
35183  , p_source_10_meaning    IN VARCHAR2
35184 --Bank Cash Clearing Account
35185  , p_source_30            IN NUMBER
35186 --When to Account for Payment Option
35187  , p_source_57            IN VARCHAR2
35188 --Accounting Reversal Indicator
35189  , p_source_58            IN VARCHAR2
35190 --Distribution Link Type
35191  , p_source_60            IN VARCHAR2
35192 --Override Accounted Amount Indicator
35193  , p_source_85            IN VARCHAR2
35194  , p_source_85_meaning    IN VARCHAR2
35195 --Third Party Type
35196  , p_source_88            IN VARCHAR2
35197 --Invoice Distribution Tax Line Identifier
35198  , p_source_91            IN NUMBER
35199 --Invoice Distribution Tax Distribution Identifier from Tax
35200  , p_source_92            IN NUMBER
35201 --Invoice Distribution Summary Tax Line Identifier
35202  , p_source_93            IN NUMBER
35203 --Business Flow Accounts Payable Application Identifier
35204  , p_source_96            IN NUMBER
35205 --Business Flow Invoice Distribution Type
35206  , p_source_97            IN VARCHAR2
35207 --Business Flow Invoice Entity Code
35208  , p_source_98            IN VARCHAR2
35209 --Business Flow Invoice Distribution Identifier
35210  , p_source_99            IN NUMBER
35211 --Business Flow Invoice Identifier
35212  , p_source_100            IN NUMBER
35213 --Payment Distribution Type
35214  , p_source_101            IN VARCHAR2
35215  , p_source_101_meaning    IN VARCHAR2
35216 --Payment Distribution Amount
35217  , p_source_102            IN NUMBER
35218 --Payment Distribution Identifier
35219  , p_source_107            IN NUMBER
35220 --Payment Supplier Identifier
35221  , p_source_113            IN NUMBER
35222 --Payment Supplier Site Identifier
35223  , p_source_114            IN NUMBER
35224 --Payment Distribution Reversed Identifier
35225  , p_source_115            IN NUMBER
35226 --Pooled Bank Account Option
35227  , p_source_116            IN VARCHAR2
35228  , p_source_116_meaning    IN VARCHAR2
35229 --Payment Maturity Date
35230  , p_source_117            IN DATE
35234  , p_source_120            IN DATE
35231 --Payment Distribution (Invoice Rate) Ledger Amount
35232  , p_source_119            IN NUMBER
35233 --Payment Exchange Date
35235 --Payment Exchange Rate
35236  , p_source_121            IN NUMBER
35237 --Payment Exchange Rate Type
35238  , p_source_122            IN VARCHAR2
35239 --Payment Type
35240  , p_source_125            IN VARCHAR2
35241  , p_source_125_meaning    IN VARCHAR2
35242 )
35243 IS
35244 
35245 l_component_type              VARCHAR2(80);
35246 l_component_code              VARCHAR2(30);
35247 l_component_type_code         VARCHAR2(1);
35248 l_component_appl_id           INTEGER;
35249 l_amb_context_code            VARCHAR2(30);
35250 l_entity_code                 VARCHAR2(30);
35251 l_event_class_code            VARCHAR2(30);
35252 l_ae_header_id                NUMBER;
35253 l_event_type_code             VARCHAR2(30);
35254 l_line_definition_code        VARCHAR2(30);
35255 l_line_definition_owner_code  VARCHAR2(1);
35256 --
35257 -- adr variables
35258 l_segment                     VARCHAR2(30);
35259 l_ccid                        NUMBER;
35260 l_adr_transaction_coa_id      NUMBER;
35261 l_adr_accounting_coa_id       NUMBER;
35262 l_adr_flexfield_segment_code  VARCHAR2(30);
35263 l_adr_flex_value_set_id       NUMBER;
35264 l_adr_value_type_code         VARCHAR2(30);
35265 l_adr_value_combination_id    NUMBER;
35266 l_adr_value_segment_code      VARCHAR2(30);
35267 
35268 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35269 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35270 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35271 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35272 
35273 -- 4262811 Variables ------------------------------------------------------------------------------------------
35274 l_entered_amt_idx             NUMBER;
35275 l_accted_amt_idx              NUMBER;
35276 l_acc_rev_flag                VARCHAR2(1);
35277 l_accrual_line_num            NUMBER;
35278 l_tmp_amt                     NUMBER;
35279 l_acc_rev_natural_side_code   VARCHAR2(1);
35280 
35281 l_num_entries                 NUMBER;
35282 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35283 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35284 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35285 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35286 l_recog_line_1                NUMBER;
35287 l_recog_line_2                NUMBER;
35288 
35289 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35290 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35291 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35292 
35293 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35294 
35295 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35296 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35297 
35298 ---------------------------------------------------------------------------------------------------------------
35299 
35300 
35301 --
35302 -- bulk performance
35303 --
35304 l_balance_type_code           VARCHAR2(1);
35305 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35306 l_log_module                  VARCHAR2(240);
35307 
35308 --
35309 -- Upgrade strategy
35310 --
35311 l_actual_upg_option           VARCHAR2(1);
35312 l_enc_upg_option           VARCHAR2(1);
35313 
35314 --
35315 BEGIN
35316 --
35317 IF g_log_enabled THEN
35318       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
35319 END IF;
35320 --
35321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35322 
35323       trace
35324          (p_msg      => 'BEGIN of AcctLineType_92'
35325          ,p_level    => C_LEVEL_PROCEDURE
35326          ,p_module   => l_log_module);
35327 
35328 END IF;
35329 --
35330 l_component_type             := 'AMB_JLT';
35331 l_component_code             := 'AP_CASH_CLEAR_REF_BS_INVXRATE';
35332 l_component_type_code        := 'S';
35333 l_component_appl_id          :=  200;
35334 l_amb_context_code           := 'DEFAULT';
35335 l_entity_code                := 'AP_PAYMENTS';
35336 l_event_class_code           := 'REFUNDS';
35337 l_event_type_code            := 'REFUNDS_ALL';
35338 l_line_definition_owner_code := 'S';
35339 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
35340 --
35341 l_balance_type_code          := 'A';
35342 l_segment                     := NULL;
35343 l_ccid                        := NULL;
35344 l_adr_transaction_coa_id      := NULL;
35345 l_adr_accounting_coa_id       := NULL;
35346 l_adr_flexfield_segment_code  := NULL;
35347 l_adr_flex_value_set_id       := NULL;
35348 l_adr_value_type_code         := NULL;
35349 l_adr_value_combination_id    := NULL;
35350 l_adr_value_segment_code      := NULL;
35351 
35352 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
35353 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
35354 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35355 l_budgetary_control_flag     := 'N';
35356 
35357 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35358 l_bflow_applied_to_amt       := NULL; -- 5132302
35362 l_accrual_line_num           := NULL;          -- 4262811
35359 l_entered_amt_idx            := NULL;          -- 4262811
35360 l_accted_amt_idx             := NULL;          -- 4262811
35361 l_acc_rev_flag               := NULL;          -- 4262811
35363 l_tmp_amt                    := NULL;          -- 4262811
35364 --
35365  
35366 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35367     l_balance_type_code <> 'B' THEN
35368 IF NVL(p_source_57,'
35369 ') =  'ALWAYS_CLEAR' AND 
35370 (NVL(p_source_116,'
35371 ') =  'Y' AND 
35372 NVL(p_source_10,'
35373 ') =  'BALANCING_SEGMENT') AND 
35374 p_source_117 IS NULL AND 
35375 NVL(p_source_101,'
35376 ') =  'CASH' AND 
35377 NVL(p_source_125,'
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
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
35422       ,p_entity_code                => l_entity_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  => 'CASH_CLEARING'
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                       'CASH_CLEARING';
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 := 9;
35459    l_accted_amt_idx  := 14;
35460    l_bflow_applied_to_amt_idx  := NULL;  -- 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_58;
35463    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35464    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
35465    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35466    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
35467    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35468    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
35469    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35470    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
35471    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35472    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
35473    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35474    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
35475    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35476    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
35477    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35478    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
35479    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35480    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
35484    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
35481    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35482    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
35483    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35485    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35486    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
35487    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35488    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
35489    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35490    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
35491    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35492    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
35493    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35494    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
35495    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35496    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
35497    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35498    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
35499    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35500    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
35501    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35502    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
35503    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35504    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
35505    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35506    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
35507 
35508    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35509    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35510 
35511    ---------------------------------------------------------------------------------------------------------------
35512    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35513    ---------------------------------------------------------------------------------------------------------------
35514    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35515 
35516    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35517    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35518 
35519    IF xla_accounting_cache_pkg.GetValueChar
35520          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35521          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35522    AND l_bflow_method_code = 'PRIOR_ENTRY'
35523 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35524    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35525          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35526        )
35527    THEN
35528          xla_ae_lines_pkg.BflowUpgEntry
35529            (p_business_method_code    => l_bflow_method_code
35530            ,p_business_class_code     => l_bflow_class_code
35531            ,p_balance_type            => l_balance_type_code);
35532    ELSE
35533       NULL;
35534 XLA_AE_LINES_PKG.business_flow_validation(
35535                                 p_business_method_code     => l_bflow_method_code
35536                                ,p_business_class_code      => l_bflow_class_code
35537                                ,p_inherit_description_flag => l_inherit_desc_flag);
35538    END IF;
35539 
35540    --
35541    -- call analytical criteria
35542    --
35543    
35544    --
35545    -- call description
35546    --
35547    -- No description or it is inherited.
35548    --
35549    -- call ADRs
35550    -- Bug 4922099
35551    --
35552    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35553         (NVL(l_actual_upg_option, 'N') = 'O') OR
35554         (NVL(l_enc_upg_option, 'N') = 'O')
35555       )
35556    THEN
35557    NULL;
35558    --
35559    --
35560    
35561   l_ccid := AcctDerRule_38(
35562            p_application_id           => p_application_id
35563          , p_ae_header_id             => l_ae_header_id 
35564 , p_source_30 => p_source_30
35565          , x_transaction_coa_id       => l_adr_transaction_coa_id
35566          , x_accounting_coa_id        => l_adr_accounting_coa_id
35567          , x_value_type_code          => l_adr_value_type_code
35568          , p_side                     => 'NA'
35569    );
35570 
35571    xla_ae_lines_pkg.set_ccid(
35572     p_code_combination_id          => l_ccid
35573   , p_value_type_code              => l_adr_value_type_code
35574   , p_transaction_coa_id           => l_adr_transaction_coa_id
35575   , p_accounting_coa_id            => l_adr_accounting_coa_id
35576   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35577   , p_adr_type_code                => 'S'
35578   , p_component_type               => l_component_type
35579   , p_component_code               => l_component_code
35580   , p_component_type_code          => l_component_type_code
35581   , p_component_appl_id            => l_component_appl_id
35582   , p_amb_context_code             => l_amb_context_code
35583   , p_side                         => 'NA'
35584   );
35585 
35586 
35587    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
35588      p_to_segment_code         => 'GL_BALANCING'
35592    , p_value_type_code         => NULL
35589    , p_segment_value           => C_CHAR
35590    , p_from_segment_code       => NULL
35591    , p_from_combination_id     => NULL
35593    , p_transaction_coa_id      => null
35594    , p_accounting_coa_id       => null
35595    , p_flexfield_segment_code  => NULL
35596    , p_flex_value_set_id       => NULL
35597    , p_adr_code                => NULL
35598    , p_adr_type_code           => NULL
35599    , p_component_type          => l_component_type
35600    , p_component_code          => l_component_code
35601    , p_component_type_code     => l_component_type_code
35602    , p_component_appl_id       => l_component_appl_id
35603    , p_amb_context_code        => l_amb_context_code
35604    , p_entity_code             => 'AP_PAYMENTS'
35605    , p_event_class_code        => 'REFUNDS'
35606    , p_side                    => 'NA'
35607    );
35608    --
35609 
35610 
35611    --
35612    --
35613    END IF;
35614    --
35615    -- Bug 4922099
35616    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35617           (NVL(l_enc_upg_option, 'N') = 'O')
35618         ) AND
35619         (l_bflow_method_code = 'PRIOR_ENTRY')
35620       )
35621    THEN
35622       IF
35623       --
35624       1 = 2
35625       --
35626       THEN
35627       xla_accounting_err_pkg.build_message
35628                                     (p_appli_s_name            => 'XLA'
35629                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35630                                     ,p_token_1                 => 'LINE_NUMBER'
35631                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35632                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35633                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35634                                                                              l_component_type
35635                                                                             ,l_component_code
35636                                                                             ,l_component_type_code
35637                                                                             ,l_component_appl_id
35638                                                                             ,l_amb_context_code
35639                                                                             ,l_entity_code
35640                                                                             ,l_event_class_code
35641                                                                            )
35642                                     ,p_token_3                 => 'OWNER'
35643                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35644                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35645                                                                           ,p_lookup_code    => l_component_type_code
35646                                                                          )
35647                                     ,p_token_4                 => 'PRODUCT_NAME'
35648                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35649                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35650                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35651                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35652                                     ,p_ae_header_id            =>  NULL
35653                                        );
35654 
35655         IF (C_LEVEL_ERROR>= g_log_level) THEN
35656                  trace
35657                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35658                       ,p_level    => C_LEVEL_ERROR
35659                       ,p_module   => l_log_module);
35660         END IF;
35661       END IF;
35662    END IF;
35663    --
35664    --
35665    ------------------------------------------------------------------------------------------------
35666    -- 4219869 Business Flow
35667    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35668    -- Prior Entry.  Currently, the following code is always generated.
35669    ------------------------------------------------------------------------------------------------
35670    XLA_AE_LINES_PKG.ValidateCurrentLine;
35671 
35672    ------------------------------------------------------------------------------------
35673    -- 4219869 Business Flow
35674    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35675    ------------------------------------------------------------------------------------
35676    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35677 
35678    ----------------------------------------------------------------------------------
35679    -- 4219869 Business Flow
35680    -- Update journal entry status -- Need to generate this within IF <condition>
35681    ----------------------------------------------------------------------------------
35682    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35683          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35684          ,p_balance_type_code => l_balance_type_code
35685          );
35686 
35687    -------------------------------------------------------------------------------------------
35691       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35688    -- 4262811 - Generate the Accrual Reversal lines
35689    -------------------------------------------------------------------------------------------
35690    BEGIN
35692                               (g_array_event(p_event_id).array_value_num('header_index'));
35693       IF l_acc_rev_flag IS NULL THEN
35694          l_acc_rev_flag := 'N';
35695       END IF;
35696    EXCEPTION
35697       WHEN OTHERS THEN
35698          l_acc_rev_flag := 'N';
35699    END;
35700    --
35701    IF (l_acc_rev_flag = 'Y') THEN
35702 
35703        -- 4645092  ------------------------------------------------------------------------------
35704        -- To allow MPA report to determine if it should generate report process
35705        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35706        ------------------------------------------------------------------------------------------
35707 
35708        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35709        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35710    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35711    -- call ADRs
35712    -- Bug 4922099
35713    --
35714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35715         (NVL(l_actual_upg_option, 'N') = 'O') OR
35716         (NVL(l_enc_upg_option, 'N') = 'O')
35717       )
35718    THEN
35719    NULL;
35720    --
35721    --
35722    
35723   l_ccid := AcctDerRule_38(
35724            p_application_id           => p_application_id
35725          , p_ae_header_id             => l_ae_header_id 
35726 , p_source_30 => p_source_30
35727          , x_transaction_coa_id       => l_adr_transaction_coa_id
35728          , x_accounting_coa_id        => l_adr_accounting_coa_id
35729          , x_value_type_code          => l_adr_value_type_code
35730          , p_side                     => 'NA'
35731    );
35732 
35733    xla_ae_lines_pkg.set_ccid(
35734     p_code_combination_id          => l_ccid
35735   , p_value_type_code              => l_adr_value_type_code
35736   , p_transaction_coa_id           => l_adr_transaction_coa_id
35737   , p_accounting_coa_id            => l_adr_accounting_coa_id
35738   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35739   , p_adr_type_code                => 'S'
35740   , p_component_type               => l_component_type
35741   , p_component_code               => l_component_code
35742   , p_component_type_code          => l_component_type_code
35743   , p_component_appl_id            => l_component_appl_id
35744   , p_amb_context_code             => l_amb_context_code
35745   , p_side                         => 'NA'
35746   );
35747 
35748 
35749    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
35750      p_to_segment_code         => 'GL_BALANCING'
35751    , p_segment_value           => C_CHAR
35752    , p_from_segment_code       => NULL
35753    , p_from_combination_id     => NULL
35754    , p_value_type_code         => NULL
35755    , p_transaction_coa_id      => null
35756    , p_accounting_coa_id       => null
35757    , p_flexfield_segment_code  => NULL
35758    , p_flex_value_set_id       => NULL
35759    , p_adr_code                => NULL
35760    , p_adr_type_code           => NULL
35761    , p_component_type          => l_component_type
35762    , p_component_code          => l_component_code
35763    , p_component_type_code     => l_component_type_code
35764    , p_component_appl_id       => l_component_appl_id
35765    , p_amb_context_code        => l_amb_context_code
35766    , p_entity_code             => 'AP_PAYMENTS'
35767    , p_event_class_code        => 'REFUNDS'
35768    , p_side                    => 'NA'
35769    );
35770    --
35771 
35772 
35773    --
35774    --
35775    END IF;
35776 
35777        --
35778        -- Update the line information that should be overwritten
35779        --
35780        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35781                                          p_header_num   => 1);
35782        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35783 
35784        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35785 
35786        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35787           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35788        END IF;
35789 
35790       --
35791       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35792       --
35793       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35794           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35795       ELSE
35796           ---------------------------------------------------------------------------------------------------
35797           -- 4262811a Switch Sign
35798           ---------------------------------------------------------------------------------------------------
35799           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35800           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35801                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35802           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35806                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35803                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35804           -- 5132302
35805           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35807 
35808       END IF;
35809 
35810       -- 4955764
35811       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35812       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35813 
35814 
35815       XLA_AE_LINES_PKG.ValidateCurrentLine;
35816       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35817 
35818       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35819                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35820                ,p_balance_type_code => l_balance_type_code);
35821 
35822    END IF;
35823 
35824    -----------------------------------------------------------------------------------------
35825    -- 4262811 Multiperiod Accounting
35826    -----------------------------------------------------------------------------------------
35827      -- No MPA option is assigned.
35828 
35829 
35830 END IF;
35831 END IF;
35832 --
35833 
35834 --
35835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35836    trace
35837       (p_msg      => 'END of AcctLineType_92'
35838       ,p_level    => C_LEVEL_PROCEDURE
35839       ,p_module   => l_log_module);
35840 END IF;
35841 --
35842 EXCEPTION
35843   WHEN xla_exceptions_pkg.application_exception THEN
35844       RAISE;
35845   WHEN OTHERS THEN
35846        xla_exceptions_pkg.raise_message
35847            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_92');
35848 END AcctLineType_92;
35849 --
35850 
35851 ---------------------------------------
35852 --
35853 -- PRIVATE FUNCTION
35854 --         AcctLineType_93
35855 --
35856 ---------------------------------------
35857 PROCEDURE AcctLineType_93 (
35858   p_application_id        IN NUMBER
35859  ,p_event_id              IN NUMBER
35860  ,p_calculate_acctd_flag  IN VARCHAR2
35861  ,p_calculate_g_l_flag    IN VARCHAR2
35862  ,p_actual_flag           IN OUT VARCHAR2
35863  ,p_balance_type_code     OUT VARCHAR2
35864  ,p_gain_or_loss_ref      OUT VARCHAR2
35865  
35866 --Payment Currency Code
35867  , p_source_8            IN VARCHAR2
35868 --Bank Cash Clearing Account
35869  , p_source_30            IN NUMBER
35870 --Automatic Offsets Flag
35871  , p_source_43            IN VARCHAR2
35872  , p_source_43_meaning    IN VARCHAR2
35873 --When to Account for Payment Option
35874  , p_source_57            IN VARCHAR2
35875 --Accounting Reversal Indicator
35876  , p_source_58            IN VARCHAR2
35877 --Distribution Link Type
35878  , p_source_60            IN VARCHAR2
35879 --Override Accounted Amount Indicator
35880  , p_source_85            IN VARCHAR2
35881  , p_source_85_meaning    IN VARCHAR2
35882 --Third Party Type
35883  , p_source_88            IN VARCHAR2
35884 --Invoice Distribution Tax Line Identifier
35885  , p_source_91            IN NUMBER
35886 --Invoice Distribution Tax Distribution Identifier from Tax
35887  , p_source_92            IN NUMBER
35888 --Invoice Distribution Summary Tax Line Identifier
35889  , p_source_93            IN NUMBER
35890 --Business Flow Accounts Payable Application Identifier
35891  , p_source_96            IN NUMBER
35892 --Business Flow Invoice Distribution Type
35893  , p_source_97            IN VARCHAR2
35894 --Business Flow Invoice Entity Code
35895  , p_source_98            IN VARCHAR2
35896 --Business Flow Invoice Distribution Identifier
35897  , p_source_99            IN NUMBER
35898 --Business Flow Invoice Identifier
35899  , p_source_100            IN NUMBER
35900 --Payment Distribution Type
35901  , p_source_101            IN VARCHAR2
35902  , p_source_101_meaning    IN VARCHAR2
35903 --Payment Distribution Amount
35904  , p_source_102            IN NUMBER
35905 --Payment Distribution Identifier
35906  , p_source_107            IN NUMBER
35907 --Payment Supplier Identifier
35908  , p_source_113            IN NUMBER
35909 --Payment Supplier Site Identifier
35910  , p_source_114            IN NUMBER
35911 --Payment Distribution Reversed Identifier
35912  , p_source_115            IN NUMBER
35913 --Pooled Bank Account Option
35914  , p_source_116            IN VARCHAR2
35915  , p_source_116_meaning    IN VARCHAR2
35916 --Payment Maturity Date
35917  , p_source_117            IN DATE
35918 --Payment Distribution (Invoice Rate) Ledger Amount
35919  , p_source_119            IN NUMBER
35920 --Payment Exchange Date
35921  , p_source_120            IN DATE
35922 --Payment Exchange Rate
35923  , p_source_121            IN NUMBER
35924 --Payment Exchange Rate Type
35925  , p_source_122            IN VARCHAR2
35926 --Payment Type
35927  , p_source_125            IN VARCHAR2
35928  , p_source_125_meaning    IN VARCHAR2
35929 )
35930 IS
35931 
35932 l_component_type              VARCHAR2(80);
35933 l_component_code              VARCHAR2(30);
35934 l_component_type_code         VARCHAR2(1);
35935 l_component_appl_id           INTEGER;
35936 l_amb_context_code            VARCHAR2(30);
35937 l_entity_code                 VARCHAR2(30);
35941 l_line_definition_code        VARCHAR2(30);
35938 l_event_class_code            VARCHAR2(30);
35939 l_ae_header_id                NUMBER;
35940 l_event_type_code             VARCHAR2(30);
35942 l_line_definition_owner_code  VARCHAR2(1);
35943 --
35944 -- adr variables
35945 l_segment                     VARCHAR2(30);
35946 l_ccid                        NUMBER;
35947 l_adr_transaction_coa_id      NUMBER;
35948 l_adr_accounting_coa_id       NUMBER;
35949 l_adr_flexfield_segment_code  VARCHAR2(30);
35950 l_adr_flex_value_set_id       NUMBER;
35951 l_adr_value_type_code         VARCHAR2(30);
35952 l_adr_value_combination_id    NUMBER;
35953 l_adr_value_segment_code      VARCHAR2(30);
35954 
35955 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35956 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35957 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35958 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35959 
35960 -- 4262811 Variables ------------------------------------------------------------------------------------------
35961 l_entered_amt_idx             NUMBER;
35962 l_accted_amt_idx              NUMBER;
35963 l_acc_rev_flag                VARCHAR2(1);
35964 l_accrual_line_num            NUMBER;
35965 l_tmp_amt                     NUMBER;
35966 l_acc_rev_natural_side_code   VARCHAR2(1);
35967 
35968 l_num_entries                 NUMBER;
35969 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35970 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35971 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35972 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35973 l_recog_line_1                NUMBER;
35974 l_recog_line_2                NUMBER;
35975 
35976 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35977 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35978 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35979 
35980 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35981 
35982 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35983 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35984 
35985 ---------------------------------------------------------------------------------------------------------------
35986 
35987 
35988 --
35989 -- bulk performance
35990 --
35991 l_balance_type_code           VARCHAR2(1);
35992 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35993 l_log_module                  VARCHAR2(240);
35994 
35995 --
35996 -- Upgrade strategy
35997 --
35998 l_actual_upg_option           VARCHAR2(1);
35999 l_enc_upg_option           VARCHAR2(1);
36000 
36001 --
36002 BEGIN
36003 --
36004 IF g_log_enabled THEN
36005       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
36006 END IF;
36007 --
36008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36009 
36010       trace
36011          (p_msg      => 'BEGIN of AcctLineType_93'
36012          ,p_level    => C_LEVEL_PROCEDURE
36013          ,p_module   => l_log_module);
36014 
36015 END IF;
36016 --
36017 l_component_type             := 'AMB_JLT';
36018 l_component_code             := 'AP_CASH_CLEAR_REF_INVXRATE';
36019 l_component_type_code        := 'S';
36020 l_component_appl_id          :=  200;
36021 l_amb_context_code           := 'DEFAULT';
36022 l_entity_code                := 'AP_PAYMENTS';
36023 l_event_class_code           := 'REFUNDS';
36024 l_event_type_code            := 'REFUNDS_ALL';
36025 l_line_definition_owner_code := 'S';
36026 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
36027 --
36028 l_balance_type_code          := 'A';
36029 l_segment                     := NULL;
36030 l_ccid                        := NULL;
36031 l_adr_transaction_coa_id      := NULL;
36032 l_adr_accounting_coa_id       := NULL;
36033 l_adr_flexfield_segment_code  := NULL;
36034 l_adr_flex_value_set_id       := NULL;
36035 l_adr_value_type_code         := NULL;
36036 l_adr_value_combination_id    := NULL;
36037 l_adr_value_segment_code      := NULL;
36038 
36039 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
36040 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
36041 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36042 l_budgetary_control_flag     := 'N';
36043 
36044 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36045 l_bflow_applied_to_amt       := NULL; -- 5132302
36046 l_entered_amt_idx            := NULL;          -- 4262811
36047 l_accted_amt_idx             := NULL;          -- 4262811
36048 l_acc_rev_flag               := NULL;          -- 4262811
36049 l_accrual_line_num           := NULL;          -- 4262811
36050 l_tmp_amt                    := NULL;          -- 4262811
36051 --
36052  
36053 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36054     l_balance_type_code <> 'B' THEN
36055 IF NVL(p_source_57,'
36056 ') =  'ALWAYS_CLEAR' AND 
36057 (NVL(p_source_43,'
36058 ') <>  'Y' OR 
36059 NVL(p_source_43,'
36060 ') =  'Y' AND 
36061 NVL(p_source_116,'
36062 ') <>  'Y') AND 
36063 p_source_117 IS NULL AND 
36064 NVL(p_source_101,'
36065 ') =  'CASH' AND 
36066 NVL(p_source_125,'
36067 ') =  'R'
36071    XLA_AE_LINES_PKG.SetNewLine;
36068  THEN 
36069 
36070    --
36072 
36073    p_balance_type_code          := l_balance_type_code;
36074    -- set the flag so later we will know whether the gain loss line needs to be created
36075    
36076    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36077      p_actual_flag :='A';
36078    END IF;
36079 
36080    --
36081    -- bulk performance
36082    --
36083    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36084                                       p_header_num   => 0); -- 4262811
36085    --
36086    -- set accounting line options
36087    --
36088    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36089            p_natural_side_code          => 'C'
36090          , p_gain_or_loss_flag          => 'N'
36091          , p_gl_transfer_mode_code      => 'S'
36092          , p_acct_entry_type_code       => 'A'
36093          , p_switch_side_flag           => 'Y'
36094          , p_merge_duplicate_code       => 'A'
36095          );
36096    --
36097    l_acc_rev_natural_side_code := 'D';  -- 4262811
36098    -- 
36099    --
36100    -- set accounting line type info
36101    --
36102    xla_ae_lines_pkg.SetAcctLineType
36103       (p_component_type             => l_component_type
36104       ,p_event_type_code            => l_event_type_code
36105       ,p_line_definition_owner_code => l_line_definition_owner_code
36106       ,p_line_definition_code       => l_line_definition_code
36107       ,p_accounting_line_code       => l_component_code
36108       ,p_accounting_line_type_code  => l_component_type_code
36109       ,p_accounting_line_appl_id    => l_component_appl_id
36110       ,p_amb_context_code           => l_amb_context_code
36111       ,p_entity_code                => l_entity_code
36112       ,p_event_class_code           => l_event_class_code);
36113    --
36114    -- set accounting class
36115    --
36116    xla_ae_lines_pkg.SetAcctClass(
36117            p_accounting_class_code  => 'CASH_CLEARING'
36118          , p_ae_header_id           => l_ae_header_id
36119          );
36120 
36121    --
36122    -- set rounding class
36123    --
36124    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36125                       'CASH_CLEARING';
36126 
36127    --
36128    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36129    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36130    --
36131    -- bulk performance
36132    --
36133    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36134 
36135    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36136       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36137 
36138    -- 4955764
36139    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36140       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36141 
36142    -- 4458381 Public Sector Enh
36143    
36144    --
36145    -- set accounting attributes for the line type
36146    --
36147    l_entered_amt_idx := 9;
36148    l_accted_amt_idx  := 14;
36149    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
36150    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36151    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
36152    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
36153    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
36154    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36155    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
36156    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
36157    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
36158    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
36159    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
36160    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36161    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
36162    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
36163    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
36164    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
36165    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
36166    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
36167    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
36168    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
36169    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
36170    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
36171    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
36172    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
36173    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
36174    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
36175    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
36176    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
36177    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
36178    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
36179    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
36180    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
36184    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
36181    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
36182    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
36183    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
36185    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
36186    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
36187    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
36188    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
36189    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
36190    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
36191    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
36192    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
36193    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
36194    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
36195    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
36196 
36197    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36198    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36199 
36200    ---------------------------------------------------------------------------------------------------------------
36201    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36202    ---------------------------------------------------------------------------------------------------------------
36203    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36204 
36205    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36206    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36207 
36208    IF xla_accounting_cache_pkg.GetValueChar
36209          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36210          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36211    AND l_bflow_method_code = 'PRIOR_ENTRY'
36212 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36213    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36214          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36215        )
36216    THEN
36217          xla_ae_lines_pkg.BflowUpgEntry
36218            (p_business_method_code    => l_bflow_method_code
36219            ,p_business_class_code     => l_bflow_class_code
36220            ,p_balance_type            => l_balance_type_code);
36221    ELSE
36222       NULL;
36223 -- No business flow processing for business flow method of NONE.
36224    END IF;
36225 
36226    --
36227    -- call analytical criteria
36228    --
36229    
36230    --
36231    -- call description
36232    --
36233    -- No description or it is inherited.
36234    --
36235    -- call ADRs
36236    -- Bug 4922099
36237    --
36238    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36239         (NVL(l_actual_upg_option, 'N') = 'O') OR
36240         (NVL(l_enc_upg_option, 'N') = 'O')
36241       )
36242    THEN
36243    NULL;
36244    --
36245    --
36246    
36247   l_ccid := AcctDerRule_38(
36248            p_application_id           => p_application_id
36249          , p_ae_header_id             => l_ae_header_id 
36250 , p_source_30 => p_source_30
36251          , x_transaction_coa_id       => l_adr_transaction_coa_id
36252          , x_accounting_coa_id        => l_adr_accounting_coa_id
36253          , x_value_type_code          => l_adr_value_type_code
36254          , p_side                     => 'NA'
36255    );
36256 
36257    xla_ae_lines_pkg.set_ccid(
36258     p_code_combination_id          => l_ccid
36259   , p_value_type_code              => l_adr_value_type_code
36260   , p_transaction_coa_id           => l_adr_transaction_coa_id
36261   , p_accounting_coa_id            => l_adr_accounting_coa_id
36262   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
36263   , p_adr_type_code                => 'S'
36264   , p_component_type               => l_component_type
36265   , p_component_code               => l_component_code
36266   , p_component_type_code          => l_component_type_code
36267   , p_component_appl_id            => l_component_appl_id
36268   , p_amb_context_code             => l_amb_context_code
36269   , p_side                         => 'NA'
36270   );
36271 
36272 
36273    --
36274    --
36275    END IF;
36276    --
36277    -- Bug 4922099
36278    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36279           (NVL(l_enc_upg_option, 'N') = 'O')
36280         ) AND
36281         (l_bflow_method_code = 'PRIOR_ENTRY')
36282       )
36283    THEN
36284       IF
36285       --
36286       1 = 2
36287       --
36288       THEN
36289       xla_accounting_err_pkg.build_message
36290                                     (p_appli_s_name            => 'XLA'
36291                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36292                                     ,p_token_1                 => 'LINE_NUMBER'
36293                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36294                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36295                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36296                                                                              l_component_type
36300                                                                             ,l_amb_context_code
36297                                                                             ,l_component_code
36298                                                                             ,l_component_type_code
36299                                                                             ,l_component_appl_id
36301                                                                             ,l_entity_code
36302                                                                             ,l_event_class_code
36303                                                                            )
36304                                     ,p_token_3                 => 'OWNER'
36305                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36306                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36307                                                                           ,p_lookup_code    => l_component_type_code
36308                                                                          )
36309                                     ,p_token_4                 => 'PRODUCT_NAME'
36310                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36311                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36312                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36313                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36314                                     ,p_ae_header_id            =>  NULL
36315                                        );
36316 
36317         IF (C_LEVEL_ERROR>= g_log_level) THEN
36318                  trace
36319                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36320                       ,p_level    => C_LEVEL_ERROR
36321                       ,p_module   => l_log_module);
36322         END IF;
36323       END IF;
36324    END IF;
36325    --
36326    --
36327    ------------------------------------------------------------------------------------------------
36328    -- 4219869 Business Flow
36329    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36330    -- Prior Entry.  Currently, the following code is always generated.
36331    ------------------------------------------------------------------------------------------------
36332    XLA_AE_LINES_PKG.ValidateCurrentLine;
36333 
36334    ------------------------------------------------------------------------------------
36335    -- 4219869 Business Flow
36336    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36337    ------------------------------------------------------------------------------------
36338    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36339 
36340    ----------------------------------------------------------------------------------
36341    -- 4219869 Business Flow
36342    -- Update journal entry status -- Need to generate this within IF <condition>
36343    ----------------------------------------------------------------------------------
36344    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36345          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36346          ,p_balance_type_code => l_balance_type_code
36347          );
36348 
36349    -------------------------------------------------------------------------------------------
36350    -- 4262811 - Generate the Accrual Reversal lines
36351    -------------------------------------------------------------------------------------------
36352    BEGIN
36353       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36354                               (g_array_event(p_event_id).array_value_num('header_index'));
36355       IF l_acc_rev_flag IS NULL THEN
36356          l_acc_rev_flag := 'N';
36357       END IF;
36358    EXCEPTION
36359       WHEN OTHERS THEN
36360          l_acc_rev_flag := 'N';
36361    END;
36362    --
36363    IF (l_acc_rev_flag = 'Y') THEN
36364 
36365        -- 4645092  ------------------------------------------------------------------------------
36366        -- To allow MPA report to determine if it should generate report process
36367        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36368        ------------------------------------------------------------------------------------------
36369 
36370        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36371        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36372    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36373    -- call ADRs
36374    -- Bug 4922099
36375    --
36376    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36377         (NVL(l_actual_upg_option, 'N') = 'O') OR
36378         (NVL(l_enc_upg_option, 'N') = 'O')
36379       )
36380    THEN
36381    NULL;
36382    --
36383    --
36384    
36385   l_ccid := AcctDerRule_38(
36386            p_application_id           => p_application_id
36387          , p_ae_header_id             => l_ae_header_id 
36388 , p_source_30 => p_source_30
36389          , x_transaction_coa_id       => l_adr_transaction_coa_id
36390          , x_accounting_coa_id        => l_adr_accounting_coa_id
36391          , x_value_type_code          => l_adr_value_type_code
36392          , p_side                     => 'NA'
36393    );
36394 
36395    xla_ae_lines_pkg.set_ccid(
36399   , p_accounting_coa_id            => l_adr_accounting_coa_id
36396     p_code_combination_id          => l_ccid
36397   , p_value_type_code              => l_adr_value_type_code
36398   , p_transaction_coa_id           => l_adr_transaction_coa_id
36400   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
36401   , p_adr_type_code                => 'S'
36402   , p_component_type               => l_component_type
36403   , p_component_code               => l_component_code
36404   , p_component_type_code          => l_component_type_code
36405   , p_component_appl_id            => l_component_appl_id
36406   , p_amb_context_code             => l_amb_context_code
36407   , p_side                         => 'NA'
36408   );
36409 
36410 
36411    --
36412    --
36413    END IF;
36414 
36415        --
36416        -- Update the line information that should be overwritten
36417        --
36418        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36419                                          p_header_num   => 1);
36420        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36421 
36422        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36423 
36424        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36425           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36426        END IF;
36427 
36428       --
36429       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36430       --
36431       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36432           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36433       ELSE
36434           ---------------------------------------------------------------------------------------------------
36435           -- 4262811a Switch Sign
36436           ---------------------------------------------------------------------------------------------------
36437           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36438           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36439                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36440           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36441                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36442           -- 5132302
36443           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36444                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36445 
36446       END IF;
36447 
36448       -- 4955764
36449       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36450       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36451 
36452 
36453       XLA_AE_LINES_PKG.ValidateCurrentLine;
36454       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36455 
36456       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36457                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36458                ,p_balance_type_code => l_balance_type_code);
36459 
36460    END IF;
36461 
36462    -----------------------------------------------------------------------------------------
36463    -- 4262811 Multiperiod Accounting
36464    -----------------------------------------------------------------------------------------
36465      -- No MPA option is assigned.
36466 
36467 
36468 END IF;
36469 END IF;
36470 --
36471 
36472 --
36473 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36474    trace
36475       (p_msg      => 'END of AcctLineType_93'
36476       ,p_level    => C_LEVEL_PROCEDURE
36477       ,p_module   => l_log_module);
36478 END IF;
36479 --
36480 EXCEPTION
36481   WHEN xla_exceptions_pkg.application_exception THEN
36482       RAISE;
36483   WHEN OTHERS THEN
36484        xla_exceptions_pkg.raise_message
36485            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_93');
36486 END AcctLineType_93;
36487 --
36488 
36489 ---------------------------------------
36490 --
36491 -- PRIVATE FUNCTION
36492 --         AcctLineType_94
36493 --
36494 ---------------------------------------
36495 PROCEDURE AcctLineType_94 (
36496   p_application_id        IN NUMBER
36497  ,p_event_id              IN NUMBER
36498  ,p_calculate_acctd_flag  IN VARCHAR2
36499  ,p_calculate_g_l_flag    IN VARCHAR2
36500  ,p_actual_flag           IN OUT VARCHAR2
36501  ,p_balance_type_code     OUT VARCHAR2
36502  ,p_gain_or_loss_ref      OUT VARCHAR2
36503  
36504 --Payment Currency Code
36505  , p_source_8            IN VARCHAR2
36506 --Bank Cash Account
36507  , p_source_12            IN NUMBER
36508 --Automatic Offsets Flag
36509  , p_source_43            IN VARCHAR2
36510  , p_source_43_meaning    IN VARCHAR2
36511 --When to Account for Payment Option
36512  , p_source_57            IN VARCHAR2
36513 --Accounting Reversal Indicator
36514  , p_source_58            IN VARCHAR2
36515 --Distribution Link Type
36516  , p_source_60            IN VARCHAR2
36517 --Override Accounted Amount Indicator
36518  , p_source_85            IN VARCHAR2
36522 --Invoice Distribution Tax Line Identifier
36519  , p_source_85_meaning    IN VARCHAR2
36520 --Third Party Type
36521  , p_source_88            IN VARCHAR2
36523  , p_source_91            IN NUMBER
36524 --Invoice Distribution Tax Distribution Identifier from Tax
36525  , p_source_92            IN NUMBER
36526 --Invoice Distribution Summary Tax Line Identifier
36527  , p_source_93            IN NUMBER
36528 --Business Flow Accounts Payable Application Identifier
36529  , p_source_96            IN NUMBER
36530 --Business Flow Invoice Distribution Type
36531  , p_source_97            IN VARCHAR2
36532 --Business Flow Invoice Entity Code
36533  , p_source_98            IN VARCHAR2
36534 --Business Flow Invoice Distribution Identifier
36535  , p_source_99            IN NUMBER
36536 --Business Flow Invoice Identifier
36537  , p_source_100            IN NUMBER
36538 --Payment Distribution Type
36539  , p_source_101            IN VARCHAR2
36540  , p_source_101_meaning    IN VARCHAR2
36541 --Payment Distribution Amount
36542  , p_source_102            IN NUMBER
36543 --Payment Distribution Identifier
36544  , p_source_107            IN NUMBER
36545 --Payment Supplier Identifier
36546  , p_source_113            IN NUMBER
36547 --Payment Supplier Site Identifier
36548  , p_source_114            IN NUMBER
36549 --Payment Distribution Reversed Identifier
36550  , p_source_115            IN NUMBER
36551 --Pooled Bank Account Option
36552  , p_source_116            IN VARCHAR2
36553  , p_source_116_meaning    IN VARCHAR2
36554 --Payment Maturity Date
36555  , p_source_117            IN DATE
36556 --Payment Distribution (Payment Rate) Ledger Amount
36557  , p_source_118            IN NUMBER
36558 --Payment Exchange Date
36559  , p_source_120            IN DATE
36560 --Payment Exchange Rate
36561  , p_source_121            IN NUMBER
36562 --Payment Exchange Rate Type
36563  , p_source_122            IN VARCHAR2
36564 --Payment Type
36565  , p_source_125            IN VARCHAR2
36566  , p_source_125_meaning    IN VARCHAR2
36567 --Payment Processing Type
36568  , p_source_126            IN VARCHAR2
36569 --Invoice Distribution Amount of the Payment Distribution
36570  , p_source_127            IN NUMBER
36571 )
36572 IS
36573 
36574 l_component_type              VARCHAR2(80);
36575 l_component_code              VARCHAR2(30);
36576 l_component_type_code         VARCHAR2(1);
36577 l_component_appl_id           INTEGER;
36578 l_amb_context_code            VARCHAR2(30);
36579 l_entity_code                 VARCHAR2(30);
36580 l_event_class_code            VARCHAR2(30);
36581 l_ae_header_id                NUMBER;
36582 l_event_type_code             VARCHAR2(30);
36583 l_line_definition_code        VARCHAR2(30);
36584 l_line_definition_owner_code  VARCHAR2(1);
36585 --
36586 -- adr variables
36587 l_segment                     VARCHAR2(30);
36588 l_ccid                        NUMBER;
36589 l_adr_transaction_coa_id      NUMBER;
36590 l_adr_accounting_coa_id       NUMBER;
36591 l_adr_flexfield_segment_code  VARCHAR2(30);
36592 l_adr_flex_value_set_id       NUMBER;
36593 l_adr_value_type_code         VARCHAR2(30);
36594 l_adr_value_combination_id    NUMBER;
36595 l_adr_value_segment_code      VARCHAR2(30);
36596 
36597 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36598 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36599 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36600 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36601 
36602 -- 4262811 Variables ------------------------------------------------------------------------------------------
36603 l_entered_amt_idx             NUMBER;
36604 l_accted_amt_idx              NUMBER;
36605 l_acc_rev_flag                VARCHAR2(1);
36606 l_accrual_line_num            NUMBER;
36607 l_tmp_amt                     NUMBER;
36608 l_acc_rev_natural_side_code   VARCHAR2(1);
36609 
36610 l_num_entries                 NUMBER;
36611 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36612 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36613 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36614 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36615 l_recog_line_1                NUMBER;
36616 l_recog_line_2                NUMBER;
36617 
36618 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36619 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36620 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36621 
36622 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36623 
36624 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36625 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36626 
36627 ---------------------------------------------------------------------------------------------------------------
36628 
36629 
36630 --
36631 -- bulk performance
36632 --
36633 l_balance_type_code           VARCHAR2(1);
36634 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36635 l_log_module                  VARCHAR2(240);
36636 
36637 --
36638 -- Upgrade strategy
36639 --
36640 l_actual_upg_option           VARCHAR2(1);
36641 l_enc_upg_option           VARCHAR2(1);
36642 
36643 --
36644 BEGIN
36648 END IF;
36645 --
36646 IF g_log_enabled THEN
36647       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
36649 --
36650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36651 
36652       trace
36653          (p_msg      => 'BEGIN of AcctLineType_94'
36654          ,p_level    => C_LEVEL_PROCEDURE
36655          ,p_module   => l_log_module);
36656 
36657 END IF;
36658 --
36659 l_component_type             := 'AMB_JLT';
36660 l_component_code             := 'AP_CASH_PMT';
36661 l_component_type_code        := 'S';
36662 l_component_appl_id          :=  200;
36663 l_amb_context_code           := 'DEFAULT';
36664 l_entity_code                := 'AP_PAYMENTS';
36665 l_event_class_code           := 'PAYMENTS';
36666 l_event_type_code            := 'PAYMENTS_ALL';
36667 l_line_definition_owner_code := 'S';
36668 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
36669 --
36670 l_balance_type_code          := 'A';
36671 l_segment                     := NULL;
36672 l_ccid                        := NULL;
36673 l_adr_transaction_coa_id      := NULL;
36674 l_adr_accounting_coa_id       := NULL;
36675 l_adr_flexfield_segment_code  := NULL;
36676 l_adr_flex_value_set_id       := NULL;
36677 l_adr_value_type_code         := NULL;
36678 l_adr_value_combination_id    := NULL;
36679 l_adr_value_segment_code      := NULL;
36680 
36681 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
36682 l_bflow_class_code           := '';    -- 4219869 Business Flow
36683 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36684 l_budgetary_control_flag     := 'N';
36685 
36686 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36687 l_bflow_applied_to_amt       := NULL; -- 5132302
36688 l_entered_amt_idx            := NULL;          -- 4262811
36689 l_accted_amt_idx             := NULL;          -- 4262811
36690 l_acc_rev_flag               := NULL;          -- 4262811
36691 l_accrual_line_num           := NULL;          -- 4262811
36692 l_tmp_amt                    := NULL;          -- 4262811
36693 --
36694  
36695 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36696     l_balance_type_code <> 'B' THEN
36697 IF NVL(p_source_57,'
36698 ') =  'ISSUE_ISSUE' AND 
36699 (NVL(p_source_43,'
36700 ') <>  'Y' OR 
36701 NVL(p_source_43,'
36702 ') =  'Y' AND 
36703 NVL(p_source_116,'
36704 ') <>  'Y') AND 
36705 p_source_117 IS NULL AND 
36706 NVL(p_source_101,'
36707 ') =  'CASH' AND 
36708 NVL(p_source_125,'
36709 ') <>  'R' AND 
36710 NVL(p_source_126,'
36711 ') <>  'PAYMENTCARD'
36712  THEN 
36713 
36714    --
36715    XLA_AE_LINES_PKG.SetNewLine;
36716 
36717    p_balance_type_code          := l_balance_type_code;
36718    -- set the flag so later we will know whether the gain loss line needs to be created
36719    
36720    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36721      p_actual_flag :='A';
36722    END IF;
36723 
36724    --
36725    -- bulk performance
36726    --
36727    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36728                                       p_header_num   => 0); -- 4262811
36729    --
36730    -- set accounting line options
36731    --
36732    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36733            p_natural_side_code          => 'C'
36734          , p_gain_or_loss_flag          => 'N'
36735          , p_gl_transfer_mode_code      => 'S'
36736          , p_acct_entry_type_code       => 'A'
36737          , p_switch_side_flag           => 'Y'
36738          , p_merge_duplicate_code       => 'A'
36739          );
36740    --
36741    l_acc_rev_natural_side_code := 'D';  -- 4262811
36742    -- 
36743    --
36744    -- set accounting line type info
36745    --
36746    xla_ae_lines_pkg.SetAcctLineType
36747       (p_component_type             => l_component_type
36748       ,p_event_type_code            => l_event_type_code
36749       ,p_line_definition_owner_code => l_line_definition_owner_code
36750       ,p_line_definition_code       => l_line_definition_code
36751       ,p_accounting_line_code       => l_component_code
36752       ,p_accounting_line_type_code  => l_component_type_code
36753       ,p_accounting_line_appl_id    => l_component_appl_id
36754       ,p_amb_context_code           => l_amb_context_code
36755       ,p_entity_code                => l_entity_code
36756       ,p_event_class_code           => l_event_class_code);
36757    --
36758    -- set accounting class
36759    --
36760    xla_ae_lines_pkg.SetAcctClass(
36761            p_accounting_class_code  => 'CASH'
36762          , p_ae_header_id           => l_ae_header_id
36763          );
36764 
36765    --
36766    -- set rounding class
36767    --
36768    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36769                       'CASH';
36770 
36771    --
36772    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36773    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36774    --
36775    -- bulk performance
36776    --
36777    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36778 
36779    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36783    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36780       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36781 
36782    -- 4955764
36784       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36785 
36786    -- 4458381 Public Sector Enh
36787    
36788    --
36789    -- set accounting attributes for the line type
36790    --
36791    l_entered_amt_idx := 10;
36792    l_accted_amt_idx  := 15;
36793    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
36794    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36795    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
36796    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
36797    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
36798    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
36799    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
36800    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36801    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
36802    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
36803    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
36804    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
36805    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
36806    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36807    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
36808    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
36809    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
36810    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
36811    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
36812    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
36813    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
36814    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
36815    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
36816    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
36817    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
36818    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
36819    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
36820    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
36821    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
36822    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
36823    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
36824    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
36825    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
36826    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
36827    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
36828    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
36829    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
36830    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
36831    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
36832    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
36833    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
36834    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
36835    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
36836    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
36837    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
36838    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
36839    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
36840    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
36841    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
36842 
36843    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36844    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36845 
36846    ---------------------------------------------------------------------------------------------------------------
36847    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36848    ---------------------------------------------------------------------------------------------------------------
36849    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36850 
36851    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36852    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36853 
36854    IF xla_accounting_cache_pkg.GetValueChar
36855          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36856          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36857    AND l_bflow_method_code = 'PRIOR_ENTRY'
36858 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36859    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36860          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36861        )
36862    THEN
36863          xla_ae_lines_pkg.BflowUpgEntry
36864            (p_business_method_code    => l_bflow_method_code
36865            ,p_business_class_code     => l_bflow_class_code
36866            ,p_balance_type            => l_balance_type_code);
36867    ELSE
36868       NULL;
36869 -- No business flow processing for business flow method of NONE.
36870    END IF;
36871 
36872    --
36876    --
36873    -- call analytical criteria
36874    --
36875    
36877    -- call description
36878    --
36879    -- No description or it is inherited.
36880    --
36881    -- call ADRs
36882    -- Bug 4922099
36883    --
36884    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36885         (NVL(l_actual_upg_option, 'N') = 'O') OR
36886         (NVL(l_enc_upg_option, 'N') = 'O')
36887       )
36888    THEN
36889    NULL;
36890    --
36891    --
36892    
36893   l_ccid := AcctDerRule_30(
36894            p_application_id           => p_application_id
36895          , p_ae_header_id             => l_ae_header_id 
36896 , p_source_12 => p_source_12
36897          , x_transaction_coa_id       => l_adr_transaction_coa_id
36898          , x_accounting_coa_id        => l_adr_accounting_coa_id
36899          , x_value_type_code          => l_adr_value_type_code
36900          , p_side                     => 'NA'
36901    );
36902 
36903    xla_ae_lines_pkg.set_ccid(
36904     p_code_combination_id          => l_ccid
36905   , p_value_type_code              => l_adr_value_type_code
36906   , p_transaction_coa_id           => l_adr_transaction_coa_id
36907   , p_accounting_coa_id            => l_adr_accounting_coa_id
36908   , p_adr_code                     => 'AP_CASH'
36909   , p_adr_type_code                => 'S'
36910   , p_component_type               => l_component_type
36911   , p_component_code               => l_component_code
36912   , p_component_type_code          => l_component_type_code
36913   , p_component_appl_id            => l_component_appl_id
36914   , p_amb_context_code             => l_amb_context_code
36915   , p_side                         => 'NA'
36916   );
36917 
36918 
36919    --
36920    --
36921    END IF;
36922    --
36923    -- Bug 4922099
36924    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36925           (NVL(l_enc_upg_option, 'N') = 'O')
36926         ) AND
36927         (l_bflow_method_code = 'PRIOR_ENTRY')
36928       )
36929    THEN
36930       IF
36931       --
36932       1 = 2
36933       --
36934       THEN
36935       xla_accounting_err_pkg.build_message
36936                                     (p_appli_s_name            => 'XLA'
36937                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36938                                     ,p_token_1                 => 'LINE_NUMBER'
36939                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36940                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36941                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36942                                                                              l_component_type
36943                                                                             ,l_component_code
36944                                                                             ,l_component_type_code
36945                                                                             ,l_component_appl_id
36946                                                                             ,l_amb_context_code
36947                                                                             ,l_entity_code
36948                                                                             ,l_event_class_code
36949                                                                            )
36950                                     ,p_token_3                 => 'OWNER'
36951                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36952                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36953                                                                           ,p_lookup_code    => l_component_type_code
36954                                                                          )
36955                                     ,p_token_4                 => 'PRODUCT_NAME'
36956                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36957                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36958                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36959                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36960                                     ,p_ae_header_id            =>  NULL
36961                                        );
36962 
36963         IF (C_LEVEL_ERROR>= g_log_level) THEN
36964                  trace
36965                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36966                       ,p_level    => C_LEVEL_ERROR
36967                       ,p_module   => l_log_module);
36968         END IF;
36969       END IF;
36970    END IF;
36971    --
36972    --
36973    ------------------------------------------------------------------------------------------------
36974    -- 4219869 Business Flow
36975    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36976    -- Prior Entry.  Currently, the following code is always generated.
36977    ------------------------------------------------------------------------------------------------
36978    XLA_AE_LINES_PKG.ValidateCurrentLine;
36979 
36980    ------------------------------------------------------------------------------------
36981    -- 4219869 Business Flow
36985 
36982    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36983    ------------------------------------------------------------------------------------
36984    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36986    ----------------------------------------------------------------------------------
36987    -- 4219869 Business Flow
36988    -- Update journal entry status -- Need to generate this within IF <condition>
36989    ----------------------------------------------------------------------------------
36990    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36991          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36992          ,p_balance_type_code => l_balance_type_code
36993          );
36994 
36995    -------------------------------------------------------------------------------------------
36996    -- 4262811 - Generate the Accrual Reversal lines
36997    -------------------------------------------------------------------------------------------
36998    BEGIN
36999       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37000                               (g_array_event(p_event_id).array_value_num('header_index'));
37001       IF l_acc_rev_flag IS NULL THEN
37002          l_acc_rev_flag := 'N';
37003       END IF;
37004    EXCEPTION
37005       WHEN OTHERS THEN
37006          l_acc_rev_flag := 'N';
37007    END;
37008    --
37009    IF (l_acc_rev_flag = 'Y') THEN
37010 
37011        -- 4645092  ------------------------------------------------------------------------------
37012        -- To allow MPA report to determine if it should generate report process
37013        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37014        ------------------------------------------------------------------------------------------
37015 
37016        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37017        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37018    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37019    -- call ADRs
37020    -- Bug 4922099
37021    --
37022    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37023         (NVL(l_actual_upg_option, 'N') = 'O') OR
37024         (NVL(l_enc_upg_option, 'N') = 'O')
37025       )
37026    THEN
37027    NULL;
37028    --
37029    --
37030    
37031   l_ccid := AcctDerRule_30(
37032            p_application_id           => p_application_id
37033          , p_ae_header_id             => l_ae_header_id 
37034 , p_source_12 => p_source_12
37035          , x_transaction_coa_id       => l_adr_transaction_coa_id
37036          , x_accounting_coa_id        => l_adr_accounting_coa_id
37037          , x_value_type_code          => l_adr_value_type_code
37038          , p_side                     => 'NA'
37039    );
37040 
37041    xla_ae_lines_pkg.set_ccid(
37042     p_code_combination_id          => l_ccid
37043   , p_value_type_code              => l_adr_value_type_code
37044   , p_transaction_coa_id           => l_adr_transaction_coa_id
37045   , p_accounting_coa_id            => l_adr_accounting_coa_id
37046   , p_adr_code                     => 'AP_CASH'
37047   , p_adr_type_code                => 'S'
37048   , p_component_type               => l_component_type
37049   , p_component_code               => l_component_code
37050   , p_component_type_code          => l_component_type_code
37051   , p_component_appl_id            => l_component_appl_id
37052   , p_amb_context_code             => l_amb_context_code
37053   , p_side                         => 'NA'
37054   );
37055 
37056 
37057    --
37058    --
37059    END IF;
37060 
37061        --
37062        -- Update the line information that should be overwritten
37063        --
37064        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37065                                          p_header_num   => 1);
37066        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37067 
37068        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37069 
37070        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37071           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37072        END IF;
37073 
37074       --
37075       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37076       --
37077       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37078           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37079       ELSE
37080           ---------------------------------------------------------------------------------------------------
37081           -- 4262811a Switch Sign
37082           ---------------------------------------------------------------------------------------------------
37083           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37084           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37085                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37086           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37087                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37088           -- 5132302
37089           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37093 
37090                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37091 
37092       END IF;
37094       -- 4955764
37095       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37097 
37098 
37099       XLA_AE_LINES_PKG.ValidateCurrentLine;
37100       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37101 
37102       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37103                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37104                ,p_balance_type_code => l_balance_type_code);
37105 
37106    END IF;
37107 
37108    -----------------------------------------------------------------------------------------
37109    -- 4262811 Multiperiod Accounting
37110    -----------------------------------------------------------------------------------------
37111      -- No MPA option is assigned.
37112 
37113 
37114 END IF;
37115 END IF;
37116 --
37117 
37118 --
37119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37120    trace
37121       (p_msg      => 'END of AcctLineType_94'
37122       ,p_level    => C_LEVEL_PROCEDURE
37123       ,p_module   => l_log_module);
37124 END IF;
37125 --
37126 EXCEPTION
37127   WHEN xla_exceptions_pkg.application_exception THEN
37128       RAISE;
37129   WHEN OTHERS THEN
37130        xla_exceptions_pkg.raise_message
37131            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_94');
37132 END AcctLineType_94;
37133 --
37134 
37135 ---------------------------------------
37136 --
37137 -- PRIVATE FUNCTION
37138 --         AcctLineType_95
37139 --
37140 ---------------------------------------
37141 PROCEDURE AcctLineType_95 (
37142   p_application_id        IN NUMBER
37143  ,p_event_id              IN NUMBER
37144  ,p_calculate_acctd_flag  IN VARCHAR2
37145  ,p_calculate_g_l_flag    IN VARCHAR2
37146  ,p_actual_flag           IN OUT VARCHAR2
37147  ,p_balance_type_code     OUT VARCHAR2
37148  ,p_gain_or_loss_ref      OUT VARCHAR2
37149  
37150 --Payment Currency Code
37151  , p_source_8            IN VARCHAR2
37152 --Automatic Offsets Value
37153  , p_source_10            IN VARCHAR2
37154  , p_source_10_meaning    IN VARCHAR2
37155 --Bank Cash Account
37156  , p_source_12            IN NUMBER
37157 --When to Account for Payment Option
37158  , p_source_57            IN VARCHAR2
37159 --Accounting Reversal Indicator
37160  , p_source_58            IN VARCHAR2
37161 --Distribution Link Type
37162  , p_source_60            IN VARCHAR2
37163 --Override Accounted Amount Indicator
37164  , p_source_85            IN VARCHAR2
37165  , p_source_85_meaning    IN VARCHAR2
37166 --Third Party Type
37167  , p_source_88            IN VARCHAR2
37168 --Invoice Distribution Tax Line Identifier
37169  , p_source_91            IN NUMBER
37170 --Invoice Distribution Tax Distribution Identifier from Tax
37171  , p_source_92            IN NUMBER
37172 --Invoice Distribution Summary Tax Line Identifier
37173  , p_source_93            IN NUMBER
37174 --Business Flow Accounts Payable Application Identifier
37175  , p_source_96            IN NUMBER
37176 --Business Flow Invoice Distribution Type
37177  , p_source_97            IN VARCHAR2
37178 --Business Flow Invoice Entity Code
37179  , p_source_98            IN VARCHAR2
37180 --Business Flow Invoice Distribution Identifier
37181  , p_source_99            IN NUMBER
37182 --Business Flow Invoice Identifier
37183  , p_source_100            IN NUMBER
37184 --Payment Distribution Type
37185  , p_source_101            IN VARCHAR2
37186  , p_source_101_meaning    IN VARCHAR2
37187 --Payment Distribution Amount
37188  , p_source_102            IN NUMBER
37189 --Payment Distribution Identifier
37190  , p_source_107            IN NUMBER
37191 --Payment Supplier Identifier
37192  , p_source_113            IN NUMBER
37193 --Payment Supplier Site Identifier
37194  , p_source_114            IN NUMBER
37195 --Payment Distribution Reversed Identifier
37196  , p_source_115            IN NUMBER
37197 --Pooled Bank Account Option
37198  , p_source_116            IN VARCHAR2
37199  , p_source_116_meaning    IN VARCHAR2
37200 --Payment Maturity Date
37201  , p_source_117            IN DATE
37202 --Payment Distribution (Payment Rate) Ledger Amount
37203  , p_source_118            IN NUMBER
37204 --Payment Exchange Date
37205  , p_source_120            IN DATE
37206 --Payment Exchange Rate
37207  , p_source_121            IN NUMBER
37208 --Payment Exchange Rate Type
37209  , p_source_122            IN VARCHAR2
37210 --Payment Type
37211  , p_source_125            IN VARCHAR2
37212  , p_source_125_meaning    IN VARCHAR2
37213 --Payment Processing Type
37214  , p_source_126            IN VARCHAR2
37215 --Invoice Distribution Amount of the Payment Distribution
37216  , p_source_127            IN NUMBER
37217 )
37218 IS
37219 
37220 l_component_type              VARCHAR2(80);
37221 l_component_code              VARCHAR2(30);
37222 l_component_type_code         VARCHAR2(1);
37223 l_component_appl_id           INTEGER;
37224 l_amb_context_code            VARCHAR2(30);
37225 l_entity_code                 VARCHAR2(30);
37226 l_event_class_code            VARCHAR2(30);
37227 l_ae_header_id                NUMBER;
37228 l_event_type_code             VARCHAR2(30);
37232 -- adr variables
37229 l_line_definition_code        VARCHAR2(30);
37230 l_line_definition_owner_code  VARCHAR2(1);
37231 --
37233 l_segment                     VARCHAR2(30);
37234 l_ccid                        NUMBER;
37235 l_adr_transaction_coa_id      NUMBER;
37236 l_adr_accounting_coa_id       NUMBER;
37237 l_adr_flexfield_segment_code  VARCHAR2(30);
37238 l_adr_flex_value_set_id       NUMBER;
37239 l_adr_value_type_code         VARCHAR2(30);
37240 l_adr_value_combination_id    NUMBER;
37241 l_adr_value_segment_code      VARCHAR2(30);
37242 
37243 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37244 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37245 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37246 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37247 
37248 -- 4262811 Variables ------------------------------------------------------------------------------------------
37249 l_entered_amt_idx             NUMBER;
37250 l_accted_amt_idx              NUMBER;
37251 l_acc_rev_flag                VARCHAR2(1);
37252 l_accrual_line_num            NUMBER;
37253 l_tmp_amt                     NUMBER;
37254 l_acc_rev_natural_side_code   VARCHAR2(1);
37255 
37256 l_num_entries                 NUMBER;
37257 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37258 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37259 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37260 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37261 l_recog_line_1                NUMBER;
37262 l_recog_line_2                NUMBER;
37263 
37264 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37265 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37266 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37267 
37268 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37269 
37270 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37271 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37272 
37273 ---------------------------------------------------------------------------------------------------------------
37274 
37275 
37276 --
37277 -- bulk performance
37278 --
37279 l_balance_type_code           VARCHAR2(1);
37280 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37281 l_log_module                  VARCHAR2(240);
37282 
37283 --
37284 -- Upgrade strategy
37285 --
37286 l_actual_upg_option           VARCHAR2(1);
37287 l_enc_upg_option           VARCHAR2(1);
37288 
37289 --
37290 BEGIN
37291 --
37292 IF g_log_enabled THEN
37293       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
37294 END IF;
37295 --
37296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37297 
37298       trace
37299          (p_msg      => 'BEGIN of AcctLineType_95'
37300          ,p_level    => C_LEVEL_PROCEDURE
37301          ,p_module   => l_log_module);
37302 
37303 END IF;
37304 --
37305 l_component_type             := 'AMB_JLT';
37306 l_component_code             := 'AP_CASH_PMT_AOS_AS';
37307 l_component_type_code        := 'S';
37308 l_component_appl_id          :=  200;
37309 l_amb_context_code           := 'DEFAULT';
37310 l_entity_code                := 'AP_PAYMENTS';
37311 l_event_class_code           := 'PAYMENTS';
37312 l_event_type_code            := 'PAYMENTS_ALL';
37313 l_line_definition_owner_code := 'S';
37314 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
37315 --
37316 l_balance_type_code          := 'A';
37317 l_segment                     := NULL;
37318 l_ccid                        := NULL;
37319 l_adr_transaction_coa_id      := NULL;
37320 l_adr_accounting_coa_id       := NULL;
37321 l_adr_flexfield_segment_code  := NULL;
37322 l_adr_flex_value_set_id       := NULL;
37323 l_adr_value_type_code         := NULL;
37324 l_adr_value_combination_id    := NULL;
37325 l_adr_value_segment_code      := NULL;
37326 
37327 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
37328 l_bflow_class_code           := '';    -- 4219869 Business Flow
37329 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37330 l_budgetary_control_flag     := 'N';
37331 
37332 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37333 l_bflow_applied_to_amt       := NULL; -- 5132302
37334 l_entered_amt_idx            := NULL;          -- 4262811
37335 l_accted_amt_idx             := NULL;          -- 4262811
37336 l_acc_rev_flag               := NULL;          -- 4262811
37337 l_accrual_line_num           := NULL;          -- 4262811
37338 l_tmp_amt                    := NULL;          -- 4262811
37339 --
37340  
37341 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37342     l_balance_type_code <> 'B' THEN
37343 IF NVL(p_source_57,'
37344 ') =  'ISSUE_ISSUE' AND 
37345 (NVL(p_source_116,'
37346 ') =  'Y' AND 
37347 NVL(p_source_10,'
37348 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
37349 p_source_117 IS NULL AND 
37350 NVL(p_source_101,'
37351 ') =  'CASH' AND 
37352 NVL(p_source_125,'
37353 ') <>  'R' AND 
37354 NVL(p_source_126,'
37355 ') <>  'PAYMENTCARD'
37356  THEN 
37357 
37358    --
37359    XLA_AE_LINES_PKG.SetNewLine;
37363    
37360 
37361    p_balance_type_code          := l_balance_type_code;
37362    -- set the flag so later we will know whether the gain loss line needs to be created
37364    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37365      p_actual_flag :='A';
37366    END IF;
37367 
37368    --
37369    -- bulk performance
37370    --
37371    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37372                                       p_header_num   => 0); -- 4262811
37373    --
37374    -- set accounting line options
37375    --
37376    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37377            p_natural_side_code          => 'C'
37378          , p_gain_or_loss_flag          => 'N'
37379          , p_gl_transfer_mode_code      => 'S'
37380          , p_acct_entry_type_code       => 'A'
37381          , p_switch_side_flag           => 'Y'
37382          , p_merge_duplicate_code       => 'A'
37383          );
37384    --
37385    l_acc_rev_natural_side_code := 'D';  -- 4262811
37386    -- 
37387    --
37388    -- set accounting line type info
37389    --
37390    xla_ae_lines_pkg.SetAcctLineType
37391       (p_component_type             => l_component_type
37392       ,p_event_type_code            => l_event_type_code
37393       ,p_line_definition_owner_code => l_line_definition_owner_code
37394       ,p_line_definition_code       => l_line_definition_code
37395       ,p_accounting_line_code       => l_component_code
37396       ,p_accounting_line_type_code  => l_component_type_code
37397       ,p_accounting_line_appl_id    => l_component_appl_id
37398       ,p_amb_context_code           => l_amb_context_code
37399       ,p_entity_code                => l_entity_code
37400       ,p_event_class_code           => l_event_class_code);
37401    --
37402    -- set accounting class
37403    --
37404    xla_ae_lines_pkg.SetAcctClass(
37405            p_accounting_class_code  => 'CASH'
37406          , p_ae_header_id           => l_ae_header_id
37407          );
37408 
37409    --
37410    -- set rounding class
37411    --
37412    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37413                       'CASH';
37414 
37415    --
37416    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37417    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37418    --
37419    -- bulk performance
37420    --
37421    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37422 
37423    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37424       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37425 
37426    -- 4955764
37427    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37428       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37429 
37430    -- 4458381 Public Sector Enh
37431    
37432    --
37433    -- set accounting attributes for the line type
37434    --
37435    l_entered_amt_idx := 10;
37436    l_accted_amt_idx  := 15;
37437    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
37438    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37439    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
37440    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37441    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
37442    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37443    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
37444    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37445    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
37446    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37447    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
37448    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37449    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
37450    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37451    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
37452    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37453    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
37454    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37455    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
37456    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37457    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
37458    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37459    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
37460    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
37461    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
37462    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
37463    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
37464    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
37465    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
37466    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
37467    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
37468    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
37472    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
37469    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
37470    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
37471    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
37473    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
37474    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
37475    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
37476    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
37477    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
37478    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
37479    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
37480    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
37481    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
37482    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
37483    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
37484    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
37485    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
37486 
37487    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37488    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37489 
37490    ---------------------------------------------------------------------------------------------------------------
37491    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37492    ---------------------------------------------------------------------------------------------------------------
37493    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37494 
37495    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37496    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37497 
37498    IF xla_accounting_cache_pkg.GetValueChar
37499          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37500          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37501    AND l_bflow_method_code = 'PRIOR_ENTRY'
37502 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37503    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37504          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37505        )
37506    THEN
37507          xla_ae_lines_pkg.BflowUpgEntry
37508            (p_business_method_code    => l_bflow_method_code
37509            ,p_business_class_code     => l_bflow_class_code
37510            ,p_balance_type            => l_balance_type_code);
37511    ELSE
37512       NULL;
37513 XLA_AE_LINES_PKG.business_flow_validation(
37514                                 p_business_method_code     => l_bflow_method_code
37515                                ,p_business_class_code      => l_bflow_class_code
37516                                ,p_inherit_description_flag => l_inherit_desc_flag);
37517    END IF;
37518 
37519    --
37520    -- call analytical criteria
37521    --
37522    
37523    --
37524    -- call description
37525    --
37526    -- No description or it is inherited.
37527    --
37528    -- call ADRs
37529    -- Bug 4922099
37530    --
37531    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37532         (NVL(l_actual_upg_option, 'N') = 'O') OR
37533         (NVL(l_enc_upg_option, 'N') = 'O')
37534       )
37535    THEN
37536    NULL;
37537    --
37538    --
37539    
37540    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
37541      p_code_combination_id      => TO_NUMBER(C_NUM)
37542    , p_value_type_code          => NULL
37543    , p_transaction_coa_id       => null
37544    , p_accounting_coa_id        => null
37545    , p_adr_code                 => NULL
37546    , p_adr_type_code            => NULL
37547    , p_component_type           => l_component_type
37548    , p_component_code           => l_component_code
37549    , p_component_type_code      => l_component_type_code
37550    , p_component_appl_id        => l_component_appl_id
37551    , p_amb_context_code         => l_amb_context_code
37552    , p_side                     => NULL
37553    );
37554 
37555    
37556   -- initialise segments
37557   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37558   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37559   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37560   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37561   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37562   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37563   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37564   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37565   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37566   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37567   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37568   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37569   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37573   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37570   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37571   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37572   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37574   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37575   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37576   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37577   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37578   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37579   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37580   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37581   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37582   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37583   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37584   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37585   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37586   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37587   --
37588 
37589    --
37590 
37591 
37592    l_segment := AcctDerRule_6(
37593            p_application_id           => p_application_id
37594          , p_ae_header_id             => l_ae_header_id 
37595 , p_source_12 => p_source_12
37596          , x_transaction_coa_id       => l_adr_transaction_coa_id
37597          , x_accounting_coa_id        => l_adr_accounting_coa_id
37598          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37599          , x_flex_value_set_id        => l_adr_flex_value_set_id
37600          , x_value_type_code          => l_adr_value_type_code
37601          , x_value_combination_id     => l_adr_value_combination_id
37602          , x_value_segment_code       => l_adr_value_segment_code
37603          , p_side                     => 'NA'
37604          , p_override_seg_flag        => 'Y'
37605    );
37606 
37607    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37608 
37609       xla_ae_lines_pkg.set_segment(
37610           p_to_segment_code         => 'GL_ACCOUNT'
37611         , p_segment_value           => l_segment
37612         , p_from_segment_code       => l_adr_value_segment_code
37613         , p_from_combination_id     => l_adr_value_combination_id
37614         , p_value_type_code         => l_adr_value_type_code
37615         , p_transaction_coa_id      => l_adr_transaction_coa_id
37616         , p_accounting_coa_id       => l_adr_accounting_coa_id
37617         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37618         , p_flex_value_set_id       => l_adr_flex_value_set_id
37619         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
37620         , p_adr_type_code           => 'S'
37621         , p_component_type          => l_component_type
37622         , p_component_code          => l_component_code
37623         , p_component_type_code     => l_component_type_code
37624         , p_component_appl_id       => l_component_appl_id
37625         , p_amb_context_code        => l_amb_context_code
37626         , p_entity_code             => 'AP_PAYMENTS'
37627         , p_event_class_code        => 'PAYMENTS'
37628         , p_side                    => 'NA'
37629         );
37630 
37631   END IF;
37632 
37633    --
37634    --
37635    END IF;
37636    --
37637    -- Bug 4922099
37638    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37639           (NVL(l_enc_upg_option, 'N') = 'O')
37640         ) AND
37641         (l_bflow_method_code = 'PRIOR_ENTRY')
37642       )
37643    THEN
37644       IF
37645       --
37646       1 = 2
37647       --
37648       THEN
37649       xla_accounting_err_pkg.build_message
37650                                     (p_appli_s_name            => 'XLA'
37651                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37652                                     ,p_token_1                 => 'LINE_NUMBER'
37653                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37654                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37655                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37656                                                                              l_component_type
37657                                                                             ,l_component_code
37658                                                                             ,l_component_type_code
37659                                                                             ,l_component_appl_id
37660                                                                             ,l_amb_context_code
37661                                                                             ,l_entity_code
37662                                                                             ,l_event_class_code
37663                                                                            )
37664                                     ,p_token_3                 => 'OWNER'
37665                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37669                                     ,p_token_4                 => 'PRODUCT_NAME'
37666                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37667                                                                           ,p_lookup_code    => l_component_type_code
37668                                                                          )
37670                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37671                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37672                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37673                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37674                                     ,p_ae_header_id            =>  NULL
37675                                        );
37676 
37677         IF (C_LEVEL_ERROR>= g_log_level) THEN
37678                  trace
37679                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37680                       ,p_level    => C_LEVEL_ERROR
37681                       ,p_module   => l_log_module);
37682         END IF;
37683       END IF;
37684    END IF;
37685    --
37686    --
37687    ------------------------------------------------------------------------------------------------
37688    -- 4219869 Business Flow
37689    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37690    -- Prior Entry.  Currently, the following code is always generated.
37691    ------------------------------------------------------------------------------------------------
37692    XLA_AE_LINES_PKG.ValidateCurrentLine;
37693 
37694    ------------------------------------------------------------------------------------
37695    -- 4219869 Business Flow
37696    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37697    ------------------------------------------------------------------------------------
37698    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37699 
37700    ----------------------------------------------------------------------------------
37701    -- 4219869 Business Flow
37702    -- Update journal entry status -- Need to generate this within IF <condition>
37703    ----------------------------------------------------------------------------------
37704    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37705          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37706          ,p_balance_type_code => l_balance_type_code
37707          );
37708 
37709    -------------------------------------------------------------------------------------------
37710    -- 4262811 - Generate the Accrual Reversal lines
37711    -------------------------------------------------------------------------------------------
37712    BEGIN
37713       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37714                               (g_array_event(p_event_id).array_value_num('header_index'));
37715       IF l_acc_rev_flag IS NULL THEN
37716          l_acc_rev_flag := 'N';
37717       END IF;
37718    EXCEPTION
37719       WHEN OTHERS THEN
37720          l_acc_rev_flag := 'N';
37721    END;
37722    --
37723    IF (l_acc_rev_flag = 'Y') THEN
37724 
37725        -- 4645092  ------------------------------------------------------------------------------
37726        -- To allow MPA report to determine if it should generate report process
37727        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37728        ------------------------------------------------------------------------------------------
37729 
37730        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37731        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37732    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37733    -- call ADRs
37734    -- Bug 4922099
37735    --
37736    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37737         (NVL(l_actual_upg_option, 'N') = 'O') OR
37738         (NVL(l_enc_upg_option, 'N') = 'O')
37739       )
37740    THEN
37741    NULL;
37742    --
37743    --
37744    
37745    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
37746      p_code_combination_id      => TO_NUMBER(C_NUM)
37747    , p_value_type_code          => NULL
37748    , p_transaction_coa_id       => null
37749    , p_accounting_coa_id        => null
37750    , p_adr_code                 => NULL
37751    , p_adr_type_code            => NULL
37752    , p_component_type           => l_component_type
37753    , p_component_code           => l_component_code
37754    , p_component_type_code      => l_component_type_code
37755    , p_component_appl_id        => l_component_appl_id
37756    , p_amb_context_code         => l_amb_context_code
37757    , p_side                     => NULL
37758    );
37759 
37760    
37761   -- initialise segments
37762   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37763   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37764   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37765   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37766   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37767   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37768   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37772   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37769   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37770   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37771   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37773   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37774   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37775   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37776   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37777   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37778   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37779   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37780   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37781   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37782   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37783   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37784   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37785   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37786   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37787   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37788   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37789   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37790   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37791   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37792   --
37793 
37794    --
37795 
37796 
37797    l_segment := AcctDerRule_6(
37798            p_application_id           => p_application_id
37799          , p_ae_header_id             => l_ae_header_id 
37800 , p_source_12 => p_source_12
37801          , x_transaction_coa_id       => l_adr_transaction_coa_id
37802          , x_accounting_coa_id        => l_adr_accounting_coa_id
37803          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37804          , x_flex_value_set_id        => l_adr_flex_value_set_id
37805          , x_value_type_code          => l_adr_value_type_code
37806          , x_value_combination_id     => l_adr_value_combination_id
37807          , x_value_segment_code       => l_adr_value_segment_code
37808          , p_side                     => 'NA'
37809          , p_override_seg_flag        => 'Y'
37810    );
37811 
37812    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37813 
37814       xla_ae_lines_pkg.set_segment(
37815           p_to_segment_code         => 'GL_ACCOUNT'
37816         , p_segment_value           => l_segment
37817         , p_from_segment_code       => l_adr_value_segment_code
37818         , p_from_combination_id     => l_adr_value_combination_id
37819         , p_value_type_code         => l_adr_value_type_code
37820         , p_transaction_coa_id      => l_adr_transaction_coa_id
37821         , p_accounting_coa_id       => l_adr_accounting_coa_id
37822         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37823         , p_flex_value_set_id       => l_adr_flex_value_set_id
37824         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
37825         , p_adr_type_code           => 'S'
37826         , p_component_type          => l_component_type
37827         , p_component_code          => l_component_code
37828         , p_component_type_code     => l_component_type_code
37829         , p_component_appl_id       => l_component_appl_id
37830         , p_amb_context_code        => l_amb_context_code
37831         , p_entity_code             => 'AP_PAYMENTS'
37832         , p_event_class_code        => 'PAYMENTS'
37833         , p_side                    => 'NA'
37834         );
37835 
37836   END IF;
37837 
37838    --
37839    --
37840    END IF;
37841 
37842        --
37843        -- Update the line information that should be overwritten
37844        --
37845        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37846                                          p_header_num   => 1);
37847        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37848 
37849        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37850 
37851        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37852           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37853        END IF;
37854 
37855       --
37856       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37857       --
37858       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37859           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37860       ELSE
37861           ---------------------------------------------------------------------------------------------------
37862           -- 4262811a Switch Sign
37863           ---------------------------------------------------------------------------------------------------
37867           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37864           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37865           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37866                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37868                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37869           -- 5132302
37870           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37871                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37872 
37873       END IF;
37874 
37875       -- 4955764
37876       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37877       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37878 
37879 
37880       XLA_AE_LINES_PKG.ValidateCurrentLine;
37881       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37882 
37883       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37884                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37885                ,p_balance_type_code => l_balance_type_code);
37886 
37887    END IF;
37888 
37889    -----------------------------------------------------------------------------------------
37890    -- 4262811 Multiperiod Accounting
37891    -----------------------------------------------------------------------------------------
37892      -- No MPA option is assigned.
37893 
37894 
37895 END IF;
37896 END IF;
37897 --
37898 
37899 --
37900 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37901    trace
37902       (p_msg      => 'END of AcctLineType_95'
37903       ,p_level    => C_LEVEL_PROCEDURE
37904       ,p_module   => l_log_module);
37905 END IF;
37906 --
37907 EXCEPTION
37908   WHEN xla_exceptions_pkg.application_exception THEN
37909       RAISE;
37910   WHEN OTHERS THEN
37911        xla_exceptions_pkg.raise_message
37912            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_95');
37913 END AcctLineType_95;
37914 --
37915 
37916 ---------------------------------------
37917 --
37918 -- PRIVATE FUNCTION
37919 --         AcctLineType_96
37920 --
37921 ---------------------------------------
37922 PROCEDURE AcctLineType_96 (
37923   p_application_id        IN NUMBER
37924  ,p_event_id              IN NUMBER
37925  ,p_calculate_acctd_flag  IN VARCHAR2
37926  ,p_calculate_g_l_flag    IN VARCHAR2
37927  ,p_actual_flag           IN OUT VARCHAR2
37928  ,p_balance_type_code     OUT VARCHAR2
37929  ,p_gain_or_loss_ref      OUT VARCHAR2
37930  
37931 --Payment Currency Code
37932  , p_source_8            IN VARCHAR2
37933 --Automatic Offsets Value
37934  , p_source_10            IN VARCHAR2
37935  , p_source_10_meaning    IN VARCHAR2
37936 --Bank Cash Account
37937  , p_source_12            IN NUMBER
37938 --When to Account for Payment Option
37939  , p_source_57            IN VARCHAR2
37940 --Accounting Reversal Indicator
37941  , p_source_58            IN VARCHAR2
37942 --Distribution Link Type
37943  , p_source_60            IN VARCHAR2
37944 --Override Accounted Amount Indicator
37945  , p_source_85            IN VARCHAR2
37946  , p_source_85_meaning    IN VARCHAR2
37947 --Third Party Type
37948  , p_source_88            IN VARCHAR2
37949 --Invoice Distribution Tax Line Identifier
37950  , p_source_91            IN NUMBER
37951 --Invoice Distribution Tax Distribution Identifier from Tax
37952  , p_source_92            IN NUMBER
37953 --Invoice Distribution Summary Tax Line Identifier
37954  , p_source_93            IN NUMBER
37955 --Business Flow Accounts Payable Application Identifier
37956  , p_source_96            IN NUMBER
37957 --Business Flow Invoice Distribution Type
37958  , p_source_97            IN VARCHAR2
37959 --Business Flow Invoice Entity Code
37960  , p_source_98            IN VARCHAR2
37961 --Business Flow Invoice Distribution Identifier
37962  , p_source_99            IN NUMBER
37963 --Business Flow Invoice Identifier
37964  , p_source_100            IN NUMBER
37965 --Payment Distribution Type
37966  , p_source_101            IN VARCHAR2
37967  , p_source_101_meaning    IN VARCHAR2
37968 --Payment Distribution Amount
37969  , p_source_102            IN NUMBER
37970 --Payment Distribution Identifier
37971  , p_source_107            IN NUMBER
37972 --Payment Supplier Identifier
37973  , p_source_113            IN NUMBER
37974 --Payment Supplier Site Identifier
37975  , p_source_114            IN NUMBER
37976 --Payment Distribution Reversed Identifier
37977  , p_source_115            IN NUMBER
37978 --Pooled Bank Account Option
37979  , p_source_116            IN VARCHAR2
37980  , p_source_116_meaning    IN VARCHAR2
37981 --Payment Maturity Date
37982  , p_source_117            IN DATE
37983 --Payment Distribution (Payment Rate) Ledger Amount
37984  , p_source_118            IN NUMBER
37985 --Payment Exchange Date
37986  , p_source_120            IN DATE
37987 --Payment Exchange Rate
37988  , p_source_121            IN NUMBER
37989 --Payment Exchange Rate Type
37990  , p_source_122            IN VARCHAR2
37991 --Payment Type
37992  , p_source_125            IN VARCHAR2
37996 --Invoice Distribution Amount of the Payment Distribution
37993  , p_source_125_meaning    IN VARCHAR2
37994 --Payment Processing Type
37995  , p_source_126            IN VARCHAR2
37997  , p_source_127            IN NUMBER
37998 )
37999 IS
38000 
38001 l_component_type              VARCHAR2(80);
38002 l_component_code              VARCHAR2(30);
38003 l_component_type_code         VARCHAR2(1);
38004 l_component_appl_id           INTEGER;
38005 l_amb_context_code            VARCHAR2(30);
38006 l_entity_code                 VARCHAR2(30);
38007 l_event_class_code            VARCHAR2(30);
38008 l_ae_header_id                NUMBER;
38009 l_event_type_code             VARCHAR2(30);
38010 l_line_definition_code        VARCHAR2(30);
38011 l_line_definition_owner_code  VARCHAR2(1);
38012 --
38013 -- adr variables
38014 l_segment                     VARCHAR2(30);
38015 l_ccid                        NUMBER;
38016 l_adr_transaction_coa_id      NUMBER;
38017 l_adr_accounting_coa_id       NUMBER;
38018 l_adr_flexfield_segment_code  VARCHAR2(30);
38019 l_adr_flex_value_set_id       NUMBER;
38020 l_adr_value_type_code         VARCHAR2(30);
38021 l_adr_value_combination_id    NUMBER;
38022 l_adr_value_segment_code      VARCHAR2(30);
38023 
38024 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38025 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38026 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38027 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38028 
38029 -- 4262811 Variables ------------------------------------------------------------------------------------------
38030 l_entered_amt_idx             NUMBER;
38031 l_accted_amt_idx              NUMBER;
38032 l_acc_rev_flag                VARCHAR2(1);
38033 l_accrual_line_num            NUMBER;
38034 l_tmp_amt                     NUMBER;
38035 l_acc_rev_natural_side_code   VARCHAR2(1);
38036 
38037 l_num_entries                 NUMBER;
38038 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38039 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38040 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38041 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38042 l_recog_line_1                NUMBER;
38043 l_recog_line_2                NUMBER;
38044 
38045 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38046 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38047 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38048 
38049 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38050 
38051 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38052 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38053 
38054 ---------------------------------------------------------------------------------------------------------------
38055 
38056 
38057 --
38058 -- bulk performance
38059 --
38060 l_balance_type_code           VARCHAR2(1);
38061 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38062 l_log_module                  VARCHAR2(240);
38063 
38064 --
38065 -- Upgrade strategy
38066 --
38067 l_actual_upg_option           VARCHAR2(1);
38068 l_enc_upg_option           VARCHAR2(1);
38069 
38070 --
38071 BEGIN
38072 --
38073 IF g_log_enabled THEN
38074       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
38075 END IF;
38076 --
38077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38078 
38079       trace
38080          (p_msg      => 'BEGIN of AcctLineType_96'
38081          ,p_level    => C_LEVEL_PROCEDURE
38082          ,p_module   => l_log_module);
38083 
38084 END IF;
38085 --
38086 l_component_type             := 'AMB_JLT';
38087 l_component_code             := 'AP_CASH_PMT_AOS_BS';
38088 l_component_type_code        := 'S';
38089 l_component_appl_id          :=  200;
38090 l_amb_context_code           := 'DEFAULT';
38091 l_entity_code                := 'AP_PAYMENTS';
38092 l_event_class_code           := 'PAYMENTS';
38093 l_event_type_code            := 'PAYMENTS_ALL';
38094 l_line_definition_owner_code := 'S';
38095 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
38096 --
38097 l_balance_type_code          := 'A';
38098 l_segment                     := NULL;
38099 l_ccid                        := NULL;
38100 l_adr_transaction_coa_id      := NULL;
38101 l_adr_accounting_coa_id       := NULL;
38102 l_adr_flexfield_segment_code  := NULL;
38103 l_adr_flex_value_set_id       := NULL;
38104 l_adr_value_type_code         := NULL;
38105 l_adr_value_combination_id    := NULL;
38106 l_adr_value_segment_code      := NULL;
38107 
38108 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
38109 l_bflow_class_code           := '';    -- 4219869 Business Flow
38110 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38111 l_budgetary_control_flag     := 'N';
38112 
38113 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38114 l_bflow_applied_to_amt       := NULL; -- 5132302
38115 l_entered_amt_idx            := NULL;          -- 4262811
38116 l_accted_amt_idx             := NULL;          -- 4262811
38117 l_acc_rev_flag               := NULL;          -- 4262811
38121  
38118 l_accrual_line_num           := NULL;          -- 4262811
38119 l_tmp_amt                    := NULL;          -- 4262811
38120 --
38122 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38123     l_balance_type_code <> 'B' THEN
38124 IF NVL(p_source_57,'
38125 ') =  'ISSUE_ISSUE' AND 
38126 (NVL(p_source_116,'
38127 ') =  'Y' AND 
38128 NVL(p_source_10,'
38129 ') =  'BALANCING_SEGMENT') AND 
38130 p_source_117 IS NULL AND 
38131 NVL(p_source_101,'
38132 ') =  'CASH' AND 
38133 NVL(p_source_125,'
38134 ') <>  'R' AND 
38135 NVL(p_source_126,'
38136 ') <>  'PAYMENTCARD'
38137  THEN 
38138 
38139    --
38140    XLA_AE_LINES_PKG.SetNewLine;
38141 
38142    p_balance_type_code          := l_balance_type_code;
38143    -- set the flag so later we will know whether the gain loss line needs to be created
38144    
38145    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38146      p_actual_flag :='A';
38147    END IF;
38148 
38149    --
38150    -- bulk performance
38151    --
38152    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38153                                       p_header_num   => 0); -- 4262811
38154    --
38155    -- set accounting line options
38156    --
38157    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38158            p_natural_side_code          => 'C'
38159          , p_gain_or_loss_flag          => 'N'
38160          , p_gl_transfer_mode_code      => 'S'
38161          , p_acct_entry_type_code       => 'A'
38162          , p_switch_side_flag           => 'Y'
38163          , p_merge_duplicate_code       => 'A'
38164          );
38165    --
38166    l_acc_rev_natural_side_code := 'D';  -- 4262811
38167    -- 
38168    --
38169    -- set accounting line type info
38170    --
38171    xla_ae_lines_pkg.SetAcctLineType
38172       (p_component_type             => l_component_type
38173       ,p_event_type_code            => l_event_type_code
38174       ,p_line_definition_owner_code => l_line_definition_owner_code
38175       ,p_line_definition_code       => l_line_definition_code
38176       ,p_accounting_line_code       => l_component_code
38177       ,p_accounting_line_type_code  => l_component_type_code
38178       ,p_accounting_line_appl_id    => l_component_appl_id
38179       ,p_amb_context_code           => l_amb_context_code
38180       ,p_entity_code                => l_entity_code
38181       ,p_event_class_code           => l_event_class_code);
38182    --
38183    -- set accounting class
38184    --
38185    xla_ae_lines_pkg.SetAcctClass(
38186            p_accounting_class_code  => 'CASH'
38187          , p_ae_header_id           => l_ae_header_id
38188          );
38189 
38190    --
38191    -- set rounding class
38192    --
38193    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38194                       'CASH';
38195 
38196    --
38197    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38198    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38199    --
38200    -- bulk performance
38201    --
38202    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38203 
38204    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38205       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38206 
38207    -- 4955764
38208    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38209       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38210 
38211    -- 4458381 Public Sector Enh
38212    
38213    --
38214    -- set accounting attributes for the line type
38215    --
38216    l_entered_amt_idx := 10;
38217    l_accted_amt_idx  := 15;
38218    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
38219    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38220    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
38221    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
38222    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
38223    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
38224    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
38225    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38226    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
38227    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
38228    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
38229    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
38230    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
38231    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38232    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
38233    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
38234    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
38235    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
38236    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
38237    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
38238    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
38239    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
38240    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
38244    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
38241    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
38242    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
38243    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
38245    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
38246    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
38247    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
38248    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
38249    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
38250    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
38251    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
38252    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
38253    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
38254    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
38255    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
38256    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
38257    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
38258    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
38259    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
38260    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
38261    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
38262    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
38263    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
38264    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
38265    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
38266    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
38267 
38268    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38269    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38270 
38271    ---------------------------------------------------------------------------------------------------------------
38272    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38273    ---------------------------------------------------------------------------------------------------------------
38274    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38275 
38276    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38277    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38278 
38279    IF xla_accounting_cache_pkg.GetValueChar
38280          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38281          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38282    AND l_bflow_method_code = 'PRIOR_ENTRY'
38283 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38284    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38285          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38286        )
38287    THEN
38288          xla_ae_lines_pkg.BflowUpgEntry
38289            (p_business_method_code    => l_bflow_method_code
38290            ,p_business_class_code     => l_bflow_class_code
38291            ,p_balance_type            => l_balance_type_code);
38292    ELSE
38293       NULL;
38294 XLA_AE_LINES_PKG.business_flow_validation(
38295                                 p_business_method_code     => l_bflow_method_code
38296                                ,p_business_class_code      => l_bflow_class_code
38297                                ,p_inherit_description_flag => l_inherit_desc_flag);
38298    END IF;
38299 
38300    --
38301    -- call analytical criteria
38302    --
38303    
38304    --
38305    -- call description
38306    --
38307    -- No description or it is inherited.
38308    --
38309    -- call ADRs
38310    -- Bug 4922099
38311    --
38312    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38313         (NVL(l_actual_upg_option, 'N') = 'O') OR
38314         (NVL(l_enc_upg_option, 'N') = 'O')
38315       )
38316    THEN
38317    NULL;
38318    --
38319    --
38320    
38321   l_ccid := AcctDerRule_30(
38322            p_application_id           => p_application_id
38323          , p_ae_header_id             => l_ae_header_id 
38324 , p_source_12 => p_source_12
38325          , x_transaction_coa_id       => l_adr_transaction_coa_id
38326          , x_accounting_coa_id        => l_adr_accounting_coa_id
38327          , x_value_type_code          => l_adr_value_type_code
38328          , p_side                     => 'NA'
38329    );
38330 
38331    xla_ae_lines_pkg.set_ccid(
38332     p_code_combination_id          => l_ccid
38333   , p_value_type_code              => l_adr_value_type_code
38334   , p_transaction_coa_id           => l_adr_transaction_coa_id
38335   , p_accounting_coa_id            => l_adr_accounting_coa_id
38336   , p_adr_code                     => 'AP_CASH'
38337   , p_adr_type_code                => 'S'
38338   , p_component_type               => l_component_type
38339   , p_component_code               => l_component_code
38340   , p_component_type_code          => l_component_type_code
38341   , p_component_appl_id            => l_component_appl_id
38342   , p_amb_context_code             => l_amb_context_code
38343   , p_side                         => 'NA'
38344   );
38345 
38346 
38347    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
38348      p_to_segment_code         => 'GL_BALANCING'
38352    , p_value_type_code         => NULL
38349    , p_segment_value           => C_CHAR
38350    , p_from_segment_code       => NULL
38351    , p_from_combination_id     => NULL
38353    , p_transaction_coa_id      => null
38354    , p_accounting_coa_id       => null
38355    , p_flexfield_segment_code  => NULL
38356    , p_flex_value_set_id       => NULL
38357    , p_adr_code                => NULL
38358    , p_adr_type_code           => NULL
38359    , p_component_type          => l_component_type
38360    , p_component_code          => l_component_code
38361    , p_component_type_code     => l_component_type_code
38362    , p_component_appl_id       => l_component_appl_id
38363    , p_amb_context_code        => l_amb_context_code
38364    , p_entity_code             => 'AP_PAYMENTS'
38365    , p_event_class_code        => 'PAYMENTS'
38366    , p_side                    => 'NA'
38367    );
38368    --
38369 
38370 
38371    --
38372    --
38373    END IF;
38374    --
38375    -- Bug 4922099
38376    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38377           (NVL(l_enc_upg_option, 'N') = 'O')
38378         ) AND
38379         (l_bflow_method_code = 'PRIOR_ENTRY')
38380       )
38381    THEN
38382       IF
38383       --
38384       1 = 2
38385       --
38386       THEN
38387       xla_accounting_err_pkg.build_message
38388                                     (p_appli_s_name            => 'XLA'
38389                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38390                                     ,p_token_1                 => 'LINE_NUMBER'
38391                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38392                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38393                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38394                                                                              l_component_type
38395                                                                             ,l_component_code
38396                                                                             ,l_component_type_code
38397                                                                             ,l_component_appl_id
38398                                                                             ,l_amb_context_code
38399                                                                             ,l_entity_code
38400                                                                             ,l_event_class_code
38401                                                                            )
38402                                     ,p_token_3                 => 'OWNER'
38403                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38404                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38405                                                                           ,p_lookup_code    => l_component_type_code
38406                                                                          )
38407                                     ,p_token_4                 => 'PRODUCT_NAME'
38408                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38409                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38410                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38411                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38412                                     ,p_ae_header_id            =>  NULL
38413                                        );
38414 
38415         IF (C_LEVEL_ERROR>= g_log_level) THEN
38416                  trace
38417                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38418                       ,p_level    => C_LEVEL_ERROR
38419                       ,p_module   => l_log_module);
38420         END IF;
38421       END IF;
38422    END IF;
38423    --
38424    --
38425    ------------------------------------------------------------------------------------------------
38426    -- 4219869 Business Flow
38427    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38428    -- Prior Entry.  Currently, the following code is always generated.
38429    ------------------------------------------------------------------------------------------------
38430    XLA_AE_LINES_PKG.ValidateCurrentLine;
38431 
38432    ------------------------------------------------------------------------------------
38433    -- 4219869 Business Flow
38434    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38435    ------------------------------------------------------------------------------------
38436    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38437 
38438    ----------------------------------------------------------------------------------
38439    -- 4219869 Business Flow
38440    -- Update journal entry status -- Need to generate this within IF <condition>
38441    ----------------------------------------------------------------------------------
38442    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38443          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38444          ,p_balance_type_code => l_balance_type_code
38445          );
38446 
38447    -------------------------------------------------------------------------------------------
38448    -- 4262811 - Generate the Accrual Reversal lines
38449    -------------------------------------------------------------------------------------------
38453       IF l_acc_rev_flag IS NULL THEN
38450    BEGIN
38451       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38452                               (g_array_event(p_event_id).array_value_num('header_index'));
38454          l_acc_rev_flag := 'N';
38455       END IF;
38456    EXCEPTION
38457       WHEN OTHERS THEN
38458          l_acc_rev_flag := 'N';
38459    END;
38460    --
38461    IF (l_acc_rev_flag = 'Y') THEN
38462 
38463        -- 4645092  ------------------------------------------------------------------------------
38464        -- To allow MPA report to determine if it should generate report process
38465        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38466        ------------------------------------------------------------------------------------------
38467 
38468        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38469        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38470    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38471    -- call ADRs
38472    -- Bug 4922099
38473    --
38474    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38475         (NVL(l_actual_upg_option, 'N') = 'O') OR
38476         (NVL(l_enc_upg_option, 'N') = 'O')
38477       )
38478    THEN
38479    NULL;
38480    --
38481    --
38482    
38483   l_ccid := AcctDerRule_30(
38484            p_application_id           => p_application_id
38485          , p_ae_header_id             => l_ae_header_id 
38486 , p_source_12 => p_source_12
38487          , x_transaction_coa_id       => l_adr_transaction_coa_id
38488          , x_accounting_coa_id        => l_adr_accounting_coa_id
38489          , x_value_type_code          => l_adr_value_type_code
38490          , p_side                     => 'NA'
38491    );
38492 
38493    xla_ae_lines_pkg.set_ccid(
38494     p_code_combination_id          => l_ccid
38495   , p_value_type_code              => l_adr_value_type_code
38496   , p_transaction_coa_id           => l_adr_transaction_coa_id
38497   , p_accounting_coa_id            => l_adr_accounting_coa_id
38498   , p_adr_code                     => 'AP_CASH'
38499   , p_adr_type_code                => 'S'
38500   , p_component_type               => l_component_type
38501   , p_component_code               => l_component_code
38502   , p_component_type_code          => l_component_type_code
38503   , p_component_appl_id            => l_component_appl_id
38504   , p_amb_context_code             => l_amb_context_code
38505   , p_side                         => 'NA'
38506   );
38507 
38508 
38509    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
38510      p_to_segment_code         => 'GL_BALANCING'
38511    , p_segment_value           => C_CHAR
38512    , p_from_segment_code       => NULL
38513    , p_from_combination_id     => NULL
38514    , p_value_type_code         => NULL
38515    , p_transaction_coa_id      => null
38516    , p_accounting_coa_id       => null
38517    , p_flexfield_segment_code  => NULL
38518    , p_flex_value_set_id       => NULL
38519    , p_adr_code                => NULL
38520    , p_adr_type_code           => NULL
38521    , p_component_type          => l_component_type
38522    , p_component_code          => l_component_code
38523    , p_component_type_code     => l_component_type_code
38524    , p_component_appl_id       => l_component_appl_id
38525    , p_amb_context_code        => l_amb_context_code
38526    , p_entity_code             => 'AP_PAYMENTS'
38527    , p_event_class_code        => 'PAYMENTS'
38528    , p_side                    => 'NA'
38529    );
38530    --
38531 
38532 
38533    --
38534    --
38535    END IF;
38536 
38537        --
38538        -- Update the line information that should be overwritten
38539        --
38540        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38541                                          p_header_num   => 1);
38542        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38543 
38544        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38545 
38546        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38547           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38548        END IF;
38549 
38550       --
38551       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38552       --
38553       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38554           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38555       ELSE
38556           ---------------------------------------------------------------------------------------------------
38557           -- 4262811a Switch Sign
38558           ---------------------------------------------------------------------------------------------------
38559           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38560           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38561                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38562           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38566                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38563                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38564           -- 5132302
38565           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38567 
38568       END IF;
38569 
38570       -- 4955764
38571       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38572       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38573 
38574 
38575       XLA_AE_LINES_PKG.ValidateCurrentLine;
38576       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38577 
38578       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38579                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38580                ,p_balance_type_code => l_balance_type_code);
38581 
38582    END IF;
38583 
38584    -----------------------------------------------------------------------------------------
38585    -- 4262811 Multiperiod Accounting
38586    -----------------------------------------------------------------------------------------
38587      -- No MPA option is assigned.
38588 
38589 
38590 END IF;
38591 END IF;
38592 --
38593 
38594 --
38595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38596    trace
38597       (p_msg      => 'END of AcctLineType_96'
38598       ,p_level    => C_LEVEL_PROCEDURE
38599       ,p_module   => l_log_module);
38600 END IF;
38601 --
38602 EXCEPTION
38603   WHEN xla_exceptions_pkg.application_exception THEN
38604       RAISE;
38605   WHEN OTHERS THEN
38606        xla_exceptions_pkg.raise_message
38607            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_96');
38608 END AcctLineType_96;
38609 --
38610 
38611 ---------------------------------------
38612 --
38613 -- PRIVATE FUNCTION
38614 --         AcctLineType_97
38615 --
38616 ---------------------------------------
38617 PROCEDURE AcctLineType_97 (
38618   p_application_id        IN NUMBER
38619  ,p_event_id              IN NUMBER
38620  ,p_calculate_acctd_flag  IN VARCHAR2
38621  ,p_calculate_g_l_flag    IN VARCHAR2
38622  ,p_actual_flag           IN OUT VARCHAR2
38623  ,p_balance_type_code     OUT VARCHAR2
38624  ,p_gain_or_loss_ref      OUT VARCHAR2
38625  
38626 --Payment Currency Code
38627  , p_source_8            IN VARCHAR2
38628 --Bank Cash Account
38629  , p_source_12            IN NUMBER
38630 --Automatic Offsets Flag
38631  , p_source_43            IN VARCHAR2
38632  , p_source_43_meaning    IN VARCHAR2
38633 --When to Account for Payment Option
38634  , p_source_57            IN VARCHAR2
38635 --Accounting Reversal Indicator
38636  , p_source_58            IN VARCHAR2
38637 --Distribution Link Type
38638  , p_source_60            IN VARCHAR2
38639 --Override Accounted Amount Indicator
38640  , p_source_85            IN VARCHAR2
38641  , p_source_85_meaning    IN VARCHAR2
38642 --Third Party Type
38643  , p_source_88            IN VARCHAR2
38644 --Business Flow Accounts Payable Application Identifier
38645  , p_source_96            IN NUMBER
38646 --Payment Distribution Type
38647  , p_source_101            IN VARCHAR2
38648  , p_source_101_meaning    IN VARCHAR2
38649 --Payment Distribution Amount
38650  , p_source_102            IN NUMBER
38651 --Business Flow Payment Distribution Type
38652  , p_source_103            IN VARCHAR2
38653 --Business Flow Payment Entity Code
38654  , p_source_104            IN VARCHAR2
38655 --Business Flow Payment Distribution Identifier
38656  , p_source_105            IN NUMBER
38657 --Business Flow Payment Identifier
38658  , p_source_106            IN NUMBER
38659 --Payment Distribution Identifier
38660  , p_source_107            IN NUMBER
38661 --Payment Supplier Identifier
38662  , p_source_113            IN NUMBER
38663 --Payment Supplier Site Identifier
38664  , p_source_114            IN NUMBER
38665 --Payment Distribution Reversed Identifier
38666  , p_source_115            IN NUMBER
38667 --Pooled Bank Account Option
38668  , p_source_116            IN VARCHAR2
38669  , p_source_116_meaning    IN VARCHAR2
38670 --Payment Maturity Date
38671  , p_source_117            IN DATE
38672 --Payment Exchange Date
38673  , p_source_120            IN DATE
38674 --Payment Exchange Rate
38675  , p_source_121            IN NUMBER
38676 --Payment Exchange Rate Type
38677  , p_source_122            IN VARCHAR2
38678 --Payment Distribution (Matured Rate) Ledger Amount
38679  , p_source_124            IN NUMBER
38680 )
38681 IS
38682 
38683 l_component_type              VARCHAR2(80);
38684 l_component_code              VARCHAR2(30);
38685 l_component_type_code         VARCHAR2(1);
38686 l_component_appl_id           INTEGER;
38687 l_amb_context_code            VARCHAR2(30);
38688 l_entity_code                 VARCHAR2(30);
38689 l_event_class_code            VARCHAR2(30);
38690 l_ae_header_id                NUMBER;
38691 l_event_type_code             VARCHAR2(30);
38692 l_line_definition_code        VARCHAR2(30);
38693 l_line_definition_owner_code  VARCHAR2(1);
38694 --
38695 -- adr variables
38696 l_segment                     VARCHAR2(30);
38697 l_ccid                        NUMBER;
38698 l_adr_transaction_coa_id      NUMBER;
38702 l_adr_value_type_code         VARCHAR2(30);
38699 l_adr_accounting_coa_id       NUMBER;
38700 l_adr_flexfield_segment_code  VARCHAR2(30);
38701 l_adr_flex_value_set_id       NUMBER;
38703 l_adr_value_combination_id    NUMBER;
38704 l_adr_value_segment_code      VARCHAR2(30);
38705 
38706 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38707 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38708 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38709 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38710 
38711 -- 4262811 Variables ------------------------------------------------------------------------------------------
38712 l_entered_amt_idx             NUMBER;
38713 l_accted_amt_idx              NUMBER;
38714 l_acc_rev_flag                VARCHAR2(1);
38715 l_accrual_line_num            NUMBER;
38716 l_tmp_amt                     NUMBER;
38717 l_acc_rev_natural_side_code   VARCHAR2(1);
38718 
38719 l_num_entries                 NUMBER;
38720 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38721 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38722 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38723 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38724 l_recog_line_1                NUMBER;
38725 l_recog_line_2                NUMBER;
38726 
38727 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38728 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38729 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38730 
38731 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38732 
38733 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38734 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38735 
38736 ---------------------------------------------------------------------------------------------------------------
38737 
38738 
38739 --
38740 -- bulk performance
38741 --
38742 l_balance_type_code           VARCHAR2(1);
38743 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38744 l_log_module                  VARCHAR2(240);
38745 
38746 --
38747 -- Upgrade strategy
38748 --
38749 l_actual_upg_option           VARCHAR2(1);
38750 l_enc_upg_option           VARCHAR2(1);
38751 
38752 --
38753 BEGIN
38754 --
38755 IF g_log_enabled THEN
38756       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
38757 END IF;
38758 --
38759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38760 
38761       trace
38762          (p_msg      => 'BEGIN of AcctLineType_97'
38763          ,p_level    => C_LEVEL_PROCEDURE
38764          ,p_module   => l_log_module);
38765 
38766 END IF;
38767 --
38768 l_component_type             := 'AMB_JLT';
38769 l_component_code             := 'AP_CASH_PMT_MAT';
38770 l_component_type_code        := 'S';
38771 l_component_appl_id          :=  200;
38772 l_amb_context_code           := 'DEFAULT';
38773 l_entity_code                := 'AP_PAYMENTS';
38774 l_event_class_code           := 'FUTURE DATED PAYMENTS';
38775 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
38776 l_line_definition_owner_code := 'S';
38777 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
38778 --
38779 l_balance_type_code          := 'A';
38780 l_segment                     := NULL;
38781 l_ccid                        := NULL;
38782 l_adr_transaction_coa_id      := NULL;
38783 l_adr_accounting_coa_id       := NULL;
38784 l_adr_flexfield_segment_code  := NULL;
38785 l_adr_flex_value_set_id       := NULL;
38786 l_adr_value_type_code         := NULL;
38787 l_adr_value_combination_id    := NULL;
38788 l_adr_value_segment_code      := NULL;
38789 
38790 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
38791 l_bflow_class_code           := '';    -- 4219869 Business Flow
38792 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38793 l_budgetary_control_flag     := 'N';
38794 
38795 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38796 l_bflow_applied_to_amt       := NULL; -- 5132302
38797 l_entered_amt_idx            := NULL;          -- 4262811
38798 l_accted_amt_idx             := NULL;          -- 4262811
38799 l_acc_rev_flag               := NULL;          -- 4262811
38800 l_accrual_line_num           := NULL;          -- 4262811
38801 l_tmp_amt                    := NULL;          -- 4262811
38802 --
38803  
38804 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38805     l_balance_type_code <> 'B' THEN
38806 IF NVL(p_source_57,'
38807 ') =  'ISSUE_ISSUE' AND 
38808 (NVL(p_source_43,'
38809 ') <>  'Y' OR 
38810 NVL(p_source_43,'
38811 ') =  'Y' AND 
38812 NVL(p_source_116,'
38813 ') <>  'Y') AND 
38814 p_source_117 IS NOT NULL AND 
38815 NVL(p_source_101,'
38816 ') =  'CASH'
38817  THEN 
38818 
38819    --
38820    XLA_AE_LINES_PKG.SetNewLine;
38821 
38822    p_balance_type_code          := l_balance_type_code;
38823    -- set the flag so later we will know whether the gain loss line needs to be created
38824    
38825    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38826      p_actual_flag :='A';
38827    END IF;
38828 
38829    --
38833                                       p_header_num   => 0); -- 4262811
38830    -- bulk performance
38831    --
38832    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38834    --
38835    -- set accounting line options
38836    --
38837    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38838            p_natural_side_code          => 'C'
38839          , p_gain_or_loss_flag          => 'N'
38840          , p_gl_transfer_mode_code      => 'S'
38841          , p_acct_entry_type_code       => 'A'
38842          , p_switch_side_flag           => 'Y'
38843          , p_merge_duplicate_code       => 'A'
38844          );
38845    --
38846    l_acc_rev_natural_side_code := 'D';  -- 4262811
38847    -- 
38848    --
38849    -- set accounting line type info
38850    --
38851    xla_ae_lines_pkg.SetAcctLineType
38852       (p_component_type             => l_component_type
38853       ,p_event_type_code            => l_event_type_code
38854       ,p_line_definition_owner_code => l_line_definition_owner_code
38855       ,p_line_definition_code       => l_line_definition_code
38856       ,p_accounting_line_code       => l_component_code
38857       ,p_accounting_line_type_code  => l_component_type_code
38858       ,p_accounting_line_appl_id    => l_component_appl_id
38859       ,p_amb_context_code           => l_amb_context_code
38860       ,p_entity_code                => l_entity_code
38861       ,p_event_class_code           => l_event_class_code);
38862    --
38863    -- set accounting class
38864    --
38865    xla_ae_lines_pkg.SetAcctClass(
38866            p_accounting_class_code  => 'CASH'
38867          , p_ae_header_id           => l_ae_header_id
38868          );
38869 
38870    --
38871    -- set rounding class
38872    --
38873    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38874                       'CASH';
38875 
38876    --
38877    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38878    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38879    --
38880    -- bulk performance
38881    --
38882    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38883 
38884    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38885       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38886 
38887    -- 4955764
38888    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38889       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38890 
38891    -- 4458381 Public Sector Enh
38892    
38893    --
38894    -- set accounting attributes for the line type
38895    --
38896    l_entered_amt_idx := 9;
38897    l_accted_amt_idx  := 14;
38898    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
38899    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38900    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
38901    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
38902    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
38903    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38904    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
38905    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
38906    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
38907    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
38908    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
38909    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38910    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
38911    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
38912    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
38913    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
38914    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
38915    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
38916    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
38917    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
38918    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
38919    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
38920    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
38921    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
38922    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
38923    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
38924    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
38925    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
38926    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
38927    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
38928    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
38929    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
38930    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
38931    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
38932    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
38933    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
38934    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
38935    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
38936    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
38937    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
38941    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38938    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
38939 
38940    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38942 
38943    ---------------------------------------------------------------------------------------------------------------
38944    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38945    ---------------------------------------------------------------------------------------------------------------
38946    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38947 
38948    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38949    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38950 
38951    IF xla_accounting_cache_pkg.GetValueChar
38952          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38953          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38954    AND l_bflow_method_code = 'PRIOR_ENTRY'
38955 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38956    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38957          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38958        )
38959    THEN
38960          xla_ae_lines_pkg.BflowUpgEntry
38961            (p_business_method_code    => l_bflow_method_code
38962            ,p_business_class_code     => l_bflow_class_code
38963            ,p_balance_type            => l_balance_type_code);
38964    ELSE
38965       NULL;
38966 -- No business flow processing for business flow method of NONE.
38967    END IF;
38968 
38969    --
38970    -- call analytical criteria
38971    --
38972    
38973    --
38974    -- call description
38975    --
38976    -- No description or it is inherited.
38977    --
38978    -- call ADRs
38979    -- Bug 4922099
38980    --
38981    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38982         (NVL(l_actual_upg_option, 'N') = 'O') OR
38983         (NVL(l_enc_upg_option, 'N') = 'O')
38984       )
38985    THEN
38986    NULL;
38987    --
38988    --
38989    
38990   l_ccid := AcctDerRule_30(
38991            p_application_id           => p_application_id
38992          , p_ae_header_id             => l_ae_header_id 
38993 , p_source_12 => p_source_12
38994          , x_transaction_coa_id       => l_adr_transaction_coa_id
38995          , x_accounting_coa_id        => l_adr_accounting_coa_id
38996          , x_value_type_code          => l_adr_value_type_code
38997          , p_side                     => 'NA'
38998    );
38999 
39000    xla_ae_lines_pkg.set_ccid(
39001     p_code_combination_id          => l_ccid
39002   , p_value_type_code              => l_adr_value_type_code
39003   , p_transaction_coa_id           => l_adr_transaction_coa_id
39004   , p_accounting_coa_id            => l_adr_accounting_coa_id
39005   , p_adr_code                     => 'AP_CASH'
39006   , p_adr_type_code                => 'S'
39007   , p_component_type               => l_component_type
39008   , p_component_code               => l_component_code
39009   , p_component_type_code          => l_component_type_code
39010   , p_component_appl_id            => l_component_appl_id
39011   , p_amb_context_code             => l_amb_context_code
39012   , p_side                         => 'NA'
39013   );
39014 
39015 
39016    --
39017    --
39018    END IF;
39019    --
39020    -- Bug 4922099
39021    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39022           (NVL(l_enc_upg_option, 'N') = 'O')
39023         ) AND
39024         (l_bflow_method_code = 'PRIOR_ENTRY')
39025       )
39026    THEN
39027       IF
39028       --
39029       1 = 2
39030       --
39031       THEN
39032       xla_accounting_err_pkg.build_message
39033                                     (p_appli_s_name            => 'XLA'
39034                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39035                                     ,p_token_1                 => 'LINE_NUMBER'
39036                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39037                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39038                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39039                                                                              l_component_type
39040                                                                             ,l_component_code
39041                                                                             ,l_component_type_code
39042                                                                             ,l_component_appl_id
39043                                                                             ,l_amb_context_code
39044                                                                             ,l_entity_code
39045                                                                             ,l_event_class_code
39046                                                                            )
39047                                     ,p_token_3                 => 'OWNER'
39048                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39049                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39053                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39050                                                                           ,p_lookup_code    => l_component_type_code
39051                                                                          )
39052                                     ,p_token_4                 => 'PRODUCT_NAME'
39054                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39055                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39056                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39057                                     ,p_ae_header_id            =>  NULL
39058                                        );
39059 
39060         IF (C_LEVEL_ERROR>= g_log_level) THEN
39061                  trace
39062                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39063                       ,p_level    => C_LEVEL_ERROR
39064                       ,p_module   => l_log_module);
39065         END IF;
39066       END IF;
39067    END IF;
39068    --
39069    --
39070    ------------------------------------------------------------------------------------------------
39071    -- 4219869 Business Flow
39072    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39073    -- Prior Entry.  Currently, the following code is always generated.
39074    ------------------------------------------------------------------------------------------------
39075    XLA_AE_LINES_PKG.ValidateCurrentLine;
39076 
39077    ------------------------------------------------------------------------------------
39078    -- 4219869 Business Flow
39079    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39080    ------------------------------------------------------------------------------------
39081    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39082 
39083    ----------------------------------------------------------------------------------
39084    -- 4219869 Business Flow
39085    -- Update journal entry status -- Need to generate this within IF <condition>
39086    ----------------------------------------------------------------------------------
39087    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39088          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39089          ,p_balance_type_code => l_balance_type_code
39090          );
39091 
39092    -------------------------------------------------------------------------------------------
39093    -- 4262811 - Generate the Accrual Reversal lines
39094    -------------------------------------------------------------------------------------------
39095    BEGIN
39096       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39097                               (g_array_event(p_event_id).array_value_num('header_index'));
39098       IF l_acc_rev_flag IS NULL THEN
39099          l_acc_rev_flag := 'N';
39100       END IF;
39101    EXCEPTION
39102       WHEN OTHERS THEN
39103          l_acc_rev_flag := 'N';
39104    END;
39105    --
39106    IF (l_acc_rev_flag = 'Y') THEN
39107 
39108        -- 4645092  ------------------------------------------------------------------------------
39109        -- To allow MPA report to determine if it should generate report process
39110        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39111        ------------------------------------------------------------------------------------------
39112 
39113        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39114        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39115    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39116    -- call ADRs
39117    -- Bug 4922099
39118    --
39119    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39120         (NVL(l_actual_upg_option, 'N') = 'O') OR
39121         (NVL(l_enc_upg_option, 'N') = 'O')
39122       )
39123    THEN
39124    NULL;
39125    --
39126    --
39127    
39128   l_ccid := AcctDerRule_30(
39129            p_application_id           => p_application_id
39130          , p_ae_header_id             => l_ae_header_id 
39131 , p_source_12 => p_source_12
39132          , x_transaction_coa_id       => l_adr_transaction_coa_id
39133          , x_accounting_coa_id        => l_adr_accounting_coa_id
39134          , x_value_type_code          => l_adr_value_type_code
39135          , p_side                     => 'NA'
39136    );
39137 
39138    xla_ae_lines_pkg.set_ccid(
39139     p_code_combination_id          => l_ccid
39140   , p_value_type_code              => l_adr_value_type_code
39141   , p_transaction_coa_id           => l_adr_transaction_coa_id
39142   , p_accounting_coa_id            => l_adr_accounting_coa_id
39143   , p_adr_code                     => 'AP_CASH'
39144   , p_adr_type_code                => 'S'
39145   , p_component_type               => l_component_type
39146   , p_component_code               => l_component_code
39147   , p_component_type_code          => l_component_type_code
39148   , p_component_appl_id            => l_component_appl_id
39149   , p_amb_context_code             => l_amb_context_code
39150   , p_side                         => 'NA'
39151   );
39152 
39153 
39154    --
39155    --
39156    END IF;
39157 
39158        --
39159        -- Update the line information that should be overwritten
39160        --
39161        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39165        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39162                                          p_header_num   => 1);
39163        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39164 
39166 
39167        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39168           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39169        END IF;
39170 
39171       --
39172       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39173       --
39174       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39175           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39176       ELSE
39177           ---------------------------------------------------------------------------------------------------
39178           -- 4262811a Switch Sign
39179           ---------------------------------------------------------------------------------------------------
39180           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39181           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39182                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39183           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39184                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39185           -- 5132302
39186           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39187                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39188 
39189       END IF;
39190 
39191       -- 4955764
39192       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39193       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39194 
39195 
39196       XLA_AE_LINES_PKG.ValidateCurrentLine;
39197       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39198 
39199       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39200                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39201                ,p_balance_type_code => l_balance_type_code);
39202 
39203    END IF;
39204 
39205    -----------------------------------------------------------------------------------------
39206    -- 4262811 Multiperiod Accounting
39207    -----------------------------------------------------------------------------------------
39208      -- No MPA option is assigned.
39209 
39210 
39211 END IF;
39212 END IF;
39213 --
39214 
39215 --
39216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39217    trace
39218       (p_msg      => 'END of AcctLineType_97'
39219       ,p_level    => C_LEVEL_PROCEDURE
39220       ,p_module   => l_log_module);
39221 END IF;
39222 --
39223 EXCEPTION
39224   WHEN xla_exceptions_pkg.application_exception THEN
39225       RAISE;
39226   WHEN OTHERS THEN
39227        xla_exceptions_pkg.raise_message
39228            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_97');
39229 END AcctLineType_97;
39230 --
39231 
39232 ---------------------------------------
39233 --
39234 -- PRIVATE FUNCTION
39235 --         AcctLineType_98
39236 --
39237 ---------------------------------------
39238 PROCEDURE AcctLineType_98 (
39239   p_application_id        IN NUMBER
39240  ,p_event_id              IN NUMBER
39241  ,p_calculate_acctd_flag  IN VARCHAR2
39242  ,p_calculate_g_l_flag    IN VARCHAR2
39243  ,p_actual_flag           IN OUT VARCHAR2
39244  ,p_balance_type_code     OUT VARCHAR2
39245  ,p_gain_or_loss_ref      OUT VARCHAR2
39246  
39247 --Payment Currency Code
39248  , p_source_8            IN VARCHAR2
39249 --Automatic Offsets Value
39250  , p_source_10            IN VARCHAR2
39251  , p_source_10_meaning    IN VARCHAR2
39252 --Bank Cash Account
39253  , p_source_12            IN NUMBER
39254 --When to Account for Payment Option
39255  , p_source_57            IN VARCHAR2
39256 --Accounting Reversal Indicator
39257  , p_source_58            IN VARCHAR2
39258 --Distribution Link Type
39259  , p_source_60            IN VARCHAR2
39260 --Override Accounted Amount Indicator
39261  , p_source_85            IN VARCHAR2
39262  , p_source_85_meaning    IN VARCHAR2
39263 --Third Party Type
39264  , p_source_88            IN VARCHAR2
39265 --Business Flow Accounts Payable Application Identifier
39266  , p_source_96            IN NUMBER
39267 --Payment Distribution Type
39268  , p_source_101            IN VARCHAR2
39269  , p_source_101_meaning    IN VARCHAR2
39270 --Payment Distribution Amount
39271  , p_source_102            IN NUMBER
39272 --Business Flow Payment Distribution Type
39273  , p_source_103            IN VARCHAR2
39274 --Business Flow Payment Entity Code
39275  , p_source_104            IN VARCHAR2
39276 --Business Flow Payment Distribution Identifier
39277  , p_source_105            IN NUMBER
39278 --Business Flow Payment Identifier
39279  , p_source_106            IN NUMBER
39280 --Payment Distribution Identifier
39281  , p_source_107            IN NUMBER
39282 --Payment Supplier Identifier
39286 --Payment Distribution Reversed Identifier
39283  , p_source_113            IN NUMBER
39284 --Payment Supplier Site Identifier
39285  , p_source_114            IN NUMBER
39287  , p_source_115            IN NUMBER
39288 --Pooled Bank Account Option
39289  , p_source_116            IN VARCHAR2
39290  , p_source_116_meaning    IN VARCHAR2
39291 --Payment Maturity Date
39292  , p_source_117            IN DATE
39293 --Payment Exchange Date
39294  , p_source_120            IN DATE
39295 --Payment Exchange Rate
39296  , p_source_121            IN NUMBER
39297 --Payment Exchange Rate Type
39298  , p_source_122            IN VARCHAR2
39299 --Payment Distribution (Matured Rate) Ledger Amount
39300  , p_source_124            IN NUMBER
39301 )
39302 IS
39303 
39304 l_component_type              VARCHAR2(80);
39305 l_component_code              VARCHAR2(30);
39306 l_component_type_code         VARCHAR2(1);
39307 l_component_appl_id           INTEGER;
39308 l_amb_context_code            VARCHAR2(30);
39309 l_entity_code                 VARCHAR2(30);
39310 l_event_class_code            VARCHAR2(30);
39311 l_ae_header_id                NUMBER;
39312 l_event_type_code             VARCHAR2(30);
39313 l_line_definition_code        VARCHAR2(30);
39314 l_line_definition_owner_code  VARCHAR2(1);
39315 --
39316 -- adr variables
39317 l_segment                     VARCHAR2(30);
39318 l_ccid                        NUMBER;
39319 l_adr_transaction_coa_id      NUMBER;
39320 l_adr_accounting_coa_id       NUMBER;
39321 l_adr_flexfield_segment_code  VARCHAR2(30);
39322 l_adr_flex_value_set_id       NUMBER;
39323 l_adr_value_type_code         VARCHAR2(30);
39324 l_adr_value_combination_id    NUMBER;
39325 l_adr_value_segment_code      VARCHAR2(30);
39326 
39327 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39328 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39329 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39330 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39331 
39332 -- 4262811 Variables ------------------------------------------------------------------------------------------
39333 l_entered_amt_idx             NUMBER;
39334 l_accted_amt_idx              NUMBER;
39335 l_acc_rev_flag                VARCHAR2(1);
39336 l_accrual_line_num            NUMBER;
39337 l_tmp_amt                     NUMBER;
39338 l_acc_rev_natural_side_code   VARCHAR2(1);
39339 
39340 l_num_entries                 NUMBER;
39341 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39342 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39343 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39344 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39345 l_recog_line_1                NUMBER;
39346 l_recog_line_2                NUMBER;
39347 
39348 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39349 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39350 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39351 
39352 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39353 
39354 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39355 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39356 
39357 ---------------------------------------------------------------------------------------------------------------
39358 
39359 
39360 --
39361 -- bulk performance
39362 --
39363 l_balance_type_code           VARCHAR2(1);
39364 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39365 l_log_module                  VARCHAR2(240);
39366 
39367 --
39368 -- Upgrade strategy
39369 --
39370 l_actual_upg_option           VARCHAR2(1);
39371 l_enc_upg_option           VARCHAR2(1);
39372 
39373 --
39374 BEGIN
39375 --
39376 IF g_log_enabled THEN
39377       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
39378 END IF;
39379 --
39380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39381 
39382       trace
39383          (p_msg      => 'BEGIN of AcctLineType_98'
39384          ,p_level    => C_LEVEL_PROCEDURE
39385          ,p_module   => l_log_module);
39386 
39387 END IF;
39388 --
39389 l_component_type             := 'AMB_JLT';
39390 l_component_code             := 'AP_CASH_PMT_MAT_AOS_AS';
39391 l_component_type_code        := 'S';
39392 l_component_appl_id          :=  200;
39393 l_amb_context_code           := 'DEFAULT';
39394 l_entity_code                := 'AP_PAYMENTS';
39395 l_event_class_code           := 'FUTURE DATED PAYMENTS';
39396 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
39397 l_line_definition_owner_code := 'S';
39398 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
39399 --
39400 l_balance_type_code          := 'A';
39401 l_segment                     := NULL;
39402 l_ccid                        := NULL;
39403 l_adr_transaction_coa_id      := NULL;
39404 l_adr_accounting_coa_id       := NULL;
39405 l_adr_flexfield_segment_code  := NULL;
39406 l_adr_flex_value_set_id       := NULL;
39407 l_adr_value_type_code         := NULL;
39408 l_adr_value_combination_id    := NULL;
39409 l_adr_value_segment_code      := NULL;
39410 
39411 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
39415 
39412 l_bflow_class_code           := '';    -- 4219869 Business Flow
39413 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39414 l_budgetary_control_flag     := 'N';
39416 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39417 l_bflow_applied_to_amt       := NULL; -- 5132302
39418 l_entered_amt_idx            := NULL;          -- 4262811
39419 l_accted_amt_idx             := NULL;          -- 4262811
39420 l_acc_rev_flag               := NULL;          -- 4262811
39421 l_accrual_line_num           := NULL;          -- 4262811
39422 l_tmp_amt                    := NULL;          -- 4262811
39423 --
39424  
39425 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39426     l_balance_type_code <> 'B' THEN
39427 IF NVL(p_source_57,'
39428 ') =  'ISSUE_ISSUE' AND 
39429 (NVL(p_source_116,'
39430 ') =  'Y' AND 
39431 NVL(p_source_10,'
39432 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
39433 p_source_117 IS NOT NULL AND 
39434 NVL(p_source_101,'
39435 ') =  'CASH'
39436  THEN 
39437 
39438    --
39439    XLA_AE_LINES_PKG.SetNewLine;
39440 
39441    p_balance_type_code          := l_balance_type_code;
39442    -- set the flag so later we will know whether the gain loss line needs to be created
39443    
39444    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39445      p_actual_flag :='A';
39446    END IF;
39447 
39448    --
39449    -- bulk performance
39450    --
39451    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39452                                       p_header_num   => 0); -- 4262811
39453    --
39454    -- set accounting line options
39455    --
39456    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39457            p_natural_side_code          => 'C'
39458          , p_gain_or_loss_flag          => 'N'
39459          , p_gl_transfer_mode_code      => 'S'
39460          , p_acct_entry_type_code       => 'A'
39461          , p_switch_side_flag           => 'Y'
39462          , p_merge_duplicate_code       => 'A'
39463          );
39464    --
39465    l_acc_rev_natural_side_code := 'D';  -- 4262811
39466    -- 
39467    --
39468    -- set accounting line type info
39469    --
39470    xla_ae_lines_pkg.SetAcctLineType
39471       (p_component_type             => l_component_type
39472       ,p_event_type_code            => l_event_type_code
39473       ,p_line_definition_owner_code => l_line_definition_owner_code
39474       ,p_line_definition_code       => l_line_definition_code
39475       ,p_accounting_line_code       => l_component_code
39476       ,p_accounting_line_type_code  => l_component_type_code
39477       ,p_accounting_line_appl_id    => l_component_appl_id
39478       ,p_amb_context_code           => l_amb_context_code
39479       ,p_entity_code                => l_entity_code
39480       ,p_event_class_code           => l_event_class_code);
39481    --
39482    -- set accounting class
39483    --
39484    xla_ae_lines_pkg.SetAcctClass(
39485            p_accounting_class_code  => 'CASH'
39486          , p_ae_header_id           => l_ae_header_id
39487          );
39488 
39489    --
39490    -- set rounding class
39491    --
39492    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39493                       'CASH';
39494 
39495    --
39496    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39497    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39498    --
39499    -- bulk performance
39500    --
39501    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39502 
39503    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39504       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39505 
39506    -- 4955764
39507    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39508       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39509 
39510    -- 4458381 Public Sector Enh
39511    
39512    --
39513    -- set accounting attributes for the line type
39514    --
39515    l_entered_amt_idx := 9;
39516    l_accted_amt_idx  := 14;
39517    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39518    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39519    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
39520    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
39521    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
39522    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39523    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
39524    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
39525    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
39526    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
39527    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
39528    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39529    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
39530    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
39531    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
39532    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
39536    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
39533    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
39534    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
39535    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
39537    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
39538    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
39539    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
39540    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
39541    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
39542    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
39543    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
39544    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
39545    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
39546    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
39547    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
39548    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
39549    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
39550    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
39551    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
39552    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
39553    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
39554    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
39555    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
39556    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
39557    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
39558 
39559    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39560    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39561 
39562    ---------------------------------------------------------------------------------------------------------------
39563    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39564    ---------------------------------------------------------------------------------------------------------------
39565    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39566 
39567    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39568    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39569 
39570    IF xla_accounting_cache_pkg.GetValueChar
39571          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39572          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39573    AND l_bflow_method_code = 'PRIOR_ENTRY'
39574 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39575    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39576          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39577        )
39578    THEN
39579          xla_ae_lines_pkg.BflowUpgEntry
39580            (p_business_method_code    => l_bflow_method_code
39581            ,p_business_class_code     => l_bflow_class_code
39582            ,p_balance_type            => l_balance_type_code);
39583    ELSE
39584       NULL;
39585 XLA_AE_LINES_PKG.business_flow_validation(
39586                                 p_business_method_code     => l_bflow_method_code
39587                                ,p_business_class_code      => l_bflow_class_code
39588                                ,p_inherit_description_flag => l_inherit_desc_flag);
39589    END IF;
39590 
39591    --
39592    -- call analytical criteria
39593    --
39594    
39595    --
39596    -- call description
39597    --
39598    -- No description or it is inherited.
39599    --
39600    -- call ADRs
39601    -- Bug 4922099
39602    --
39603    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39604         (NVL(l_actual_upg_option, 'N') = 'O') OR
39605         (NVL(l_enc_upg_option, 'N') = 'O')
39606       )
39607    THEN
39608    NULL;
39609    --
39610    --
39611    
39612    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
39613      p_code_combination_id      => TO_NUMBER(C_NUM)
39614    , p_value_type_code          => NULL
39615    , p_transaction_coa_id       => null
39616    , p_accounting_coa_id        => null
39617    , p_adr_code                 => NULL
39618    , p_adr_type_code            => NULL
39619    , p_component_type           => l_component_type
39620    , p_component_code           => l_component_code
39621    , p_component_type_code      => l_component_type_code
39622    , p_component_appl_id        => l_component_appl_id
39623    , p_amb_context_code         => l_amb_context_code
39624    , p_side                     => NULL
39625    );
39626 
39627    
39628   -- initialise segments
39629   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39630   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39631   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39632   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39633   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39634   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39635   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39636   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39640   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39637   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39638   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39639   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39641   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39642   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39643   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39644   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39645   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39646   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39647   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39648   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39649   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39650   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39651   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39652   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39653   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39654   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39655   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39656   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39657   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39658   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39659   --
39660 
39661    --
39662 
39663 
39664    l_segment := AcctDerRule_6(
39665            p_application_id           => p_application_id
39666          , p_ae_header_id             => l_ae_header_id 
39667 , p_source_12 => p_source_12
39668          , x_transaction_coa_id       => l_adr_transaction_coa_id
39669          , x_accounting_coa_id        => l_adr_accounting_coa_id
39670          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39671          , x_flex_value_set_id        => l_adr_flex_value_set_id
39672          , x_value_type_code          => l_adr_value_type_code
39673          , x_value_combination_id     => l_adr_value_combination_id
39674          , x_value_segment_code       => l_adr_value_segment_code
39675          , p_side                     => 'NA'
39676          , p_override_seg_flag        => 'Y'
39677    );
39678 
39679    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39680 
39681       xla_ae_lines_pkg.set_segment(
39682           p_to_segment_code         => 'GL_ACCOUNT'
39683         , p_segment_value           => l_segment
39684         , p_from_segment_code       => l_adr_value_segment_code
39685         , p_from_combination_id     => l_adr_value_combination_id
39686         , p_value_type_code         => l_adr_value_type_code
39687         , p_transaction_coa_id      => l_adr_transaction_coa_id
39688         , p_accounting_coa_id       => l_adr_accounting_coa_id
39689         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39690         , p_flex_value_set_id       => l_adr_flex_value_set_id
39691         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
39692         , p_adr_type_code           => 'S'
39693         , p_component_type          => l_component_type
39694         , p_component_code          => l_component_code
39695         , p_component_type_code     => l_component_type_code
39696         , p_component_appl_id       => l_component_appl_id
39697         , p_amb_context_code        => l_amb_context_code
39698         , p_entity_code             => 'AP_PAYMENTS'
39699         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39700         , p_side                    => 'NA'
39701         );
39702 
39703   END IF;
39704 
39705    --
39706    --
39707    END IF;
39708    --
39709    -- Bug 4922099
39710    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39711           (NVL(l_enc_upg_option, 'N') = 'O')
39712         ) AND
39713         (l_bflow_method_code = 'PRIOR_ENTRY')
39714       )
39715    THEN
39716       IF
39717       --
39718       1 = 2
39719       --
39720       THEN
39721       xla_accounting_err_pkg.build_message
39722                                     (p_appli_s_name            => 'XLA'
39723                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39724                                     ,p_token_1                 => 'LINE_NUMBER'
39725                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39726                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39727                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39728                                                                              l_component_type
39729                                                                             ,l_component_code
39730                                                                             ,l_component_type_code
39731                                                                             ,l_component_appl_id
39735                                                                            )
39732                                                                             ,l_amb_context_code
39733                                                                             ,l_entity_code
39734                                                                             ,l_event_class_code
39736                                     ,p_token_3                 => 'OWNER'
39737                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39738                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39739                                                                           ,p_lookup_code    => l_component_type_code
39740                                                                          )
39741                                     ,p_token_4                 => 'PRODUCT_NAME'
39742                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39743                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39744                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39745                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39746                                     ,p_ae_header_id            =>  NULL
39747                                        );
39748 
39749         IF (C_LEVEL_ERROR>= g_log_level) THEN
39750                  trace
39751                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39752                       ,p_level    => C_LEVEL_ERROR
39753                       ,p_module   => l_log_module);
39754         END IF;
39755       END IF;
39756    END IF;
39757    --
39758    --
39759    ------------------------------------------------------------------------------------------------
39760    -- 4219869 Business Flow
39761    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39762    -- Prior Entry.  Currently, the following code is always generated.
39763    ------------------------------------------------------------------------------------------------
39764    XLA_AE_LINES_PKG.ValidateCurrentLine;
39765 
39766    ------------------------------------------------------------------------------------
39767    -- 4219869 Business Flow
39768    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39769    ------------------------------------------------------------------------------------
39770    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39771 
39772    ----------------------------------------------------------------------------------
39773    -- 4219869 Business Flow
39774    -- Update journal entry status -- Need to generate this within IF <condition>
39775    ----------------------------------------------------------------------------------
39776    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39777          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39778          ,p_balance_type_code => l_balance_type_code
39779          );
39780 
39781    -------------------------------------------------------------------------------------------
39782    -- 4262811 - Generate the Accrual Reversal lines
39783    -------------------------------------------------------------------------------------------
39784    BEGIN
39785       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39786                               (g_array_event(p_event_id).array_value_num('header_index'));
39787       IF l_acc_rev_flag IS NULL THEN
39788          l_acc_rev_flag := 'N';
39789       END IF;
39790    EXCEPTION
39791       WHEN OTHERS THEN
39792          l_acc_rev_flag := 'N';
39793    END;
39794    --
39795    IF (l_acc_rev_flag = 'Y') THEN
39796 
39797        -- 4645092  ------------------------------------------------------------------------------
39798        -- To allow MPA report to determine if it should generate report process
39799        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39800        ------------------------------------------------------------------------------------------
39801 
39802        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39803        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39804    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39805    -- call ADRs
39806    -- Bug 4922099
39807    --
39808    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39809         (NVL(l_actual_upg_option, 'N') = 'O') OR
39810         (NVL(l_enc_upg_option, 'N') = 'O')
39811       )
39812    THEN
39813    NULL;
39814    --
39815    --
39816    
39817    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
39818      p_code_combination_id      => TO_NUMBER(C_NUM)
39819    , p_value_type_code          => NULL
39820    , p_transaction_coa_id       => null
39821    , p_accounting_coa_id        => null
39822    , p_adr_code                 => NULL
39823    , p_adr_type_code            => NULL
39824    , p_component_type           => l_component_type
39825    , p_component_code           => l_component_code
39826    , p_component_type_code      => l_component_type_code
39827    , p_component_appl_id        => l_component_appl_id
39828    , p_amb_context_code         => l_amb_context_code
39829    , p_side                     => NULL
39830    );
39831 
39832    
39833   -- initialise segments
39834   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39838   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39835   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39836   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39837   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39839   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39840   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39841   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39842   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39843   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39844   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39845   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39846   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39847   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39848   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39849   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39850   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39851   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39852   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39853   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39854   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39855   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39856   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39857   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39858   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39859   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39860   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39861   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39862   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39863   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39864   --
39865 
39866    --
39867 
39868 
39869    l_segment := AcctDerRule_6(
39870            p_application_id           => p_application_id
39871          , p_ae_header_id             => l_ae_header_id 
39872 , p_source_12 => p_source_12
39873          , x_transaction_coa_id       => l_adr_transaction_coa_id
39874          , x_accounting_coa_id        => l_adr_accounting_coa_id
39875          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39876          , x_flex_value_set_id        => l_adr_flex_value_set_id
39877          , x_value_type_code          => l_adr_value_type_code
39878          , x_value_combination_id     => l_adr_value_combination_id
39879          , x_value_segment_code       => l_adr_value_segment_code
39880          , p_side                     => 'NA'
39881          , p_override_seg_flag        => 'Y'
39882    );
39883 
39884    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39885 
39886       xla_ae_lines_pkg.set_segment(
39887           p_to_segment_code         => 'GL_ACCOUNT'
39888         , p_segment_value           => l_segment
39889         , p_from_segment_code       => l_adr_value_segment_code
39890         , p_from_combination_id     => l_adr_value_combination_id
39891         , p_value_type_code         => l_adr_value_type_code
39892         , p_transaction_coa_id      => l_adr_transaction_coa_id
39893         , p_accounting_coa_id       => l_adr_accounting_coa_id
39894         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39895         , p_flex_value_set_id       => l_adr_flex_value_set_id
39896         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
39897         , p_adr_type_code           => 'S'
39898         , p_component_type          => l_component_type
39899         , p_component_code          => l_component_code
39900         , p_component_type_code     => l_component_type_code
39901         , p_component_appl_id       => l_component_appl_id
39902         , p_amb_context_code        => l_amb_context_code
39903         , p_entity_code             => 'AP_PAYMENTS'
39904         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39905         , p_side                    => 'NA'
39906         );
39907 
39908   END IF;
39909 
39910    --
39911    --
39912    END IF;
39913 
39914        --
39915        -- Update the line information that should be overwritten
39916        --
39917        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39918                                          p_header_num   => 1);
39919        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39920 
39921        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39922 
39923        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39924           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39925        END IF;
39929       --
39926 
39927       --
39928       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39930       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39931           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39932       ELSE
39933           ---------------------------------------------------------------------------------------------------
39934           -- 4262811a Switch Sign
39935           ---------------------------------------------------------------------------------------------------
39936           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39937           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39938                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39939           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39940                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39941           -- 5132302
39942           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39943                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39944 
39945       END IF;
39946 
39947       -- 4955764
39948       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39950 
39951 
39952       XLA_AE_LINES_PKG.ValidateCurrentLine;
39953       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39954 
39955       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39956                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39957                ,p_balance_type_code => l_balance_type_code);
39958 
39959    END IF;
39960 
39961    -----------------------------------------------------------------------------------------
39962    -- 4262811 Multiperiod Accounting
39963    -----------------------------------------------------------------------------------------
39964      -- No MPA option is assigned.
39965 
39966 
39967 END IF;
39968 END IF;
39969 --
39970 
39971 --
39972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39973    trace
39974       (p_msg      => 'END of AcctLineType_98'
39975       ,p_level    => C_LEVEL_PROCEDURE
39976       ,p_module   => l_log_module);
39977 END IF;
39978 --
39979 EXCEPTION
39980   WHEN xla_exceptions_pkg.application_exception THEN
39981       RAISE;
39982   WHEN OTHERS THEN
39983        xla_exceptions_pkg.raise_message
39984            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_98');
39985 END AcctLineType_98;
39986 --
39987 
39988 ---------------------------------------
39989 --
39990 -- PRIVATE FUNCTION
39991 --         AcctLineType_99
39992 --
39993 ---------------------------------------
39994 PROCEDURE AcctLineType_99 (
39995   p_application_id        IN NUMBER
39996  ,p_event_id              IN NUMBER
39997  ,p_calculate_acctd_flag  IN VARCHAR2
39998  ,p_calculate_g_l_flag    IN VARCHAR2
39999  ,p_actual_flag           IN OUT VARCHAR2
40000  ,p_balance_type_code     OUT VARCHAR2
40001  ,p_gain_or_loss_ref      OUT VARCHAR2
40002  
40003 --Payment Currency Code
40004  , p_source_8            IN VARCHAR2
40005 --Automatic Offsets Value
40006  , p_source_10            IN VARCHAR2
40007  , p_source_10_meaning    IN VARCHAR2
40008 --Bank Cash Account
40009  , p_source_12            IN NUMBER
40010 --When to Account for Payment Option
40011  , p_source_57            IN VARCHAR2
40012 --Accounting Reversal Indicator
40013  , p_source_58            IN VARCHAR2
40014 --Distribution Link Type
40015  , p_source_60            IN VARCHAR2
40016 --Override Accounted Amount Indicator
40017  , p_source_85            IN VARCHAR2
40018  , p_source_85_meaning    IN VARCHAR2
40019 --Third Party Type
40020  , p_source_88            IN VARCHAR2
40021 --Business Flow Accounts Payable Application Identifier
40022  , p_source_96            IN NUMBER
40023 --Payment Distribution Type
40024  , p_source_101            IN VARCHAR2
40025  , p_source_101_meaning    IN VARCHAR2
40026 --Payment Distribution Amount
40027  , p_source_102            IN NUMBER
40028 --Business Flow Payment Distribution Type
40029  , p_source_103            IN VARCHAR2
40030 --Business Flow Payment Entity Code
40031  , p_source_104            IN VARCHAR2
40032 --Business Flow Payment Distribution Identifier
40033  , p_source_105            IN NUMBER
40034 --Business Flow Payment Identifier
40035  , p_source_106            IN NUMBER
40036 --Payment Distribution Identifier
40037  , p_source_107            IN NUMBER
40038 --Payment Supplier Identifier
40039  , p_source_113            IN NUMBER
40040 --Payment Supplier Site Identifier
40041  , p_source_114            IN NUMBER
40042 --Payment Distribution Reversed Identifier
40043  , p_source_115            IN NUMBER
40044 --Pooled Bank Account Option
40045  , p_source_116            IN VARCHAR2
40046  , p_source_116_meaning    IN VARCHAR2
40047 --Payment Maturity Date
40048  , p_source_117            IN DATE
40049 --Payment Exchange Date
40050  , p_source_120            IN DATE
40054  , p_source_122            IN VARCHAR2
40051 --Payment Exchange Rate
40052  , p_source_121            IN NUMBER
40053 --Payment Exchange Rate Type
40055 --Payment Distribution (Matured Rate) Ledger Amount
40056  , p_source_124            IN NUMBER
40057 )
40058 IS
40059 
40060 l_component_type              VARCHAR2(80);
40061 l_component_code              VARCHAR2(30);
40062 l_component_type_code         VARCHAR2(1);
40063 l_component_appl_id           INTEGER;
40064 l_amb_context_code            VARCHAR2(30);
40065 l_entity_code                 VARCHAR2(30);
40066 l_event_class_code            VARCHAR2(30);
40067 l_ae_header_id                NUMBER;
40068 l_event_type_code             VARCHAR2(30);
40069 l_line_definition_code        VARCHAR2(30);
40070 l_line_definition_owner_code  VARCHAR2(1);
40071 --
40072 -- adr variables
40073 l_segment                     VARCHAR2(30);
40074 l_ccid                        NUMBER;
40075 l_adr_transaction_coa_id      NUMBER;
40076 l_adr_accounting_coa_id       NUMBER;
40077 l_adr_flexfield_segment_code  VARCHAR2(30);
40078 l_adr_flex_value_set_id       NUMBER;
40079 l_adr_value_type_code         VARCHAR2(30);
40080 l_adr_value_combination_id    NUMBER;
40081 l_adr_value_segment_code      VARCHAR2(30);
40082 
40083 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40084 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40085 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40086 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40087 
40088 -- 4262811 Variables ------------------------------------------------------------------------------------------
40089 l_entered_amt_idx             NUMBER;
40090 l_accted_amt_idx              NUMBER;
40091 l_acc_rev_flag                VARCHAR2(1);
40092 l_accrual_line_num            NUMBER;
40093 l_tmp_amt                     NUMBER;
40094 l_acc_rev_natural_side_code   VARCHAR2(1);
40095 
40096 l_num_entries                 NUMBER;
40097 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40098 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40099 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40100 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40101 l_recog_line_1                NUMBER;
40102 l_recog_line_2                NUMBER;
40103 
40104 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40105 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40106 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40107 
40108 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40109 
40110 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40111 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40112 
40113 ---------------------------------------------------------------------------------------------------------------
40114 
40115 
40116 --
40117 -- bulk performance
40118 --
40119 l_balance_type_code           VARCHAR2(1);
40120 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40121 l_log_module                  VARCHAR2(240);
40122 
40123 --
40124 -- Upgrade strategy
40125 --
40126 l_actual_upg_option           VARCHAR2(1);
40127 l_enc_upg_option           VARCHAR2(1);
40128 
40129 --
40130 BEGIN
40131 --
40132 IF g_log_enabled THEN
40133       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
40134 END IF;
40135 --
40136 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40137 
40138       trace
40139          (p_msg      => 'BEGIN of AcctLineType_99'
40140          ,p_level    => C_LEVEL_PROCEDURE
40141          ,p_module   => l_log_module);
40142 
40143 END IF;
40144 --
40145 l_component_type             := 'AMB_JLT';
40146 l_component_code             := 'AP_CASH_PMT_MAT_AOS_BS';
40147 l_component_type_code        := 'S';
40148 l_component_appl_id          :=  200;
40149 l_amb_context_code           := 'DEFAULT';
40150 l_entity_code                := 'AP_PAYMENTS';
40151 l_event_class_code           := 'FUTURE DATED PAYMENTS';
40152 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
40153 l_line_definition_owner_code := 'S';
40154 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
40155 --
40156 l_balance_type_code          := 'A';
40157 l_segment                     := NULL;
40158 l_ccid                        := NULL;
40159 l_adr_transaction_coa_id      := NULL;
40160 l_adr_accounting_coa_id       := NULL;
40161 l_adr_flexfield_segment_code  := NULL;
40162 l_adr_flex_value_set_id       := NULL;
40163 l_adr_value_type_code         := NULL;
40164 l_adr_value_combination_id    := NULL;
40165 l_adr_value_segment_code      := NULL;
40166 
40167 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
40168 l_bflow_class_code           := '';    -- 4219869 Business Flow
40169 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40170 l_budgetary_control_flag     := 'N';
40171 
40172 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40173 l_bflow_applied_to_amt       := NULL; -- 5132302
40174 l_entered_amt_idx            := NULL;          -- 4262811
40175 l_accted_amt_idx             := NULL;          -- 4262811
40176 l_acc_rev_flag               := NULL;          -- 4262811
40180  
40177 l_accrual_line_num           := NULL;          -- 4262811
40178 l_tmp_amt                    := NULL;          -- 4262811
40179 --
40181 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40182     l_balance_type_code <> 'B' THEN
40183 IF NVL(p_source_57,'
40184 ') =  'ISSUE_ISSUE' AND 
40185 (NVL(p_source_116,'
40186 ') =  'Y' AND 
40187 NVL(p_source_10,'
40188 ') =  'BALANCING_SEGMENT') AND 
40189 p_source_117 IS NOT NULL AND 
40190 NVL(p_source_101,'
40191 ') =  'CASH'
40192  THEN 
40193 
40194    --
40195    XLA_AE_LINES_PKG.SetNewLine;
40196 
40197    p_balance_type_code          := l_balance_type_code;
40198    -- set the flag so later we will know whether the gain loss line needs to be created
40199    
40200    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40201      p_actual_flag :='A';
40202    END IF;
40203 
40204    --
40205    -- bulk performance
40206    --
40207    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40208                                       p_header_num   => 0); -- 4262811
40209    --
40210    -- set accounting line options
40211    --
40212    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40213            p_natural_side_code          => 'C'
40214          , p_gain_or_loss_flag          => 'N'
40215          , p_gl_transfer_mode_code      => 'S'
40216          , p_acct_entry_type_code       => 'A'
40217          , p_switch_side_flag           => 'Y'
40218          , p_merge_duplicate_code       => 'A'
40219          );
40220    --
40221    l_acc_rev_natural_side_code := 'D';  -- 4262811
40222    -- 
40223    --
40224    -- set accounting line type info
40225    --
40226    xla_ae_lines_pkg.SetAcctLineType
40227       (p_component_type             => l_component_type
40228       ,p_event_type_code            => l_event_type_code
40229       ,p_line_definition_owner_code => l_line_definition_owner_code
40230       ,p_line_definition_code       => l_line_definition_code
40231       ,p_accounting_line_code       => l_component_code
40232       ,p_accounting_line_type_code  => l_component_type_code
40233       ,p_accounting_line_appl_id    => l_component_appl_id
40234       ,p_amb_context_code           => l_amb_context_code
40235       ,p_entity_code                => l_entity_code
40236       ,p_event_class_code           => l_event_class_code);
40237    --
40238    -- set accounting class
40239    --
40240    xla_ae_lines_pkg.SetAcctClass(
40241            p_accounting_class_code  => 'CASH'
40242          , p_ae_header_id           => l_ae_header_id
40243          );
40244 
40245    --
40246    -- set rounding class
40247    --
40248    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40249                       'CASH';
40250 
40251    --
40252    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40253    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40254    --
40255    -- bulk performance
40256    --
40257    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40258 
40259    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40260       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40261 
40262    -- 4955764
40263    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40264       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40265 
40266    -- 4458381 Public Sector Enh
40267    
40268    --
40269    -- set accounting attributes for the line type
40270    --
40271    l_entered_amt_idx := 9;
40272    l_accted_amt_idx  := 14;
40273    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40274    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40275    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
40276    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40277    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
40278    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40279    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
40280    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40281    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
40282    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40283    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
40284    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40285    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
40286    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40287    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
40288    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40289    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
40290    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40291    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
40292    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40293    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
40294    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40295    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
40296    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40297    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
40301    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
40298    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40299    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
40300    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40302    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40303    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
40304    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40305    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
40306    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40307    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
40308    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40309    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
40310    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40311    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
40312    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40313    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
40314 
40315    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40316    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40317 
40318    ---------------------------------------------------------------------------------------------------------------
40319    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40320    ---------------------------------------------------------------------------------------------------------------
40321    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40322 
40323    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40324    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40325 
40326    IF xla_accounting_cache_pkg.GetValueChar
40327          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40328          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40329    AND l_bflow_method_code = 'PRIOR_ENTRY'
40330 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40331    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40332          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40333        )
40334    THEN
40335          xla_ae_lines_pkg.BflowUpgEntry
40336            (p_business_method_code    => l_bflow_method_code
40337            ,p_business_class_code     => l_bflow_class_code
40338            ,p_balance_type            => l_balance_type_code);
40339    ELSE
40340       NULL;
40341 XLA_AE_LINES_PKG.business_flow_validation(
40342                                 p_business_method_code     => l_bflow_method_code
40343                                ,p_business_class_code      => l_bflow_class_code
40344                                ,p_inherit_description_flag => l_inherit_desc_flag);
40345    END IF;
40346 
40347    --
40348    -- call analytical criteria
40349    --
40350    
40351    --
40352    -- call description
40353    --
40354    -- No description or it is inherited.
40355    --
40356    -- call ADRs
40357    -- Bug 4922099
40358    --
40359    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40360         (NVL(l_actual_upg_option, 'N') = 'O') OR
40361         (NVL(l_enc_upg_option, 'N') = 'O')
40362       )
40363    THEN
40364    NULL;
40365    --
40366    --
40367    
40368   l_ccid := AcctDerRule_30(
40369            p_application_id           => p_application_id
40370          , p_ae_header_id             => l_ae_header_id 
40371 , p_source_12 => p_source_12
40372          , x_transaction_coa_id       => l_adr_transaction_coa_id
40373          , x_accounting_coa_id        => l_adr_accounting_coa_id
40374          , x_value_type_code          => l_adr_value_type_code
40375          , p_side                     => 'NA'
40376    );
40377 
40378    xla_ae_lines_pkg.set_ccid(
40379     p_code_combination_id          => l_ccid
40380   , p_value_type_code              => l_adr_value_type_code
40381   , p_transaction_coa_id           => l_adr_transaction_coa_id
40382   , p_accounting_coa_id            => l_adr_accounting_coa_id
40383   , p_adr_code                     => 'AP_CASH'
40384   , p_adr_type_code                => 'S'
40385   , p_component_type               => l_component_type
40386   , p_component_code               => l_component_code
40387   , p_component_type_code          => l_component_type_code
40388   , p_component_appl_id            => l_component_appl_id
40389   , p_amb_context_code             => l_amb_context_code
40390   , p_side                         => 'NA'
40391   );
40392 
40393 
40394    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
40395      p_to_segment_code         => 'GL_BALANCING'
40396    , p_segment_value           => C_CHAR
40397    , p_from_segment_code       => NULL
40398    , p_from_combination_id     => NULL
40399    , p_value_type_code         => NULL
40400    , p_transaction_coa_id      => null
40401    , p_accounting_coa_id       => null
40402    , p_flexfield_segment_code  => NULL
40403    , p_flex_value_set_id       => NULL
40404    , p_adr_code                => NULL
40405    , p_adr_type_code           => NULL
40406    , p_component_type          => l_component_type
40407    , p_component_code          => l_component_code
40411    , p_entity_code             => 'AP_PAYMENTS'
40408    , p_component_type_code     => l_component_type_code
40409    , p_component_appl_id       => l_component_appl_id
40410    , p_amb_context_code        => l_amb_context_code
40412    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
40413    , p_side                    => 'NA'
40414    );
40415    --
40416 
40417 
40418    --
40419    --
40420    END IF;
40421    --
40422    -- Bug 4922099
40423    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40424           (NVL(l_enc_upg_option, 'N') = 'O')
40425         ) AND
40426         (l_bflow_method_code = 'PRIOR_ENTRY')
40427       )
40428    THEN
40429       IF
40430       --
40431       1 = 2
40432       --
40433       THEN
40434       xla_accounting_err_pkg.build_message
40435                                     (p_appli_s_name            => 'XLA'
40436                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40437                                     ,p_token_1                 => 'LINE_NUMBER'
40438                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40439                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40440                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40441                                                                              l_component_type
40442                                                                             ,l_component_code
40443                                                                             ,l_component_type_code
40444                                                                             ,l_component_appl_id
40445                                                                             ,l_amb_context_code
40446                                                                             ,l_entity_code
40447                                                                             ,l_event_class_code
40448                                                                            )
40449                                     ,p_token_3                 => 'OWNER'
40450                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40451                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40452                                                                           ,p_lookup_code    => l_component_type_code
40453                                                                          )
40454                                     ,p_token_4                 => 'PRODUCT_NAME'
40455                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40456                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40457                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40458                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40459                                     ,p_ae_header_id            =>  NULL
40460                                        );
40461 
40462         IF (C_LEVEL_ERROR>= g_log_level) THEN
40463                  trace
40464                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40465                       ,p_level    => C_LEVEL_ERROR
40466                       ,p_module   => l_log_module);
40467         END IF;
40468       END IF;
40469    END IF;
40470    --
40471    --
40472    ------------------------------------------------------------------------------------------------
40473    -- 4219869 Business Flow
40474    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40475    -- Prior Entry.  Currently, the following code is always generated.
40476    ------------------------------------------------------------------------------------------------
40477    XLA_AE_LINES_PKG.ValidateCurrentLine;
40478 
40479    ------------------------------------------------------------------------------------
40480    -- 4219869 Business Flow
40481    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40482    ------------------------------------------------------------------------------------
40483    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40484 
40485    ----------------------------------------------------------------------------------
40486    -- 4219869 Business Flow
40487    -- Update journal entry status -- Need to generate this within IF <condition>
40488    ----------------------------------------------------------------------------------
40489    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40490          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40491          ,p_balance_type_code => l_balance_type_code
40492          );
40493 
40494    -------------------------------------------------------------------------------------------
40495    -- 4262811 - Generate the Accrual Reversal lines
40496    -------------------------------------------------------------------------------------------
40497    BEGIN
40498       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40499                               (g_array_event(p_event_id).array_value_num('header_index'));
40500       IF l_acc_rev_flag IS NULL THEN
40501          l_acc_rev_flag := 'N';
40502       END IF;
40503    EXCEPTION
40504       WHEN OTHERS THEN
40505          l_acc_rev_flag := 'N';
40506    END;
40507    --
40511        -- To allow MPA report to determine if it should generate report process
40508    IF (l_acc_rev_flag = 'Y') THEN
40509 
40510        -- 4645092  ------------------------------------------------------------------------------
40512        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40513        ------------------------------------------------------------------------------------------
40514 
40515        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40516        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40517    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40518    -- call ADRs
40519    -- Bug 4922099
40520    --
40521    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40522         (NVL(l_actual_upg_option, 'N') = 'O') OR
40523         (NVL(l_enc_upg_option, 'N') = 'O')
40524       )
40525    THEN
40526    NULL;
40527    --
40528    --
40529    
40530   l_ccid := AcctDerRule_30(
40531            p_application_id           => p_application_id
40532          , p_ae_header_id             => l_ae_header_id 
40533 , p_source_12 => p_source_12
40534          , x_transaction_coa_id       => l_adr_transaction_coa_id
40535          , x_accounting_coa_id        => l_adr_accounting_coa_id
40536          , x_value_type_code          => l_adr_value_type_code
40537          , p_side                     => 'NA'
40538    );
40539 
40540    xla_ae_lines_pkg.set_ccid(
40541     p_code_combination_id          => l_ccid
40542   , p_value_type_code              => l_adr_value_type_code
40543   , p_transaction_coa_id           => l_adr_transaction_coa_id
40544   , p_accounting_coa_id            => l_adr_accounting_coa_id
40545   , p_adr_code                     => 'AP_CASH'
40546   , p_adr_type_code                => 'S'
40547   , p_component_type               => l_component_type
40548   , p_component_code               => l_component_code
40549   , p_component_type_code          => l_component_type_code
40550   , p_component_appl_id            => l_component_appl_id
40551   , p_amb_context_code             => l_amb_context_code
40552   , p_side                         => 'NA'
40553   );
40554 
40555 
40556    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
40557      p_to_segment_code         => 'GL_BALANCING'
40558    , p_segment_value           => C_CHAR
40559    , p_from_segment_code       => NULL
40560    , p_from_combination_id     => NULL
40561    , p_value_type_code         => NULL
40562    , p_transaction_coa_id      => null
40563    , p_accounting_coa_id       => null
40564    , p_flexfield_segment_code  => NULL
40565    , p_flex_value_set_id       => NULL
40566    , p_adr_code                => NULL
40567    , p_adr_type_code           => NULL
40568    , p_component_type          => l_component_type
40569    , p_component_code          => l_component_code
40570    , p_component_type_code     => l_component_type_code
40571    , p_component_appl_id       => l_component_appl_id
40572    , p_amb_context_code        => l_amb_context_code
40573    , p_entity_code             => 'AP_PAYMENTS'
40574    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
40575    , p_side                    => 'NA'
40576    );
40577    --
40578 
40579 
40580    --
40581    --
40582    END IF;
40583 
40584        --
40585        -- Update the line information that should be overwritten
40586        --
40587        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40588                                          p_header_num   => 1);
40589        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40590 
40591        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40592 
40593        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40594           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40595        END IF;
40596 
40597       --
40598       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40599       --
40600       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40601           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40602       ELSE
40603           ---------------------------------------------------------------------------------------------------
40604           -- 4262811a Switch Sign
40605           ---------------------------------------------------------------------------------------------------
40606           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40607           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40608                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40609           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40610                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40611           -- 5132302
40612           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40613                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40614 
40615       END IF;
40616 
40617       -- 4955764
40621 
40618       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40619       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40620 
40622       XLA_AE_LINES_PKG.ValidateCurrentLine;
40623       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40624 
40625       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40626                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40627                ,p_balance_type_code => l_balance_type_code);
40628 
40629    END IF;
40630 
40631    -----------------------------------------------------------------------------------------
40632    -- 4262811 Multiperiod Accounting
40633    -----------------------------------------------------------------------------------------
40634      -- No MPA option is assigned.
40635 
40636 
40637 END IF;
40638 END IF;
40639 --
40640 
40641 --
40642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40643    trace
40644       (p_msg      => 'END of AcctLineType_99'
40645       ,p_level    => C_LEVEL_PROCEDURE
40646       ,p_module   => l_log_module);
40647 END IF;
40648 --
40649 EXCEPTION
40650   WHEN xla_exceptions_pkg.application_exception THEN
40651       RAISE;
40652   WHEN OTHERS THEN
40653        xla_exceptions_pkg.raise_message
40654            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_99');
40655 END AcctLineType_99;
40656 --
40657 
40658 ---------------------------------------
40659 --
40660 -- PRIVATE FUNCTION
40661 --         AcctLineType_100
40662 --
40663 ---------------------------------------
40664 PROCEDURE AcctLineType_100 (
40665   p_application_id        IN NUMBER
40666  ,p_event_id              IN NUMBER
40667  ,p_calculate_acctd_flag  IN VARCHAR2
40668  ,p_calculate_g_l_flag    IN VARCHAR2
40669  ,p_actual_flag           IN OUT VARCHAR2
40670  ,p_balance_type_code     OUT VARCHAR2
40671  ,p_gain_or_loss_ref      OUT VARCHAR2
40672  
40673 --Payment Currency Code
40674  , p_source_8            IN VARCHAR2
40675 --Bank Cash Account
40676  , p_source_12            IN NUMBER
40677 --Automatic Offsets Flag
40678  , p_source_43            IN VARCHAR2
40679  , p_source_43_meaning    IN VARCHAR2
40680 --When to Account for Payment Option
40681  , p_source_57            IN VARCHAR2
40682 --Accounting Reversal Indicator
40683  , p_source_58            IN VARCHAR2
40684 --Distribution Link Type
40685  , p_source_60            IN VARCHAR2
40686 --Override Accounted Amount Indicator
40687  , p_source_85            IN VARCHAR2
40688  , p_source_85_meaning    IN VARCHAR2
40689 --Third Party Type
40690  , p_source_88            IN VARCHAR2
40691 --Invoice Distribution Tax Line Identifier
40692  , p_source_91            IN NUMBER
40693 --Invoice Distribution Tax Distribution Identifier from Tax
40694  , p_source_92            IN NUMBER
40695 --Invoice Distribution Summary Tax Line Identifier
40696  , p_source_93            IN NUMBER
40697 --Business Flow Accounts Payable Application Identifier
40698  , p_source_96            IN NUMBER
40699 --Business Flow Invoice Distribution Type
40700  , p_source_97            IN VARCHAR2
40701 --Business Flow Invoice Entity Code
40702  , p_source_98            IN VARCHAR2
40703 --Business Flow Invoice Distribution Identifier
40704  , p_source_99            IN NUMBER
40705 --Business Flow Invoice Identifier
40706  , p_source_100            IN NUMBER
40707 --Payment Distribution Type
40708  , p_source_101            IN VARCHAR2
40709  , p_source_101_meaning    IN VARCHAR2
40710 --Payment Distribution Amount
40711  , p_source_102            IN NUMBER
40712 --Payment Distribution Identifier
40713  , p_source_107            IN NUMBER
40714 --Payment Supplier Identifier
40715  , p_source_113            IN NUMBER
40716 --Payment Supplier Site Identifier
40717  , p_source_114            IN NUMBER
40718 --Payment Distribution Reversed Identifier
40719  , p_source_115            IN NUMBER
40720 --Pooled Bank Account Option
40721  , p_source_116            IN VARCHAR2
40722  , p_source_116_meaning    IN VARCHAR2
40723 --Payment Maturity Date
40724  , p_source_117            IN DATE
40725 --Payment Distribution (Payment Rate) Ledger Amount
40726  , p_source_118            IN NUMBER
40727 --Payment Exchange Date
40728  , p_source_120            IN DATE
40729 --Payment Exchange Rate
40730  , p_source_121            IN NUMBER
40731 --Payment Exchange Rate Type
40732  , p_source_122            IN VARCHAR2
40733 --Payment Type
40734  , p_source_125            IN VARCHAR2
40735  , p_source_125_meaning    IN VARCHAR2
40736 )
40737 IS
40738 
40739 l_component_type              VARCHAR2(80);
40740 l_component_code              VARCHAR2(30);
40741 l_component_type_code         VARCHAR2(1);
40742 l_component_appl_id           INTEGER;
40743 l_amb_context_code            VARCHAR2(30);
40744 l_entity_code                 VARCHAR2(30);
40745 l_event_class_code            VARCHAR2(30);
40746 l_ae_header_id                NUMBER;
40747 l_event_type_code             VARCHAR2(30);
40748 l_line_definition_code        VARCHAR2(30);
40749 l_line_definition_owner_code  VARCHAR2(1);
40750 --
40751 -- adr variables
40752 l_segment                     VARCHAR2(30);
40753 l_ccid                        NUMBER;
40754 l_adr_transaction_coa_id      NUMBER;
40755 l_adr_accounting_coa_id       NUMBER;
40759 l_adr_value_combination_id    NUMBER;
40756 l_adr_flexfield_segment_code  VARCHAR2(30);
40757 l_adr_flex_value_set_id       NUMBER;
40758 l_adr_value_type_code         VARCHAR2(30);
40760 l_adr_value_segment_code      VARCHAR2(30);
40761 
40762 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40763 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40764 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40765 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40766 
40767 -- 4262811 Variables ------------------------------------------------------------------------------------------
40768 l_entered_amt_idx             NUMBER;
40769 l_accted_amt_idx              NUMBER;
40770 l_acc_rev_flag                VARCHAR2(1);
40771 l_accrual_line_num            NUMBER;
40772 l_tmp_amt                     NUMBER;
40773 l_acc_rev_natural_side_code   VARCHAR2(1);
40774 
40775 l_num_entries                 NUMBER;
40776 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40777 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40778 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40779 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40780 l_recog_line_1                NUMBER;
40781 l_recog_line_2                NUMBER;
40782 
40783 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40784 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40785 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40786 
40787 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40788 
40789 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40790 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40791 
40792 ---------------------------------------------------------------------------------------------------------------
40793 
40794 
40795 --
40796 -- bulk performance
40797 --
40798 l_balance_type_code           VARCHAR2(1);
40799 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40800 l_log_module                  VARCHAR2(240);
40801 
40802 --
40803 -- Upgrade strategy
40804 --
40805 l_actual_upg_option           VARCHAR2(1);
40806 l_enc_upg_option           VARCHAR2(1);
40807 
40808 --
40809 BEGIN
40810 --
40811 IF g_log_enabled THEN
40812       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
40813 END IF;
40814 --
40815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40816 
40817       trace
40818          (p_msg      => 'BEGIN of AcctLineType_100'
40819          ,p_level    => C_LEVEL_PROCEDURE
40820          ,p_module   => l_log_module);
40821 
40822 END IF;
40823 --
40824 l_component_type             := 'AMB_JLT';
40825 l_component_code             := 'AP_CASH_REF';
40826 l_component_type_code        := 'S';
40827 l_component_appl_id          :=  200;
40828 l_amb_context_code           := 'DEFAULT';
40829 l_entity_code                := 'AP_PAYMENTS';
40830 l_event_class_code           := 'REFUNDS';
40831 l_event_type_code            := 'REFUNDS_ALL';
40832 l_line_definition_owner_code := 'S';
40833 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
40834 --
40835 l_balance_type_code          := 'A';
40836 l_segment                     := NULL;
40837 l_ccid                        := NULL;
40838 l_adr_transaction_coa_id      := NULL;
40839 l_adr_accounting_coa_id       := NULL;
40840 l_adr_flexfield_segment_code  := NULL;
40841 l_adr_flex_value_set_id       := NULL;
40842 l_adr_value_type_code         := NULL;
40843 l_adr_value_combination_id    := NULL;
40844 l_adr_value_segment_code      := NULL;
40845 
40846 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
40847 l_bflow_class_code           := '';    -- 4219869 Business Flow
40848 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40849 l_budgetary_control_flag     := 'N';
40850 
40851 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40852 l_bflow_applied_to_amt       := NULL; -- 5132302
40853 l_entered_amt_idx            := NULL;          -- 4262811
40854 l_accted_amt_idx             := NULL;          -- 4262811
40855 l_acc_rev_flag               := NULL;          -- 4262811
40856 l_accrual_line_num           := NULL;          -- 4262811
40857 l_tmp_amt                    := NULL;          -- 4262811
40858 --
40859  
40860 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40861     l_balance_type_code <> 'B' THEN
40862 IF NVL(p_source_57,'
40863 ') =  'ISSUE_ISSUE' AND 
40864 (NVL(p_source_43,'
40865 ') <>  'Y' OR 
40866 NVL(p_source_43,'
40867 ') =  'Y' AND 
40868 NVL(p_source_116,'
40869 ') <>  'Y') AND 
40870 p_source_117 IS NULL AND 
40871 NVL(p_source_101,'
40872 ') =  'CASH' AND 
40873 NVL(p_source_125,'
40874 ') =  'R'
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' and p_actual_flag is null) THEN
40884      p_actual_flag :='A';
40885    END IF;
40886 
40887    --
40888    -- bulk performance
40889    --
40893    -- set accounting line options
40890    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40891                                       p_header_num   => 0); -- 4262811
40892    --
40894    --
40895    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40896            p_natural_side_code          => 'C'
40897          , p_gain_or_loss_flag          => 'N'
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(
40924            p_accounting_class_code  => 'CASH'
40925          , p_ae_header_id           => l_ae_header_id
40926          );
40927 
40928    --
40929    -- set rounding class
40930    --
40931    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40932                       'CASH';
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 := 9;
40955    l_accted_amt_idx  := 14;
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_58;
40959    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40960    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
40961    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40962    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
40963    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40964    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
40965    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40966    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
40967    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40968    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
40969    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40970    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
40971    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40972    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
40973    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40974    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
40975    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40976    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
40977    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40978    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
40979    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40980    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
40981    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40982    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
40983    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40984    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
40985    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40986    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
40987    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40988    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
40989    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40990    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
40991    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40992    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
40993    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40994    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
40995    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40999    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
40996    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
40997    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
40998    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
41000    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
41001    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41002    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
41003 
41004    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41005    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41006 
41007    ---------------------------------------------------------------------------------------------------------------
41008    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41009    ---------------------------------------------------------------------------------------------------------------
41010    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41011 
41012    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41013    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41014 
41015    IF xla_accounting_cache_pkg.GetValueChar
41016          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41017          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41018    AND l_bflow_method_code = 'PRIOR_ENTRY'
41019 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41020    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41021          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41022        )
41023    THEN
41024          xla_ae_lines_pkg.BflowUpgEntry
41025            (p_business_method_code    => l_bflow_method_code
41026            ,p_business_class_code     => l_bflow_class_code
41027            ,p_balance_type            => l_balance_type_code);
41028    ELSE
41029       NULL;
41030 -- No business flow processing for business flow method of NONE.
41031    END IF;
41032 
41033    --
41034    -- call analytical criteria
41035    --
41036    
41037    --
41038    -- call description
41039    --
41040    -- No description or it is inherited.
41041    --
41042    -- call ADRs
41043    -- Bug 4922099
41044    --
41045    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41046         (NVL(l_actual_upg_option, 'N') = 'O') OR
41047         (NVL(l_enc_upg_option, 'N') = 'O')
41048       )
41049    THEN
41050    NULL;
41051    --
41052    --
41053    
41054   l_ccid := AcctDerRule_30(
41055            p_application_id           => p_application_id
41056          , p_ae_header_id             => l_ae_header_id 
41057 , p_source_12 => p_source_12
41058          , x_transaction_coa_id       => l_adr_transaction_coa_id
41059          , x_accounting_coa_id        => l_adr_accounting_coa_id
41060          , x_value_type_code          => l_adr_value_type_code
41061          , p_side                     => 'NA'
41062    );
41063 
41064    xla_ae_lines_pkg.set_ccid(
41065     p_code_combination_id          => l_ccid
41066   , p_value_type_code              => l_adr_value_type_code
41067   , p_transaction_coa_id           => l_adr_transaction_coa_id
41068   , p_accounting_coa_id            => l_adr_accounting_coa_id
41069   , p_adr_code                     => 'AP_CASH'
41070   , p_adr_type_code                => 'S'
41071   , p_component_type               => l_component_type
41072   , p_component_code               => l_component_code
41073   , p_component_type_code          => l_component_type_code
41074   , p_component_appl_id            => l_component_appl_id
41075   , p_amb_context_code             => l_amb_context_code
41076   , p_side                         => 'NA'
41077   );
41078 
41079 
41080    --
41081    --
41082    END IF;
41083    --
41084    -- Bug 4922099
41085    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41086           (NVL(l_enc_upg_option, 'N') = 'O')
41087         ) AND
41088         (l_bflow_method_code = 'PRIOR_ENTRY')
41089       )
41090    THEN
41091       IF
41092       --
41093       1 = 2
41094       --
41095       THEN
41096       xla_accounting_err_pkg.build_message
41097                                     (p_appli_s_name            => 'XLA'
41098                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41099                                     ,p_token_1                 => 'LINE_NUMBER'
41100                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41101                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41102                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41103                                                                              l_component_type
41104                                                                             ,l_component_code
41105                                                                             ,l_component_type_code
41106                                                                             ,l_component_appl_id
41107                                                                             ,l_amb_context_code
41108                                                                             ,l_entity_code
41112                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41109                                                                             ,l_event_class_code
41110                                                                            )
41111                                     ,p_token_3                 => 'OWNER'
41113                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41114                                                                           ,p_lookup_code    => l_component_type_code
41115                                                                          )
41116                                     ,p_token_4                 => 'PRODUCT_NAME'
41117                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41118                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41119                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41120                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41121                                     ,p_ae_header_id            =>  NULL
41122                                        );
41123 
41124         IF (C_LEVEL_ERROR>= g_log_level) THEN
41125                  trace
41126                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41127                       ,p_level    => C_LEVEL_ERROR
41128                       ,p_module   => l_log_module);
41129         END IF;
41130       END IF;
41131    END IF;
41132    --
41133    --
41134    ------------------------------------------------------------------------------------------------
41135    -- 4219869 Business Flow
41136    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41137    -- Prior Entry.  Currently, the following code is always generated.
41138    ------------------------------------------------------------------------------------------------
41139    XLA_AE_LINES_PKG.ValidateCurrentLine;
41140 
41141    ------------------------------------------------------------------------------------
41142    -- 4219869 Business Flow
41143    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41144    ------------------------------------------------------------------------------------
41145    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41146 
41147    ----------------------------------------------------------------------------------
41148    -- 4219869 Business Flow
41149    -- Update journal entry status -- Need to generate this within IF <condition>
41150    ----------------------------------------------------------------------------------
41151    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41152          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41153          ,p_balance_type_code => l_balance_type_code
41154          );
41155 
41156    -------------------------------------------------------------------------------------------
41157    -- 4262811 - Generate the Accrual Reversal lines
41158    -------------------------------------------------------------------------------------------
41159    BEGIN
41160       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41161                               (g_array_event(p_event_id).array_value_num('header_index'));
41162       IF l_acc_rev_flag IS NULL THEN
41163          l_acc_rev_flag := 'N';
41164       END IF;
41165    EXCEPTION
41166       WHEN OTHERS THEN
41167          l_acc_rev_flag := 'N';
41168    END;
41169    --
41170    IF (l_acc_rev_flag = 'Y') THEN
41171 
41172        -- 4645092  ------------------------------------------------------------------------------
41173        -- To allow MPA report to determine if it should generate report process
41174        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41175        ------------------------------------------------------------------------------------------
41176 
41177        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41178        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41179    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41180    -- call ADRs
41181    -- Bug 4922099
41182    --
41183    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41184         (NVL(l_actual_upg_option, 'N') = 'O') OR
41185         (NVL(l_enc_upg_option, 'N') = 'O')
41186       )
41187    THEN
41188    NULL;
41189    --
41190    --
41191    
41192   l_ccid := AcctDerRule_30(
41193            p_application_id           => p_application_id
41194          , p_ae_header_id             => l_ae_header_id 
41195 , p_source_12 => p_source_12
41196          , x_transaction_coa_id       => l_adr_transaction_coa_id
41197          , x_accounting_coa_id        => l_adr_accounting_coa_id
41198          , x_value_type_code          => l_adr_value_type_code
41199          , p_side                     => 'NA'
41200    );
41201 
41202    xla_ae_lines_pkg.set_ccid(
41203     p_code_combination_id          => l_ccid
41204   , p_value_type_code              => l_adr_value_type_code
41205   , p_transaction_coa_id           => l_adr_transaction_coa_id
41206   , p_accounting_coa_id            => l_adr_accounting_coa_id
41207   , p_adr_code                     => 'AP_CASH'
41208   , p_adr_type_code                => 'S'
41209   , p_component_type               => l_component_type
41210   , p_component_code               => l_component_code
41211   , p_component_type_code          => l_component_type_code
41215   );
41212   , p_component_appl_id            => l_component_appl_id
41213   , p_amb_context_code             => l_amb_context_code
41214   , p_side                         => 'NA'
41216 
41217 
41218    --
41219    --
41220    END IF;
41221 
41222        --
41223        -- Update the line information that should be overwritten
41224        --
41225        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41226                                          p_header_num   => 1);
41227        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41228 
41229        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41230 
41231        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41232           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41233        END IF;
41234 
41235       --
41236       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41237       --
41238       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41239           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41240       ELSE
41241           ---------------------------------------------------------------------------------------------------
41242           -- 4262811a Switch Sign
41243           ---------------------------------------------------------------------------------------------------
41244           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41245           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41246                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41247           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41248                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41249           -- 5132302
41250           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41251                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41252 
41253       END IF;
41254 
41255       -- 4955764
41256       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41257       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41258 
41259 
41260       XLA_AE_LINES_PKG.ValidateCurrentLine;
41261       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41262 
41263       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41264                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41265                ,p_balance_type_code => l_balance_type_code);
41266 
41267    END IF;
41268 
41269    -----------------------------------------------------------------------------------------
41270    -- 4262811 Multiperiod Accounting
41271    -----------------------------------------------------------------------------------------
41272      -- No MPA option is assigned.
41273 
41274 
41275 END IF;
41276 END IF;
41277 --
41278 
41279 --
41280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41281    trace
41282       (p_msg      => 'END of AcctLineType_100'
41283       ,p_level    => C_LEVEL_PROCEDURE
41284       ,p_module   => l_log_module);
41285 END IF;
41286 --
41287 EXCEPTION
41288   WHEN xla_exceptions_pkg.application_exception THEN
41289       RAISE;
41290   WHEN OTHERS THEN
41291        xla_exceptions_pkg.raise_message
41292            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_100');
41293 END AcctLineType_100;
41294 --
41295 
41296 ---------------------------------------
41297 --
41298 -- PRIVATE FUNCTION
41299 --         AcctLineType_101
41300 --
41301 ---------------------------------------
41302 PROCEDURE AcctLineType_101 (
41303   p_application_id        IN NUMBER
41304  ,p_event_id              IN NUMBER
41305  ,p_calculate_acctd_flag  IN VARCHAR2
41306  ,p_calculate_g_l_flag    IN VARCHAR2
41307  ,p_actual_flag           IN OUT VARCHAR2
41308  ,p_balance_type_code     OUT VARCHAR2
41309  ,p_gain_or_loss_ref      OUT VARCHAR2
41310  
41311 --Payment Currency Code
41312  , p_source_8            IN VARCHAR2
41313 --Automatic Offsets Value
41314  , p_source_10            IN VARCHAR2
41315  , p_source_10_meaning    IN VARCHAR2
41316 --Bank Cash Account
41317  , p_source_12            IN NUMBER
41318 --When to Account for Payment Option
41319  , p_source_57            IN VARCHAR2
41320 --Accounting Reversal Indicator
41321  , p_source_58            IN VARCHAR2
41322 --Distribution Link Type
41323  , p_source_60            IN VARCHAR2
41324 --Override Accounted Amount Indicator
41325  , p_source_85            IN VARCHAR2
41326  , p_source_85_meaning    IN VARCHAR2
41327 --Third Party Type
41328  , p_source_88            IN VARCHAR2
41329 --Invoice Distribution Tax Line Identifier
41330  , p_source_91            IN NUMBER
41331 --Invoice Distribution Tax Distribution Identifier from Tax
41332  , p_source_92            IN NUMBER
41333 --Invoice Distribution Summary Tax Line Identifier
41334  , p_source_93            IN NUMBER
41338  , p_source_97            IN VARCHAR2
41335 --Business Flow Accounts Payable Application Identifier
41336  , p_source_96            IN NUMBER
41337 --Business Flow Invoice Distribution Type
41339 --Business Flow Invoice Entity Code
41340  , p_source_98            IN VARCHAR2
41341 --Business Flow Invoice Distribution Identifier
41342  , p_source_99            IN NUMBER
41343 --Business Flow Invoice Identifier
41344  , p_source_100            IN NUMBER
41345 --Payment Distribution Type
41346  , p_source_101            IN VARCHAR2
41347  , p_source_101_meaning    IN VARCHAR2
41348 --Payment Distribution Amount
41349  , p_source_102            IN NUMBER
41350 --Payment Distribution Identifier
41351  , p_source_107            IN NUMBER
41352 --Payment Supplier Identifier
41353  , p_source_113            IN NUMBER
41354 --Payment Supplier Site Identifier
41355  , p_source_114            IN NUMBER
41356 --Payment Distribution Reversed Identifier
41357  , p_source_115            IN NUMBER
41358 --Pooled Bank Account Option
41359  , p_source_116            IN VARCHAR2
41360  , p_source_116_meaning    IN VARCHAR2
41361 --Payment Maturity Date
41362  , p_source_117            IN DATE
41363 --Payment Distribution (Payment Rate) Ledger Amount
41364  , p_source_118            IN NUMBER
41365 --Payment Exchange Date
41366  , p_source_120            IN DATE
41367 --Payment Exchange Rate
41368  , p_source_121            IN NUMBER
41369 --Payment Exchange Rate Type
41370  , p_source_122            IN VARCHAR2
41371 --Payment Type
41372  , p_source_125            IN VARCHAR2
41373  , p_source_125_meaning    IN VARCHAR2
41374 )
41375 IS
41376 
41377 l_component_type              VARCHAR2(80);
41378 l_component_code              VARCHAR2(30);
41379 l_component_type_code         VARCHAR2(1);
41380 l_component_appl_id           INTEGER;
41381 l_amb_context_code            VARCHAR2(30);
41382 l_entity_code                 VARCHAR2(30);
41383 l_event_class_code            VARCHAR2(30);
41384 l_ae_header_id                NUMBER;
41385 l_event_type_code             VARCHAR2(30);
41386 l_line_definition_code        VARCHAR2(30);
41387 l_line_definition_owner_code  VARCHAR2(1);
41388 --
41389 -- adr variables
41390 l_segment                     VARCHAR2(30);
41391 l_ccid                        NUMBER;
41392 l_adr_transaction_coa_id      NUMBER;
41393 l_adr_accounting_coa_id       NUMBER;
41394 l_adr_flexfield_segment_code  VARCHAR2(30);
41395 l_adr_flex_value_set_id       NUMBER;
41396 l_adr_value_type_code         VARCHAR2(30);
41397 l_adr_value_combination_id    NUMBER;
41398 l_adr_value_segment_code      VARCHAR2(30);
41399 
41400 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41401 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41402 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41403 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41404 
41405 -- 4262811 Variables ------------------------------------------------------------------------------------------
41406 l_entered_amt_idx             NUMBER;
41407 l_accted_amt_idx              NUMBER;
41408 l_acc_rev_flag                VARCHAR2(1);
41409 l_accrual_line_num            NUMBER;
41410 l_tmp_amt                     NUMBER;
41411 l_acc_rev_natural_side_code   VARCHAR2(1);
41412 
41413 l_num_entries                 NUMBER;
41414 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41415 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41416 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41417 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41418 l_recog_line_1                NUMBER;
41419 l_recog_line_2                NUMBER;
41420 
41421 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41422 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41423 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41424 
41425 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41426 
41427 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41428 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41429 
41430 ---------------------------------------------------------------------------------------------------------------
41431 
41432 
41433 --
41434 -- bulk performance
41435 --
41436 l_balance_type_code           VARCHAR2(1);
41437 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41438 l_log_module                  VARCHAR2(240);
41439 
41440 --
41441 -- Upgrade strategy
41442 --
41443 l_actual_upg_option           VARCHAR2(1);
41444 l_enc_upg_option           VARCHAR2(1);
41445 
41446 --
41447 BEGIN
41448 --
41449 IF g_log_enabled THEN
41450       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
41451 END IF;
41452 --
41453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41454 
41455       trace
41456          (p_msg      => 'BEGIN of AcctLineType_101'
41457          ,p_level    => C_LEVEL_PROCEDURE
41458          ,p_module   => l_log_module);
41459 
41460 END IF;
41461 --
41462 l_component_type             := 'AMB_JLT';
41463 l_component_code             := 'AP_CASH_REF_AOS_AS';
41464 l_component_type_code        := 'S';
41468 l_event_class_code           := 'REFUNDS';
41465 l_component_appl_id          :=  200;
41466 l_amb_context_code           := 'DEFAULT';
41467 l_entity_code                := 'AP_PAYMENTS';
41469 l_event_type_code            := 'REFUNDS_ALL';
41470 l_line_definition_owner_code := 'S';
41471 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
41472 --
41473 l_balance_type_code          := 'A';
41474 l_segment                     := NULL;
41475 l_ccid                        := NULL;
41476 l_adr_transaction_coa_id      := NULL;
41477 l_adr_accounting_coa_id       := NULL;
41478 l_adr_flexfield_segment_code  := NULL;
41479 l_adr_flex_value_set_id       := NULL;
41480 l_adr_value_type_code         := NULL;
41481 l_adr_value_combination_id    := NULL;
41482 l_adr_value_segment_code      := NULL;
41483 
41484 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
41485 l_bflow_class_code           := '';    -- 4219869 Business Flow
41486 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41487 l_budgetary_control_flag     := 'N';
41488 
41489 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41490 l_bflow_applied_to_amt       := NULL; -- 5132302
41491 l_entered_amt_idx            := NULL;          -- 4262811
41492 l_accted_amt_idx             := NULL;          -- 4262811
41493 l_acc_rev_flag               := NULL;          -- 4262811
41494 l_accrual_line_num           := NULL;          -- 4262811
41495 l_tmp_amt                    := NULL;          -- 4262811
41496 --
41497  
41498 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41499     l_balance_type_code <> 'B' THEN
41500 IF NVL(p_source_57,'
41501 ') =  'ISSUE_ISSUE' AND 
41502 (NVL(p_source_116,'
41503 ') =  'Y' AND 
41504 NVL(p_source_10,'
41505 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
41506 p_source_117 IS NULL AND 
41507 NVL(p_source_101,'
41508 ') =  'CASH' AND 
41509 NVL(p_source_125,'
41510 ') =  'R'
41511  THEN 
41512 
41513    --
41514    XLA_AE_LINES_PKG.SetNewLine;
41515 
41516    p_balance_type_code          := l_balance_type_code;
41517    -- set the flag so later we will know whether the gain loss line needs to be created
41518    
41519    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41520      p_actual_flag :='A';
41521    END IF;
41522 
41523    --
41524    -- bulk performance
41525    --
41526    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41527                                       p_header_num   => 0); -- 4262811
41528    --
41529    -- set accounting line options
41530    --
41531    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41532            p_natural_side_code          => 'C'
41533          , p_gain_or_loss_flag          => 'N'
41534          , p_gl_transfer_mode_code      => 'S'
41535          , p_acct_entry_type_code       => 'A'
41536          , p_switch_side_flag           => 'Y'
41537          , p_merge_duplicate_code       => 'A'
41538          );
41539    --
41540    l_acc_rev_natural_side_code := 'D';  -- 4262811
41541    -- 
41542    --
41543    -- set accounting line type info
41544    --
41545    xla_ae_lines_pkg.SetAcctLineType
41546       (p_component_type             => l_component_type
41547       ,p_event_type_code            => l_event_type_code
41548       ,p_line_definition_owner_code => l_line_definition_owner_code
41549       ,p_line_definition_code       => l_line_definition_code
41550       ,p_accounting_line_code       => l_component_code
41551       ,p_accounting_line_type_code  => l_component_type_code
41552       ,p_accounting_line_appl_id    => l_component_appl_id
41553       ,p_amb_context_code           => l_amb_context_code
41554       ,p_entity_code                => l_entity_code
41555       ,p_event_class_code           => l_event_class_code);
41556    --
41557    -- set accounting class
41558    --
41559    xla_ae_lines_pkg.SetAcctClass(
41560            p_accounting_class_code  => 'CASH'
41561          , p_ae_header_id           => l_ae_header_id
41562          );
41563 
41564    --
41565    -- set rounding class
41566    --
41567    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41568                       'CASH';
41569 
41570    --
41571    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41572    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41573    --
41574    -- bulk performance
41575    --
41576    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41577 
41578    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41579       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41580 
41581    -- 4955764
41582    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41583       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41584 
41585    -- 4458381 Public Sector Enh
41586    
41587    --
41588    -- set accounting attributes for the line type
41589    --
41590    l_entered_amt_idx := 9;
41591    l_accted_amt_idx  := 14;
41592    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41593    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41597    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41594    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
41595    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
41596    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
41598    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
41599    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
41600    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
41601    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
41602    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
41603    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41604    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
41605    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
41606    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
41607    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
41608    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
41609    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
41610    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
41611    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
41612    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
41613    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
41614    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
41615    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
41616    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
41617    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
41618    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
41619    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
41620    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
41621    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41622    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
41623    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41624    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
41625    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
41626    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
41627    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41628    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
41629    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41630    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
41631    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41632    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
41633    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
41634    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
41635    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
41636    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
41637    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41638    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
41639 
41640    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41641    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41642 
41643    ---------------------------------------------------------------------------------------------------------------
41644    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41645    ---------------------------------------------------------------------------------------------------------------
41646    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41647 
41648    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41649    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41650 
41651    IF xla_accounting_cache_pkg.GetValueChar
41652          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41653          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41654    AND l_bflow_method_code = 'PRIOR_ENTRY'
41655 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41656    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41657          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41658        )
41659    THEN
41660          xla_ae_lines_pkg.BflowUpgEntry
41661            (p_business_method_code    => l_bflow_method_code
41662            ,p_business_class_code     => l_bflow_class_code
41663            ,p_balance_type            => l_balance_type_code);
41664    ELSE
41665       NULL;
41666 XLA_AE_LINES_PKG.business_flow_validation(
41667                                 p_business_method_code     => l_bflow_method_code
41668                                ,p_business_class_code      => l_bflow_class_code
41669                                ,p_inherit_description_flag => l_inherit_desc_flag);
41670    END IF;
41671 
41672    --
41673    -- call analytical criteria
41674    --
41675    
41676    --
41677    -- call description
41678    --
41679    -- No description or it is inherited.
41680    --
41681    -- call ADRs
41682    -- Bug 4922099
41683    --
41684    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41685         (NVL(l_actual_upg_option, 'N') = 'O') OR
41686         (NVL(l_enc_upg_option, 'N') = 'O')
41687       )
41688    THEN
41689    NULL;
41690    --
41691    --
41692    
41693    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
41697    , p_accounting_coa_id        => null
41694      p_code_combination_id      => TO_NUMBER(C_NUM)
41695    , p_value_type_code          => NULL
41696    , p_transaction_coa_id       => null
41698    , p_adr_code                 => NULL
41699    , p_adr_type_code            => NULL
41700    , p_component_type           => l_component_type
41701    , p_component_code           => l_component_code
41702    , p_component_type_code      => l_component_type_code
41703    , p_component_appl_id        => l_component_appl_id
41704    , p_amb_context_code         => l_amb_context_code
41705    , p_side                     => NULL
41706    );
41707 
41708    
41709   -- initialise segments
41710   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41711   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41712   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41713   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41714   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41715   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41716   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41717   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41718   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41719   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41720   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41721   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41722   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41723   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41724   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41725   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41726   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41727   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41728   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41729   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41730   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41731   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41732   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41733   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41734   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41735   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41736   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41737   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41738   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41739   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41740   --
41741 
41742    --
41743 
41744 
41745    l_segment := AcctDerRule_6(
41746            p_application_id           => p_application_id
41747          , p_ae_header_id             => l_ae_header_id 
41748 , p_source_12 => p_source_12
41749          , x_transaction_coa_id       => l_adr_transaction_coa_id
41750          , x_accounting_coa_id        => l_adr_accounting_coa_id
41751          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41752          , x_flex_value_set_id        => l_adr_flex_value_set_id
41753          , x_value_type_code          => l_adr_value_type_code
41754          , x_value_combination_id     => l_adr_value_combination_id
41755          , x_value_segment_code       => l_adr_value_segment_code
41756          , p_side                     => 'NA'
41757          , p_override_seg_flag        => 'Y'
41758    );
41759 
41760    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41761 
41762       xla_ae_lines_pkg.set_segment(
41763           p_to_segment_code         => 'GL_ACCOUNT'
41764         , p_segment_value           => l_segment
41765         , p_from_segment_code       => l_adr_value_segment_code
41766         , p_from_combination_id     => l_adr_value_combination_id
41767         , p_value_type_code         => l_adr_value_type_code
41768         , p_transaction_coa_id      => l_adr_transaction_coa_id
41769         , p_accounting_coa_id       => l_adr_accounting_coa_id
41770         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41771         , p_flex_value_set_id       => l_adr_flex_value_set_id
41772         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
41773         , p_adr_type_code           => 'S'
41774         , p_component_type          => l_component_type
41775         , p_component_code          => l_component_code
41776         , p_component_type_code     => l_component_type_code
41777         , p_component_appl_id       => l_component_appl_id
41778         , p_amb_context_code        => l_amb_context_code
41779         , p_entity_code             => 'AP_PAYMENTS'
41780         , p_event_class_code        => 'REFUNDS'
41781         , p_side                    => 'NA'
41782         );
41783 
41784   END IF;
41785 
41786    --
41787    --
41788    END IF;
41789    --
41790    -- Bug 4922099
41794         (l_bflow_method_code = 'PRIOR_ENTRY')
41791    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41792           (NVL(l_enc_upg_option, 'N') = 'O')
41793         ) AND
41795       )
41796    THEN
41797       IF
41798       --
41799       1 = 2
41800       --
41801       THEN
41802       xla_accounting_err_pkg.build_message
41803                                     (p_appli_s_name            => 'XLA'
41804                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41805                                     ,p_token_1                 => 'LINE_NUMBER'
41806                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41807                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41808                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41809                                                                              l_component_type
41810                                                                             ,l_component_code
41811                                                                             ,l_component_type_code
41812                                                                             ,l_component_appl_id
41813                                                                             ,l_amb_context_code
41814                                                                             ,l_entity_code
41815                                                                             ,l_event_class_code
41816                                                                            )
41817                                     ,p_token_3                 => 'OWNER'
41818                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41819                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41820                                                                           ,p_lookup_code    => l_component_type_code
41821                                                                          )
41822                                     ,p_token_4                 => 'PRODUCT_NAME'
41823                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41824                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41825                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41826                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41827                                     ,p_ae_header_id            =>  NULL
41828                                        );
41829 
41830         IF (C_LEVEL_ERROR>= g_log_level) THEN
41831                  trace
41832                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41833                       ,p_level    => C_LEVEL_ERROR
41834                       ,p_module   => l_log_module);
41835         END IF;
41836       END IF;
41837    END IF;
41838    --
41839    --
41840    ------------------------------------------------------------------------------------------------
41841    -- 4219869 Business Flow
41842    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41843    -- Prior Entry.  Currently, the following code is always generated.
41844    ------------------------------------------------------------------------------------------------
41845    XLA_AE_LINES_PKG.ValidateCurrentLine;
41846 
41847    ------------------------------------------------------------------------------------
41848    -- 4219869 Business Flow
41849    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41850    ------------------------------------------------------------------------------------
41851    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41852 
41853    ----------------------------------------------------------------------------------
41854    -- 4219869 Business Flow
41855    -- Update journal entry status -- Need to generate this within IF <condition>
41856    ----------------------------------------------------------------------------------
41857    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41858          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41859          ,p_balance_type_code => l_balance_type_code
41860          );
41861 
41862    -------------------------------------------------------------------------------------------
41863    -- 4262811 - Generate the Accrual Reversal lines
41864    -------------------------------------------------------------------------------------------
41865    BEGIN
41866       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41867                               (g_array_event(p_event_id).array_value_num('header_index'));
41868       IF l_acc_rev_flag IS NULL THEN
41869          l_acc_rev_flag := 'N';
41870       END IF;
41871    EXCEPTION
41872       WHEN OTHERS THEN
41873          l_acc_rev_flag := 'N';
41874    END;
41875    --
41876    IF (l_acc_rev_flag = 'Y') THEN
41877 
41878        -- 4645092  ------------------------------------------------------------------------------
41879        -- To allow MPA report to determine if it should generate report process
41880        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41881        ------------------------------------------------------------------------------------------
41882 
41883        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41887    -- Bug 4922099
41884        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41885    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41886    -- call ADRs
41888    --
41889    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41890         (NVL(l_actual_upg_option, 'N') = 'O') OR
41891         (NVL(l_enc_upg_option, 'N') = 'O')
41892       )
41893    THEN
41894    NULL;
41895    --
41896    --
41897    
41898    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
41899      p_code_combination_id      => TO_NUMBER(C_NUM)
41900    , p_value_type_code          => NULL
41901    , p_transaction_coa_id       => null
41902    , p_accounting_coa_id        => null
41903    , p_adr_code                 => NULL
41904    , p_adr_type_code            => NULL
41905    , p_component_type           => l_component_type
41906    , p_component_code           => l_component_code
41907    , p_component_type_code      => l_component_type_code
41908    , p_component_appl_id        => l_component_appl_id
41909    , p_amb_context_code         => l_amb_context_code
41910    , p_side                     => NULL
41911    );
41912 
41913    
41914   -- initialise segments
41915   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41916   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41917   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41918   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41919   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41920   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41921   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41922   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41923   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41924   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41925   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41926   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41927   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41928   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41929   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41930   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41931   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41932   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41933   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41934   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41935   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41936   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41937   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41938   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41939   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41940   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41941   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41942   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41943   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41944   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41945   --
41946 
41947    --
41948 
41949 
41950    l_segment := AcctDerRule_6(
41951            p_application_id           => p_application_id
41952          , p_ae_header_id             => l_ae_header_id 
41953 , p_source_12 => p_source_12
41954          , x_transaction_coa_id       => l_adr_transaction_coa_id
41955          , x_accounting_coa_id        => l_adr_accounting_coa_id
41956          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41957          , x_flex_value_set_id        => l_adr_flex_value_set_id
41958          , x_value_type_code          => l_adr_value_type_code
41959          , x_value_combination_id     => l_adr_value_combination_id
41960          , x_value_segment_code       => l_adr_value_segment_code
41961          , p_side                     => 'NA'
41962          , p_override_seg_flag        => 'Y'
41963    );
41964 
41965    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41966 
41967       xla_ae_lines_pkg.set_segment(
41968           p_to_segment_code         => 'GL_ACCOUNT'
41969         , p_segment_value           => l_segment
41970         , p_from_segment_code       => l_adr_value_segment_code
41971         , p_from_combination_id     => l_adr_value_combination_id
41972         , p_value_type_code         => l_adr_value_type_code
41973         , p_transaction_coa_id      => l_adr_transaction_coa_id
41974         , p_accounting_coa_id       => l_adr_accounting_coa_id
41975         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41976         , p_flex_value_set_id       => l_adr_flex_value_set_id
41977         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
41981         , p_component_type_code     => l_component_type_code
41978         , p_adr_type_code           => 'S'
41979         , p_component_type          => l_component_type
41980         , p_component_code          => l_component_code
41982         , p_component_appl_id       => l_component_appl_id
41983         , p_amb_context_code        => l_amb_context_code
41984         , p_entity_code             => 'AP_PAYMENTS'
41985         , p_event_class_code        => 'REFUNDS'
41986         , p_side                    => 'NA'
41987         );
41988 
41989   END IF;
41990 
41991    --
41992    --
41993    END IF;
41994 
41995        --
41996        -- Update the line information that should be overwritten
41997        --
41998        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41999                                          p_header_num   => 1);
42000        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42001 
42002        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42003 
42004        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42005           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42006        END IF;
42007 
42008       --
42009       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42010       --
42011       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42012           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42013       ELSE
42014           ---------------------------------------------------------------------------------------------------
42015           -- 4262811a Switch Sign
42016           ---------------------------------------------------------------------------------------------------
42017           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42018           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42019                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42020           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42021                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42022           -- 5132302
42023           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42024                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42025 
42026       END IF;
42027 
42028       -- 4955764
42029       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42030       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42031 
42032 
42033       XLA_AE_LINES_PKG.ValidateCurrentLine;
42034       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42035 
42036       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42037                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42038                ,p_balance_type_code => l_balance_type_code);
42039 
42040    END IF;
42041 
42042    -----------------------------------------------------------------------------------------
42043    -- 4262811 Multiperiod Accounting
42044    -----------------------------------------------------------------------------------------
42045      -- No MPA option is assigned.
42046 
42047 
42048 END IF;
42049 END IF;
42050 --
42051 
42052 --
42053 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42054    trace
42055       (p_msg      => 'END of AcctLineType_101'
42056       ,p_level    => C_LEVEL_PROCEDURE
42057       ,p_module   => l_log_module);
42058 END IF;
42059 --
42060 EXCEPTION
42061   WHEN xla_exceptions_pkg.application_exception THEN
42062       RAISE;
42063   WHEN OTHERS THEN
42064        xla_exceptions_pkg.raise_message
42065            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_101');
42066 END AcctLineType_101;
42067 --
42068 
42069 ---------------------------------------
42070 --
42071 -- PRIVATE FUNCTION
42072 --         AcctLineType_102
42073 --
42074 ---------------------------------------
42075 PROCEDURE AcctLineType_102 (
42076   p_application_id        IN NUMBER
42077  ,p_event_id              IN NUMBER
42078  ,p_calculate_acctd_flag  IN VARCHAR2
42079  ,p_calculate_g_l_flag    IN VARCHAR2
42080  ,p_actual_flag           IN OUT VARCHAR2
42081  ,p_balance_type_code     OUT VARCHAR2
42082  ,p_gain_or_loss_ref      OUT VARCHAR2
42083  
42084 --Payment Currency Code
42085  , p_source_8            IN VARCHAR2
42086 --Automatic Offsets Value
42087  , p_source_10            IN VARCHAR2
42088  , p_source_10_meaning    IN VARCHAR2
42089 --Bank Cash Account
42090  , p_source_12            IN NUMBER
42091 --When to Account for Payment Option
42092  , p_source_57            IN VARCHAR2
42093 --Accounting Reversal Indicator
42094  , p_source_58            IN VARCHAR2
42095 --Distribution Link Type
42096  , p_source_60            IN VARCHAR2
42097 --Override Accounted Amount Indicator
42098  , p_source_85            IN VARCHAR2
42099  , p_source_85_meaning    IN VARCHAR2
42103  , p_source_91            IN NUMBER
42100 --Third Party Type
42101  , p_source_88            IN VARCHAR2
42102 --Invoice Distribution Tax Line Identifier
42104 --Invoice Distribution Tax Distribution Identifier from Tax
42105  , p_source_92            IN NUMBER
42106 --Invoice Distribution Summary Tax Line Identifier
42107  , p_source_93            IN NUMBER
42108 --Business Flow Accounts Payable Application Identifier
42109  , p_source_96            IN NUMBER
42110 --Business Flow Invoice Distribution Type
42111  , p_source_97            IN VARCHAR2
42112 --Business Flow Invoice Entity Code
42113  , p_source_98            IN VARCHAR2
42114 --Business Flow Invoice Distribution Identifier
42115  , p_source_99            IN NUMBER
42116 --Business Flow Invoice Identifier
42117  , p_source_100            IN NUMBER
42118 --Payment Distribution Type
42119  , p_source_101            IN VARCHAR2
42120  , p_source_101_meaning    IN VARCHAR2
42121 --Payment Distribution Amount
42122  , p_source_102            IN NUMBER
42123 --Payment Distribution Identifier
42124  , p_source_107            IN NUMBER
42125 --Payment Supplier Identifier
42126  , p_source_113            IN NUMBER
42127 --Payment Supplier Site Identifier
42128  , p_source_114            IN NUMBER
42129 --Payment Distribution Reversed Identifier
42130  , p_source_115            IN NUMBER
42131 --Pooled Bank Account Option
42132  , p_source_116            IN VARCHAR2
42133  , p_source_116_meaning    IN VARCHAR2
42134 --Payment Maturity Date
42135  , p_source_117            IN DATE
42136 --Payment Distribution (Payment Rate) Ledger Amount
42137  , p_source_118            IN NUMBER
42138 --Payment Exchange Date
42139  , p_source_120            IN DATE
42140 --Payment Exchange Rate
42141  , p_source_121            IN NUMBER
42142 --Payment Exchange Rate Type
42143  , p_source_122            IN VARCHAR2
42144 --Payment Type
42145  , p_source_125            IN VARCHAR2
42146  , p_source_125_meaning    IN VARCHAR2
42147 )
42148 IS
42149 
42150 l_component_type              VARCHAR2(80);
42151 l_component_code              VARCHAR2(30);
42152 l_component_type_code         VARCHAR2(1);
42153 l_component_appl_id           INTEGER;
42154 l_amb_context_code            VARCHAR2(30);
42155 l_entity_code                 VARCHAR2(30);
42156 l_event_class_code            VARCHAR2(30);
42157 l_ae_header_id                NUMBER;
42158 l_event_type_code             VARCHAR2(30);
42159 l_line_definition_code        VARCHAR2(30);
42160 l_line_definition_owner_code  VARCHAR2(1);
42161 --
42162 -- adr variables
42163 l_segment                     VARCHAR2(30);
42164 l_ccid                        NUMBER;
42165 l_adr_transaction_coa_id      NUMBER;
42166 l_adr_accounting_coa_id       NUMBER;
42167 l_adr_flexfield_segment_code  VARCHAR2(30);
42168 l_adr_flex_value_set_id       NUMBER;
42169 l_adr_value_type_code         VARCHAR2(30);
42170 l_adr_value_combination_id    NUMBER;
42171 l_adr_value_segment_code      VARCHAR2(30);
42172 
42173 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42174 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42175 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42176 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42177 
42178 -- 4262811 Variables ------------------------------------------------------------------------------------------
42179 l_entered_amt_idx             NUMBER;
42180 l_accted_amt_idx              NUMBER;
42181 l_acc_rev_flag                VARCHAR2(1);
42182 l_accrual_line_num            NUMBER;
42183 l_tmp_amt                     NUMBER;
42184 l_acc_rev_natural_side_code   VARCHAR2(1);
42185 
42186 l_num_entries                 NUMBER;
42187 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42188 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42189 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42190 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42191 l_recog_line_1                NUMBER;
42192 l_recog_line_2                NUMBER;
42193 
42194 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42195 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42196 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42197 
42198 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42199 
42200 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42201 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42202 
42203 ---------------------------------------------------------------------------------------------------------------
42204 
42205 
42206 --
42207 -- bulk performance
42208 --
42209 l_balance_type_code           VARCHAR2(1);
42210 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42211 l_log_module                  VARCHAR2(240);
42212 
42213 --
42214 -- Upgrade strategy
42215 --
42216 l_actual_upg_option           VARCHAR2(1);
42217 l_enc_upg_option           VARCHAR2(1);
42218 
42219 --
42220 BEGIN
42221 --
42222 IF g_log_enabled THEN
42223       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
42224 END IF;
42225 --
42226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42227 
42228       trace
42229          (p_msg      => 'BEGIN of AcctLineType_102'
42233 END IF;
42230          ,p_level    => C_LEVEL_PROCEDURE
42231          ,p_module   => l_log_module);
42232 
42234 --
42235 l_component_type             := 'AMB_JLT';
42236 l_component_code             := 'AP_CASH_REF_AOS_BS';
42237 l_component_type_code        := 'S';
42238 l_component_appl_id          :=  200;
42239 l_amb_context_code           := 'DEFAULT';
42240 l_entity_code                := 'AP_PAYMENTS';
42241 l_event_class_code           := 'REFUNDS';
42242 l_event_type_code            := 'REFUNDS_ALL';
42243 l_line_definition_owner_code := 'S';
42244 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
42245 --
42246 l_balance_type_code          := 'A';
42247 l_segment                     := NULL;
42248 l_ccid                        := NULL;
42249 l_adr_transaction_coa_id      := NULL;
42250 l_adr_accounting_coa_id       := NULL;
42251 l_adr_flexfield_segment_code  := NULL;
42252 l_adr_flex_value_set_id       := NULL;
42253 l_adr_value_type_code         := NULL;
42254 l_adr_value_combination_id    := NULL;
42255 l_adr_value_segment_code      := NULL;
42256 
42257 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
42258 l_bflow_class_code           := '';    -- 4219869 Business Flow
42259 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42260 l_budgetary_control_flag     := 'N';
42261 
42262 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42263 l_bflow_applied_to_amt       := NULL; -- 5132302
42264 l_entered_amt_idx            := NULL;          -- 4262811
42265 l_accted_amt_idx             := NULL;          -- 4262811
42266 l_acc_rev_flag               := NULL;          -- 4262811
42267 l_accrual_line_num           := NULL;          -- 4262811
42268 l_tmp_amt                    := NULL;          -- 4262811
42269 --
42270  
42271 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42272     l_balance_type_code <> 'B' THEN
42273 IF NVL(p_source_57,'
42274 ') =  'ISSUE_ISSUE' AND 
42275 (NVL(p_source_116,'
42276 ') =  'Y' AND 
42277 NVL(p_source_10,'
42278 ') =  'BALANCING_SEGMENT') AND 
42279 p_source_117 IS NULL AND 
42280 NVL(p_source_101,'
42281 ') =  'CASH' AND 
42282 NVL(p_source_125,'
42283 ') =  'R'
42284  THEN 
42285 
42286    --
42287    XLA_AE_LINES_PKG.SetNewLine;
42288 
42289    p_balance_type_code          := l_balance_type_code;
42290    -- set the flag so later we will know whether the gain loss line needs to be created
42291    
42292    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42293      p_actual_flag :='A';
42294    END IF;
42295 
42296    --
42297    -- bulk performance
42298    --
42299    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42300                                       p_header_num   => 0); -- 4262811
42301    --
42302    -- set accounting line options
42303    --
42304    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42305            p_natural_side_code          => 'C'
42306          , p_gain_or_loss_flag          => 'N'
42307          , p_gl_transfer_mode_code      => 'S'
42308          , p_acct_entry_type_code       => 'A'
42309          , p_switch_side_flag           => 'Y'
42310          , p_merge_duplicate_code       => 'A'
42311          );
42312    --
42313    l_acc_rev_natural_side_code := 'D';  -- 4262811
42314    -- 
42315    --
42316    -- set accounting line type info
42317    --
42318    xla_ae_lines_pkg.SetAcctLineType
42319       (p_component_type             => l_component_type
42320       ,p_event_type_code            => l_event_type_code
42321       ,p_line_definition_owner_code => l_line_definition_owner_code
42322       ,p_line_definition_code       => l_line_definition_code
42323       ,p_accounting_line_code       => l_component_code
42324       ,p_accounting_line_type_code  => l_component_type_code
42325       ,p_accounting_line_appl_id    => l_component_appl_id
42326       ,p_amb_context_code           => l_amb_context_code
42327       ,p_entity_code                => l_entity_code
42328       ,p_event_class_code           => l_event_class_code);
42329    --
42330    -- set accounting class
42331    --
42332    xla_ae_lines_pkg.SetAcctClass(
42333            p_accounting_class_code  => 'CASH'
42334          , p_ae_header_id           => l_ae_header_id
42335          );
42336 
42337    --
42338    -- set rounding class
42339    --
42340    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42341                       'CASH';
42342 
42343    --
42344    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42345    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42346    --
42347    -- bulk performance
42348    --
42349    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42350 
42351    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42352       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42353 
42354    -- 4955764
42355    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42356       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42357 
42358    -- 4458381 Public Sector Enh
42359    
42360    --
42364    l_accted_amt_idx  := 14;
42361    -- set accounting attributes for the line type
42362    --
42363    l_entered_amt_idx := 9;
42365    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
42366    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42367    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
42368    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
42369    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
42370    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42371    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
42372    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
42373    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
42374    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
42375    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
42376    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42377    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
42378    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
42379    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
42380    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
42381    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
42382    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
42383    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
42384    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
42385    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
42386    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
42387    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
42388    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
42389    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
42390    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
42391    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
42392    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
42393    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
42394    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
42395    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
42396    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
42397    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
42398    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
42399    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
42400    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
42401    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
42402    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
42403    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
42404    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
42405    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
42406    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
42407    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
42408    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
42409    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
42410    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
42411    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
42412 
42413    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42414    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42415 
42416    ---------------------------------------------------------------------------------------------------------------
42417    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42418    ---------------------------------------------------------------------------------------------------------------
42419    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42420 
42421    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42422    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42423 
42424    IF xla_accounting_cache_pkg.GetValueChar
42425          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42426          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42427    AND l_bflow_method_code = 'PRIOR_ENTRY'
42428 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42429    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42430          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42431        )
42432    THEN
42433          xla_ae_lines_pkg.BflowUpgEntry
42434            (p_business_method_code    => l_bflow_method_code
42435            ,p_business_class_code     => l_bflow_class_code
42436            ,p_balance_type            => l_balance_type_code);
42437    ELSE
42438       NULL;
42439 XLA_AE_LINES_PKG.business_flow_validation(
42440                                 p_business_method_code     => l_bflow_method_code
42441                                ,p_business_class_code      => l_bflow_class_code
42442                                ,p_inherit_description_flag => l_inherit_desc_flag);
42443    END IF;
42444 
42445    --
42446    -- call analytical criteria
42447    --
42448    
42449    --
42450    -- call description
42451    --
42452    -- No description or it is inherited.
42453    --
42454    -- call ADRs
42455    -- Bug 4922099
42456    --
42457    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42458         (NVL(l_actual_upg_option, 'N') = 'O') OR
42459         (NVL(l_enc_upg_option, 'N') = 'O')
42460       )
42464    --
42461    THEN
42462    NULL;
42463    --
42465    
42466   l_ccid := AcctDerRule_30(
42467            p_application_id           => p_application_id
42468          , p_ae_header_id             => l_ae_header_id 
42469 , p_source_12 => p_source_12
42470          , x_transaction_coa_id       => l_adr_transaction_coa_id
42471          , x_accounting_coa_id        => l_adr_accounting_coa_id
42472          , x_value_type_code          => l_adr_value_type_code
42473          , p_side                     => 'NA'
42474    );
42475 
42476    xla_ae_lines_pkg.set_ccid(
42477     p_code_combination_id          => l_ccid
42478   , p_value_type_code              => l_adr_value_type_code
42479   , p_transaction_coa_id           => l_adr_transaction_coa_id
42480   , p_accounting_coa_id            => l_adr_accounting_coa_id
42481   , p_adr_code                     => 'AP_CASH'
42482   , p_adr_type_code                => 'S'
42483   , p_component_type               => l_component_type
42484   , p_component_code               => l_component_code
42485   , p_component_type_code          => l_component_type_code
42486   , p_component_appl_id            => l_component_appl_id
42487   , p_amb_context_code             => l_amb_context_code
42488   , p_side                         => 'NA'
42489   );
42490 
42491 
42492    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
42493      p_to_segment_code         => 'GL_BALANCING'
42494    , p_segment_value           => C_CHAR
42495    , p_from_segment_code       => NULL
42496    , p_from_combination_id     => NULL
42497    , p_value_type_code         => NULL
42498    , p_transaction_coa_id      => null
42499    , p_accounting_coa_id       => null
42500    , p_flexfield_segment_code  => NULL
42501    , p_flex_value_set_id       => NULL
42502    , p_adr_code                => NULL
42503    , p_adr_type_code           => NULL
42504    , p_component_type          => l_component_type
42505    , p_component_code          => l_component_code
42506    , p_component_type_code     => l_component_type_code
42507    , p_component_appl_id       => l_component_appl_id
42508    , p_amb_context_code        => l_amb_context_code
42509    , p_entity_code             => 'AP_PAYMENTS'
42510    , p_event_class_code        => 'REFUNDS'
42511    , p_side                    => 'NA'
42512    );
42513    --
42514 
42515 
42516    --
42517    --
42518    END IF;
42519    --
42520    -- Bug 4922099
42521    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42522           (NVL(l_enc_upg_option, 'N') = 'O')
42523         ) AND
42524         (l_bflow_method_code = 'PRIOR_ENTRY')
42525       )
42526    THEN
42527       IF
42528       --
42529       1 = 2
42530       --
42531       THEN
42532       xla_accounting_err_pkg.build_message
42533                                     (p_appli_s_name            => 'XLA'
42534                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42535                                     ,p_token_1                 => 'LINE_NUMBER'
42536                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42537                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42538                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42539                                                                              l_component_type
42540                                                                             ,l_component_code
42541                                                                             ,l_component_type_code
42542                                                                             ,l_component_appl_id
42543                                                                             ,l_amb_context_code
42544                                                                             ,l_entity_code
42545                                                                             ,l_event_class_code
42546                                                                            )
42547                                     ,p_token_3                 => 'OWNER'
42548                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42549                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42550                                                                           ,p_lookup_code    => l_component_type_code
42551                                                                          )
42552                                     ,p_token_4                 => 'PRODUCT_NAME'
42553                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42554                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42555                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42556                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42557                                     ,p_ae_header_id            =>  NULL
42558                                        );
42559 
42560         IF (C_LEVEL_ERROR>= g_log_level) THEN
42561                  trace
42562                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42563                       ,p_level    => C_LEVEL_ERROR
42564                       ,p_module   => l_log_module);
42565         END IF;
42569    --
42566       END IF;
42567    END IF;
42568    --
42570    ------------------------------------------------------------------------------------------------
42571    -- 4219869 Business Flow
42572    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42573    -- Prior Entry.  Currently, the following code is always generated.
42574    ------------------------------------------------------------------------------------------------
42575    XLA_AE_LINES_PKG.ValidateCurrentLine;
42576 
42577    ------------------------------------------------------------------------------------
42578    -- 4219869 Business Flow
42579    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42580    ------------------------------------------------------------------------------------
42581    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42582 
42583    ----------------------------------------------------------------------------------
42584    -- 4219869 Business Flow
42585    -- Update journal entry status -- Need to generate this within IF <condition>
42586    ----------------------------------------------------------------------------------
42587    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42588          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42589          ,p_balance_type_code => l_balance_type_code
42590          );
42591 
42592    -------------------------------------------------------------------------------------------
42593    -- 4262811 - Generate the Accrual Reversal lines
42594    -------------------------------------------------------------------------------------------
42595    BEGIN
42596       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42597                               (g_array_event(p_event_id).array_value_num('header_index'));
42598       IF l_acc_rev_flag IS NULL THEN
42599          l_acc_rev_flag := 'N';
42600       END IF;
42601    EXCEPTION
42602       WHEN OTHERS THEN
42603          l_acc_rev_flag := 'N';
42604    END;
42605    --
42606    IF (l_acc_rev_flag = 'Y') THEN
42607 
42608        -- 4645092  ------------------------------------------------------------------------------
42609        -- To allow MPA report to determine if it should generate report process
42610        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42611        ------------------------------------------------------------------------------------------
42612 
42613        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42614        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42615    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42616    -- call ADRs
42617    -- Bug 4922099
42618    --
42619    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42620         (NVL(l_actual_upg_option, 'N') = 'O') OR
42621         (NVL(l_enc_upg_option, 'N') = 'O')
42622       )
42623    THEN
42624    NULL;
42625    --
42626    --
42627    
42628   l_ccid := AcctDerRule_30(
42629            p_application_id           => p_application_id
42630          , p_ae_header_id             => l_ae_header_id 
42631 , p_source_12 => p_source_12
42632          , x_transaction_coa_id       => l_adr_transaction_coa_id
42633          , x_accounting_coa_id        => l_adr_accounting_coa_id
42634          , x_value_type_code          => l_adr_value_type_code
42635          , p_side                     => 'NA'
42636    );
42637 
42638    xla_ae_lines_pkg.set_ccid(
42639     p_code_combination_id          => l_ccid
42640   , p_value_type_code              => l_adr_value_type_code
42641   , p_transaction_coa_id           => l_adr_transaction_coa_id
42642   , p_accounting_coa_id            => l_adr_accounting_coa_id
42643   , p_adr_code                     => 'AP_CASH'
42644   , p_adr_type_code                => 'S'
42645   , p_component_type               => l_component_type
42646   , p_component_code               => l_component_code
42647   , p_component_type_code          => l_component_type_code
42648   , p_component_appl_id            => l_component_appl_id
42649   , p_amb_context_code             => l_amb_context_code
42650   , p_side                         => 'NA'
42651   );
42652 
42653 
42654    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
42655      p_to_segment_code         => 'GL_BALANCING'
42656    , p_segment_value           => C_CHAR
42657    , p_from_segment_code       => NULL
42658    , p_from_combination_id     => NULL
42659    , p_value_type_code         => NULL
42660    , p_transaction_coa_id      => null
42661    , p_accounting_coa_id       => null
42662    , p_flexfield_segment_code  => NULL
42663    , p_flex_value_set_id       => NULL
42664    , p_adr_code                => NULL
42665    , p_adr_type_code           => NULL
42666    , p_component_type          => l_component_type
42667    , p_component_code          => l_component_code
42668    , p_component_type_code     => l_component_type_code
42669    , p_component_appl_id       => l_component_appl_id
42670    , p_amb_context_code        => l_amb_context_code
42671    , p_entity_code             => 'AP_PAYMENTS'
42672    , p_event_class_code        => 'REFUNDS'
42673    , p_side                    => 'NA'
42674    );
42675    --
42676 
42677 
42678    --
42679    --
42680    END IF;
42681 
42682        --
42683        -- Update the line information that should be overwritten
42684        --
42688 
42685        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42686                                          p_header_num   => 1);
42687        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42689        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42690 
42691        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42692           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42693        END IF;
42694 
42695       --
42696       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42697       --
42698       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42699           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42700       ELSE
42701           ---------------------------------------------------------------------------------------------------
42702           -- 4262811a Switch Sign
42703           ---------------------------------------------------------------------------------------------------
42704           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42705           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42706                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42707           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42708                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42709           -- 5132302
42710           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42711                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42712 
42713       END IF;
42714 
42715       -- 4955764
42716       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42717       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42718 
42719 
42720       XLA_AE_LINES_PKG.ValidateCurrentLine;
42721       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42722 
42723       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42724                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42725                ,p_balance_type_code => l_balance_type_code);
42726 
42727    END IF;
42728 
42729    -----------------------------------------------------------------------------------------
42730    -- 4262811 Multiperiod Accounting
42731    -----------------------------------------------------------------------------------------
42732      -- No MPA option is assigned.
42733 
42734 
42735 END IF;
42736 END IF;
42737 --
42738 
42739 --
42740 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42741    trace
42742       (p_msg      => 'END of AcctLineType_102'
42743       ,p_level    => C_LEVEL_PROCEDURE
42744       ,p_module   => l_log_module);
42745 END IF;
42746 --
42747 EXCEPTION
42748   WHEN xla_exceptions_pkg.application_exception THEN
42749       RAISE;
42750   WHEN OTHERS THEN
42751        xla_exceptions_pkg.raise_message
42752            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_102');
42753 END AcctLineType_102;
42754 --
42755 
42756 ---------------------------------------
42757 --
42758 -- PRIVATE FUNCTION
42759 --         AcctLineType_103
42760 --
42761 ---------------------------------------
42762 PROCEDURE AcctLineType_103 (
42763   p_application_id        IN NUMBER
42764  ,p_event_id              IN NUMBER
42765  ,p_calculate_acctd_flag  IN VARCHAR2
42766  ,p_calculate_g_l_flag    IN VARCHAR2
42767  ,p_actual_flag           IN OUT VARCHAR2
42768  ,p_balance_type_code     OUT VARCHAR2
42769  ,p_gain_or_loss_ref      OUT VARCHAR2
42770  
42771 --Accounting Reversal Indicator
42772  , p_source_58            IN VARCHAR2
42773 --Distribution Link Type
42774  , p_source_60            IN VARCHAR2
42775 --Invoice Identifier
42776  , p_source_63            IN NUMBER
42777 --Payables Encumbrance Upgrade Credit Account
42778  , p_source_70            IN NUMBER
42779 --Payables Encumbrance Upgrade Credit Amount
42780  , p_source_71            IN NUMBER
42781 --Invoice Currency Code
42782  , p_source_72            IN VARCHAR2
42783 --Payables Encumbrance Upgrade Credit Base Amount
42784  , p_source_73            IN NUMBER
42785 --Payables Encumbrance Upgrade Debit Account
42786  , p_source_74            IN NUMBER
42787 --Payables Encumbrance Upgrade Debit Amount
42788  , p_source_75            IN NUMBER
42789 --Payables Encumbrance Upgrade Debit Base Amount
42790  , p_source_76            IN NUMBER
42791 --Payables Encumbrance Upgrade Option
42792  , p_source_77            IN VARCHAR2
42793 --Deferred Accounting End Date
42794  , p_source_82            IN DATE
42795 --Deferred Accounting Option
42796  , p_source_83            IN VARCHAR2
42797 --Deferred Accounting Start Date
42798  , p_source_84            IN DATE
42799 --Override Accounted Amount Indicator
42800  , p_source_85            IN VARCHAR2
42801  , p_source_85_meaning    IN VARCHAR2
42802 --Third Party Type
42803  , p_source_88            IN VARCHAR2
42804 --Invoice Distribution Tax Line Identifier
42808 --Invoice Distribution Summary Tax Line Identifier
42805  , p_source_91            IN NUMBER
42806 --Invoice Distribution Tax Distribution Identifier from Tax
42807  , p_source_92            IN NUMBER
42809  , p_source_93            IN NUMBER
42810 --Payables Upgrade Credit Encumbrance Type Identifier
42811  , p_source_94            IN NUMBER
42812 --Payables Upgrade Debit Encumbrance Type Identifier
42813  , p_source_95            IN NUMBER
42814 --Business Flow Accounts Payable Application Identifier
42815  , p_source_96            IN NUMBER
42816 --Prepayment Distribution Type
42817  , p_source_128            IN VARCHAR2
42818 --Deferred Prepayment Settlement Option Code
42819  , p_source_129            IN VARCHAR2
42820  , p_source_129_meaning    IN VARCHAR2
42821 --Prepayment Application Distribution Identifier
42822  , p_source_130            IN NUMBER
42823 --Business Flow Prepayment Payment Distribution Type
42824  , p_source_131            IN VARCHAR2
42825 --Business Flow Cash Basis Prepayment Entity Code
42826  , p_source_132            IN VARCHAR2
42827 --Business Flow Prepay Payment Distribution Id
42828  , p_source_133            IN NUMBER
42829 --Business Flow Prepay Payment Id
42830  , p_source_134            IN NUMBER
42831 --Upgrade Encumbrance Credit Account Class
42832  , p_source_135            IN VARCHAR2
42833 --Upgrade Encumbrance Debit Account Class
42834  , p_source_136            IN VARCHAR2
42835 --Prepayment Distribution Amount
42836  , p_source_137            IN NUMBER
42837 --Prepayment Distribution (Prepayment Rate) Ledger Amount
42838  , p_source_138            IN NUMBER
42839 --Identifier of the Prepayment Application Reversed
42840  , p_source_139            IN NUMBER
42841 )
42842 IS
42843 
42844 l_component_type              VARCHAR2(80);
42845 l_component_code              VARCHAR2(30);
42846 l_component_type_code         VARCHAR2(1);
42847 l_component_appl_id           INTEGER;
42848 l_amb_context_code            VARCHAR2(30);
42849 l_entity_code                 VARCHAR2(30);
42850 l_event_class_code            VARCHAR2(30);
42851 l_ae_header_id                NUMBER;
42852 l_event_type_code             VARCHAR2(30);
42853 l_line_definition_code        VARCHAR2(30);
42854 l_line_definition_owner_code  VARCHAR2(1);
42855 --
42856 -- adr variables
42857 l_segment                     VARCHAR2(30);
42858 l_ccid                        NUMBER;
42859 l_adr_transaction_coa_id      NUMBER;
42860 l_adr_accounting_coa_id       NUMBER;
42861 l_adr_flexfield_segment_code  VARCHAR2(30);
42862 l_adr_flex_value_set_id       NUMBER;
42863 l_adr_value_type_code         VARCHAR2(30);
42864 l_adr_value_combination_id    NUMBER;
42865 l_adr_value_segment_code      VARCHAR2(30);
42866 
42867 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42868 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42869 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42870 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42871 
42872 -- 4262811 Variables ------------------------------------------------------------------------------------------
42873 l_entered_amt_idx             NUMBER;
42874 l_accted_amt_idx              NUMBER;
42875 l_acc_rev_flag                VARCHAR2(1);
42876 l_accrual_line_num            NUMBER;
42877 l_tmp_amt                     NUMBER;
42878 l_acc_rev_natural_side_code   VARCHAR2(1);
42879 
42880 l_num_entries                 NUMBER;
42881 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42882 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42883 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42884 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42885 l_recog_line_1                NUMBER;
42886 l_recog_line_2                NUMBER;
42887 
42888 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42889 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42890 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42891 
42892 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42893 
42894 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42895 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42896 
42897 ---------------------------------------------------------------------------------------------------------------
42898 
42899 
42900 --
42901 -- bulk performance
42902 --
42903 l_balance_type_code           VARCHAR2(1);
42904 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42905 l_log_module                  VARCHAR2(240);
42906 
42907 --
42908 -- Upgrade strategy
42909 --
42910 l_actual_upg_option           VARCHAR2(1);
42911 l_enc_upg_option           VARCHAR2(1);
42912 
42913 --
42914 BEGIN
42915 --
42916 IF g_log_enabled THEN
42917       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
42918 END IF;
42919 --
42920 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42921 
42922       trace
42923          (p_msg      => 'BEGIN of AcctLineType_103'
42924          ,p_level    => C_LEVEL_PROCEDURE
42925          ,p_module   => l_log_module);
42926 
42927 END IF;
42928 --
42929 l_component_type             := 'AMB_JLT';
42930 l_component_code             := 'AP_DEF_PP_EXP_ACCR';
42931 l_component_type_code        := 'S';
42932 l_component_appl_id          :=  200;
42936 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
42933 l_amb_context_code           := 'DEFAULT';
42934 l_entity_code                := 'AP_INVOICES';
42935 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
42937 l_line_definition_owner_code := 'S';
42938 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
42939 --
42940 l_balance_type_code          := 'A';
42941 l_segment                     := NULL;
42942 l_ccid                        := NULL;
42943 l_adr_transaction_coa_id      := NULL;
42944 l_adr_accounting_coa_id       := NULL;
42945 l_adr_flexfield_segment_code  := NULL;
42946 l_adr_flex_value_set_id       := NULL;
42947 l_adr_value_type_code         := NULL;
42948 l_adr_value_combination_id    := NULL;
42949 l_adr_value_segment_code      := NULL;
42950 
42951 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
42952 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
42953 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42954 l_budgetary_control_flag     := 'N';
42955 
42956 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42957 l_bflow_applied_to_amt       := NULL; -- 5132302
42958 l_entered_amt_idx            := NULL;          -- 4262811
42959 l_accted_amt_idx             := NULL;          -- 4262811
42960 l_acc_rev_flag               := NULL;          -- 4262811
42961 l_accrual_line_num           := NULL;          -- 4262811
42962 l_tmp_amt                    := NULL;          -- 4262811
42963 --
42964  
42965 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42966     l_balance_type_code <> 'B' THEN
42967 IF NVL(p_source_128,'
42968 ') =  'PREPAY APPL REC TAX' AND 
42969 NVL(p_source_129,'
42970 ') =  'DEFERRED'
42971  THEN 
42972 
42973    --
42974    XLA_AE_LINES_PKG.SetNewLine;
42975 
42976    p_balance_type_code          := l_balance_type_code;
42977    -- set the flag so later we will know whether the gain loss line needs to be created
42978    
42979    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42980      p_actual_flag :='A';
42981    END IF;
42982 
42983    --
42984    -- bulk performance
42985    --
42986    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42987                                       p_header_num   => 0); -- 4262811
42988    --
42989    -- set accounting line options
42990    --
42991    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42992            p_natural_side_code          => 'D'
42993          , p_gain_or_loss_flag          => 'N'
42994          , p_gl_transfer_mode_code      => 'S'
42995          , p_acct_entry_type_code       => 'A'
42996          , p_switch_side_flag           => 'Y'
42997          , p_merge_duplicate_code       => 'A'
42998          );
42999    --
43000    l_acc_rev_natural_side_code := 'C';  -- 4262811
43001    -- 
43002    --
43003    -- set accounting line type info
43004    --
43005    xla_ae_lines_pkg.SetAcctLineType
43006       (p_component_type             => l_component_type
43007       ,p_event_type_code            => l_event_type_code
43008       ,p_line_definition_owner_code => l_line_definition_owner_code
43009       ,p_line_definition_code       => l_line_definition_code
43010       ,p_accounting_line_code       => l_component_code
43011       ,p_accounting_line_type_code  => l_component_type_code
43012       ,p_accounting_line_appl_id    => l_component_appl_id
43013       ,p_amb_context_code           => l_amb_context_code
43014       ,p_entity_code                => l_entity_code
43015       ,p_event_class_code           => l_event_class_code);
43016    --
43017    -- set accounting class
43018    --
43019    xla_ae_lines_pkg.SetAcctClass(
43020            p_accounting_class_code  => 'PREPAID_EXPENSE'
43021          , p_ae_header_id           => l_ae_header_id
43022          );
43023 
43024    --
43025    -- set rounding class
43026    --
43027    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43028                       'PREPAID_EXPENSE';
43029 
43030    --
43031    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43032    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43033    --
43034    -- bulk performance
43035    --
43036    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43037 
43038    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43039       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43040 
43041    -- 4955764
43042    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43043       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43044 
43045    -- 4458381 Public Sector Enh
43046    
43047    --
43048    -- set accounting attributes for the line type
43049    --
43050    l_entered_amt_idx := 25;
43051    l_accted_amt_idx  := 27;
43052    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43053    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43054    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
43055    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
43056    l_rec_acct_attrs.array_num_value(2)  := 
43057 xla_ae_sources_pkg.GetSystemSourceNum(
43061 );
43058    p_source_code           => 'XLA_EVENT_APPL_ID'
43059  , p_source_type_code      => 'Y'
43060  , p_source_application_id =>  602
43062    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
43063    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
43064    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
43065    l_rec_acct_attrs.array_char_value(4)  := 
43066 xla_ae_sources_pkg.GetSystemSourceChar(
43067    p_source_code           => 'XLA_ENTITY_CODE'
43068  , p_source_type_code      => 'Y'
43069  , p_source_application_id =>  602
43070 );
43071    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
43072    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
43073    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
43074    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
43075    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
43076    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
43077    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43078    l_rec_acct_attrs.array_char_value(8)  := p_source_131;
43079    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
43080    l_rec_acct_attrs.array_char_value(9)  := p_source_132;
43081    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
43082    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_133);
43083    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43084    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_134);
43085    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
43086    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
43087    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
43088    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
43089    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
43090    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
43091    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
43092    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
43093    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
43094    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
43095    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
43096    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
43097    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
43098    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
43099    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
43100    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
43101    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
43102    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
43103    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
43104    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
43105    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
43106    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
43107    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
43108    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
43109    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
43110    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
43111    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
43112    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
43113    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
43114    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
43115    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
43116    l_rec_acct_attrs.array_num_value(27)  := p_source_138;
43117    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
43118    l_rec_acct_attrs.array_date_value(28)  := p_source_82;
43119    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
43120    l_rec_acct_attrs.array_char_value(29)  := p_source_83;
43121    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
43122    l_rec_acct_attrs.array_date_value(30)  := p_source_84;
43123    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
43124    l_rec_acct_attrs.array_char_value(31)  := p_source_85;
43125    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
43126    l_rec_acct_attrs.array_char_value(32)  := p_source_88;
43127    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
43128    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_139);
43129    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
43130    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
43131    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
43132    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
43133    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
43134    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
43135    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
43136    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
43137    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
43138    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
43139    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
43140    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
43141 
43142    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43143    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43144 
43145    ---------------------------------------------------------------------------------------------------------------
43149 
43146    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43147    ---------------------------------------------------------------------------------------------------------------
43148    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43150    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43151    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43152 
43153    IF xla_accounting_cache_pkg.GetValueChar
43154          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43155          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43156    AND l_bflow_method_code = 'PRIOR_ENTRY'
43157 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43158    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43159          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43160        )
43161    THEN
43162          xla_ae_lines_pkg.BflowUpgEntry
43163            (p_business_method_code    => l_bflow_method_code
43164            ,p_business_class_code     => l_bflow_class_code
43165            ,p_balance_type            => l_balance_type_code);
43166    ELSE
43167       NULL;
43168 XLA_AE_LINES_PKG.business_flow_validation(
43169                                 p_business_method_code     => l_bflow_method_code
43170                                ,p_business_class_code      => l_bflow_class_code
43171                                ,p_inherit_description_flag => l_inherit_desc_flag);
43172    END IF;
43173 
43174    --
43175    -- call analytical criteria
43176    --
43177    -- Inherited Analytical Criteria for business flow method of Prior Entry.
43178    --
43179    -- call description
43180    --
43181    -- No description or it is inherited.
43182    --
43183    -- call ADRs
43184    -- Bug 4922099
43185    --
43186    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43187         (NVL(l_actual_upg_option, 'N') = 'O') OR
43188         (NVL(l_enc_upg_option, 'N') = 'O')
43189       )
43190    THEN
43191    NULL;
43192    --
43193    --
43194    
43195    --
43196    --
43197    END IF;
43198    --
43199    -- Bug 4922099
43200    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43201           (NVL(l_enc_upg_option, 'N') = 'O')
43202         ) AND
43203         (l_bflow_method_code = 'PRIOR_ENTRY')
43204       )
43205    THEN
43206       IF
43207       --
43208       1 = 1
43209       --
43210       THEN
43211       xla_accounting_err_pkg.build_message
43212                                     (p_appli_s_name            => 'XLA'
43213                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43214                                     ,p_token_1                 => 'LINE_NUMBER'
43215                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43216                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43217                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43218                                                                              l_component_type
43219                                                                             ,l_component_code
43220                                                                             ,l_component_type_code
43221                                                                             ,l_component_appl_id
43222                                                                             ,l_amb_context_code
43223                                                                             ,l_entity_code
43224                                                                             ,l_event_class_code
43225                                                                            )
43226                                     ,p_token_3                 => 'OWNER'
43227                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43228                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43229                                                                           ,p_lookup_code    => l_component_type_code
43230                                                                          )
43231                                     ,p_token_4                 => 'PRODUCT_NAME'
43232                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43233                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43234                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43235                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43236                                     ,p_ae_header_id            =>  NULL
43237                                        );
43238 
43239         IF (C_LEVEL_ERROR>= g_log_level) THEN
43240                  trace
43241                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43242                       ,p_level    => C_LEVEL_ERROR
43243                       ,p_module   => l_log_module);
43244         END IF;
43245       END IF;
43246    END IF;
43247    --
43248    --
43252    -- Prior Entry.  Currently, the following code is always generated.
43249    ------------------------------------------------------------------------------------------------
43250    -- 4219869 Business Flow
43251    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43253    ------------------------------------------------------------------------------------------------
43254    -- No ValidateCurrentLine for business flow method of Prior Entry
43255 
43256    ------------------------------------------------------------------------------------
43257    -- 4219869 Business Flow
43258    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43259    ------------------------------------------------------------------------------------
43260    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43261 
43262    ----------------------------------------------------------------------------------
43263    -- 4219869 Business Flow
43264    -- Update journal entry status -- Need to generate this within IF <condition>
43265    ----------------------------------------------------------------------------------
43266    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43267          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43268          ,p_balance_type_code => l_balance_type_code
43269          );
43270 
43271    -------------------------------------------------------------------------------------------
43272    -- 4262811 - Generate the Accrual Reversal lines
43273    -------------------------------------------------------------------------------------------
43274    BEGIN
43275       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43276                               (g_array_event(p_event_id).array_value_num('header_index'));
43277       IF l_acc_rev_flag IS NULL THEN
43278          l_acc_rev_flag := 'N';
43279       END IF;
43280    EXCEPTION
43281       WHEN OTHERS THEN
43282          l_acc_rev_flag := 'N';
43283    END;
43284    --
43285    IF (l_acc_rev_flag = 'Y') THEN
43286 
43287        -- 4645092  ------------------------------------------------------------------------------
43288        -- To allow MPA report to determine if it should generate report process
43289        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43290        ------------------------------------------------------------------------------------------
43291 
43292        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43293        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43294    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43295    -- call ADRs
43296    -- Bug 4922099
43297    --
43298    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43299         (NVL(l_actual_upg_option, 'N') = 'O') OR
43300         (NVL(l_enc_upg_option, 'N') = 'O')
43301       )
43302    THEN
43303    NULL;
43304    --
43305    --
43306    
43307    --
43308    --
43309    END IF;
43310 
43311        --
43312        -- Update the line information that should be overwritten
43313        --
43314        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43315                                          p_header_num   => 1);
43316        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43317 
43318        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43319 
43320        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43321           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43322        END IF;
43323 
43324       --
43325       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43326       --
43327       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43328           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43329       ELSE
43330           ---------------------------------------------------------------------------------------------------
43331           -- 4262811a Switch Sign
43332           ---------------------------------------------------------------------------------------------------
43333           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43334           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43335                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43336           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43337                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43338           -- 5132302
43339           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43340                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43341 
43342       END IF;
43343 
43344       -- 4955764
43345       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43346       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43347 
43348 
43349       XLA_AE_LINES_PKG.ValidateCurrentLine;
43350       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43351 
43352       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43356    END IF;
43353                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43354                ,p_balance_type_code => l_balance_type_code);
43355 
43357 
43358    -----------------------------------------------------------------------------------------
43359    -- 4262811 Multiperiod Accounting
43360    -----------------------------------------------------------------------------------------
43361      -- No MPA option is assigned.
43362 
43363 
43364 END IF;
43365 END IF;
43366 --
43367 
43368 --
43369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43370    trace
43371       (p_msg      => 'END of AcctLineType_103'
43372       ,p_level    => C_LEVEL_PROCEDURE
43373       ,p_module   => l_log_module);
43374 END IF;
43375 --
43376 EXCEPTION
43377   WHEN xla_exceptions_pkg.application_exception THEN
43378       RAISE;
43379   WHEN OTHERS THEN
43380        xla_exceptions_pkg.raise_message
43381            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_103');
43382 END AcctLineType_103;
43383 --
43384 
43385 ---------------------------------------
43386 --
43387 -- PRIVATE FUNCTION
43388 --         AcctLineType_104
43389 --
43390 ---------------------------------------
43391 PROCEDURE AcctLineType_104 (
43392   p_application_id        IN NUMBER
43393  ,p_event_id              IN NUMBER
43394  ,p_calculate_acctd_flag  IN VARCHAR2
43395  ,p_calculate_g_l_flag    IN VARCHAR2
43396  ,p_actual_flag           IN OUT VARCHAR2
43397  ,p_balance_type_code     OUT VARCHAR2
43398  ,p_gain_or_loss_ref      OUT VARCHAR2
43399  
43400 --Payment Currency Code
43401  , p_source_8            IN VARCHAR2
43402 --Invoice Distribution Type
43403  , p_source_28            IN VARCHAR2
43404  , p_source_28_meaning    IN VARCHAR2
43405 --Recoverable Tax Account
43406  , p_source_48            IN NUMBER
43407 --When to Account for Payment Option
43408  , p_source_57            IN VARCHAR2
43409 --Accounting Reversal Indicator
43410  , p_source_58            IN VARCHAR2
43411 --Distribution Link Type
43412  , p_source_60            IN VARCHAR2
43413 --Override Accounted Amount Indicator
43414  , p_source_85            IN VARCHAR2
43415  , p_source_85_meaning    IN VARCHAR2
43416 --Third Party Type
43417  , p_source_88            IN VARCHAR2
43418 --Invoice Distribution Tax Line Identifier
43419  , p_source_91            IN NUMBER
43420 --Invoice Distribution Summary Tax Line Identifier
43421  , p_source_93            IN NUMBER
43422 --Business Flow Accounts Payable Application Identifier
43423  , p_source_96            IN NUMBER
43424 --Payment Distribution Type
43425  , p_source_101            IN VARCHAR2
43426  , p_source_101_meaning    IN VARCHAR2
43427 --Payment Distribution Amount
43428  , p_source_102            IN NUMBER
43429 --Business Flow Payment Distribution Type
43430  , p_source_103            IN VARCHAR2
43431 --Business Flow Payment Entity Code
43432  , p_source_104            IN VARCHAR2
43433 --Business Flow Payment Distribution Identifier
43434  , p_source_105            IN NUMBER
43435 --Business Flow Payment Identifier
43436  , p_source_106            IN NUMBER
43437 --Payment Distribution Identifier
43438  , p_source_107            IN NUMBER
43439 --Cleared Exchange Date
43440  , p_source_109            IN DATE
43441 --Cleared Exchange Rate
43442  , p_source_110            IN NUMBER
43443 --Cleared Exchange Rate Type
43444  , p_source_111            IN VARCHAR2
43445 --Payment Distribution (Cleared Rate) Ledger Amount
43446  , p_source_112            IN NUMBER
43447 --Payment Supplier Identifier
43448  , p_source_113            IN NUMBER
43449 --Payment Supplier Site Identifier
43450  , p_source_114            IN NUMBER
43451 --Payment Distribution Reversed Identifier
43452  , p_source_115            IN NUMBER
43453 --Payment Type
43454  , p_source_125            IN VARCHAR2
43455  , p_source_125_meaning    IN VARCHAR2
43456 --Deferred Recoverable Tax Option
43457  , p_source_140            IN VARCHAR2
43458  , p_source_140_meaning    IN VARCHAR2
43459 )
43460 IS
43461 
43462 l_component_type              VARCHAR2(80);
43463 l_component_code              VARCHAR2(30);
43464 l_component_type_code         VARCHAR2(1);
43465 l_component_appl_id           INTEGER;
43466 l_amb_context_code            VARCHAR2(30);
43467 l_entity_code                 VARCHAR2(30);
43468 l_event_class_code            VARCHAR2(30);
43469 l_ae_header_id                NUMBER;
43470 l_event_type_code             VARCHAR2(30);
43471 l_line_definition_code        VARCHAR2(30);
43472 l_line_definition_owner_code  VARCHAR2(1);
43473 --
43474 -- adr variables
43475 l_segment                     VARCHAR2(30);
43476 l_ccid                        NUMBER;
43477 l_adr_transaction_coa_id      NUMBER;
43478 l_adr_accounting_coa_id       NUMBER;
43479 l_adr_flexfield_segment_code  VARCHAR2(30);
43480 l_adr_flex_value_set_id       NUMBER;
43481 l_adr_value_type_code         VARCHAR2(30);
43482 l_adr_value_combination_id    NUMBER;
43483 l_adr_value_segment_code      VARCHAR2(30);
43484 
43485 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43486 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43487 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43488 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43489 
43493 l_acc_rev_flag                VARCHAR2(1);
43490 -- 4262811 Variables ------------------------------------------------------------------------------------------
43491 l_entered_amt_idx             NUMBER;
43492 l_accted_amt_idx              NUMBER;
43494 l_accrual_line_num            NUMBER;
43495 l_tmp_amt                     NUMBER;
43496 l_acc_rev_natural_side_code   VARCHAR2(1);
43497 
43498 l_num_entries                 NUMBER;
43499 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43500 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43501 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43502 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43503 l_recog_line_1                NUMBER;
43504 l_recog_line_2                NUMBER;
43505 
43506 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43507 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43508 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43509 
43510 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43511 
43512 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43513 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43514 
43515 ---------------------------------------------------------------------------------------------------------------
43516 
43517 
43518 --
43519 -- bulk performance
43520 --
43521 l_balance_type_code           VARCHAR2(1);
43522 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43523 l_log_module                  VARCHAR2(240);
43524 
43525 --
43526 -- Upgrade strategy
43527 --
43528 l_actual_upg_option           VARCHAR2(1);
43529 l_enc_upg_option           VARCHAR2(1);
43530 
43531 --
43532 BEGIN
43533 --
43534 IF g_log_enabled THEN
43535       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
43536 END IF;
43537 --
43538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43539 
43540       trace
43541          (p_msg      => 'BEGIN of AcctLineType_104'
43542          ,p_level    => C_LEVEL_PROCEDURE
43543          ,p_module   => l_log_module);
43544 
43545 END IF;
43546 --
43547 l_component_type             := 'AMB_JLT';
43548 l_component_code             := 'AP_DEF_RTAX_CLR';
43549 l_component_type_code        := 'S';
43550 l_component_appl_id          :=  200;
43551 l_amb_context_code           := 'DEFAULT';
43552 l_entity_code                := 'AP_PAYMENTS';
43553 l_event_class_code           := 'RECONCILED PAYMENTS';
43554 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
43555 l_line_definition_owner_code := 'S';
43556 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
43557 --
43558 l_balance_type_code          := 'A';
43559 l_segment                     := NULL;
43560 l_ccid                        := NULL;
43561 l_adr_transaction_coa_id      := NULL;
43562 l_adr_accounting_coa_id       := NULL;
43563 l_adr_flexfield_segment_code  := NULL;
43564 l_adr_flex_value_set_id       := NULL;
43565 l_adr_value_type_code         := NULL;
43566 l_adr_value_combination_id    := NULL;
43567 l_adr_value_segment_code      := NULL;
43568 
43569 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
43570 l_bflow_class_code           := '';    -- 4219869 Business Flow
43571 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43572 l_budgetary_control_flag     := 'N';
43573 
43574 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43575 l_bflow_applied_to_amt       := NULL; -- 5132302
43576 l_entered_amt_idx            := NULL;          -- 4262811
43577 l_accted_amt_idx             := NULL;          -- 4262811
43578 l_acc_rev_flag               := NULL;          -- 4262811
43579 l_accrual_line_num           := NULL;          -- 4262811
43580 l_tmp_amt                    := NULL;          -- 4262811
43581 --
43582  
43583 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43584     l_balance_type_code <> 'B' THEN
43585 IF NVL(p_source_57,'
43586 ') =  'CLEAR_CLEAR' AND 
43587 NVL(p_source_28,'
43588 ') =  'REC_TAX' AND 
43589 NVL(p_source_140,'
43590 ') =  'DEFERRED' AND 
43591 (NVL(p_source_101,'
43592 ') =  'CASH' OR 
43593 NVL(p_source_101,'
43594 ') =  'DISCOUNT') AND 
43595 NVL(p_source_125,'
43596 ') <>  'R'
43597  THEN 
43598 
43599    --
43600    XLA_AE_LINES_PKG.SetNewLine;
43601 
43602    p_balance_type_code          := l_balance_type_code;
43603    -- set the flag so later we will know whether the gain loss line needs to be created
43604    
43605    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43606      p_actual_flag :='A';
43607    END IF;
43608 
43609    --
43610    -- bulk performance
43611    --
43612    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43613                                       p_header_num   => 0); -- 4262811
43614    --
43615    -- set accounting line options
43616    --
43617    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43618            p_natural_side_code          => 'D'
43619          , p_gain_or_loss_flag          => 'N'
43620          , p_gl_transfer_mode_code      => 'S'
43621          , p_acct_entry_type_code       => 'A'
43622          , p_switch_side_flag           => 'Y'
43623          , p_merge_duplicate_code       => 'A'
43624          );
43625    --
43629    -- set accounting line type info
43626    l_acc_rev_natural_side_code := 'C';  -- 4262811
43627    -- 
43628    --
43630    --
43631    xla_ae_lines_pkg.SetAcctLineType
43632       (p_component_type             => l_component_type
43633       ,p_event_type_code            => l_event_type_code
43634       ,p_line_definition_owner_code => l_line_definition_owner_code
43635       ,p_line_definition_code       => l_line_definition_code
43636       ,p_accounting_line_code       => l_component_code
43637       ,p_accounting_line_type_code  => l_component_type_code
43638       ,p_accounting_line_appl_id    => l_component_appl_id
43639       ,p_amb_context_code           => l_amb_context_code
43640       ,p_entity_code                => l_entity_code
43641       ,p_event_class_code           => l_event_class_code);
43642    --
43643    -- set accounting class
43644    --
43645    xla_ae_lines_pkg.SetAcctClass(
43646            p_accounting_class_code  => 'DEF_REC_TAX'
43647          , p_ae_header_id           => l_ae_header_id
43648          );
43649 
43650    --
43651    -- set rounding class
43652    --
43653    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43654                       'DEF_REC_TAX';
43655 
43656    --
43657    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43658    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43659    --
43660    -- bulk performance
43661    --
43662    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43663 
43664    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43665       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43666 
43667    -- 4955764
43668    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43669       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43670 
43671    -- 4458381 Public Sector Enh
43672    
43673    --
43674    -- set accounting attributes for the line type
43675    --
43676    l_entered_amt_idx := 10;
43677    l_accted_amt_idx  := 15;
43678    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
43679    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43680    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
43681    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
43682    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
43683    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
43684    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
43685    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43686    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
43687    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
43688    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
43689    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
43690    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
43691    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43692    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
43693    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
43694    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
43695    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
43696    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
43697    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
43698    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
43699    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
43700    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
43701    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
43702    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
43703    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
43704    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
43705    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
43706    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
43707    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
43708    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
43709    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
43710    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
43711    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
43712    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
43713    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
43714    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
43715    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
43716    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
43717    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
43718    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
43719    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
43720    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
43721    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
43722    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
43723    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
43724    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
43725    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
43729    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43726    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
43727 
43728    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43730 
43731    ---------------------------------------------------------------------------------------------------------------
43732    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43733    ---------------------------------------------------------------------------------------------------------------
43734    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43735 
43736    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43737    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43738 
43739    IF xla_accounting_cache_pkg.GetValueChar
43740          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43741          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43742    AND l_bflow_method_code = 'PRIOR_ENTRY'
43743 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43744    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43745          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43746        )
43747    THEN
43748          xla_ae_lines_pkg.BflowUpgEntry
43749            (p_business_method_code    => l_bflow_method_code
43750            ,p_business_class_code     => l_bflow_class_code
43751            ,p_balance_type            => l_balance_type_code);
43752    ELSE
43753       NULL;
43754 -- No business flow processing for business flow method of NONE.
43755    END IF;
43756 
43757    --
43758    -- call analytical criteria
43759    --
43760    
43761    --
43762    -- call description
43763    --
43764    -- No description or it is inherited.
43765    --
43766    -- call ADRs
43767    -- Bug 4922099
43768    --
43769    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43770         (NVL(l_actual_upg_option, 'N') = 'O') OR
43771         (NVL(l_enc_upg_option, 'N') = 'O')
43772       )
43773    THEN
43774    NULL;
43775    --
43776    --
43777    
43778   l_ccid := AcctDerRule_46(
43779            p_application_id           => p_application_id
43780          , p_ae_header_id             => l_ae_header_id 
43781 , p_source_48 => p_source_48
43782          , x_transaction_coa_id       => l_adr_transaction_coa_id
43783          , x_accounting_coa_id        => l_adr_accounting_coa_id
43784          , x_value_type_code          => l_adr_value_type_code
43785          , p_side                     => 'NA'
43786    );
43787 
43788    xla_ae_lines_pkg.set_ccid(
43789     p_code_combination_id          => l_ccid
43790   , p_value_type_code              => l_adr_value_type_code
43791   , p_transaction_coa_id           => l_adr_transaction_coa_id
43792   , p_accounting_coa_id            => l_adr_accounting_coa_id
43793   , p_adr_code                     => 'AP_TAX_ACCOUNT'
43794   , p_adr_type_code                => 'S'
43795   , p_component_type               => l_component_type
43796   , p_component_code               => l_component_code
43797   , p_component_type_code          => l_component_type_code
43798   , p_component_appl_id            => l_component_appl_id
43799   , p_amb_context_code             => l_amb_context_code
43800   , p_side                         => 'NA'
43801   );
43802 
43803 
43804    --
43805    --
43806    END IF;
43807    --
43808    -- Bug 4922099
43809    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43810           (NVL(l_enc_upg_option, 'N') = 'O')
43811         ) AND
43812         (l_bflow_method_code = 'PRIOR_ENTRY')
43813       )
43814    THEN
43815       IF
43816       --
43817       1 = 2
43818       --
43819       THEN
43820       xla_accounting_err_pkg.build_message
43821                                     (p_appli_s_name            => 'XLA'
43822                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43823                                     ,p_token_1                 => 'LINE_NUMBER'
43824                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43825                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43826                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43827                                                                              l_component_type
43828                                                                             ,l_component_code
43829                                                                             ,l_component_type_code
43830                                                                             ,l_component_appl_id
43831                                                                             ,l_amb_context_code
43832                                                                             ,l_entity_code
43833                                                                             ,l_event_class_code
43834                                                                            )
43835                                     ,p_token_3                 => 'OWNER'
43836                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43837                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43841                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43838                                                                           ,p_lookup_code    => l_component_type_code
43839                                                                          )
43840                                     ,p_token_4                 => 'PRODUCT_NAME'
43842                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43843                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43844                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43845                                     ,p_ae_header_id            =>  NULL
43846                                        );
43847 
43848         IF (C_LEVEL_ERROR>= g_log_level) THEN
43849                  trace
43850                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43851                       ,p_level    => C_LEVEL_ERROR
43852                       ,p_module   => l_log_module);
43853         END IF;
43854       END IF;
43855    END IF;
43856    --
43857    --
43858    ------------------------------------------------------------------------------------------------
43859    -- 4219869 Business Flow
43860    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43861    -- Prior Entry.  Currently, the following code is always generated.
43862    ------------------------------------------------------------------------------------------------
43863    XLA_AE_LINES_PKG.ValidateCurrentLine;
43864 
43865    ------------------------------------------------------------------------------------
43866    -- 4219869 Business Flow
43867    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43868    ------------------------------------------------------------------------------------
43869    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43870 
43871    ----------------------------------------------------------------------------------
43872    -- 4219869 Business Flow
43873    -- Update journal entry status -- Need to generate this within IF <condition>
43874    ----------------------------------------------------------------------------------
43875    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43876          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43877          ,p_balance_type_code => l_balance_type_code
43878          );
43879 
43880    -------------------------------------------------------------------------------------------
43881    -- 4262811 - Generate the Accrual Reversal lines
43882    -------------------------------------------------------------------------------------------
43883    BEGIN
43884       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43885                               (g_array_event(p_event_id).array_value_num('header_index'));
43886       IF l_acc_rev_flag IS NULL THEN
43887          l_acc_rev_flag := 'N';
43888       END IF;
43889    EXCEPTION
43890       WHEN OTHERS THEN
43891          l_acc_rev_flag := 'N';
43892    END;
43893    --
43894    IF (l_acc_rev_flag = 'Y') THEN
43895 
43896        -- 4645092  ------------------------------------------------------------------------------
43897        -- To allow MPA report to determine if it should generate report process
43898        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43899        ------------------------------------------------------------------------------------------
43900 
43901        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43902        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43903    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43904    -- call ADRs
43905    -- Bug 4922099
43906    --
43907    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43908         (NVL(l_actual_upg_option, 'N') = 'O') OR
43909         (NVL(l_enc_upg_option, 'N') = 'O')
43910       )
43911    THEN
43912    NULL;
43913    --
43914    --
43915    
43916   l_ccid := AcctDerRule_46(
43917            p_application_id           => p_application_id
43918          , p_ae_header_id             => l_ae_header_id 
43919 , p_source_48 => p_source_48
43920          , x_transaction_coa_id       => l_adr_transaction_coa_id
43921          , x_accounting_coa_id        => l_adr_accounting_coa_id
43922          , x_value_type_code          => l_adr_value_type_code
43923          , p_side                     => 'NA'
43924    );
43925 
43926    xla_ae_lines_pkg.set_ccid(
43927     p_code_combination_id          => l_ccid
43928   , p_value_type_code              => l_adr_value_type_code
43929   , p_transaction_coa_id           => l_adr_transaction_coa_id
43930   , p_accounting_coa_id            => l_adr_accounting_coa_id
43931   , p_adr_code                     => 'AP_TAX_ACCOUNT'
43932   , p_adr_type_code                => 'S'
43933   , p_component_type               => l_component_type
43934   , p_component_code               => l_component_code
43935   , p_component_type_code          => l_component_type_code
43936   , p_component_appl_id            => l_component_appl_id
43937   , p_amb_context_code             => l_amb_context_code
43938   , p_side                         => 'NA'
43939   );
43940 
43941 
43942    --
43943    --
43944    END IF;
43945 
43946        --
43950                                          p_header_num   => 1);
43947        -- Update the line information that should be overwritten
43948        --
43949        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43951        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43952 
43953        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43954 
43955        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43956           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43957        END IF;
43958 
43959       --
43960       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43961       --
43962       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43963           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43964       ELSE
43965           ---------------------------------------------------------------------------------------------------
43966           -- 4262811a Switch Sign
43967           ---------------------------------------------------------------------------------------------------
43968           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43969           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43970                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43971           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43972                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43973           -- 5132302
43974           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43975                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43976 
43977       END IF;
43978 
43979       -- 4955764
43980       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43981       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43982 
43983 
43984       XLA_AE_LINES_PKG.ValidateCurrentLine;
43985       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43986 
43987       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43988                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43989                ,p_balance_type_code => l_balance_type_code);
43990 
43991    END IF;
43992 
43993    -----------------------------------------------------------------------------------------
43994    -- 4262811 Multiperiod Accounting
43995    -----------------------------------------------------------------------------------------
43996      -- No MPA option is assigned.
43997 
43998 
43999 END IF;
44000 END IF;
44001 --
44002 
44003 --
44004 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44005    trace
44006       (p_msg      => 'END of AcctLineType_104'
44007       ,p_level    => C_LEVEL_PROCEDURE
44008       ,p_module   => l_log_module);
44009 END IF;
44010 --
44011 EXCEPTION
44012   WHEN xla_exceptions_pkg.application_exception THEN
44013       RAISE;
44014   WHEN OTHERS THEN
44015        xla_exceptions_pkg.raise_message
44016            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_104');
44017 END AcctLineType_104;
44018 --
44019 
44020 ---------------------------------------
44021 --
44022 -- PRIVATE FUNCTION
44023 --         AcctLineType_105
44024 --
44025 ---------------------------------------
44026 PROCEDURE AcctLineType_105 (
44027   p_application_id        IN NUMBER
44028  ,p_event_id              IN NUMBER
44029  ,p_calculate_acctd_flag  IN VARCHAR2
44030  ,p_calculate_g_l_flag    IN VARCHAR2
44031  ,p_actual_flag           IN OUT VARCHAR2
44032  ,p_balance_type_code     OUT VARCHAR2
44033  ,p_gain_or_loss_ref      OUT VARCHAR2
44034  
44035 --Payment Currency Code
44036  , p_source_8            IN VARCHAR2
44037 --Invoice Distribution Type
44038  , p_source_28            IN VARCHAR2
44039  , p_source_28_meaning    IN VARCHAR2
44040 --When to Account for Payment Option
44041  , p_source_57            IN VARCHAR2
44042 --Accounting Reversal Indicator
44043  , p_source_58            IN VARCHAR2
44044 --Distribution Link Type
44045  , p_source_60            IN VARCHAR2
44046 --Override Accounted Amount Indicator
44047  , p_source_85            IN VARCHAR2
44048  , p_source_85_meaning    IN VARCHAR2
44049 --Third Party Type
44050  , p_source_88            IN VARCHAR2
44051 --Invoice Distribution Tax Line Identifier
44052  , p_source_91            IN NUMBER
44053 --Invoice Distribution Summary Tax Line Identifier
44054  , p_source_93            IN NUMBER
44055 --Business Flow Accounts Payable Application Identifier
44056  , p_source_96            IN NUMBER
44057 --Business Flow Invoice Distribution Identifier
44058  , p_source_99            IN NUMBER
44059 --Business Flow Invoice Identifier
44060  , p_source_100            IN NUMBER
44061 --Payment Distribution Type
44062  , p_source_101            IN VARCHAR2
44063  , p_source_101_meaning    IN VARCHAR2
44064 --Payment Distribution Amount
44065  , p_source_102            IN NUMBER
44066 --Business Flow Payment Distribution Type
44070 --Payment Distribution Identifier
44067  , p_source_103            IN VARCHAR2
44068 --Business Flow Payment Entity Code
44069  , p_source_104            IN VARCHAR2
44071  , p_source_107            IN NUMBER
44072 --Payment Distribution Reversed Identifier
44073  , p_source_115            IN NUMBER
44074 --Payment Distribution (Invoice Rate) Ledger Amount
44075  , p_source_119            IN NUMBER
44076 --Payment Type
44077  , p_source_125            IN VARCHAR2
44078  , p_source_125_meaning    IN VARCHAR2
44079 --Deferred Recoverable Tax Option
44080  , p_source_140            IN VARCHAR2
44081  , p_source_140_meaning    IN VARCHAR2
44082 )
44083 IS
44084 
44085 l_component_type              VARCHAR2(80);
44086 l_component_code              VARCHAR2(30);
44087 l_component_type_code         VARCHAR2(1);
44088 l_component_appl_id           INTEGER;
44089 l_amb_context_code            VARCHAR2(30);
44090 l_entity_code                 VARCHAR2(30);
44091 l_event_class_code            VARCHAR2(30);
44092 l_ae_header_id                NUMBER;
44093 l_event_type_code             VARCHAR2(30);
44094 l_line_definition_code        VARCHAR2(30);
44095 l_line_definition_owner_code  VARCHAR2(1);
44096 --
44097 -- adr variables
44098 l_segment                     VARCHAR2(30);
44099 l_ccid                        NUMBER;
44100 l_adr_transaction_coa_id      NUMBER;
44101 l_adr_accounting_coa_id       NUMBER;
44102 l_adr_flexfield_segment_code  VARCHAR2(30);
44103 l_adr_flex_value_set_id       NUMBER;
44104 l_adr_value_type_code         VARCHAR2(30);
44105 l_adr_value_combination_id    NUMBER;
44106 l_adr_value_segment_code      VARCHAR2(30);
44107 
44108 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44109 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44110 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44111 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44112 
44113 -- 4262811 Variables ------------------------------------------------------------------------------------------
44114 l_entered_amt_idx             NUMBER;
44115 l_accted_amt_idx              NUMBER;
44116 l_acc_rev_flag                VARCHAR2(1);
44117 l_accrual_line_num            NUMBER;
44118 l_tmp_amt                     NUMBER;
44119 l_acc_rev_natural_side_code   VARCHAR2(1);
44120 
44121 l_num_entries                 NUMBER;
44122 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44123 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44124 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44125 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44126 l_recog_line_1                NUMBER;
44127 l_recog_line_2                NUMBER;
44128 
44129 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44130 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44131 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44132 
44133 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44134 
44135 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44136 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44137 
44138 ---------------------------------------------------------------------------------------------------------------
44139 
44140 
44141 --
44142 -- bulk performance
44143 --
44144 l_balance_type_code           VARCHAR2(1);
44145 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44146 l_log_module                  VARCHAR2(240);
44147 
44148 --
44149 -- Upgrade strategy
44150 --
44151 l_actual_upg_option           VARCHAR2(1);
44152 l_enc_upg_option           VARCHAR2(1);
44153 
44154 --
44155 BEGIN
44156 --
44157 IF g_log_enabled THEN
44158       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
44159 END IF;
44160 --
44161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44162 
44163       trace
44164          (p_msg      => 'BEGIN of AcctLineType_105'
44165          ,p_level    => C_LEVEL_PROCEDURE
44166          ,p_module   => l_log_module);
44167 
44168 END IF;
44169 --
44170 l_component_type             := 'AMB_JLT';
44171 l_component_code             := 'AP_DEF_RTAX_INTERIM_CLR';
44172 l_component_type_code        := 'S';
44173 l_component_appl_id          :=  200;
44174 l_amb_context_code           := 'DEFAULT';
44175 l_entity_code                := 'AP_PAYMENTS';
44176 l_event_class_code           := 'RECONCILED PAYMENTS';
44177 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
44178 l_line_definition_owner_code := 'S';
44179 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
44180 --
44181 l_balance_type_code          := 'A';
44182 l_segment                     := NULL;
44183 l_ccid                        := NULL;
44184 l_adr_transaction_coa_id      := NULL;
44185 l_adr_accounting_coa_id       := NULL;
44186 l_adr_flexfield_segment_code  := NULL;
44187 l_adr_flex_value_set_id       := NULL;
44188 l_adr_value_type_code         := NULL;
44189 l_adr_value_combination_id    := NULL;
44190 l_adr_value_segment_code      := NULL;
44191 
44192 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44193 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
44197 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44194 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44195 l_budgetary_control_flag     := 'N';
44196 
44198 l_bflow_applied_to_amt       := NULL; -- 5132302
44199 l_entered_amt_idx            := NULL;          -- 4262811
44200 l_accted_amt_idx             := NULL;          -- 4262811
44201 l_acc_rev_flag               := NULL;          -- 4262811
44202 l_accrual_line_num           := NULL;          -- 4262811
44203 l_tmp_amt                    := NULL;          -- 4262811
44204 --
44205  
44206 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44207     l_balance_type_code <> 'B' THEN
44208 IF NVL(p_source_57,'
44209 ') =  'CLEAR_CLEAR' AND 
44210 NVL(p_source_28,'
44211 ') =  'REC_TAX' AND 
44212 NVL(p_source_140,'
44213 ') =  'DEFERRED' AND 
44214 (NVL(p_source_101,'
44215 ') =  'CASH' OR 
44216 NVL(p_source_101,'
44217 ') =  'DISCOUNT') AND 
44218 NVL(p_source_125,'
44219 ') <>  'R'
44220  THEN 
44221 
44222    --
44223    XLA_AE_LINES_PKG.SetNewLine;
44224 
44225    p_balance_type_code          := l_balance_type_code;
44226    -- set the flag so later we will know whether the gain loss line needs to be created
44227    
44228    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44229      p_actual_flag :='A';
44230    END IF;
44231 
44232    --
44233    -- bulk performance
44234    --
44235    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44236                                       p_header_num   => 0); -- 4262811
44237    --
44238    -- set accounting line options
44239    --
44240    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44241            p_natural_side_code          => 'C'
44242          , p_gain_or_loss_flag          => 'N'
44243          , p_gl_transfer_mode_code      => 'S'
44244          , p_acct_entry_type_code       => 'A'
44245          , p_switch_side_flag           => 'Y'
44246          , p_merge_duplicate_code       => 'A'
44247          );
44248    --
44249    l_acc_rev_natural_side_code := 'D';  -- 4262811
44250    -- 
44251    --
44252    -- set accounting line type info
44253    --
44254    xla_ae_lines_pkg.SetAcctLineType
44255       (p_component_type             => l_component_type
44256       ,p_event_type_code            => l_event_type_code
44257       ,p_line_definition_owner_code => l_line_definition_owner_code
44258       ,p_line_definition_code       => l_line_definition_code
44259       ,p_accounting_line_code       => l_component_code
44260       ,p_accounting_line_type_code  => l_component_type_code
44261       ,p_accounting_line_appl_id    => l_component_appl_id
44262       ,p_amb_context_code           => l_amb_context_code
44263       ,p_entity_code                => l_entity_code
44264       ,p_event_class_code           => l_event_class_code);
44265    --
44266    -- set accounting class
44267    --
44268    xla_ae_lines_pkg.SetAcctClass(
44269            p_accounting_class_code  => 'DEF_REC_TAX'
44270          , p_ae_header_id           => l_ae_header_id
44271          );
44272 
44273    --
44274    -- set rounding class
44275    --
44276    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44277                       'DEF_REC_TAX';
44278 
44279    --
44280    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44281    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44282    --
44283    -- bulk performance
44284    --
44285    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44286 
44287    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44288       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44289 
44290    -- 4955764
44291    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44292       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44293 
44294    -- 4458381 Public Sector Enh
44295    
44296    --
44297    -- set accounting attributes for the line type
44298    --
44299    l_entered_amt_idx := 10;
44300    l_accted_amt_idx  := 12;
44301    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
44302    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44303    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
44304    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
44305    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
44306    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
44307    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
44308    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44309    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
44310    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
44311    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
44312    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
44313    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
44314    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44315    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
44316    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
44317    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
44321    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
44318    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
44319    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
44320    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
44322    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
44323    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
44324    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
44325    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
44326    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
44327    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
44328    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
44329    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
44330    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
44331    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
44332    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
44333    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
44334    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
44335    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
44336    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
44337    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
44338    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
44339    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
44340 
44341    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44342    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44343 
44344    ---------------------------------------------------------------------------------------------------------------
44345    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44346    ---------------------------------------------------------------------------------------------------------------
44347    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44348 
44349    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44350    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44351 
44352    IF xla_accounting_cache_pkg.GetValueChar
44353          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44354          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44355    AND l_bflow_method_code = 'PRIOR_ENTRY'
44356 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44357    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44358          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44359        )
44360    THEN
44361          xla_ae_lines_pkg.BflowUpgEntry
44362            (p_business_method_code    => l_bflow_method_code
44363            ,p_business_class_code     => l_bflow_class_code
44364            ,p_balance_type            => l_balance_type_code);
44365    ELSE
44366       NULL;
44367 XLA_AE_LINES_PKG.business_flow_validation(
44368                                 p_business_method_code     => l_bflow_method_code
44369                                ,p_business_class_code      => l_bflow_class_code
44370                                ,p_inherit_description_flag => l_inherit_desc_flag);
44371    END IF;
44372 
44373    --
44374    -- call analytical criteria
44375    --
44376    -- Inherited Analytical Criteria for business flow method of Prior Entry.
44377    --
44378    -- call description
44379    --
44380    -- No description or it is inherited.
44381    --
44382    -- call ADRs
44383    -- Bug 4922099
44384    --
44385    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44386         (NVL(l_actual_upg_option, 'N') = 'O') OR
44387         (NVL(l_enc_upg_option, 'N') = 'O')
44388       )
44389    THEN
44390    NULL;
44391    --
44392    --
44393    
44394    --
44395    --
44396    END IF;
44397    --
44398    -- Bug 4922099
44399    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44400           (NVL(l_enc_upg_option, 'N') = 'O')
44401         ) AND
44402         (l_bflow_method_code = 'PRIOR_ENTRY')
44403       )
44404    THEN
44405       IF
44406       --
44407       1 = 1
44408       --
44409       THEN
44410       xla_accounting_err_pkg.build_message
44411                                     (p_appli_s_name            => 'XLA'
44412                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44413                                     ,p_token_1                 => 'LINE_NUMBER'
44414                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44415                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44416                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44417                                                                              l_component_type
44418                                                                             ,l_component_code
44419                                                                             ,l_component_type_code
44420                                                                             ,l_component_appl_id
44421                                                                             ,l_amb_context_code
44425                                     ,p_token_3                 => 'OWNER'
44422                                                                             ,l_entity_code
44423                                                                             ,l_event_class_code
44424                                                                            )
44426                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44427                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44428                                                                           ,p_lookup_code    => l_component_type_code
44429                                                                          )
44430                                     ,p_token_4                 => 'PRODUCT_NAME'
44431                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44432                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44433                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44434                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44435                                     ,p_ae_header_id            =>  NULL
44436                                        );
44437 
44438         IF (C_LEVEL_ERROR>= g_log_level) THEN
44439                  trace
44440                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44441                       ,p_level    => C_LEVEL_ERROR
44442                       ,p_module   => l_log_module);
44443         END IF;
44444       END IF;
44445    END IF;
44446    --
44447    --
44448    ------------------------------------------------------------------------------------------------
44449    -- 4219869 Business Flow
44450    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44451    -- Prior Entry.  Currently, the following code is always generated.
44452    ------------------------------------------------------------------------------------------------
44453    -- No ValidateCurrentLine for business flow method of Prior Entry
44454 
44455    ------------------------------------------------------------------------------------
44456    -- 4219869 Business Flow
44457    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44458    ------------------------------------------------------------------------------------
44459    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44460 
44461    ----------------------------------------------------------------------------------
44462    -- 4219869 Business Flow
44463    -- Update journal entry status -- Need to generate this within IF <condition>
44464    ----------------------------------------------------------------------------------
44465    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44466          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44467          ,p_balance_type_code => l_balance_type_code
44468          );
44469 
44470    -------------------------------------------------------------------------------------------
44471    -- 4262811 - Generate the Accrual Reversal lines
44472    -------------------------------------------------------------------------------------------
44473    BEGIN
44474       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44475                               (g_array_event(p_event_id).array_value_num('header_index'));
44476       IF l_acc_rev_flag IS NULL THEN
44477          l_acc_rev_flag := 'N';
44478       END IF;
44479    EXCEPTION
44480       WHEN OTHERS THEN
44481          l_acc_rev_flag := 'N';
44482    END;
44483    --
44484    IF (l_acc_rev_flag = 'Y') THEN
44485 
44486        -- 4645092  ------------------------------------------------------------------------------
44487        -- To allow MPA report to determine if it should generate report process
44488        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44489        ------------------------------------------------------------------------------------------
44490 
44491        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44492        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44493    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44494    -- call ADRs
44495    -- Bug 4922099
44496    --
44497    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44498         (NVL(l_actual_upg_option, 'N') = 'O') OR
44499         (NVL(l_enc_upg_option, 'N') = 'O')
44500       )
44501    THEN
44502    NULL;
44503    --
44504    --
44505    
44506    --
44507    --
44508    END IF;
44509 
44510        --
44511        -- Update the line information that should be overwritten
44512        --
44513        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44514                                          p_header_num   => 1);
44515        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44516 
44517        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44518 
44519        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44520           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44521        END IF;
44522 
44523       --
44524       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44525       --
44529           ---------------------------------------------------------------------------------------------------
44526       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44527           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44528       ELSE
44530           -- 4262811a Switch Sign
44531           ---------------------------------------------------------------------------------------------------
44532           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44533           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44534                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44535           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44536                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44537           -- 5132302
44538           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44539                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44540 
44541       END IF;
44542 
44543       -- 4955764
44544       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44545       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44546 
44547 
44548       XLA_AE_LINES_PKG.ValidateCurrentLine;
44549       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44550 
44551       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44552                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44553                ,p_balance_type_code => l_balance_type_code);
44554 
44555    END IF;
44556 
44557    -----------------------------------------------------------------------------------------
44558    -- 4262811 Multiperiod Accounting
44559    -----------------------------------------------------------------------------------------
44560      -- No MPA option is assigned.
44561 
44562 
44563 END IF;
44564 END IF;
44565 --
44566 
44567 --
44568 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44569    trace
44570       (p_msg      => 'END of AcctLineType_105'
44571       ,p_level    => C_LEVEL_PROCEDURE
44572       ,p_module   => l_log_module);
44573 END IF;
44574 --
44575 EXCEPTION
44576   WHEN xla_exceptions_pkg.application_exception THEN
44577       RAISE;
44578   WHEN OTHERS THEN
44579        xla_exceptions_pkg.raise_message
44580            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_105');
44581 END AcctLineType_105;
44582 --
44583 
44584 ---------------------------------------
44585 --
44586 -- PRIVATE FUNCTION
44587 --         AcctLineType_106
44588 --
44589 ---------------------------------------
44590 PROCEDURE AcctLineType_106 (
44591   p_application_id        IN NUMBER
44592  ,p_event_id              IN NUMBER
44593  ,p_calculate_acctd_flag  IN VARCHAR2
44594  ,p_calculate_g_l_flag    IN VARCHAR2
44595  ,p_actual_flag           IN OUT VARCHAR2
44596  ,p_balance_type_code     OUT VARCHAR2
44597  ,p_gain_or_loss_ref      OUT VARCHAR2
44598  
44599 --Payment Currency Code
44600  , p_source_8            IN VARCHAR2
44601 --Invoice Distribution Type
44602  , p_source_28            IN VARCHAR2
44603  , p_source_28_meaning    IN VARCHAR2
44604 --When to Account for Payment Option
44605  , p_source_57            IN VARCHAR2
44606 --Accounting Reversal Indicator
44607  , p_source_58            IN VARCHAR2
44608 --Distribution Link Type
44609  , p_source_60            IN VARCHAR2
44610 --Override Accounted Amount Indicator
44611  , p_source_85            IN VARCHAR2
44612  , p_source_85_meaning    IN VARCHAR2
44613 --Third Party Type
44614  , p_source_88            IN VARCHAR2
44615 --Business Flow Accounts Payable Application Identifier
44616  , p_source_96            IN NUMBER
44617 --Business Flow Invoice Distribution Type
44618  , p_source_97            IN VARCHAR2
44619 --Business Flow Invoice Entity Code
44620  , p_source_98            IN VARCHAR2
44621 --Business Flow Invoice Distribution Identifier
44622  , p_source_99            IN NUMBER
44623 --Business Flow Invoice Identifier
44624  , p_source_100            IN NUMBER
44625 --Payment Distribution Type
44626  , p_source_101            IN VARCHAR2
44627  , p_source_101_meaning    IN VARCHAR2
44628 --Payment Distribution Amount
44629  , p_source_102            IN NUMBER
44630 --Payment Distribution Identifier
44631  , p_source_107            IN NUMBER
44632 --Payment Distribution Reversed Identifier
44633  , p_source_115            IN NUMBER
44634 --Payment Maturity Date
44635  , p_source_117            IN DATE
44636 --Payment Distribution (Matured Rate) Ledger Amount
44637  , p_source_124            IN NUMBER
44638 --Deferred Recoverable Tax Option
44639  , p_source_140            IN VARCHAR2
44640  , p_source_140_meaning    IN VARCHAR2
44641 )
44642 IS
44643 
44644 l_component_type              VARCHAR2(80);
44645 l_component_code              VARCHAR2(30);
44646 l_component_type_code         VARCHAR2(1);
44647 l_component_appl_id           INTEGER;
44648 l_amb_context_code            VARCHAR2(30);
44649 l_entity_code                 VARCHAR2(30);
44653 l_line_definition_code        VARCHAR2(30);
44650 l_event_class_code            VARCHAR2(30);
44651 l_ae_header_id                NUMBER;
44652 l_event_type_code             VARCHAR2(30);
44654 l_line_definition_owner_code  VARCHAR2(1);
44655 --
44656 -- adr variables
44657 l_segment                     VARCHAR2(30);
44658 l_ccid                        NUMBER;
44659 l_adr_transaction_coa_id      NUMBER;
44660 l_adr_accounting_coa_id       NUMBER;
44661 l_adr_flexfield_segment_code  VARCHAR2(30);
44662 l_adr_flex_value_set_id       NUMBER;
44663 l_adr_value_type_code         VARCHAR2(30);
44664 l_adr_value_combination_id    NUMBER;
44665 l_adr_value_segment_code      VARCHAR2(30);
44666 
44667 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44668 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44669 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44670 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44671 
44672 -- 4262811 Variables ------------------------------------------------------------------------------------------
44673 l_entered_amt_idx             NUMBER;
44674 l_accted_amt_idx              NUMBER;
44675 l_acc_rev_flag                VARCHAR2(1);
44676 l_accrual_line_num            NUMBER;
44677 l_tmp_amt                     NUMBER;
44678 l_acc_rev_natural_side_code   VARCHAR2(1);
44679 
44680 l_num_entries                 NUMBER;
44681 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44682 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44683 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44684 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44685 l_recog_line_1                NUMBER;
44686 l_recog_line_2                NUMBER;
44687 
44688 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44689 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44690 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44691 
44692 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44693 
44694 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44695 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44696 
44697 ---------------------------------------------------------------------------------------------------------------
44698 
44699 
44700 --
44701 -- bulk performance
44702 --
44703 l_balance_type_code           VARCHAR2(1);
44704 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44705 l_log_module                  VARCHAR2(240);
44706 
44707 --
44708 -- Upgrade strategy
44709 --
44710 l_actual_upg_option           VARCHAR2(1);
44711 l_enc_upg_option           VARCHAR2(1);
44712 
44713 --
44714 BEGIN
44715 --
44716 IF g_log_enabled THEN
44717       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
44718 END IF;
44719 --
44720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44721 
44722       trace
44723          (p_msg      => 'BEGIN of AcctLineType_106'
44724          ,p_level    => C_LEVEL_PROCEDURE
44725          ,p_module   => l_log_module);
44726 
44727 END IF;
44728 --
44729 l_component_type             := 'AMB_JLT';
44730 l_component_code             := 'AP_DEF_RTAX_INTERIM_MAT';
44731 l_component_type_code        := 'S';
44732 l_component_appl_id          :=  200;
44733 l_amb_context_code           := 'DEFAULT';
44734 l_entity_code                := 'AP_PAYMENTS';
44735 l_event_class_code           := 'FUTURE DATED PAYMENTS';
44736 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
44737 l_line_definition_owner_code := 'S';
44738 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
44739 --
44740 l_balance_type_code          := 'A';
44741 l_segment                     := NULL;
44742 l_ccid                        := NULL;
44743 l_adr_transaction_coa_id      := NULL;
44744 l_adr_accounting_coa_id       := NULL;
44745 l_adr_flexfield_segment_code  := NULL;
44746 l_adr_flex_value_set_id       := NULL;
44747 l_adr_value_type_code         := NULL;
44748 l_adr_value_combination_id    := NULL;
44749 l_adr_value_segment_code      := NULL;
44750 
44751 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44752 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
44753 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44754 l_budgetary_control_flag     := 'N';
44755 
44756 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44757 l_bflow_applied_to_amt       := NULL; -- 5132302
44758 l_entered_amt_idx            := NULL;          -- 4262811
44759 l_accted_amt_idx             := NULL;          -- 4262811
44760 l_acc_rev_flag               := NULL;          -- 4262811
44761 l_accrual_line_num           := NULL;          -- 4262811
44762 l_tmp_amt                    := NULL;          -- 4262811
44763 --
44764  
44765 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44766     l_balance_type_code <> 'B' THEN
44767 IF NVL(p_source_57,'
44768 ') <>  'CLEAR_CLEAR' AND 
44769 NVL(p_source_28,'
44770 ') =  'REC_TAX' AND 
44771 p_source_117 IS NOT NULL AND 
44772 NVL(p_source_140,'
44773 ') =  'DEFERRED' AND 
44774 (NVL(p_source_101,'
44775 ') =  'DISCOUNT' OR 
44776 NVL(p_source_101,'
44780    --
44777 ') =  'CASH')
44778  THEN 
44779 
44781    XLA_AE_LINES_PKG.SetNewLine;
44782 
44783    p_balance_type_code          := l_balance_type_code;
44784    -- set the flag so later we will know whether the gain loss line needs to be created
44785    
44786    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44787      p_actual_flag :='A';
44788    END IF;
44789 
44790    --
44791    -- bulk performance
44792    --
44793    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44794                                       p_header_num   => 0); -- 4262811
44795    --
44796    -- set accounting line options
44797    --
44798    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44799            p_natural_side_code          => 'C'
44800          , p_gain_or_loss_flag          => 'N'
44801          , p_gl_transfer_mode_code      => 'S'
44802          , p_acct_entry_type_code       => 'A'
44803          , p_switch_side_flag           => 'Y'
44804          , p_merge_duplicate_code       => 'A'
44805          );
44806    --
44807    l_acc_rev_natural_side_code := 'D';  -- 4262811
44808    -- 
44809    --
44810    -- set accounting line type info
44811    --
44812    xla_ae_lines_pkg.SetAcctLineType
44813       (p_component_type             => l_component_type
44814       ,p_event_type_code            => l_event_type_code
44815       ,p_line_definition_owner_code => l_line_definition_owner_code
44816       ,p_line_definition_code       => l_line_definition_code
44817       ,p_accounting_line_code       => l_component_code
44818       ,p_accounting_line_type_code  => l_component_type_code
44819       ,p_accounting_line_appl_id    => l_component_appl_id
44820       ,p_amb_context_code           => l_amb_context_code
44821       ,p_entity_code                => l_entity_code
44822       ,p_event_class_code           => l_event_class_code);
44823    --
44824    -- set accounting class
44825    --
44826    xla_ae_lines_pkg.SetAcctClass(
44827            p_accounting_class_code  => 'DEF_REC_TAX'
44828          , p_ae_header_id           => l_ae_header_id
44829          );
44830 
44831    --
44832    -- set rounding class
44833    --
44834    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44835                       'DEF_REC_TAX';
44836 
44837    --
44838    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44839    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44840    --
44841    -- bulk performance
44842    --
44843    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44844 
44845    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44846       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44847 
44848    -- 4955764
44849    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44850       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44851 
44852    -- 4458381 Public Sector Enh
44853    
44854    --
44855    -- set accounting attributes for the line type
44856    --
44857    l_entered_amt_idx := 9;
44858    l_accted_amt_idx  := 11;
44859    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44860    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44861    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
44862    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
44863    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
44864    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44865    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
44866    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
44867    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
44868    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
44869    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
44870    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44871    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
44872    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
44873    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
44874    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
44875    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
44876    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
44877    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
44878    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
44879    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
44880    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
44881    l_rec_acct_attrs.array_num_value(11)  := p_source_124;
44882    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
44883    l_rec_acct_attrs.array_char_value(12)  := p_source_85;
44884    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
44885    l_rec_acct_attrs.array_char_value(13)  := p_source_88;
44886    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
44887    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_115);
44888    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
44889    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
44890 
44894    ---------------------------------------------------------------------------------------------------------------
44891    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44892    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44893 
44895    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44896    ---------------------------------------------------------------------------------------------------------------
44897    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44898 
44899    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44900    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44901 
44902    IF xla_accounting_cache_pkg.GetValueChar
44903          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44904          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44905    AND l_bflow_method_code = 'PRIOR_ENTRY'
44906 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44907    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44908          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44909        )
44910    THEN
44911          xla_ae_lines_pkg.BflowUpgEntry
44912            (p_business_method_code    => l_bflow_method_code
44913            ,p_business_class_code     => l_bflow_class_code
44914            ,p_balance_type            => l_balance_type_code);
44915    ELSE
44916       NULL;
44917 XLA_AE_LINES_PKG.business_flow_validation(
44918                                 p_business_method_code     => l_bflow_method_code
44919                                ,p_business_class_code      => l_bflow_class_code
44920                                ,p_inherit_description_flag => l_inherit_desc_flag);
44921    END IF;
44922 
44923    --
44924    -- call analytical criteria
44925    --
44926    -- Inherited Analytical Criteria for business flow method of Prior Entry.
44927    --
44928    -- call description
44929    --
44930    -- No description or it is inherited.
44931    --
44932    -- call ADRs
44933    -- Bug 4922099
44934    --
44935    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44936         (NVL(l_actual_upg_option, 'N') = 'O') OR
44937         (NVL(l_enc_upg_option, 'N') = 'O')
44938       )
44939    THEN
44940    NULL;
44941    --
44942    --
44943    
44944    --
44945    --
44946    END IF;
44947    --
44948    -- Bug 4922099
44949    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44950           (NVL(l_enc_upg_option, 'N') = 'O')
44951         ) AND
44952         (l_bflow_method_code = 'PRIOR_ENTRY')
44953       )
44954    THEN
44955       IF
44956       --
44957       1 = 1
44958       --
44959       THEN
44960       xla_accounting_err_pkg.build_message
44961                                     (p_appli_s_name            => 'XLA'
44962                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44963                                     ,p_token_1                 => 'LINE_NUMBER'
44964                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44965                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44966                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44967                                                                              l_component_type
44968                                                                             ,l_component_code
44969                                                                             ,l_component_type_code
44970                                                                             ,l_component_appl_id
44971                                                                             ,l_amb_context_code
44972                                                                             ,l_entity_code
44973                                                                             ,l_event_class_code
44974                                                                            )
44975                                     ,p_token_3                 => 'OWNER'
44976                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44977                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44978                                                                           ,p_lookup_code    => l_component_type_code
44979                                                                          )
44980                                     ,p_token_4                 => 'PRODUCT_NAME'
44981                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44982                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44983                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44984                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44985                                     ,p_ae_header_id            =>  NULL
44986                                        );
44987 
44988         IF (C_LEVEL_ERROR>= g_log_level) THEN
44989                  trace
44990                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44991                       ,p_level    => C_LEVEL_ERROR
44995    END IF;
44992                       ,p_module   => l_log_module);
44993         END IF;
44994       END IF;
44996    --
44997    --
44998    ------------------------------------------------------------------------------------------------
44999    -- 4219869 Business Flow
45000    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45001    -- Prior Entry.  Currently, the following code is always generated.
45002    ------------------------------------------------------------------------------------------------
45003    -- No ValidateCurrentLine for business flow method of Prior Entry
45004 
45005    ------------------------------------------------------------------------------------
45006    -- 4219869 Business Flow
45007    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45008    ------------------------------------------------------------------------------------
45009    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45010 
45011    ----------------------------------------------------------------------------------
45012    -- 4219869 Business Flow
45013    -- Update journal entry status -- Need to generate this within IF <condition>
45014    ----------------------------------------------------------------------------------
45015    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45016          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45017          ,p_balance_type_code => l_balance_type_code
45018          );
45019 
45020    -------------------------------------------------------------------------------------------
45021    -- 4262811 - Generate the Accrual Reversal lines
45022    -------------------------------------------------------------------------------------------
45023    BEGIN
45024       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45025                               (g_array_event(p_event_id).array_value_num('header_index'));
45026       IF l_acc_rev_flag IS NULL THEN
45027          l_acc_rev_flag := 'N';
45028       END IF;
45029    EXCEPTION
45030       WHEN OTHERS THEN
45031          l_acc_rev_flag := 'N';
45032    END;
45033    --
45034    IF (l_acc_rev_flag = 'Y') THEN
45035 
45036        -- 4645092  ------------------------------------------------------------------------------
45037        -- To allow MPA report to determine if it should generate report process
45038        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45039        ------------------------------------------------------------------------------------------
45040 
45041        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45042        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45043    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45044    -- call ADRs
45045    -- Bug 4922099
45046    --
45047    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45048         (NVL(l_actual_upg_option, 'N') = 'O') OR
45049         (NVL(l_enc_upg_option, 'N') = 'O')
45050       )
45051    THEN
45052    NULL;
45053    --
45054    --
45055    
45056    --
45057    --
45058    END IF;
45059 
45060        --
45061        -- Update the line information that should be overwritten
45062        --
45063        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45064                                          p_header_num   => 1);
45065        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45066 
45067        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45068 
45069        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45070           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45071        END IF;
45072 
45073       --
45074       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45075       --
45076       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45077           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45078       ELSE
45079           ---------------------------------------------------------------------------------------------------
45080           -- 4262811a Switch Sign
45081           ---------------------------------------------------------------------------------------------------
45082           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45083           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45084                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45085           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45086                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45087           -- 5132302
45088           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45089                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45090 
45091       END IF;
45092 
45093       -- 4955764
45094       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45095       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45096 
45097 
45098       XLA_AE_LINES_PKG.ValidateCurrentLine;
45102                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45099       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45100 
45101       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45103                ,p_balance_type_code => l_balance_type_code);
45104 
45105    END IF;
45106 
45107    -----------------------------------------------------------------------------------------
45108    -- 4262811 Multiperiod Accounting
45109    -----------------------------------------------------------------------------------------
45110      -- No MPA option is assigned.
45111 
45112 
45113 END IF;
45114 END IF;
45115 --
45116 
45117 --
45118 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45119    trace
45120       (p_msg      => 'END of AcctLineType_106'
45121       ,p_level    => C_LEVEL_PROCEDURE
45122       ,p_module   => l_log_module);
45123 END IF;
45124 --
45125 EXCEPTION
45126   WHEN xla_exceptions_pkg.application_exception THEN
45127       RAISE;
45128   WHEN OTHERS THEN
45129        xla_exceptions_pkg.raise_message
45130            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_106');
45131 END AcctLineType_106;
45132 --
45133 
45134 ---------------------------------------
45135 --
45136 -- PRIVATE FUNCTION
45137 --         AcctLineType_107
45138 --
45139 ---------------------------------------
45140 PROCEDURE AcctLineType_107 (
45141   p_application_id        IN NUMBER
45142  ,p_event_id              IN NUMBER
45143  ,p_calculate_acctd_flag  IN VARCHAR2
45144  ,p_calculate_g_l_flag    IN VARCHAR2
45145  ,p_actual_flag           IN OUT VARCHAR2
45146  ,p_balance_type_code     OUT VARCHAR2
45147  ,p_gain_or_loss_ref      OUT VARCHAR2
45148  
45149 --Payment Currency Code
45150  , p_source_8            IN VARCHAR2
45151 --Invoice Distribution Type
45152  , p_source_28            IN VARCHAR2
45153  , p_source_28_meaning    IN VARCHAR2
45154 --When to Account for Payment Option
45155  , p_source_57            IN VARCHAR2
45156 --Accounting Reversal Indicator
45157  , p_source_58            IN VARCHAR2
45158 --Distribution Link Type
45159  , p_source_60            IN VARCHAR2
45160 --Override Accounted Amount Indicator
45161  , p_source_85            IN VARCHAR2
45162  , p_source_85_meaning    IN VARCHAR2
45163 --Third Party Type
45164  , p_source_88            IN VARCHAR2
45165 --Invoice Distribution Tax Line Identifier
45166  , p_source_91            IN NUMBER
45167 --Invoice Distribution Tax Distribution Identifier from Tax
45168  , p_source_92            IN NUMBER
45169 --Invoice Distribution Summary Tax Line Identifier
45170  , p_source_93            IN NUMBER
45171 --Business Flow Accounts Payable Application Identifier
45172  , p_source_96            IN NUMBER
45173 --Business Flow Invoice Distribution Type
45174  , p_source_97            IN VARCHAR2
45175 --Business Flow Invoice Entity Code
45176  , p_source_98            IN VARCHAR2
45177 --Business Flow Invoice Distribution Identifier
45178  , p_source_99            IN NUMBER
45179 --Business Flow Invoice Identifier
45180  , p_source_100            IN NUMBER
45181 --Payment Distribution Type
45182  , p_source_101            IN VARCHAR2
45183  , p_source_101_meaning    IN VARCHAR2
45184 --Payment Distribution Amount
45185  , p_source_102            IN NUMBER
45186 --Payment Distribution Identifier
45187  , p_source_107            IN NUMBER
45188 --Payment Distribution Reversed Identifier
45189  , p_source_115            IN NUMBER
45190 --Payment Maturity Date
45191  , p_source_117            IN DATE
45192 --Payment Distribution (Invoice Rate) Ledger Amount
45193  , p_source_119            IN NUMBER
45194 --Payment Type
45195  , p_source_125            IN VARCHAR2
45196  , p_source_125_meaning    IN VARCHAR2
45197 --Payment Processing Type
45198  , p_source_126            IN VARCHAR2
45199 --Invoice Distribution Amount of the Payment Distribution
45200  , p_source_127            IN NUMBER
45201 --Deferred Recoverable Tax Option
45202  , p_source_140            IN VARCHAR2
45203  , p_source_140_meaning    IN VARCHAR2
45204 --AWT Related Distribution Type Lookup code
45205  , p_source_141            IN VARCHAR2
45206 )
45207 IS
45208 
45209 l_component_type              VARCHAR2(80);
45210 l_component_code              VARCHAR2(30);
45211 l_component_type_code         VARCHAR2(1);
45212 l_component_appl_id           INTEGER;
45213 l_amb_context_code            VARCHAR2(30);
45214 l_entity_code                 VARCHAR2(30);
45215 l_event_class_code            VARCHAR2(30);
45216 l_ae_header_id                NUMBER;
45217 l_event_type_code             VARCHAR2(30);
45218 l_line_definition_code        VARCHAR2(30);
45219 l_line_definition_owner_code  VARCHAR2(1);
45220 --
45221 -- adr variables
45222 l_segment                     VARCHAR2(30);
45223 l_ccid                        NUMBER;
45224 l_adr_transaction_coa_id      NUMBER;
45225 l_adr_accounting_coa_id       NUMBER;
45226 l_adr_flexfield_segment_code  VARCHAR2(30);
45227 l_adr_flex_value_set_id       NUMBER;
45228 l_adr_value_type_code         VARCHAR2(30);
45229 l_adr_value_combination_id    NUMBER;
45230 l_adr_value_segment_code      VARCHAR2(30);
45231 
45232 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45233 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45234 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45238 l_entered_amt_idx             NUMBER;
45235 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45236 
45237 -- 4262811 Variables ------------------------------------------------------------------------------------------
45239 l_accted_amt_idx              NUMBER;
45240 l_acc_rev_flag                VARCHAR2(1);
45241 l_accrual_line_num            NUMBER;
45242 l_tmp_amt                     NUMBER;
45243 l_acc_rev_natural_side_code   VARCHAR2(1);
45244 
45245 l_num_entries                 NUMBER;
45246 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45247 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45248 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45249 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45250 l_recog_line_1                NUMBER;
45251 l_recog_line_2                NUMBER;
45252 
45253 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45254 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45255 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45256 
45257 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45258 
45259 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45260 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45261 
45262 ---------------------------------------------------------------------------------------------------------------
45263 
45264 
45265 --
45266 -- bulk performance
45267 --
45268 l_balance_type_code           VARCHAR2(1);
45269 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45270 l_log_module                  VARCHAR2(240);
45271 
45272 --
45273 -- Upgrade strategy
45274 --
45275 l_actual_upg_option           VARCHAR2(1);
45276 l_enc_upg_option           VARCHAR2(1);
45277 
45278 --
45279 BEGIN
45280 --
45281 IF g_log_enabled THEN
45282       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
45283 END IF;
45284 --
45285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45286 
45287       trace
45288          (p_msg      => 'BEGIN of AcctLineType_107'
45289          ,p_level    => C_LEVEL_PROCEDURE
45290          ,p_module   => l_log_module);
45291 
45292 END IF;
45293 --
45294 l_component_type             := 'AMB_JLT';
45295 l_component_code             := 'AP_DEF_RTAX_INTERIM_PMT';
45296 l_component_type_code        := 'S';
45297 l_component_appl_id          :=  200;
45298 l_amb_context_code           := 'DEFAULT';
45299 l_entity_code                := 'AP_PAYMENTS';
45300 l_event_class_code           := 'PAYMENTS';
45301 l_event_type_code            := 'PAYMENTS_ALL';
45302 l_line_definition_owner_code := 'S';
45303 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
45304 --
45305 l_balance_type_code          := 'A';
45306 l_segment                     := NULL;
45307 l_ccid                        := NULL;
45308 l_adr_transaction_coa_id      := NULL;
45309 l_adr_accounting_coa_id       := NULL;
45310 l_adr_flexfield_segment_code  := NULL;
45311 l_adr_flex_value_set_id       := NULL;
45312 l_adr_value_type_code         := NULL;
45313 l_adr_value_combination_id    := NULL;
45314 l_adr_value_segment_code      := NULL;
45315 
45316 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
45317 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
45318 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45319 l_budgetary_control_flag     := 'N';
45320 
45321 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45322 l_bflow_applied_to_amt       := NULL; -- 5132302
45323 l_entered_amt_idx            := NULL;          -- 4262811
45324 l_accted_amt_idx             := NULL;          -- 4262811
45325 l_acc_rev_flag               := NULL;          -- 4262811
45326 l_accrual_line_num           := NULL;          -- 4262811
45327 l_tmp_amt                    := NULL;          -- 4262811
45328 --
45329  
45330 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45331     l_balance_type_code <> 'B' THEN
45332 IF NVL(p_source_57,'
45333 ') <>  'CLEAR_CLEAR' AND 
45334 ((NVL(p_source_28,'
45335 ') =  'REC_TAX' AND 
45336 NVL(p_source_140,'
45337 ') =  'DEFERRED') OR 
45338 (NVL(p_source_28,'
45339 ') =  'AWT' AND 
45340 NVL(p_source_141,'
45341 ') =  'AWT_DEFERRED')
45342 ) AND (NVL(p_source_101,'
45343 ') =  'CASH' OR 
45344 NVL(p_source_101,'
45345 ') =  'AWT' OR 
45346 NVL(p_source_101,'
45347 ') =  'DISCOUNT') AND 
45348 p_source_117 IS NULL AND 
45349 NVL(p_source_125,'
45350 ') <>  'R' AND 
45351 NVL(p_source_126,'
45352 ') <>  'PAYMENTCARD'
45353  THEN 
45354 
45355    --
45356    XLA_AE_LINES_PKG.SetNewLine;
45357 
45358    p_balance_type_code          := l_balance_type_code;
45359    -- set the flag so later we will know whether the gain loss line needs to be created
45360    
45361    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45362      p_actual_flag :='A';
45363    END IF;
45364 
45365    --
45366    -- bulk performance
45367    --
45368    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45369                                       p_header_num   => 0); -- 4262811
45373    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45370    --
45371    -- set accounting line options
45372    --
45374            p_natural_side_code          => 'C'
45375          , p_gain_or_loss_flag          => 'N'
45376          , p_gl_transfer_mode_code      => 'S'
45377          , p_acct_entry_type_code       => 'A'
45378          , p_switch_side_flag           => 'Y'
45379          , p_merge_duplicate_code       => 'A'
45380          );
45381    --
45382    l_acc_rev_natural_side_code := 'D';  -- 4262811
45383    -- 
45384    --
45385    -- set accounting line type info
45386    --
45387    xla_ae_lines_pkg.SetAcctLineType
45388       (p_component_type             => l_component_type
45389       ,p_event_type_code            => l_event_type_code
45390       ,p_line_definition_owner_code => l_line_definition_owner_code
45391       ,p_line_definition_code       => l_line_definition_code
45392       ,p_accounting_line_code       => l_component_code
45393       ,p_accounting_line_type_code  => l_component_type_code
45394       ,p_accounting_line_appl_id    => l_component_appl_id
45395       ,p_amb_context_code           => l_amb_context_code
45396       ,p_entity_code                => l_entity_code
45397       ,p_event_class_code           => l_event_class_code);
45398    --
45399    -- set accounting class
45400    --
45401    xla_ae_lines_pkg.SetAcctClass(
45402            p_accounting_class_code  => 'DEF_REC_TAX'
45403          , p_ae_header_id           => l_ae_header_id
45404          );
45405 
45406    --
45407    -- set rounding class
45408    --
45409    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45410                       'DEF_REC_TAX';
45411 
45412    --
45413    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45414    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45415    --
45416    -- bulk performance
45417    --
45418    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45419 
45420    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45421       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45422 
45423    -- 4955764
45424    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45425       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45426 
45427    -- 4458381 Public Sector Enh
45428    
45429    --
45430    -- set accounting attributes for the line type
45431    --
45432    l_entered_amt_idx := 10;
45433    l_accted_amt_idx  := 12;
45434    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
45435    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45436    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
45437    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
45438    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
45439    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
45440    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
45441    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45442    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
45443    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
45444    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
45445    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
45446    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
45447    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45448    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
45449    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
45450    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
45451    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
45452    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
45453    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
45454    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
45455    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
45456    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
45457    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
45458    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
45459    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
45460    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
45461    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
45462    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
45463    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
45464    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
45465    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
45466    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
45467    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
45468    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
45469    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
45470    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
45471    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
45472    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
45473 
45474    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45478    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45475    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45476 
45477    ---------------------------------------------------------------------------------------------------------------
45479    ---------------------------------------------------------------------------------------------------------------
45480    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45481 
45482    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45483    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45484 
45485    IF xla_accounting_cache_pkg.GetValueChar
45486          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45487          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45488    AND l_bflow_method_code = 'PRIOR_ENTRY'
45489 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45490    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45491          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45492        )
45493    THEN
45494          xla_ae_lines_pkg.BflowUpgEntry
45495            (p_business_method_code    => l_bflow_method_code
45496            ,p_business_class_code     => l_bflow_class_code
45497            ,p_balance_type            => l_balance_type_code);
45498    ELSE
45499       NULL;
45500 XLA_AE_LINES_PKG.business_flow_validation(
45501                                 p_business_method_code     => l_bflow_method_code
45502                                ,p_business_class_code      => l_bflow_class_code
45503                                ,p_inherit_description_flag => l_inherit_desc_flag);
45504    END IF;
45505 
45506    --
45507    -- call analytical criteria
45508    --
45509    -- Inherited Analytical Criteria for business flow method of Prior Entry.
45510    --
45511    -- call description
45512    --
45513    -- No description or it is inherited.
45514    --
45515    -- call ADRs
45516    -- Bug 4922099
45517    --
45518    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45519         (NVL(l_actual_upg_option, 'N') = 'O') OR
45520         (NVL(l_enc_upg_option, 'N') = 'O')
45521       )
45522    THEN
45523    NULL;
45524    --
45525    --
45526    
45527    --
45528    --
45529    END IF;
45530    --
45531    -- Bug 4922099
45532    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45533           (NVL(l_enc_upg_option, 'N') = 'O')
45534         ) AND
45535         (l_bflow_method_code = 'PRIOR_ENTRY')
45536       )
45537    THEN
45538       IF
45539       --
45540       1 = 1
45541       --
45542       THEN
45543       xla_accounting_err_pkg.build_message
45544                                     (p_appli_s_name            => 'XLA'
45545                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45546                                     ,p_token_1                 => 'LINE_NUMBER'
45547                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45548                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45549                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45550                                                                              l_component_type
45551                                                                             ,l_component_code
45552                                                                             ,l_component_type_code
45553                                                                             ,l_component_appl_id
45554                                                                             ,l_amb_context_code
45555                                                                             ,l_entity_code
45556                                                                             ,l_event_class_code
45557                                                                            )
45558                                     ,p_token_3                 => 'OWNER'
45559                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45560                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45561                                                                           ,p_lookup_code    => l_component_type_code
45562                                                                          )
45563                                     ,p_token_4                 => 'PRODUCT_NAME'
45564                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45565                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45566                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45567                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45568                                     ,p_ae_header_id            =>  NULL
45569                                        );
45570 
45571         IF (C_LEVEL_ERROR>= g_log_level) THEN
45572                  trace
45573                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45574                       ,p_level    => C_LEVEL_ERROR
45578    END IF;
45575                       ,p_module   => l_log_module);
45576         END IF;
45577       END IF;
45579    --
45580    --
45581    ------------------------------------------------------------------------------------------------
45582    -- 4219869 Business Flow
45583    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45584    -- Prior Entry.  Currently, the following code is always generated.
45585    ------------------------------------------------------------------------------------------------
45586    -- No ValidateCurrentLine for business flow method of Prior Entry
45587 
45588    ------------------------------------------------------------------------------------
45589    -- 4219869 Business Flow
45590    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45591    ------------------------------------------------------------------------------------
45592    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45593 
45594    ----------------------------------------------------------------------------------
45595    -- 4219869 Business Flow
45596    -- Update journal entry status -- Need to generate this within IF <condition>
45597    ----------------------------------------------------------------------------------
45598    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45599          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45600          ,p_balance_type_code => l_balance_type_code
45601          );
45602 
45603    -------------------------------------------------------------------------------------------
45604    -- 4262811 - Generate the Accrual Reversal lines
45605    -------------------------------------------------------------------------------------------
45606    BEGIN
45607       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45608                               (g_array_event(p_event_id).array_value_num('header_index'));
45609       IF l_acc_rev_flag IS NULL THEN
45610          l_acc_rev_flag := 'N';
45611       END IF;
45612    EXCEPTION
45613       WHEN OTHERS THEN
45614          l_acc_rev_flag := 'N';
45615    END;
45616    --
45617    IF (l_acc_rev_flag = 'Y') THEN
45618 
45619        -- 4645092  ------------------------------------------------------------------------------
45620        -- To allow MPA report to determine if it should generate report process
45621        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45622        ------------------------------------------------------------------------------------------
45623 
45624        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45625        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45626    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45627    -- call ADRs
45628    -- Bug 4922099
45629    --
45630    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45631         (NVL(l_actual_upg_option, 'N') = 'O') OR
45632         (NVL(l_enc_upg_option, 'N') = 'O')
45633       )
45634    THEN
45635    NULL;
45636    --
45637    --
45638    
45639    --
45640    --
45641    END IF;
45642 
45643        --
45644        -- Update the line information that should be overwritten
45645        --
45646        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45647                                          p_header_num   => 1);
45648        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45649 
45650        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45651 
45652        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45653           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45654        END IF;
45655 
45656       --
45657       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45658       --
45659       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45660           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45661       ELSE
45662           ---------------------------------------------------------------------------------------------------
45663           -- 4262811a Switch Sign
45664           ---------------------------------------------------------------------------------------------------
45665           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45666           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45667                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45668           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45669                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45670           -- 5132302
45671           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45672                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45673 
45674       END IF;
45675 
45676       -- 4955764
45677       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45678       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45679 
45680 
45681       XLA_AE_LINES_PKG.ValidateCurrentLine;
45685                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45682       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45683 
45684       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45686                ,p_balance_type_code => l_balance_type_code);
45687 
45688    END IF;
45689 
45690    -----------------------------------------------------------------------------------------
45691    -- 4262811 Multiperiod Accounting
45692    -----------------------------------------------------------------------------------------
45693      -- No MPA option is assigned.
45694 
45695 
45696 END IF;
45697 END IF;
45698 --
45699 
45700 --
45701 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45702    trace
45703       (p_msg      => 'END of AcctLineType_107'
45704       ,p_level    => C_LEVEL_PROCEDURE
45705       ,p_module   => l_log_module);
45706 END IF;
45707 --
45708 EXCEPTION
45709   WHEN xla_exceptions_pkg.application_exception THEN
45710       RAISE;
45711   WHEN OTHERS THEN
45712        xla_exceptions_pkg.raise_message
45713            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_107');
45714 END AcctLineType_107;
45715 --
45716 
45717 ---------------------------------------
45718 --
45719 -- PRIVATE FUNCTION
45720 --         AcctLineType_108
45721 --
45722 ---------------------------------------
45723 PROCEDURE AcctLineType_108 (
45724   p_application_id        IN NUMBER
45725  ,p_event_id              IN NUMBER
45726  ,p_calculate_acctd_flag  IN VARCHAR2
45727  ,p_calculate_g_l_flag    IN VARCHAR2
45728  ,p_actual_flag           IN OUT VARCHAR2
45729  ,p_balance_type_code     OUT VARCHAR2
45730  ,p_gain_or_loss_ref      OUT VARCHAR2
45731  
45732 --Accounting Reversal Indicator
45733  , p_source_58            IN VARCHAR2
45734 --Distribution Link Type
45735  , p_source_60            IN VARCHAR2
45736 --Invoice Identifier
45737  , p_source_63            IN NUMBER
45738 --Payables Encumbrance Upgrade Credit Account
45739  , p_source_70            IN NUMBER
45740 --Payables Encumbrance Upgrade Credit Amount
45741  , p_source_71            IN NUMBER
45742 --Invoice Currency Code
45743  , p_source_72            IN VARCHAR2
45744 --Payables Encumbrance Upgrade Credit Base Amount
45745  , p_source_73            IN NUMBER
45746 --Payables Encumbrance Upgrade Debit Account
45747  , p_source_74            IN NUMBER
45748 --Payables Encumbrance Upgrade Debit Amount
45749  , p_source_75            IN NUMBER
45750 --Payables Encumbrance Upgrade Debit Base Amount
45751  , p_source_76            IN NUMBER
45752 --Payables Encumbrance Upgrade Option
45753  , p_source_77            IN VARCHAR2
45754 --Deferred Accounting End Date
45755  , p_source_82            IN DATE
45756 --Deferred Accounting Option
45757  , p_source_83            IN VARCHAR2
45758 --Deferred Accounting Start Date
45759  , p_source_84            IN DATE
45760 --Override Accounted Amount Indicator
45761  , p_source_85            IN VARCHAR2
45762  , p_source_85_meaning    IN VARCHAR2
45763 --Third Party Type
45764  , p_source_88            IN VARCHAR2
45765 --Invoice Distribution Tax Line Identifier
45766  , p_source_91            IN NUMBER
45767 --Invoice Distribution Tax Distribution Identifier from Tax
45768  , p_source_92            IN NUMBER
45769 --Invoice Distribution Summary Tax Line Identifier
45770  , p_source_93            IN NUMBER
45771 --Payables Upgrade Credit Encumbrance Type Identifier
45772  , p_source_94            IN NUMBER
45773 --Payables Upgrade Debit Encumbrance Type Identifier
45774  , p_source_95            IN NUMBER
45775 --Business Flow Accounts Payable Application Identifier
45776  , p_source_96            IN NUMBER
45777 --Business Flow Invoice Distribution Type
45778  , p_source_97            IN VARCHAR2
45779 --Business Flow Invoice Entity Code
45780  , p_source_98            IN VARCHAR2
45781 --Prepayment Application Distribution Identifier
45782  , p_source_130            IN NUMBER
45783 --Upgrade Encumbrance Credit Account Class
45784  , p_source_135            IN VARCHAR2
45785 --Upgrade Encumbrance Debit Account Class
45786  , p_source_136            IN VARCHAR2
45787 --Prepayment Distribution Amount
45788  , p_source_137            IN NUMBER
45789 --Identifier of the Prepayment Application Reversed
45790  , p_source_139            IN NUMBER
45791 --Deferred Recoverable Tax Option
45792  , p_source_140            IN VARCHAR2
45793  , p_source_140_meaning    IN VARCHAR2
45794 --Business Flow Recipient Invoice Distribution Identifier
45795  , p_source_142            IN NUMBER
45796 --Business Flow Recipient Invoice Identifier
45797  , p_source_143            IN NUMBER
45798 --Prepayment Distribution (Invoice Rate) Ledger Amount
45799  , p_source_144            IN NUMBER
45800 )
45801 IS
45802 
45803 l_component_type              VARCHAR2(80);
45804 l_component_code              VARCHAR2(30);
45805 l_component_type_code         VARCHAR2(1);
45806 l_component_appl_id           INTEGER;
45807 l_amb_context_code            VARCHAR2(30);
45808 l_entity_code                 VARCHAR2(30);
45809 l_event_class_code            VARCHAR2(30);
45810 l_ae_header_id                NUMBER;
45811 l_event_type_code             VARCHAR2(30);
45812 l_line_definition_code        VARCHAR2(30);
45813 l_line_definition_owner_code  VARCHAR2(1);
45814 --
45815 -- adr variables
45816 l_segment                     VARCHAR2(30);
45817 l_ccid                        NUMBER;
45818 l_adr_transaction_coa_id      NUMBER;
45822 l_adr_value_type_code         VARCHAR2(30);
45819 l_adr_accounting_coa_id       NUMBER;
45820 l_adr_flexfield_segment_code  VARCHAR2(30);
45821 l_adr_flex_value_set_id       NUMBER;
45823 l_adr_value_combination_id    NUMBER;
45824 l_adr_value_segment_code      VARCHAR2(30);
45825 
45826 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45827 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45828 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45829 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45830 
45831 -- 4262811 Variables ------------------------------------------------------------------------------------------
45832 l_entered_amt_idx             NUMBER;
45833 l_accted_amt_idx              NUMBER;
45834 l_acc_rev_flag                VARCHAR2(1);
45835 l_accrual_line_num            NUMBER;
45836 l_tmp_amt                     NUMBER;
45837 l_acc_rev_natural_side_code   VARCHAR2(1);
45838 
45839 l_num_entries                 NUMBER;
45840 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45841 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45842 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45843 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45844 l_recog_line_1                NUMBER;
45845 l_recog_line_2                NUMBER;
45846 
45847 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45848 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45849 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45850 
45851 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45852 
45853 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45854 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45855 
45856 ---------------------------------------------------------------------------------------------------------------
45857 
45858 
45859 --
45860 -- bulk performance
45861 --
45862 l_balance_type_code           VARCHAR2(1);
45863 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45864 l_log_module                  VARCHAR2(240);
45865 
45866 --
45867 -- Upgrade strategy
45868 --
45869 l_actual_upg_option           VARCHAR2(1);
45870 l_enc_upg_option           VARCHAR2(1);
45871 
45872 --
45873 BEGIN
45874 --
45875 IF g_log_enabled THEN
45876       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
45877 END IF;
45878 --
45879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45880 
45881       trace
45882          (p_msg      => 'BEGIN of AcctLineType_108'
45883          ,p_level    => C_LEVEL_PROCEDURE
45884          ,p_module   => l_log_module);
45885 
45886 END IF;
45887 --
45888 l_component_type             := 'AMB_JLT';
45889 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAY';
45890 l_component_type_code        := 'S';
45891 l_component_appl_id          :=  200;
45892 l_amb_context_code           := 'DEFAULT';
45893 l_entity_code                := 'AP_INVOICES';
45894 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
45895 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
45896 l_line_definition_owner_code := 'S';
45897 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
45898 --
45899 l_balance_type_code          := 'A';
45900 l_segment                     := NULL;
45901 l_ccid                        := NULL;
45902 l_adr_transaction_coa_id      := NULL;
45903 l_adr_accounting_coa_id       := NULL;
45904 l_adr_flexfield_segment_code  := NULL;
45905 l_adr_flex_value_set_id       := NULL;
45906 l_adr_value_type_code         := NULL;
45907 l_adr_value_combination_id    := NULL;
45908 l_adr_value_segment_code      := NULL;
45909 
45910 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
45911 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
45912 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45913 l_budgetary_control_flag     := 'N';
45914 
45915 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45916 l_bflow_applied_to_amt       := NULL; -- 5132302
45917 l_entered_amt_idx            := NULL;          -- 4262811
45918 l_accted_amt_idx             := NULL;          -- 4262811
45919 l_acc_rev_flag               := NULL;          -- 4262811
45920 l_accrual_line_num           := NULL;          -- 4262811
45921 l_tmp_amt                    := NULL;          -- 4262811
45922 --
45923  
45924 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45925     l_balance_type_code <> 'B' THEN
45926 IF NVL(p_source_140,'
45927 ') =  'DEFERRED'
45928  THEN 
45929 
45930    --
45931    XLA_AE_LINES_PKG.SetNewLine;
45932 
45933    p_balance_type_code          := l_balance_type_code;
45934    -- set the flag so later we will know whether the gain loss line needs to be created
45935    
45936    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45937      p_actual_flag :='A';
45938    END IF;
45939 
45940    --
45941    -- bulk performance
45942    --
45943    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45944                                       p_header_num   => 0); -- 4262811
45945    --
45946    -- set accounting line options
45947    --
45951          , p_gl_transfer_mode_code      => 'S'
45948    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45949            p_natural_side_code          => 'D'
45950          , p_gain_or_loss_flag          => 'N'
45952          , p_acct_entry_type_code       => 'A'
45953          , p_switch_side_flag           => 'Y'
45954          , p_merge_duplicate_code       => 'A'
45955          );
45956    --
45957    l_acc_rev_natural_side_code := 'C';  -- 4262811
45958    -- 
45959    --
45960    -- set accounting line type info
45961    --
45962    xla_ae_lines_pkg.SetAcctLineType
45963       (p_component_type             => l_component_type
45964       ,p_event_type_code            => l_event_type_code
45965       ,p_line_definition_owner_code => l_line_definition_owner_code
45966       ,p_line_definition_code       => l_line_definition_code
45967       ,p_accounting_line_code       => l_component_code
45968       ,p_accounting_line_type_code  => l_component_type_code
45969       ,p_accounting_line_appl_id    => l_component_appl_id
45970       ,p_amb_context_code           => l_amb_context_code
45971       ,p_entity_code                => l_entity_code
45972       ,p_event_class_code           => l_event_class_code);
45973    --
45974    -- set accounting class
45975    --
45976    xla_ae_lines_pkg.SetAcctClass(
45977            p_accounting_class_code  => 'DEF_REC_TAX'
45978          , p_ae_header_id           => l_ae_header_id
45979          );
45980 
45981    --
45982    -- set rounding class
45983    --
45984    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45985                       'DEF_REC_TAX';
45986 
45987    --
45988    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45989    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45990    --
45991    -- bulk performance
45992    --
45993    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45994 
45995    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45996       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45997 
45998    -- 4955764
45999    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46000       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46001 
46002    -- 4458381 Public Sector Enh
46003    
46004    --
46005    -- set accounting attributes for the line type
46006    --
46007    l_entered_amt_idx := 25;
46008    l_accted_amt_idx  := 27;
46009    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46010    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46011    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
46012    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46013    l_rec_acct_attrs.array_num_value(2)  := 
46014 xla_ae_sources_pkg.GetSystemSourceNum(
46015    p_source_code           => 'XLA_EVENT_APPL_ID'
46016  , p_source_type_code      => 'Y'
46017  , p_source_application_id =>  602
46018 );
46019    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46020    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
46021    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46022    l_rec_acct_attrs.array_char_value(4)  := 
46023 xla_ae_sources_pkg.GetSystemSourceChar(
46024    p_source_code           => 'XLA_ENTITY_CODE'
46025  , p_source_type_code      => 'Y'
46026  , p_source_application_id =>  602
46027 );
46028    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46029    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
46030    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46031    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
46032    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46033    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
46034    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46035    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
46036    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46037    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
46038    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46039    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_142);
46040    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46041    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_143);
46042    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
46043    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
46044    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
46045    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
46046    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
46047    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
46048    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
46049    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
46050    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
46051    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
46052    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
46053    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
46057    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
46054    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
46055    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
46056    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
46058    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
46059    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
46060    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
46061    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
46062    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
46063    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
46064    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
46065    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
46066    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
46067    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
46068    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
46069    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
46070    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
46071    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
46072    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
46073    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
46074    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
46075    l_rec_acct_attrs.array_date_value(28)  := p_source_82;
46076    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
46077    l_rec_acct_attrs.array_char_value(29)  := p_source_83;
46078    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
46079    l_rec_acct_attrs.array_date_value(30)  := p_source_84;
46080    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
46081    l_rec_acct_attrs.array_char_value(31)  := p_source_85;
46082    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
46083    l_rec_acct_attrs.array_char_value(32)  := p_source_88;
46084    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
46085    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_139);
46086    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
46087    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
46088    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
46089    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
46090    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
46091    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
46092    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
46093    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
46094    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
46095    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
46096    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
46097    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
46098 
46099    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46100    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46101 
46102    ---------------------------------------------------------------------------------------------------------------
46103    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46104    ---------------------------------------------------------------------------------------------------------------
46105    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46106 
46107    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46108    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46109 
46110    IF xla_accounting_cache_pkg.GetValueChar
46111          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46112          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46113    AND l_bflow_method_code = 'PRIOR_ENTRY'
46114 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46115    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46116          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46117        )
46118    THEN
46119          xla_ae_lines_pkg.BflowUpgEntry
46120            (p_business_method_code    => l_bflow_method_code
46121            ,p_business_class_code     => l_bflow_class_code
46122            ,p_balance_type            => l_balance_type_code);
46123    ELSE
46124       NULL;
46125 XLA_AE_LINES_PKG.business_flow_validation(
46126                                 p_business_method_code     => l_bflow_method_code
46127                                ,p_business_class_code      => l_bflow_class_code
46128                                ,p_inherit_description_flag => l_inherit_desc_flag);
46129    END IF;
46130 
46131    --
46132    -- call analytical criteria
46133    --
46134    -- Inherited Analytical Criteria for business flow method of Prior Entry.
46135    --
46136    -- call description
46137    --
46138    -- No description or it is inherited.
46139    --
46140    -- call ADRs
46141    -- Bug 4922099
46142    --
46143    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46144         (NVL(l_actual_upg_option, 'N') = 'O') OR
46145         (NVL(l_enc_upg_option, 'N') = 'O')
46146       )
46147    THEN
46148    NULL;
46149    --
46150    --
46151    
46152    --
46153    --
46157    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46154    END IF;
46155    --
46156    -- Bug 4922099
46158           (NVL(l_enc_upg_option, 'N') = 'O')
46159         ) AND
46160         (l_bflow_method_code = 'PRIOR_ENTRY')
46161       )
46162    THEN
46163       IF
46164       --
46165       1 = 1
46166       --
46167       THEN
46168       xla_accounting_err_pkg.build_message
46169                                     (p_appli_s_name            => 'XLA'
46170                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46171                                     ,p_token_1                 => 'LINE_NUMBER'
46172                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46173                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46174                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46175                                                                              l_component_type
46176                                                                             ,l_component_code
46177                                                                             ,l_component_type_code
46178                                                                             ,l_component_appl_id
46179                                                                             ,l_amb_context_code
46180                                                                             ,l_entity_code
46181                                                                             ,l_event_class_code
46182                                                                            )
46183                                     ,p_token_3                 => 'OWNER'
46184                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46185                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46186                                                                           ,p_lookup_code    => l_component_type_code
46187                                                                          )
46188                                     ,p_token_4                 => 'PRODUCT_NAME'
46189                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46190                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46191                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46192                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46193                                     ,p_ae_header_id            =>  NULL
46194                                        );
46195 
46196         IF (C_LEVEL_ERROR>= g_log_level) THEN
46197                  trace
46198                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46199                       ,p_level    => C_LEVEL_ERROR
46200                       ,p_module   => l_log_module);
46201         END IF;
46202       END IF;
46203    END IF;
46204    --
46205    --
46206    ------------------------------------------------------------------------------------------------
46207    -- 4219869 Business Flow
46208    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46209    -- Prior Entry.  Currently, the following code is always generated.
46210    ------------------------------------------------------------------------------------------------
46211    -- No ValidateCurrentLine for business flow method of Prior Entry
46212 
46213    ------------------------------------------------------------------------------------
46214    -- 4219869 Business Flow
46215    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46216    ------------------------------------------------------------------------------------
46217    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46218 
46219    ----------------------------------------------------------------------------------
46220    -- 4219869 Business Flow
46221    -- Update journal entry status -- Need to generate this within IF <condition>
46222    ----------------------------------------------------------------------------------
46223    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46224          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46225          ,p_balance_type_code => l_balance_type_code
46226          );
46227 
46228    -------------------------------------------------------------------------------------------
46229    -- 4262811 - Generate the Accrual Reversal lines
46230    -------------------------------------------------------------------------------------------
46231    BEGIN
46232       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46233                               (g_array_event(p_event_id).array_value_num('header_index'));
46234       IF l_acc_rev_flag IS NULL THEN
46235          l_acc_rev_flag := 'N';
46236       END IF;
46237    EXCEPTION
46238       WHEN OTHERS THEN
46239          l_acc_rev_flag := 'N';
46240    END;
46241    --
46242    IF (l_acc_rev_flag = 'Y') THEN
46243 
46244        -- 4645092  ------------------------------------------------------------------------------
46245        -- To allow MPA report to determine if it should generate report process
46246        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46247        ------------------------------------------------------------------------------------------
46248 
46252    -- call ADRs
46249        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46250        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46251    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46253    -- Bug 4922099
46254    --
46255    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46256         (NVL(l_actual_upg_option, 'N') = 'O') OR
46257         (NVL(l_enc_upg_option, 'N') = 'O')
46258       )
46259    THEN
46260    NULL;
46261    --
46262    --
46263    
46264    --
46265    --
46266    END IF;
46267 
46268        --
46269        -- Update the line information that should be overwritten
46270        --
46271        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46272                                          p_header_num   => 1);
46273        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46274 
46275        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46276 
46277        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46278           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46279        END IF;
46280 
46281       --
46282       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46283       --
46284       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46285           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46286       ELSE
46287           ---------------------------------------------------------------------------------------------------
46288           -- 4262811a Switch Sign
46289           ---------------------------------------------------------------------------------------------------
46290           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46291           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46292                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46293           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46294                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46295           -- 5132302
46296           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46297                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46298 
46299       END IF;
46300 
46301       -- 4955764
46302       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46304 
46305 
46306       XLA_AE_LINES_PKG.ValidateCurrentLine;
46307       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46308 
46309       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46310                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46311                ,p_balance_type_code => l_balance_type_code);
46312 
46313    END IF;
46314 
46315    -----------------------------------------------------------------------------------------
46316    -- 4262811 Multiperiod Accounting
46317    -----------------------------------------------------------------------------------------
46318      -- No MPA option is assigned.
46319 
46320 
46321 END IF;
46322 END IF;
46323 --
46324 
46325 --
46326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46327    trace
46328       (p_msg      => 'END of AcctLineType_108'
46329       ,p_level    => C_LEVEL_PROCEDURE
46330       ,p_module   => l_log_module);
46331 END IF;
46332 --
46333 EXCEPTION
46334   WHEN xla_exceptions_pkg.application_exception THEN
46335       RAISE;
46336   WHEN OTHERS THEN
46337        xla_exceptions_pkg.raise_message
46338            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_108');
46339 END AcctLineType_108;
46340 --
46341 
46342 ---------------------------------------
46343 --
46344 -- PRIVATE FUNCTION
46345 --         AcctLineType_109
46346 --
46347 ---------------------------------------
46348 PROCEDURE AcctLineType_109 (
46349   p_application_id        IN NUMBER
46350  ,p_event_id              IN NUMBER
46351  ,p_calculate_acctd_flag  IN VARCHAR2
46352  ,p_calculate_g_l_flag    IN VARCHAR2
46353  ,p_actual_flag           IN OUT VARCHAR2
46354  ,p_balance_type_code     OUT VARCHAR2
46355  ,p_gain_or_loss_ref      OUT VARCHAR2
46356  
46357 --Invoice Distribution Description
46358  , p_source_1            IN VARCHAR2
46359 --Invoice Distribution Ledger Amount
46360  , p_source_16            IN NUMBER
46361 --Invoice Distribution Account
46362  , p_source_25            IN NUMBER
46363 --Invoice Distribution Type
46364  , p_source_28            IN VARCHAR2
46365  , p_source_28_meaning    IN VARCHAR2
46366 --Accounting Reversal Indicator
46367  , p_source_58            IN VARCHAR2
46368 --Distribution Link Type
46369  , p_source_60            IN VARCHAR2
46370 --Allocation to Main Distribution Identifier
46371  , p_source_62            IN NUMBER
46372 --Invoice Identifier
46373  , p_source_63            IN NUMBER
46374 --Invoice Distribution Identifier
46378 --Payables Encumbrance Upgrade Credit Amount
46375  , p_source_69            IN NUMBER
46376 --Payables Encumbrance Upgrade Credit Account
46377  , p_source_70            IN NUMBER
46379  , p_source_71            IN NUMBER
46380 --Invoice Currency Code
46381  , p_source_72            IN VARCHAR2
46382 --Payables Encumbrance Upgrade Credit Base Amount
46383  , p_source_73            IN NUMBER
46384 --Payables Encumbrance Upgrade Debit Account
46385  , p_source_74            IN NUMBER
46386 --Payables Encumbrance Upgrade Debit Amount
46387  , p_source_75            IN NUMBER
46388 --Payables Encumbrance Upgrade Debit Base Amount
46389  , p_source_76            IN NUMBER
46390 --Payables Encumbrance Upgrade Option
46391  , p_source_77            IN VARCHAR2
46392 --Invoice Distribution Amount
46393  , p_source_78            IN NUMBER
46394 --Deferred Accounting End Date
46395  , p_source_82            IN DATE
46396 --Deferred Accounting Option
46397  , p_source_83            IN VARCHAR2
46398 --Deferred Accounting Start Date
46399  , p_source_84            IN DATE
46400 --Override Accounted Amount Indicator
46401  , p_source_85            IN VARCHAR2
46402  , p_source_85_meaning    IN VARCHAR2
46403 --Invoice Supplier Identifier
46404  , p_source_86            IN NUMBER
46405 --Invoice Supplier Site Identifier
46406  , p_source_87            IN NUMBER
46407 --Third Party Type
46408  , p_source_88            IN VARCHAR2
46409 --Parent Reversal Identifier
46410  , p_source_89            IN NUMBER
46411 --Invoice Distribution Statistical Amount
46412  , p_source_90            IN NUMBER
46413 --Invoice Distribution Tax Line Identifier
46414  , p_source_91            IN NUMBER
46415 --Invoice Distribution Tax Distribution Identifier from Tax
46416  , p_source_92            IN NUMBER
46417 --Invoice Distribution Summary Tax Line Identifier
46418  , p_source_93            IN NUMBER
46419 --Payables Upgrade Credit Encumbrance Type Identifier
46420  , p_source_94            IN NUMBER
46421 --Payables Upgrade Debit Encumbrance Type Identifier
46422  , p_source_95            IN NUMBER
46423 --Business Flow Accounts Payable Application Identifier
46424  , p_source_96            IN NUMBER
46425 --Business Flow Invoice Distribution Type
46426  , p_source_97            IN VARCHAR2
46427 --Business Flow Invoice Entity Code
46428  , p_source_98            IN VARCHAR2
46429 --Business Flow Invoice Distribution Identifier
46430  , p_source_99            IN NUMBER
46431 --Business Flow Invoice Identifier
46432  , p_source_100            IN NUMBER
46433 --Deferred Recoverable Tax Option
46434  , p_source_140            IN VARCHAR2
46435  , p_source_140_meaning    IN VARCHAR2
46436 --Self-Assessed Tax Flag
46437  , p_source_145            IN VARCHAR2
46438  , p_source_145_meaning    IN VARCHAR2
46439 --Invoice Exchange Date
46440  , p_source_146            IN DATE
46441 --Invoice Exchange Rate
46442  , p_source_147            IN NUMBER
46443 --Invoice Exchange Rate Type
46444  , p_source_148            IN VARCHAR2
46445 )
46446 IS
46447 
46448 l_component_type              VARCHAR2(80);
46449 l_component_code              VARCHAR2(30);
46450 l_component_type_code         VARCHAR2(1);
46451 l_component_appl_id           INTEGER;
46452 l_amb_context_code            VARCHAR2(30);
46453 l_entity_code                 VARCHAR2(30);
46454 l_event_class_code            VARCHAR2(30);
46455 l_ae_header_id                NUMBER;
46456 l_event_type_code             VARCHAR2(30);
46457 l_line_definition_code        VARCHAR2(30);
46458 l_line_definition_owner_code  VARCHAR2(1);
46459 --
46460 -- adr variables
46461 l_segment                     VARCHAR2(30);
46462 l_ccid                        NUMBER;
46463 l_adr_transaction_coa_id      NUMBER;
46464 l_adr_accounting_coa_id       NUMBER;
46465 l_adr_flexfield_segment_code  VARCHAR2(30);
46466 l_adr_flex_value_set_id       NUMBER;
46467 l_adr_value_type_code         VARCHAR2(30);
46468 l_adr_value_combination_id    NUMBER;
46469 l_adr_value_segment_code      VARCHAR2(30);
46470 
46471 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46472 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46473 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46474 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46475 
46476 -- 4262811 Variables ------------------------------------------------------------------------------------------
46477 l_entered_amt_idx             NUMBER;
46478 l_accted_amt_idx              NUMBER;
46479 l_acc_rev_flag                VARCHAR2(1);
46480 l_accrual_line_num            NUMBER;
46481 l_tmp_amt                     NUMBER;
46482 l_acc_rev_natural_side_code   VARCHAR2(1);
46483 
46484 l_num_entries                 NUMBER;
46485 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46486 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46487 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46488 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46489 l_recog_line_1                NUMBER;
46490 l_recog_line_2                NUMBER;
46491 
46492 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46493 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46494 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46495 
46496 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46497 
46498 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46502 
46499 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46500 
46501 ---------------------------------------------------------------------------------------------------------------
46503 
46504 --
46505 -- bulk performance
46506 --
46507 l_balance_type_code           VARCHAR2(1);
46508 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46509 l_log_module                  VARCHAR2(240);
46510 
46511 --
46512 -- Upgrade strategy
46513 --
46514 l_actual_upg_option           VARCHAR2(1);
46515 l_enc_upg_option           VARCHAR2(1);
46516 
46517 --
46518 BEGIN
46519 --
46520 IF g_log_enabled THEN
46521       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
46522 END IF;
46523 --
46524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46525 
46526       trace
46527          (p_msg      => 'BEGIN of AcctLineType_109'
46528          ,p_level    => C_LEVEL_PROCEDURE
46529          ,p_module   => l_log_module);
46530 
46531 END IF;
46532 --
46533 l_component_type             := 'AMB_JLT';
46534 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAYMENT';
46535 l_component_type_code        := 'S';
46536 l_component_appl_id          :=  200;
46537 l_amb_context_code           := 'DEFAULT';
46538 l_entity_code                := 'AP_INVOICES';
46539 l_event_class_code           := 'PREPAYMENTS';
46540 l_event_type_code            := 'PREPAYMENTS_ALL';
46541 l_line_definition_owner_code := 'S';
46542 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
46543 --
46544 l_balance_type_code          := 'A';
46545 l_segment                     := NULL;
46546 l_ccid                        := NULL;
46547 l_adr_transaction_coa_id      := NULL;
46548 l_adr_accounting_coa_id       := NULL;
46549 l_adr_flexfield_segment_code  := NULL;
46550 l_adr_flex_value_set_id       := NULL;
46551 l_adr_value_type_code         := NULL;
46552 l_adr_value_combination_id    := NULL;
46553 l_adr_value_segment_code      := NULL;
46554 
46555 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46556 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
46557 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46558 l_budgetary_control_flag     := 'N';
46559 
46560 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46561 l_bflow_applied_to_amt       := NULL; -- 5132302
46562 l_entered_amt_idx            := NULL;          -- 4262811
46563 l_accted_amt_idx             := NULL;          -- 4262811
46564 l_acc_rev_flag               := NULL;          -- 4262811
46565 l_accrual_line_num           := NULL;          -- 4262811
46566 l_tmp_amt                    := NULL;          -- 4262811
46567 --
46568  
46569 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46570     l_balance_type_code <> 'B' THEN
46571 IF NVL(p_source_28,'
46572 ') =  'REC_TAX' AND 
46573 NVL(p_source_140,'
46574 ') =  'DEFERRED' AND 
46575 NVL(p_source_145,'
46576 ') <>  'Y'
46577  THEN 
46578 
46579    --
46580    XLA_AE_LINES_PKG.SetNewLine;
46581 
46582    p_balance_type_code          := l_balance_type_code;
46583    -- set the flag so later we will know whether the gain loss line needs to be created
46584    
46585    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46586      p_actual_flag :='A';
46587    END IF;
46588 
46589    --
46590    -- bulk performance
46591    --
46592    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46593                                       p_header_num   => 0); -- 4262811
46594    --
46595    -- set accounting line options
46596    --
46597    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46598            p_natural_side_code          => 'D'
46599          , p_gain_or_loss_flag          => 'N'
46600          , p_gl_transfer_mode_code      => 'S'
46601          , p_acct_entry_type_code       => 'A'
46602          , p_switch_side_flag           => 'Y'
46603          , p_merge_duplicate_code       => 'A'
46604          );
46605    --
46606    l_acc_rev_natural_side_code := 'C';  -- 4262811
46607    -- 
46608    --
46609    -- set accounting line type info
46610    --
46611    xla_ae_lines_pkg.SetAcctLineType
46612       (p_component_type             => l_component_type
46613       ,p_event_type_code            => l_event_type_code
46614       ,p_line_definition_owner_code => l_line_definition_owner_code
46615       ,p_line_definition_code       => l_line_definition_code
46616       ,p_accounting_line_code       => l_component_code
46617       ,p_accounting_line_type_code  => l_component_type_code
46618       ,p_accounting_line_appl_id    => l_component_appl_id
46619       ,p_amb_context_code           => l_amb_context_code
46620       ,p_entity_code                => l_entity_code
46621       ,p_event_class_code           => l_event_class_code);
46622    --
46623    -- set accounting class
46624    --
46625    xla_ae_lines_pkg.SetAcctClass(
46626            p_accounting_class_code  => 'DEF_REC_TAX'
46627          , p_ae_header_id           => l_ae_header_id
46628          );
46629 
46630    --
46631    -- set rounding class
46632    --
46633    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46634                       'DEF_REC_TAX';
46635 
46636    --
46640    -- bulk performance
46637    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46638    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46639    --
46641    --
46642    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46643 
46644    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46645       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46646 
46647    -- 4955764
46648    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46649       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46650 
46651    -- 4458381 Public Sector Enh
46652    
46653    --
46654    -- set accounting attributes for the line type
46655    --
46656    l_entered_amt_idx := 23;
46657    l_accted_amt_idx  := 28;
46658    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46659    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46660    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
46661    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
46662    l_rec_acct_attrs.array_num_value(2)  := 
46663 xla_ae_sources_pkg.GetSystemSourceNum(
46664    p_source_code           => 'XLA_EVENT_APPL_ID'
46665  , p_source_type_code      => 'Y'
46666  , p_source_application_id =>  602
46667 );
46668    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
46669    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
46670    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
46671    l_rec_acct_attrs.array_char_value(4)  := 
46672 xla_ae_sources_pkg.GetSystemSourceChar(
46673    p_source_code           => 'XLA_ENTITY_CODE'
46674  , p_source_type_code      => 'Y'
46675  , p_source_application_id =>  602
46676 );
46677    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
46678    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
46679    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
46680    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
46681    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
46682    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
46683    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46684    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
46685    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
46686    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
46687    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
46688    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
46689    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46690    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
46691    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
46692    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
46693    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
46694    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
46695    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
46696    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
46697    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
46698    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
46699    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
46700    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
46701    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
46702    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
46703    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
46704    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
46705    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
46706    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
46707    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
46708    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
46709    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
46710    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
46711    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
46712    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
46713    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
46714    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
46715    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
46716    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
46717    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
46718    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
46719    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
46720    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
46721    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
46722    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
46723    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
46724    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
46725    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
46726    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
46727    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
46728    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
46732    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
46729    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
46730    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
46731    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
46733    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
46734    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
46735    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
46736    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
46737    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
46738    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
46739    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
46740    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
46741    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
46742    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
46743    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
46744    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
46745    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
46746    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
46747    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
46748    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
46749    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
46750    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
46751    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
46752    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
46753    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
46754    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
46755 
46756    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46757    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46758 
46759    ---------------------------------------------------------------------------------------------------------------
46760    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46761    ---------------------------------------------------------------------------------------------------------------
46762    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46763 
46764    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46765    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46766 
46767    IF xla_accounting_cache_pkg.GetValueChar
46768          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46769          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46770    AND l_bflow_method_code = 'PRIOR_ENTRY'
46771 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46772    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46773          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46774        )
46775    THEN
46776          xla_ae_lines_pkg.BflowUpgEntry
46777            (p_business_method_code    => l_bflow_method_code
46778            ,p_business_class_code     => l_bflow_class_code
46779            ,p_balance_type            => l_balance_type_code);
46780    ELSE
46781       NULL;
46782 -- No business flow processing for business flow method of NONE.
46783    END IF;
46784 
46785    --
46786    -- call analytical criteria
46787    --
46788    
46789    --
46790    -- call description
46791    --
46792    
46793 xla_ae_lines_pkg.SetLineDescription(
46794    p_ae_header_id => l_ae_header_id
46795   ,p_description  => Description_2 (
46796      p_application_id         => p_application_id
46797    , p_ae_header_id           => l_ae_header_id 
46798 , p_source_1 => p_source_1
46799    )
46800 );
46801 
46802 
46803    --
46804    -- call ADRs
46805    -- Bug 4922099
46806    --
46807    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46808         (NVL(l_actual_upg_option, 'N') = 'O') OR
46809         (NVL(l_enc_upg_option, 'N') = 'O')
46810       )
46811    THEN
46812    NULL;
46813    --
46814    --
46815    
46816   l_ccid := AcctDerRule_35(
46817            p_application_id           => p_application_id
46818          , p_ae_header_id             => l_ae_header_id 
46819 , p_source_25 => p_source_25
46820          , x_transaction_coa_id       => l_adr_transaction_coa_id
46821          , x_accounting_coa_id        => l_adr_accounting_coa_id
46822          , x_value_type_code          => l_adr_value_type_code
46823          , p_side                     => 'NA'
46824    );
46825 
46826    xla_ae_lines_pkg.set_ccid(
46827     p_code_combination_id          => l_ccid
46828   , p_value_type_code              => l_adr_value_type_code
46829   , p_transaction_coa_id           => l_adr_transaction_coa_id
46830   , p_accounting_coa_id            => l_adr_accounting_coa_id
46831   , p_adr_code                     => 'AP_INVOICE_DIST'
46832   , p_adr_type_code                => 'S'
46833   , p_component_type               => l_component_type
46834   , p_component_code               => l_component_code
46835   , p_component_type_code          => l_component_type_code
46836   , p_component_appl_id            => l_component_appl_id
46837   , p_amb_context_code             => l_amb_context_code
46838   , p_side                         => 'NA'
46842    --
46839   );
46840 
46841 
46843    --
46844    END IF;
46845    --
46846    -- Bug 4922099
46847    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46848           (NVL(l_enc_upg_option, 'N') = 'O')
46849         ) AND
46850         (l_bflow_method_code = 'PRIOR_ENTRY')
46851       )
46852    THEN
46853       IF
46854       --
46855       1 = 2
46856       --
46857       THEN
46858       xla_accounting_err_pkg.build_message
46859                                     (p_appli_s_name            => 'XLA'
46860                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46861                                     ,p_token_1                 => 'LINE_NUMBER'
46862                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46863                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46864                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46865                                                                              l_component_type
46866                                                                             ,l_component_code
46867                                                                             ,l_component_type_code
46868                                                                             ,l_component_appl_id
46869                                                                             ,l_amb_context_code
46870                                                                             ,l_entity_code
46871                                                                             ,l_event_class_code
46872                                                                            )
46873                                     ,p_token_3                 => 'OWNER'
46874                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46875                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46876                                                                           ,p_lookup_code    => l_component_type_code
46877                                                                          )
46878                                     ,p_token_4                 => 'PRODUCT_NAME'
46879                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46880                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46881                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46882                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46883                                     ,p_ae_header_id            =>  NULL
46884                                        );
46885 
46886         IF (C_LEVEL_ERROR>= g_log_level) THEN
46887                  trace
46888                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46889                       ,p_level    => C_LEVEL_ERROR
46890                       ,p_module   => l_log_module);
46891         END IF;
46892       END IF;
46893    END IF;
46894    --
46895    --
46896    ------------------------------------------------------------------------------------------------
46897    -- 4219869 Business Flow
46898    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46899    -- Prior Entry.  Currently, the following code is always generated.
46900    ------------------------------------------------------------------------------------------------
46901    XLA_AE_LINES_PKG.ValidateCurrentLine;
46902 
46903    ------------------------------------------------------------------------------------
46904    -- 4219869 Business Flow
46905    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46906    ------------------------------------------------------------------------------------
46907    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46908 
46909    ----------------------------------------------------------------------------------
46910    -- 4219869 Business Flow
46911    -- Update journal entry status -- Need to generate this within IF <condition>
46912    ----------------------------------------------------------------------------------
46913    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46914          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46915          ,p_balance_type_code => l_balance_type_code
46916          );
46917 
46918    -------------------------------------------------------------------------------------------
46919    -- 4262811 - Generate the Accrual Reversal lines
46920    -------------------------------------------------------------------------------------------
46921    BEGIN
46922       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46923                               (g_array_event(p_event_id).array_value_num('header_index'));
46924       IF l_acc_rev_flag IS NULL THEN
46925          l_acc_rev_flag := 'N';
46926       END IF;
46927    EXCEPTION
46928       WHEN OTHERS THEN
46929          l_acc_rev_flag := 'N';
46930    END;
46931    --
46932    IF (l_acc_rev_flag = 'Y') THEN
46933 
46934        -- 4645092  ------------------------------------------------------------------------------
46935        -- To allow MPA report to determine if it should generate report process
46936        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46940        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46937        ------------------------------------------------------------------------------------------
46938 
46939        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46941    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46942    -- call ADRs
46943    -- Bug 4922099
46944    --
46945    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46946         (NVL(l_actual_upg_option, 'N') = 'O') OR
46947         (NVL(l_enc_upg_option, 'N') = 'O')
46948       )
46949    THEN
46950    NULL;
46951    --
46952    --
46953    
46954   l_ccid := AcctDerRule_35(
46955            p_application_id           => p_application_id
46956          , p_ae_header_id             => l_ae_header_id 
46957 , p_source_25 => p_source_25
46958          , x_transaction_coa_id       => l_adr_transaction_coa_id
46959          , x_accounting_coa_id        => l_adr_accounting_coa_id
46960          , x_value_type_code          => l_adr_value_type_code
46961          , p_side                     => 'NA'
46962    );
46963 
46964    xla_ae_lines_pkg.set_ccid(
46965     p_code_combination_id          => l_ccid
46966   , p_value_type_code              => l_adr_value_type_code
46967   , p_transaction_coa_id           => l_adr_transaction_coa_id
46968   , p_accounting_coa_id            => l_adr_accounting_coa_id
46969   , p_adr_code                     => 'AP_INVOICE_DIST'
46970   , p_adr_type_code                => 'S'
46971   , p_component_type               => l_component_type
46972   , p_component_code               => l_component_code
46973   , p_component_type_code          => l_component_type_code
46974   , p_component_appl_id            => l_component_appl_id
46975   , p_amb_context_code             => l_amb_context_code
46976   , p_side                         => 'NA'
46977   );
46978 
46979 
46980    --
46981    --
46982    END IF;
46983 
46984        --
46985        -- Update the line information that should be overwritten
46986        --
46987        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46988                                          p_header_num   => 1);
46989        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46990 
46991        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46992 
46993        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46994           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46995        END IF;
46996 
46997       --
46998       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46999       --
47000       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47001           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47002       ELSE
47003           ---------------------------------------------------------------------------------------------------
47004           -- 4262811a Switch Sign
47005           ---------------------------------------------------------------------------------------------------
47006           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47007           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47008                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47009           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47010                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47011           -- 5132302
47012           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47013                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47014 
47015       END IF;
47016 
47017       -- 4955764
47018       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47019       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47020 
47021 
47022       XLA_AE_LINES_PKG.ValidateCurrentLine;
47023       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47024 
47025       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47026                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47027                ,p_balance_type_code => l_balance_type_code);
47028 
47029    END IF;
47030 
47031    -----------------------------------------------------------------------------------------
47032    -- 4262811 Multiperiod Accounting
47033    -----------------------------------------------------------------------------------------
47034      -- No MPA option is assigned.
47035 
47036 
47037 END IF;
47038 END IF;
47039 --
47040 
47041 --
47042 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47043    trace
47044       (p_msg      => 'END of AcctLineType_109'
47045       ,p_level    => C_LEVEL_PROCEDURE
47046       ,p_module   => l_log_module);
47047 END IF;
47048 --
47049 EXCEPTION
47050   WHEN xla_exceptions_pkg.application_exception THEN
47051       RAISE;
47052   WHEN OTHERS THEN
47053        xla_exceptions_pkg.raise_message
47054            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_109');
47058 ---------------------------------------
47055 END AcctLineType_109;
47056 --
47057 
47059 --
47060 -- PRIVATE FUNCTION
47061 --         AcctLineType_110
47062 --
47063 ---------------------------------------
47064 PROCEDURE AcctLineType_110 (
47065   p_application_id        IN NUMBER
47066  ,p_event_id              IN NUMBER
47067  ,p_calculate_acctd_flag  IN VARCHAR2
47068  ,p_calculate_g_l_flag    IN VARCHAR2
47069  ,p_actual_flag           IN OUT VARCHAR2
47070  ,p_balance_type_code     OUT VARCHAR2
47071  ,p_gain_or_loss_ref      OUT VARCHAR2
47072  
47073 --Payment Currency Code
47074  , p_source_8            IN VARCHAR2
47075 --Invoice Distribution Type
47076  , p_source_28            IN VARCHAR2
47077  , p_source_28_meaning    IN VARCHAR2
47078 --Recoverable Tax Account
47079  , p_source_48            IN NUMBER
47080 --When to Account for Payment Option
47081  , p_source_57            IN VARCHAR2
47082 --Accounting Reversal Indicator
47083  , p_source_58            IN VARCHAR2
47084 --Distribution Link Type
47085  , p_source_60            IN VARCHAR2
47086 --Override Accounted Amount Indicator
47087  , p_source_85            IN VARCHAR2
47088  , p_source_85_meaning    IN VARCHAR2
47089 --Third Party Type
47090  , p_source_88            IN VARCHAR2
47091 --Business Flow Accounts Payable Application Identifier
47092  , p_source_96            IN NUMBER
47093 --Payment Distribution Type
47094  , p_source_101            IN VARCHAR2
47095  , p_source_101_meaning    IN VARCHAR2
47096 --Payment Distribution Amount
47097  , p_source_102            IN NUMBER
47098 --Business Flow Payment Distribution Type
47099  , p_source_103            IN VARCHAR2
47100 --Business Flow Payment Entity Code
47101  , p_source_104            IN VARCHAR2
47102 --Business Flow Payment Distribution Identifier
47103  , p_source_105            IN NUMBER
47104 --Business Flow Payment Identifier
47105  , p_source_106            IN NUMBER
47106 --Payment Distribution Identifier
47107  , p_source_107            IN NUMBER
47108 --Payment Supplier Identifier
47109  , p_source_113            IN NUMBER
47110 --Payment Supplier Site Identifier
47111  , p_source_114            IN NUMBER
47112 --Payment Distribution Reversed Identifier
47113  , p_source_115            IN NUMBER
47114 --Payment Maturity Date
47115  , p_source_117            IN DATE
47116 --Payment Exchange Date
47117  , p_source_120            IN DATE
47118 --Payment Exchange Rate
47119  , p_source_121            IN NUMBER
47120 --Payment Exchange Rate Type
47121  , p_source_122            IN VARCHAR2
47122 --Payment Distribution (Matured Rate) Ledger Amount
47123  , p_source_124            IN NUMBER
47124 --Deferred Recoverable Tax Option
47125  , p_source_140            IN VARCHAR2
47126  , p_source_140_meaning    IN VARCHAR2
47127 )
47128 IS
47129 
47130 l_component_type              VARCHAR2(80);
47131 l_component_code              VARCHAR2(30);
47132 l_component_type_code         VARCHAR2(1);
47133 l_component_appl_id           INTEGER;
47134 l_amb_context_code            VARCHAR2(30);
47135 l_entity_code                 VARCHAR2(30);
47136 l_event_class_code            VARCHAR2(30);
47137 l_ae_header_id                NUMBER;
47138 l_event_type_code             VARCHAR2(30);
47139 l_line_definition_code        VARCHAR2(30);
47140 l_line_definition_owner_code  VARCHAR2(1);
47141 --
47142 -- adr variables
47143 l_segment                     VARCHAR2(30);
47144 l_ccid                        NUMBER;
47145 l_adr_transaction_coa_id      NUMBER;
47146 l_adr_accounting_coa_id       NUMBER;
47147 l_adr_flexfield_segment_code  VARCHAR2(30);
47148 l_adr_flex_value_set_id       NUMBER;
47149 l_adr_value_type_code         VARCHAR2(30);
47150 l_adr_value_combination_id    NUMBER;
47151 l_adr_value_segment_code      VARCHAR2(30);
47152 
47153 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47154 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47155 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47156 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47157 
47158 -- 4262811 Variables ------------------------------------------------------------------------------------------
47159 l_entered_amt_idx             NUMBER;
47160 l_accted_amt_idx              NUMBER;
47161 l_acc_rev_flag                VARCHAR2(1);
47162 l_accrual_line_num            NUMBER;
47163 l_tmp_amt                     NUMBER;
47164 l_acc_rev_natural_side_code   VARCHAR2(1);
47165 
47166 l_num_entries                 NUMBER;
47167 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47168 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47169 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47170 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47171 l_recog_line_1                NUMBER;
47172 l_recog_line_2                NUMBER;
47173 
47174 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47175 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47176 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47177 
47178 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47179 
47180 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47181 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47182 
47186 --
47183 ---------------------------------------------------------------------------------------------------------------
47184 
47185 
47187 -- bulk performance
47188 --
47189 l_balance_type_code           VARCHAR2(1);
47190 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47191 l_log_module                  VARCHAR2(240);
47192 
47193 --
47194 -- Upgrade strategy
47195 --
47196 l_actual_upg_option           VARCHAR2(1);
47197 l_enc_upg_option           VARCHAR2(1);
47198 
47199 --
47200 BEGIN
47201 --
47202 IF g_log_enabled THEN
47203       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
47204 END IF;
47205 --
47206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47207 
47208       trace
47209          (p_msg      => 'BEGIN of AcctLineType_110'
47210          ,p_level    => C_LEVEL_PROCEDURE
47211          ,p_module   => l_log_module);
47212 
47213 END IF;
47214 --
47215 l_component_type             := 'AMB_JLT';
47216 l_component_code             := 'AP_DEF_RTAX_MAT';
47217 l_component_type_code        := 'S';
47218 l_component_appl_id          :=  200;
47219 l_amb_context_code           := 'DEFAULT';
47220 l_entity_code                := 'AP_PAYMENTS';
47221 l_event_class_code           := 'FUTURE DATED PAYMENTS';
47222 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
47223 l_line_definition_owner_code := 'S';
47224 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
47225 --
47226 l_balance_type_code          := 'A';
47227 l_segment                     := NULL;
47228 l_ccid                        := NULL;
47229 l_adr_transaction_coa_id      := NULL;
47230 l_adr_accounting_coa_id       := NULL;
47231 l_adr_flexfield_segment_code  := NULL;
47232 l_adr_flex_value_set_id       := NULL;
47233 l_adr_value_type_code         := NULL;
47234 l_adr_value_combination_id    := NULL;
47235 l_adr_value_segment_code      := NULL;
47236 
47237 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47238 l_bflow_class_code           := '';    -- 4219869 Business Flow
47239 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47240 l_budgetary_control_flag     := 'N';
47241 
47242 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47243 l_bflow_applied_to_amt       := NULL; -- 5132302
47244 l_entered_amt_idx            := NULL;          -- 4262811
47245 l_accted_amt_idx             := NULL;          -- 4262811
47246 l_acc_rev_flag               := NULL;          -- 4262811
47247 l_accrual_line_num           := NULL;          -- 4262811
47248 l_tmp_amt                    := NULL;          -- 4262811
47249 --
47250  
47251 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47252     l_balance_type_code <> 'B' THEN
47253 IF NVL(p_source_57,'
47254 ') <>  'CLEAR_CLEAR' AND 
47255 NVL(p_source_28,'
47256 ') =  'REC_TAX' AND 
47257 p_source_117 IS NOT NULL AND 
47258 NVL(p_source_140,'
47259 ') =  'DEFERRED' AND 
47260 (NVL(p_source_101,'
47261 ') =  'DISCOUNT' OR 
47262 NVL(p_source_101,'
47263 ') =  'CASH')
47264  THEN 
47265 
47266    --
47267    XLA_AE_LINES_PKG.SetNewLine;
47268 
47269    p_balance_type_code          := l_balance_type_code;
47270    -- set the flag so later we will know whether the gain loss line needs to be created
47271    
47272    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47273      p_actual_flag :='A';
47274    END IF;
47275 
47276    --
47277    -- bulk performance
47278    --
47279    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47280                                       p_header_num   => 0); -- 4262811
47281    --
47282    -- set accounting line options
47283    --
47284    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47285            p_natural_side_code          => 'D'
47286          , p_gain_or_loss_flag          => 'N'
47287          , p_gl_transfer_mode_code      => 'S'
47288          , p_acct_entry_type_code       => 'A'
47289          , p_switch_side_flag           => 'Y'
47290          , p_merge_duplicate_code       => 'A'
47291          );
47292    --
47293    l_acc_rev_natural_side_code := 'C';  -- 4262811
47294    -- 
47295    --
47296    -- set accounting line type info
47297    --
47298    xla_ae_lines_pkg.SetAcctLineType
47299       (p_component_type             => l_component_type
47300       ,p_event_type_code            => l_event_type_code
47301       ,p_line_definition_owner_code => l_line_definition_owner_code
47302       ,p_line_definition_code       => l_line_definition_code
47303       ,p_accounting_line_code       => l_component_code
47304       ,p_accounting_line_type_code  => l_component_type_code
47305       ,p_accounting_line_appl_id    => l_component_appl_id
47306       ,p_amb_context_code           => l_amb_context_code
47307       ,p_entity_code                => l_entity_code
47308       ,p_event_class_code           => l_event_class_code);
47309    --
47310    -- set accounting class
47311    --
47312    xla_ae_lines_pkg.SetAcctClass(
47313            p_accounting_class_code  => 'DEF_REC_TAX'
47314          , p_ae_header_id           => l_ae_header_id
47315          );
47316 
47317    --
47318    -- set rounding class
47319    --
47320    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47321                       'DEF_REC_TAX';
47325    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47322 
47323    --
47324    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47326    --
47327    -- bulk performance
47328    --
47329    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47330 
47331    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47332       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47333 
47334    -- 4955764
47335    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47336       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47337 
47338    -- 4458381 Public Sector Enh
47339    
47340    --
47341    -- set accounting attributes for the line type
47342    --
47343    l_entered_amt_idx := 9;
47344    l_accted_amt_idx  := 14;
47345    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47346    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47347    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
47348    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
47349    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
47350    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47351    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
47352    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
47353    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
47354    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
47355    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
47356    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47357    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
47358    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
47359    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
47360    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
47361    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
47362    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
47363    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
47364    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
47365    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
47366    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
47367    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
47368    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
47369    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
47370    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
47371    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
47372    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
47373    l_rec_acct_attrs.array_num_value(14)  := p_source_124;
47374    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
47375    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
47376    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
47377    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
47378    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
47379    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
47380    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
47381    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
47382    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
47383    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
47384    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
47385    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
47386 
47387    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47388    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47389 
47390    ---------------------------------------------------------------------------------------------------------------
47391    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47392    ---------------------------------------------------------------------------------------------------------------
47393    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47394 
47395    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47396    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47397 
47398    IF xla_accounting_cache_pkg.GetValueChar
47399          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47400          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47401    AND l_bflow_method_code = 'PRIOR_ENTRY'
47402 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47403    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47404          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47405        )
47406    THEN
47407          xla_ae_lines_pkg.BflowUpgEntry
47408            (p_business_method_code    => l_bflow_method_code
47409            ,p_business_class_code     => l_bflow_class_code
47410            ,p_balance_type            => l_balance_type_code);
47411    ELSE
47412       NULL;
47413 -- No business flow processing for business flow method of NONE.
47414    END IF;
47415 
47416    --
47417    -- call analytical criteria
47421    -- call description
47418    --
47419    
47420    --
47422    --
47423    -- No description or it is inherited.
47424    --
47425    -- call ADRs
47426    -- Bug 4922099
47427    --
47428    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47429         (NVL(l_actual_upg_option, 'N') = 'O') OR
47430         (NVL(l_enc_upg_option, 'N') = 'O')
47431       )
47432    THEN
47433    NULL;
47434    --
47435    --
47436    
47437   l_ccid := AcctDerRule_46(
47438            p_application_id           => p_application_id
47439          , p_ae_header_id             => l_ae_header_id 
47440 , p_source_48 => p_source_48
47441          , x_transaction_coa_id       => l_adr_transaction_coa_id
47442          , x_accounting_coa_id        => l_adr_accounting_coa_id
47443          , x_value_type_code          => l_adr_value_type_code
47444          , p_side                     => 'NA'
47445    );
47446 
47447    xla_ae_lines_pkg.set_ccid(
47448     p_code_combination_id          => l_ccid
47449   , p_value_type_code              => l_adr_value_type_code
47450   , p_transaction_coa_id           => l_adr_transaction_coa_id
47451   , p_accounting_coa_id            => l_adr_accounting_coa_id
47452   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47453   , p_adr_type_code                => 'S'
47454   , p_component_type               => l_component_type
47455   , p_component_code               => l_component_code
47456   , p_component_type_code          => l_component_type_code
47457   , p_component_appl_id            => l_component_appl_id
47458   , p_amb_context_code             => l_amb_context_code
47459   , p_side                         => 'NA'
47460   );
47461 
47462 
47463    --
47464    --
47465    END IF;
47466    --
47467    -- Bug 4922099
47468    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47469           (NVL(l_enc_upg_option, 'N') = 'O')
47470         ) AND
47471         (l_bflow_method_code = 'PRIOR_ENTRY')
47472       )
47473    THEN
47474       IF
47475       --
47476       1 = 2
47477       --
47478       THEN
47479       xla_accounting_err_pkg.build_message
47480                                     (p_appli_s_name            => 'XLA'
47481                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47482                                     ,p_token_1                 => 'LINE_NUMBER'
47483                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47484                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47485                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47486                                                                              l_component_type
47487                                                                             ,l_component_code
47488                                                                             ,l_component_type_code
47489                                                                             ,l_component_appl_id
47490                                                                             ,l_amb_context_code
47491                                                                             ,l_entity_code
47492                                                                             ,l_event_class_code
47493                                                                            )
47494                                     ,p_token_3                 => 'OWNER'
47495                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47496                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47497                                                                           ,p_lookup_code    => l_component_type_code
47498                                                                          )
47499                                     ,p_token_4                 => 'PRODUCT_NAME'
47500                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47501                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47502                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47503                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47504                                     ,p_ae_header_id            =>  NULL
47505                                        );
47506 
47507         IF (C_LEVEL_ERROR>= g_log_level) THEN
47508                  trace
47509                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47510                       ,p_level    => C_LEVEL_ERROR
47511                       ,p_module   => l_log_module);
47512         END IF;
47513       END IF;
47514    END IF;
47515    --
47516    --
47517    ------------------------------------------------------------------------------------------------
47518    -- 4219869 Business Flow
47519    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47520    -- Prior Entry.  Currently, the following code is always generated.
47521    ------------------------------------------------------------------------------------------------
47522    XLA_AE_LINES_PKG.ValidateCurrentLine;
47523 
47524    ------------------------------------------------------------------------------------
47525    -- 4219869 Business Flow
47529 
47526    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47527    ------------------------------------------------------------------------------------
47528    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47530    ----------------------------------------------------------------------------------
47531    -- 4219869 Business Flow
47532    -- Update journal entry status -- Need to generate this within IF <condition>
47533    ----------------------------------------------------------------------------------
47534    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47535          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47536          ,p_balance_type_code => l_balance_type_code
47537          );
47538 
47539    -------------------------------------------------------------------------------------------
47540    -- 4262811 - Generate the Accrual Reversal lines
47541    -------------------------------------------------------------------------------------------
47542    BEGIN
47543       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47544                               (g_array_event(p_event_id).array_value_num('header_index'));
47545       IF l_acc_rev_flag IS NULL THEN
47546          l_acc_rev_flag := 'N';
47547       END IF;
47548    EXCEPTION
47549       WHEN OTHERS THEN
47550          l_acc_rev_flag := 'N';
47551    END;
47552    --
47553    IF (l_acc_rev_flag = 'Y') THEN
47554 
47555        -- 4645092  ------------------------------------------------------------------------------
47556        -- To allow MPA report to determine if it should generate report process
47557        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47558        ------------------------------------------------------------------------------------------
47559 
47560        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47561        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47562    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47563    -- call ADRs
47564    -- Bug 4922099
47565    --
47566    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47567         (NVL(l_actual_upg_option, 'N') = 'O') OR
47568         (NVL(l_enc_upg_option, 'N') = 'O')
47569       )
47570    THEN
47571    NULL;
47572    --
47573    --
47574    
47575   l_ccid := AcctDerRule_46(
47576            p_application_id           => p_application_id
47577          , p_ae_header_id             => l_ae_header_id 
47578 , p_source_48 => p_source_48
47579          , x_transaction_coa_id       => l_adr_transaction_coa_id
47580          , x_accounting_coa_id        => l_adr_accounting_coa_id
47581          , x_value_type_code          => l_adr_value_type_code
47582          , p_side                     => 'NA'
47583    );
47584 
47585    xla_ae_lines_pkg.set_ccid(
47586     p_code_combination_id          => l_ccid
47587   , p_value_type_code              => l_adr_value_type_code
47588   , p_transaction_coa_id           => l_adr_transaction_coa_id
47589   , p_accounting_coa_id            => l_adr_accounting_coa_id
47590   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47591   , p_adr_type_code                => 'S'
47592   , p_component_type               => l_component_type
47593   , p_component_code               => l_component_code
47594   , p_component_type_code          => l_component_type_code
47595   , p_component_appl_id            => l_component_appl_id
47596   , p_amb_context_code             => l_amb_context_code
47597   , p_side                         => 'NA'
47598   );
47599 
47600 
47601    --
47602    --
47603    END IF;
47604 
47605        --
47606        -- Update the line information that should be overwritten
47607        --
47608        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47609                                          p_header_num   => 1);
47610        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47611 
47612        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47613 
47614        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47615           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47616        END IF;
47617 
47618       --
47619       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47620       --
47621       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47622           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47623       ELSE
47624           ---------------------------------------------------------------------------------------------------
47625           -- 4262811a Switch Sign
47626           ---------------------------------------------------------------------------------------------------
47627           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47628           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47629                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47630           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47631                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47632           -- 5132302
47633           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47637 
47634                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47635 
47636       END IF;
47638       -- 4955764
47639       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47640       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47641 
47642 
47643       XLA_AE_LINES_PKG.ValidateCurrentLine;
47644       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47645 
47646       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47647                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47648                ,p_balance_type_code => l_balance_type_code);
47649 
47650    END IF;
47651 
47652    -----------------------------------------------------------------------------------------
47653    -- 4262811 Multiperiod Accounting
47654    -----------------------------------------------------------------------------------------
47655      -- No MPA option is assigned.
47656 
47657 
47658 END IF;
47659 END IF;
47660 --
47661 
47662 --
47663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47664    trace
47665       (p_msg      => 'END of AcctLineType_110'
47666       ,p_level    => C_LEVEL_PROCEDURE
47667       ,p_module   => l_log_module);
47668 END IF;
47669 --
47670 EXCEPTION
47671   WHEN xla_exceptions_pkg.application_exception THEN
47672       RAISE;
47673   WHEN OTHERS THEN
47674        xla_exceptions_pkg.raise_message
47675            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_110');
47676 END AcctLineType_110;
47677 --
47678 
47679 ---------------------------------------
47680 --
47681 -- PRIVATE FUNCTION
47682 --         AcctLineType_111
47683 --
47684 ---------------------------------------
47685 PROCEDURE AcctLineType_111 (
47686   p_application_id        IN NUMBER
47687  ,p_event_id              IN NUMBER
47688  ,p_calculate_acctd_flag  IN VARCHAR2
47689  ,p_calculate_g_l_flag    IN VARCHAR2
47690  ,p_actual_flag           IN OUT VARCHAR2
47691  ,p_balance_type_code     OUT VARCHAR2
47692  ,p_gain_or_loss_ref      OUT VARCHAR2
47693  
47694 --Payment Currency Code
47695  , p_source_8            IN VARCHAR2
47696 --Invoice Distribution Type
47697  , p_source_28            IN VARCHAR2
47698  , p_source_28_meaning    IN VARCHAR2
47699 --Recoverable Tax Account
47700  , p_source_48            IN NUMBER
47701 --When to Account for Payment Option
47702  , p_source_57            IN VARCHAR2
47703 --Accounting Reversal Indicator
47704  , p_source_58            IN VARCHAR2
47705 --Distribution Link Type
47706  , p_source_60            IN VARCHAR2
47707 --Override Accounted Amount Indicator
47708  , p_source_85            IN VARCHAR2
47709  , p_source_85_meaning    IN VARCHAR2
47710 --Third Party Type
47711  , p_source_88            IN VARCHAR2
47712 --Invoice Distribution Tax Line Identifier
47713  , p_source_91            IN NUMBER
47714 --Invoice Distribution Tax Distribution Identifier from Tax
47715  , p_source_92            IN NUMBER
47716 --Invoice Distribution Summary Tax Line Identifier
47717  , p_source_93            IN NUMBER
47718 --Business Flow Accounts Payable Application Identifier
47719  , p_source_96            IN NUMBER
47720 --Business Flow Invoice Distribution Type
47721  , p_source_97            IN VARCHAR2
47722 --Business Flow Invoice Entity Code
47723  , p_source_98            IN VARCHAR2
47724 --Business Flow Invoice Distribution Identifier
47725  , p_source_99            IN NUMBER
47726 --Business Flow Invoice Identifier
47727  , p_source_100            IN NUMBER
47728 --Payment Distribution Type
47729  , p_source_101            IN VARCHAR2
47730  , p_source_101_meaning    IN VARCHAR2
47731 --Payment Distribution Amount
47732  , p_source_102            IN NUMBER
47733 --Payment Distribution Identifier
47734  , p_source_107            IN NUMBER
47735 --Payment Supplier Identifier
47736  , p_source_113            IN NUMBER
47737 --Payment Supplier Site Identifier
47738  , p_source_114            IN NUMBER
47739 --Payment Distribution Reversed Identifier
47740  , p_source_115            IN NUMBER
47741 --Payment Maturity Date
47742  , p_source_117            IN DATE
47743 --Payment Distribution (Invoice Rate) Ledger Amount
47744  , p_source_119            IN NUMBER
47745 --Payment Type
47746  , p_source_125            IN VARCHAR2
47747  , p_source_125_meaning    IN VARCHAR2
47748 --Payment Processing Type
47749  , p_source_126            IN VARCHAR2
47750 --Invoice Distribution Amount of the Payment Distribution
47751  , p_source_127            IN NUMBER
47752 --Deferred Recoverable Tax Option
47753  , p_source_140            IN VARCHAR2
47754  , p_source_140_meaning    IN VARCHAR2
47755 --AWT Related Distribution Type Lookup code
47756  , p_source_141            IN VARCHAR2
47757 --Invoice Exchange Date
47758  , p_source_146            IN DATE
47759 --Invoice Exchange Rate
47760  , p_source_147            IN NUMBER
47761 --Invoice Exchange Rate Type
47762  , p_source_148            IN VARCHAR2
47763 )
47764 IS
47765 
47766 l_component_type              VARCHAR2(80);
47767 l_component_code              VARCHAR2(30);
47768 l_component_type_code         VARCHAR2(1);
47769 l_component_appl_id           INTEGER;
47770 l_amb_context_code            VARCHAR2(30);
47771 l_entity_code                 VARCHAR2(30);
47772 l_event_class_code            VARCHAR2(30);
47776 l_line_definition_owner_code  VARCHAR2(1);
47773 l_ae_header_id                NUMBER;
47774 l_event_type_code             VARCHAR2(30);
47775 l_line_definition_code        VARCHAR2(30);
47777 --
47778 -- adr variables
47779 l_segment                     VARCHAR2(30);
47780 l_ccid                        NUMBER;
47781 l_adr_transaction_coa_id      NUMBER;
47782 l_adr_accounting_coa_id       NUMBER;
47783 l_adr_flexfield_segment_code  VARCHAR2(30);
47784 l_adr_flex_value_set_id       NUMBER;
47785 l_adr_value_type_code         VARCHAR2(30);
47786 l_adr_value_combination_id    NUMBER;
47787 l_adr_value_segment_code      VARCHAR2(30);
47788 
47789 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47790 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47791 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47792 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47793 
47794 -- 4262811 Variables ------------------------------------------------------------------------------------------
47795 l_entered_amt_idx             NUMBER;
47796 l_accted_amt_idx              NUMBER;
47797 l_acc_rev_flag                VARCHAR2(1);
47798 l_accrual_line_num            NUMBER;
47799 l_tmp_amt                     NUMBER;
47800 l_acc_rev_natural_side_code   VARCHAR2(1);
47801 
47802 l_num_entries                 NUMBER;
47803 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47804 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47805 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47806 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47807 l_recog_line_1                NUMBER;
47808 l_recog_line_2                NUMBER;
47809 
47810 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47811 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47812 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47813 
47814 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47815 
47816 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47817 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47818 
47819 ---------------------------------------------------------------------------------------------------------------
47820 
47821 
47822 --
47823 -- bulk performance
47824 --
47825 l_balance_type_code           VARCHAR2(1);
47826 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47827 l_log_module                  VARCHAR2(240);
47828 
47829 --
47830 -- Upgrade strategy
47831 --
47832 l_actual_upg_option           VARCHAR2(1);
47833 l_enc_upg_option           VARCHAR2(1);
47834 
47835 --
47836 BEGIN
47837 --
47838 IF g_log_enabled THEN
47839       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
47840 END IF;
47841 --
47842 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47843 
47844       trace
47845          (p_msg      => 'BEGIN of AcctLineType_111'
47846          ,p_level    => C_LEVEL_PROCEDURE
47847          ,p_module   => l_log_module);
47848 
47849 END IF;
47850 --
47851 l_component_type             := 'AMB_JLT';
47852 l_component_code             := 'AP_DEF_RTAX_PMT';
47853 l_component_type_code        := 'S';
47854 l_component_appl_id          :=  200;
47855 l_amb_context_code           := 'DEFAULT';
47856 l_entity_code                := 'AP_PAYMENTS';
47857 l_event_class_code           := 'PAYMENTS';
47858 l_event_type_code            := 'PAYMENTS_ALL';
47859 l_line_definition_owner_code := 'S';
47860 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
47861 --
47862 l_balance_type_code          := 'A';
47863 l_segment                     := NULL;
47864 l_ccid                        := NULL;
47865 l_adr_transaction_coa_id      := NULL;
47866 l_adr_accounting_coa_id       := NULL;
47867 l_adr_flexfield_segment_code  := NULL;
47868 l_adr_flex_value_set_id       := NULL;
47869 l_adr_value_type_code         := NULL;
47870 l_adr_value_combination_id    := NULL;
47871 l_adr_value_segment_code      := NULL;
47872 
47873 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47874 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
47875 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47876 l_budgetary_control_flag     := 'N';
47877 
47878 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47879 l_bflow_applied_to_amt       := NULL; -- 5132302
47880 l_entered_amt_idx            := NULL;          -- 4262811
47881 l_accted_amt_idx             := NULL;          -- 4262811
47882 l_acc_rev_flag               := NULL;          -- 4262811
47883 l_accrual_line_num           := NULL;          -- 4262811
47884 l_tmp_amt                    := NULL;          -- 4262811
47885 --
47886  
47887 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47888     l_balance_type_code <> 'B' THEN
47889 IF NVL(p_source_57,'
47890 ') <>  'CLEAR_CLEAR' AND 
47891 ((NVL(p_source_28,'
47892 ') =  'REC_TAX' AND 
47893 NVL(p_source_140,'
47894 ') =  'DEFERRED') OR 
47895 (NVL(p_source_28,'
47896 ') =  'AWT' AND 
47897 NVL(p_source_141,'
47898 ') =  'AWT_DEFERRED')
47899 ) AND (NVL(p_source_101,'
47900 ') =  'CASH' OR 
47901 NVL(p_source_101,'
47902 ') =  'AWT' OR 
47903 NVL(p_source_101,'
47907 ') <>  'R' AND 
47904 ') =  'DISCOUNT') AND 
47905 p_source_117 IS NULL AND 
47906 NVL(p_source_125,'
47908 NVL(p_source_126,'
47909 ') <>  'PAYMENTCARD'
47910  THEN 
47911 
47912    --
47913    XLA_AE_LINES_PKG.SetNewLine;
47914 
47915    p_balance_type_code          := l_balance_type_code;
47916    -- set the flag so later we will know whether the gain loss line needs to be created
47917    
47918    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47919      p_actual_flag :='A';
47920    END IF;
47921 
47922    --
47923    -- bulk performance
47924    --
47925    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47926                                       p_header_num   => 0); -- 4262811
47927    --
47928    -- set accounting line options
47929    --
47930    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47931            p_natural_side_code          => 'D'
47932          , p_gain_or_loss_flag          => 'N'
47933          , p_gl_transfer_mode_code      => 'S'
47934          , p_acct_entry_type_code       => 'A'
47935          , p_switch_side_flag           => 'Y'
47936          , p_merge_duplicate_code       => 'A'
47937          );
47938    --
47939    l_acc_rev_natural_side_code := 'C';  -- 4262811
47940    -- 
47941    --
47942    -- set accounting line type info
47943    --
47944    xla_ae_lines_pkg.SetAcctLineType
47945       (p_component_type             => l_component_type
47946       ,p_event_type_code            => l_event_type_code
47947       ,p_line_definition_owner_code => l_line_definition_owner_code
47948       ,p_line_definition_code       => l_line_definition_code
47949       ,p_accounting_line_code       => l_component_code
47950       ,p_accounting_line_type_code  => l_component_type_code
47951       ,p_accounting_line_appl_id    => l_component_appl_id
47952       ,p_amb_context_code           => l_amb_context_code
47953       ,p_entity_code                => l_entity_code
47954       ,p_event_class_code           => l_event_class_code);
47955    --
47956    -- set accounting class
47957    --
47958    xla_ae_lines_pkg.SetAcctClass(
47959            p_accounting_class_code  => 'DEF_REC_TAX'
47960          , p_ae_header_id           => l_ae_header_id
47961          );
47962 
47963    --
47964    -- set rounding class
47965    --
47966    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47967                       'DEF_REC_TAX';
47968 
47969    --
47970    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47971    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47972    --
47973    -- bulk performance
47974    --
47975    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47976 
47977    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47978       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47979 
47980    -- 4955764
47981    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47982       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47983 
47984    -- 4458381 Public Sector Enh
47985    
47986    --
47987    -- set accounting attributes for the line type
47988    --
47989    l_entered_amt_idx := 10;
47990    l_accted_amt_idx  := 15;
47991    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
47992    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47993    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
47994    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
47995    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
47996    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
47997    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
47998    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47999    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
48000    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
48001    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
48002    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
48003    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
48004    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48005    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
48006    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
48007    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
48008    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
48009    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
48010    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
48011    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
48012    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
48013    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
48014    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
48015    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
48016    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
48017    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
48018    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
48019    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
48020    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
48024    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
48021    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
48022    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
48023    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
48025    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
48026    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
48027    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
48028    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
48029    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
48030    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
48031    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
48032    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
48033    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
48034    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
48035    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
48036    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
48037    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
48038    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
48039    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
48040 
48041    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48042    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48043 
48044    ---------------------------------------------------------------------------------------------------------------
48045    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48046    ---------------------------------------------------------------------------------------------------------------
48047    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48048 
48049    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48050    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48051 
48052    IF xla_accounting_cache_pkg.GetValueChar
48053          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48054          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48055    AND l_bflow_method_code = 'PRIOR_ENTRY'
48056 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48057    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48058          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48059        )
48060    THEN
48061          xla_ae_lines_pkg.BflowUpgEntry
48062            (p_business_method_code    => l_bflow_method_code
48063            ,p_business_class_code     => l_bflow_class_code
48064            ,p_balance_type            => l_balance_type_code);
48065    ELSE
48066       NULL;
48067 -- No business flow processing for business flow method of NONE.
48068    END IF;
48069 
48070    --
48071    -- call analytical criteria
48072    --
48073    
48074    --
48075    -- call description
48076    --
48077    -- No description or it is inherited.
48078    --
48079    -- call ADRs
48080    -- Bug 4922099
48081    --
48082    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48083         (NVL(l_actual_upg_option, 'N') = 'O') OR
48084         (NVL(l_enc_upg_option, 'N') = 'O')
48085       )
48086    THEN
48087    NULL;
48088    --
48089    --
48090    
48091   l_ccid := AcctDerRule_46(
48092            p_application_id           => p_application_id
48093          , p_ae_header_id             => l_ae_header_id 
48094 , p_source_48 => p_source_48
48095          , x_transaction_coa_id       => l_adr_transaction_coa_id
48096          , x_accounting_coa_id        => l_adr_accounting_coa_id
48097          , x_value_type_code          => l_adr_value_type_code
48098          , p_side                     => 'NA'
48099    );
48100 
48101    xla_ae_lines_pkg.set_ccid(
48102     p_code_combination_id          => l_ccid
48103   , p_value_type_code              => l_adr_value_type_code
48104   , p_transaction_coa_id           => l_adr_transaction_coa_id
48105   , p_accounting_coa_id            => l_adr_accounting_coa_id
48106   , p_adr_code                     => 'AP_TAX_ACCOUNT'
48107   , p_adr_type_code                => 'S'
48108   , p_component_type               => l_component_type
48109   , p_component_code               => l_component_code
48110   , p_component_type_code          => l_component_type_code
48111   , p_component_appl_id            => l_component_appl_id
48112   , p_amb_context_code             => l_amb_context_code
48113   , p_side                         => 'NA'
48114   );
48115 
48116 
48117    --
48118    --
48119    END IF;
48120    --
48121    -- Bug 4922099
48122    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48123           (NVL(l_enc_upg_option, 'N') = 'O')
48124         ) AND
48125         (l_bflow_method_code = 'PRIOR_ENTRY')
48126       )
48127    THEN
48128       IF
48129       --
48130       1 = 2
48131       --
48132       THEN
48133       xla_accounting_err_pkg.build_message
48134                                     (p_appli_s_name            => 'XLA'
48135                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48136                                     ,p_token_1                 => 'LINE_NUMBER'
48140                                                                              l_component_type
48137                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48138                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48139                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48141                                                                             ,l_component_code
48142                                                                             ,l_component_type_code
48143                                                                             ,l_component_appl_id
48144                                                                             ,l_amb_context_code
48145                                                                             ,l_entity_code
48146                                                                             ,l_event_class_code
48147                                                                            )
48148                                     ,p_token_3                 => 'OWNER'
48149                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48150                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48151                                                                           ,p_lookup_code    => l_component_type_code
48152                                                                          )
48153                                     ,p_token_4                 => 'PRODUCT_NAME'
48154                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48155                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48156                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48157                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48158                                     ,p_ae_header_id            =>  NULL
48159                                        );
48160 
48161         IF (C_LEVEL_ERROR>= g_log_level) THEN
48162                  trace
48163                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48164                       ,p_level    => C_LEVEL_ERROR
48165                       ,p_module   => l_log_module);
48166         END IF;
48167       END IF;
48168    END IF;
48169    --
48170    --
48171    ------------------------------------------------------------------------------------------------
48172    -- 4219869 Business Flow
48173    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48174    -- Prior Entry.  Currently, the following code is always generated.
48175    ------------------------------------------------------------------------------------------------
48176    XLA_AE_LINES_PKG.ValidateCurrentLine;
48177 
48178    ------------------------------------------------------------------------------------
48179    -- 4219869 Business Flow
48180    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48181    ------------------------------------------------------------------------------------
48182    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48183 
48184    ----------------------------------------------------------------------------------
48185    -- 4219869 Business Flow
48186    -- Update journal entry status -- Need to generate this within IF <condition>
48187    ----------------------------------------------------------------------------------
48188    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48189          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48190          ,p_balance_type_code => l_balance_type_code
48191          );
48192 
48193    -------------------------------------------------------------------------------------------
48194    -- 4262811 - Generate the Accrual Reversal lines
48195    -------------------------------------------------------------------------------------------
48196    BEGIN
48197       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48198                               (g_array_event(p_event_id).array_value_num('header_index'));
48199       IF l_acc_rev_flag IS NULL THEN
48200          l_acc_rev_flag := 'N';
48201       END IF;
48202    EXCEPTION
48203       WHEN OTHERS THEN
48204          l_acc_rev_flag := 'N';
48205    END;
48206    --
48207    IF (l_acc_rev_flag = 'Y') THEN
48208 
48209        -- 4645092  ------------------------------------------------------------------------------
48210        -- To allow MPA report to determine if it should generate report process
48211        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48212        ------------------------------------------------------------------------------------------
48213 
48214        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48215        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48216    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48217    -- call ADRs
48218    -- Bug 4922099
48219    --
48220    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48221         (NVL(l_actual_upg_option, 'N') = 'O') OR
48222         (NVL(l_enc_upg_option, 'N') = 'O')
48223       )
48224    THEN
48225    NULL;
48226    --
48227    --
48228    
48232 , p_source_48 => p_source_48
48229   l_ccid := AcctDerRule_46(
48230            p_application_id           => p_application_id
48231          , p_ae_header_id             => l_ae_header_id 
48233          , x_transaction_coa_id       => l_adr_transaction_coa_id
48234          , x_accounting_coa_id        => l_adr_accounting_coa_id
48235          , x_value_type_code          => l_adr_value_type_code
48236          , p_side                     => 'NA'
48237    );
48238 
48239    xla_ae_lines_pkg.set_ccid(
48240     p_code_combination_id          => l_ccid
48241   , p_value_type_code              => l_adr_value_type_code
48242   , p_transaction_coa_id           => l_adr_transaction_coa_id
48243   , p_accounting_coa_id            => l_adr_accounting_coa_id
48244   , p_adr_code                     => 'AP_TAX_ACCOUNT'
48245   , p_adr_type_code                => 'S'
48246   , p_component_type               => l_component_type
48247   , p_component_code               => l_component_code
48248   , p_component_type_code          => l_component_type_code
48249   , p_component_appl_id            => l_component_appl_id
48250   , p_amb_context_code             => l_amb_context_code
48251   , p_side                         => 'NA'
48252   );
48253 
48254 
48255    --
48256    --
48257    END IF;
48258 
48259        --
48260        -- Update the line information that should be overwritten
48261        --
48262        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48263                                          p_header_num   => 1);
48264        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48265 
48266        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48267 
48268        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48269           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48270        END IF;
48271 
48272       --
48273       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48274       --
48275       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48276           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48277       ELSE
48278           ---------------------------------------------------------------------------------------------------
48279           -- 4262811a Switch Sign
48280           ---------------------------------------------------------------------------------------------------
48281           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48282           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48283                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48284           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48285                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48286           -- 5132302
48287           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48288                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48289 
48290       END IF;
48291 
48292       -- 4955764
48293       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48294       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48295 
48296 
48297       XLA_AE_LINES_PKG.ValidateCurrentLine;
48298       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48299 
48300       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48301                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48302                ,p_balance_type_code => l_balance_type_code);
48303 
48304    END IF;
48305 
48306    -----------------------------------------------------------------------------------------
48307    -- 4262811 Multiperiod Accounting
48308    -----------------------------------------------------------------------------------------
48309      -- No MPA option is assigned.
48310 
48311 
48312 END IF;
48313 END IF;
48314 --
48315 
48316 --
48317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48318    trace
48319       (p_msg      => 'END of AcctLineType_111'
48320       ,p_level    => C_LEVEL_PROCEDURE
48321       ,p_module   => l_log_module);
48322 END IF;
48323 --
48324 EXCEPTION
48325   WHEN xla_exceptions_pkg.application_exception THEN
48326       RAISE;
48327   WHEN OTHERS THEN
48328        xla_exceptions_pkg.raise_message
48329            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_111');
48330 END AcctLineType_111;
48331 --
48332 
48333 ---------------------------------------
48334 --
48335 -- PRIVATE FUNCTION
48336 --         AcctLineType_112
48337 --
48338 ---------------------------------------
48339 PROCEDURE AcctLineType_112 (
48340   p_application_id        IN NUMBER
48341  ,p_event_id              IN NUMBER
48342  ,p_calculate_acctd_flag  IN VARCHAR2
48343  ,p_calculate_g_l_flag    IN VARCHAR2
48344  ,p_actual_flag           IN OUT VARCHAR2
48345  ,p_balance_type_code     OUT VARCHAR2
48346  ,p_gain_or_loss_ref      OUT VARCHAR2
48347  
48348 --Recoverable Tax Account
48349  , p_source_48            IN NUMBER
48353  , p_source_60            IN VARCHAR2
48350 --Accounting Reversal Indicator
48351  , p_source_58            IN VARCHAR2
48352 --Distribution Link Type
48354 --Invoice Identifier
48355  , p_source_63            IN NUMBER
48356 --Payables Encumbrance Upgrade Credit Account
48357  , p_source_70            IN NUMBER
48358 --Payables Encumbrance Upgrade Credit Amount
48359  , p_source_71            IN NUMBER
48360 --Invoice Currency Code
48361  , p_source_72            IN VARCHAR2
48362 --Payables Encumbrance Upgrade Credit Base Amount
48363  , p_source_73            IN NUMBER
48364 --Payables Encumbrance Upgrade Debit Account
48365  , p_source_74            IN NUMBER
48366 --Payables Encumbrance Upgrade Debit Amount
48367  , p_source_75            IN NUMBER
48368 --Payables Encumbrance Upgrade Debit Base Amount
48369  , p_source_76            IN NUMBER
48370 --Payables Encumbrance Upgrade Option
48371  , p_source_77            IN VARCHAR2
48372 --Deferred Accounting End Date
48373  , p_source_82            IN DATE
48374 --Deferred Accounting Option
48375  , p_source_83            IN VARCHAR2
48376 --Deferred Accounting Start Date
48377  , p_source_84            IN DATE
48378 --Override Accounted Amount Indicator
48379  , p_source_85            IN VARCHAR2
48380  , p_source_85_meaning    IN VARCHAR2
48381 --Invoice Supplier Identifier
48382  , p_source_86            IN NUMBER
48383 --Invoice Supplier Site Identifier
48384  , p_source_87            IN NUMBER
48385 --Third Party Type
48386  , p_source_88            IN VARCHAR2
48387 --Invoice Distribution Tax Line Identifier
48388  , p_source_91            IN NUMBER
48389 --Invoice Distribution Tax Distribution Identifier from Tax
48390  , p_source_92            IN NUMBER
48391 --Invoice Distribution Summary Tax Line Identifier
48392  , p_source_93            IN NUMBER
48393 --Payables Upgrade Credit Encumbrance Type Identifier
48394  , p_source_94            IN NUMBER
48395 --Payables Upgrade Debit Encumbrance Type Identifier
48396  , p_source_95            IN NUMBER
48397 --Business Flow Accounts Payable Application Identifier
48398  , p_source_96            IN NUMBER
48399 --Prepayment Application Distribution Identifier
48400  , p_source_130            IN NUMBER
48401 --Upgrade Encumbrance Credit Account Class
48402  , p_source_135            IN VARCHAR2
48403 --Upgrade Encumbrance Debit Account Class
48404  , p_source_136            IN VARCHAR2
48405 --Prepayment Distribution Amount
48406  , p_source_137            IN NUMBER
48407 --Identifier of the Prepayment Application Reversed
48408  , p_source_139            IN NUMBER
48409 --Deferred Recoverable Tax Option
48410  , p_source_140            IN VARCHAR2
48411  , p_source_140_meaning    IN VARCHAR2
48412 --Prepayment Distribution (Invoice Rate) Ledger Amount
48413  , p_source_144            IN NUMBER
48414 --Invoice Exchange Date
48415  , p_source_146            IN DATE
48416 --Invoice Exchange Rate
48417  , p_source_147            IN NUMBER
48418 --Invoice Exchange Rate Type
48419  , p_source_148            IN VARCHAR2
48420 --Business Flow Prepayment Invoice Distribution Type
48421  , p_source_149            IN VARCHAR2
48422 --Business Flow Prepayment Invoice Entity Code
48423  , p_source_150            IN VARCHAR2
48424 --Business Flow Prepayment Invoice Distribution Identifier
48425  , p_source_151            IN NUMBER
48426 --Business Flow Prepayment Invoice Identifier
48427  , p_source_152            IN NUMBER
48428 )
48429 IS
48430 
48431 l_component_type              VARCHAR2(80);
48432 l_component_code              VARCHAR2(30);
48433 l_component_type_code         VARCHAR2(1);
48434 l_component_appl_id           INTEGER;
48435 l_amb_context_code            VARCHAR2(30);
48436 l_entity_code                 VARCHAR2(30);
48437 l_event_class_code            VARCHAR2(30);
48438 l_ae_header_id                NUMBER;
48439 l_event_type_code             VARCHAR2(30);
48440 l_line_definition_code        VARCHAR2(30);
48441 l_line_definition_owner_code  VARCHAR2(1);
48442 --
48443 -- adr variables
48444 l_segment                     VARCHAR2(30);
48445 l_ccid                        NUMBER;
48446 l_adr_transaction_coa_id      NUMBER;
48447 l_adr_accounting_coa_id       NUMBER;
48448 l_adr_flexfield_segment_code  VARCHAR2(30);
48449 l_adr_flex_value_set_id       NUMBER;
48450 l_adr_value_type_code         VARCHAR2(30);
48451 l_adr_value_combination_id    NUMBER;
48452 l_adr_value_segment_code      VARCHAR2(30);
48453 
48454 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48455 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48456 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48457 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48458 
48459 -- 4262811 Variables ------------------------------------------------------------------------------------------
48460 l_entered_amt_idx             NUMBER;
48461 l_accted_amt_idx              NUMBER;
48462 l_acc_rev_flag                VARCHAR2(1);
48463 l_accrual_line_num            NUMBER;
48464 l_tmp_amt                     NUMBER;
48465 l_acc_rev_natural_side_code   VARCHAR2(1);
48466 
48467 l_num_entries                 NUMBER;
48468 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48469 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48470 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48471 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48472 l_recog_line_1                NUMBER;
48476 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48473 l_recog_line_2                NUMBER;
48474 
48475 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48477 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48478 
48479 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48480 
48481 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48482 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48483 
48484 ---------------------------------------------------------------------------------------------------------------
48485 
48486 
48487 --
48488 -- bulk performance
48489 --
48490 l_balance_type_code           VARCHAR2(1);
48491 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48492 l_log_module                  VARCHAR2(240);
48493 
48494 --
48495 -- Upgrade strategy
48496 --
48497 l_actual_upg_option           VARCHAR2(1);
48498 l_enc_upg_option           VARCHAR2(1);
48499 
48500 --
48501 BEGIN
48502 --
48503 IF g_log_enabled THEN
48504       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
48505 END IF;
48506 --
48507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48508 
48509       trace
48510          (p_msg      => 'BEGIN of AcctLineType_112'
48511          ,p_level    => C_LEVEL_PROCEDURE
48512          ,p_module   => l_log_module);
48513 
48514 END IF;
48515 --
48516 l_component_type             := 'AMB_JLT';
48517 l_component_code             := 'AP_DEF_RTAX_PREPAY';
48518 l_component_type_code        := 'S';
48519 l_component_appl_id          :=  200;
48520 l_amb_context_code           := 'DEFAULT';
48521 l_entity_code                := 'AP_INVOICES';
48522 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
48523 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
48524 l_line_definition_owner_code := 'S';
48525 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
48526 --
48527 l_balance_type_code          := 'A';
48528 l_segment                     := NULL;
48529 l_ccid                        := NULL;
48530 l_adr_transaction_coa_id      := NULL;
48531 l_adr_accounting_coa_id       := NULL;
48532 l_adr_flexfield_segment_code  := NULL;
48533 l_adr_flex_value_set_id       := NULL;
48534 l_adr_value_type_code         := NULL;
48535 l_adr_value_combination_id    := NULL;
48536 l_adr_value_segment_code      := NULL;
48537 
48538 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48539 l_bflow_class_code           := '';    -- 4219869 Business Flow
48540 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48541 l_budgetary_control_flag     := 'N';
48542 
48543 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48544 l_bflow_applied_to_amt       := NULL; -- 5132302
48545 l_entered_amt_idx            := NULL;          -- 4262811
48546 l_accted_amt_idx             := NULL;          -- 4262811
48547 l_acc_rev_flag               := NULL;          -- 4262811
48548 l_accrual_line_num           := NULL;          -- 4262811
48549 l_tmp_amt                    := NULL;          -- 4262811
48550 --
48551  
48552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48553     l_balance_type_code <> 'B' THEN
48554 IF NVL(p_source_140,'
48555 ') =  'DEFERRED'
48556  THEN 
48557 
48558    --
48559    XLA_AE_LINES_PKG.SetNewLine;
48560 
48561    p_balance_type_code          := l_balance_type_code;
48562    -- set the flag so later we will know whether the gain loss line needs to be created
48563    
48564    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48565      p_actual_flag :='A';
48566    END IF;
48567 
48568    --
48569    -- bulk performance
48570    --
48571    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48572                                       p_header_num   => 0); -- 4262811
48573    --
48574    -- set accounting line options
48575    --
48576    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48577            p_natural_side_code          => 'C'
48578          , p_gain_or_loss_flag          => 'N'
48579          , p_gl_transfer_mode_code      => 'S'
48580          , p_acct_entry_type_code       => 'A'
48581          , p_switch_side_flag           => 'Y'
48582          , p_merge_duplicate_code       => 'A'
48583          );
48584    --
48585    l_acc_rev_natural_side_code := 'D';  -- 4262811
48586    -- 
48587    --
48588    -- set accounting line type info
48589    --
48590    xla_ae_lines_pkg.SetAcctLineType
48591       (p_component_type             => l_component_type
48592       ,p_event_type_code            => l_event_type_code
48593       ,p_line_definition_owner_code => l_line_definition_owner_code
48594       ,p_line_definition_code       => l_line_definition_code
48595       ,p_accounting_line_code       => l_component_code
48596       ,p_accounting_line_type_code  => l_component_type_code
48597       ,p_accounting_line_appl_id    => l_component_appl_id
48598       ,p_amb_context_code           => l_amb_context_code
48599       ,p_entity_code                => l_entity_code
48600       ,p_event_class_code           => l_event_class_code);
48601    --
48602    -- set accounting class
48603    --
48604    xla_ae_lines_pkg.SetAcctClass(
48608 
48605            p_accounting_class_code  => 'DEF_REC_TAX'
48606          , p_ae_header_id           => l_ae_header_id
48607          );
48609    --
48610    -- set rounding class
48611    --
48612    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48613                       'DEF_REC_TAX';
48614 
48615    --
48616    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48617    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48618    --
48619    -- bulk performance
48620    --
48621    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48622 
48623    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48624       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48625 
48626    -- 4955764
48627    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48628       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48629 
48630    -- 4458381 Public Sector Enh
48631    
48632    --
48633    -- set accounting attributes for the line type
48634    --
48635    l_entered_amt_idx := 25;
48636    l_accted_amt_idx  := 30;
48637    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
48638    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48639    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
48640    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
48641    l_rec_acct_attrs.array_num_value(2)  := 
48642 xla_ae_sources_pkg.GetSystemSourceNum(
48643    p_source_code           => 'XLA_EVENT_APPL_ID'
48644  , p_source_type_code      => 'Y'
48645  , p_source_application_id =>  602
48646 );
48647    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
48648    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
48649    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
48650    l_rec_acct_attrs.array_char_value(4)  := 
48651 xla_ae_sources_pkg.GetSystemSourceChar(
48652    p_source_code           => 'XLA_ENTITY_CODE'
48653  , p_source_type_code      => 'Y'
48654  , p_source_application_id =>  602
48655 );
48656    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
48657    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
48658    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
48659    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
48660    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
48661    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
48662    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48663    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
48664    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
48665    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
48666    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
48667    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
48668    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48669    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
48670    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
48671    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
48672    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
48673    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
48674    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
48675    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
48676    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
48677    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
48678    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
48679    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
48680    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
48681    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
48682    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
48683    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
48684    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
48685    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
48686    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
48687    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
48688    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
48689    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
48690    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
48691    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
48692    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
48693    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
48694    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
48695    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
48696    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
48697    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
48698    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
48699    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
48700    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
48701    l_rec_acct_attrs.array_date_value(27)  := p_source_146;
48702    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
48703    l_rec_acct_attrs.array_num_value(28)  := p_source_147;
48704    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
48708    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
48705    l_rec_acct_attrs.array_char_value(29)  := p_source_148;
48706    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
48707    l_rec_acct_attrs.array_num_value(30)  := p_source_144;
48709    l_rec_acct_attrs.array_date_value(31)  := p_source_82;
48710    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
48711    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
48712    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
48713    l_rec_acct_attrs.array_date_value(33)  := p_source_84;
48714    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
48715    l_rec_acct_attrs.array_char_value(34)  := p_source_85;
48716    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
48717    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
48718    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
48719    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
48720    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
48721    l_rec_acct_attrs.array_char_value(37)  := p_source_88;
48722    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
48723    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_139);
48724    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
48725    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
48726    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
48727    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
48728    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
48729    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
48730    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
48731    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
48732    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
48733    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
48734    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
48735    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
48736 
48737    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48738    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48739 
48740    ---------------------------------------------------------------------------------------------------------------
48741    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48742    ---------------------------------------------------------------------------------------------------------------
48743    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48744 
48745    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48746    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48747 
48748    IF xla_accounting_cache_pkg.GetValueChar
48749          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48750          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48751    AND l_bflow_method_code = 'PRIOR_ENTRY'
48752 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48753    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48754          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48755        )
48756    THEN
48757          xla_ae_lines_pkg.BflowUpgEntry
48758            (p_business_method_code    => l_bflow_method_code
48759            ,p_business_class_code     => l_bflow_class_code
48760            ,p_balance_type            => l_balance_type_code);
48761    ELSE
48762       NULL;
48763 -- No business flow processing for business flow method of NONE.
48764    END IF;
48765 
48766    --
48767    -- call analytical criteria
48768    --
48769    
48770    --
48771    -- call description
48772    --
48773    -- No description or it is inherited.
48774    --
48775    -- call ADRs
48776    -- Bug 4922099
48777    --
48778    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48779         (NVL(l_actual_upg_option, 'N') = 'O') OR
48780         (NVL(l_enc_upg_option, 'N') = 'O')
48781       )
48782    THEN
48783    NULL;
48784    --
48785    --
48786    
48787   l_ccid := AcctDerRule_46(
48788            p_application_id           => p_application_id
48789          , p_ae_header_id             => l_ae_header_id 
48790 , p_source_48 => p_source_48
48791          , x_transaction_coa_id       => l_adr_transaction_coa_id
48792          , x_accounting_coa_id        => l_adr_accounting_coa_id
48793          , x_value_type_code          => l_adr_value_type_code
48794          , p_side                     => 'NA'
48795    );
48796 
48797    xla_ae_lines_pkg.set_ccid(
48798     p_code_combination_id          => l_ccid
48799   , p_value_type_code              => l_adr_value_type_code
48800   , p_transaction_coa_id           => l_adr_transaction_coa_id
48801   , p_accounting_coa_id            => l_adr_accounting_coa_id
48802   , p_adr_code                     => 'AP_TAX_ACCOUNT'
48803   , p_adr_type_code                => 'S'
48804   , p_component_type               => l_component_type
48805   , p_component_code               => l_component_code
48806   , p_component_type_code          => l_component_type_code
48807   , p_component_appl_id            => l_component_appl_id
48808   , p_amb_context_code             => l_amb_context_code
48809   , p_side                         => 'NA'
48813    --
48810   );
48811 
48812 
48814    --
48815    END IF;
48816    --
48817    -- Bug 4922099
48818    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48819           (NVL(l_enc_upg_option, 'N') = 'O')
48820         ) AND
48821         (l_bflow_method_code = 'PRIOR_ENTRY')
48822       )
48823    THEN
48824       IF
48825       --
48826       1 = 2
48827       --
48828       THEN
48829       xla_accounting_err_pkg.build_message
48830                                     (p_appli_s_name            => 'XLA'
48831                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48832                                     ,p_token_1                 => 'LINE_NUMBER'
48833                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48834                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48835                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48836                                                                              l_component_type
48837                                                                             ,l_component_code
48838                                                                             ,l_component_type_code
48839                                                                             ,l_component_appl_id
48840                                                                             ,l_amb_context_code
48841                                                                             ,l_entity_code
48842                                                                             ,l_event_class_code
48843                                                                            )
48844                                     ,p_token_3                 => 'OWNER'
48845                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48846                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48847                                                                           ,p_lookup_code    => l_component_type_code
48848                                                                          )
48849                                     ,p_token_4                 => 'PRODUCT_NAME'
48850                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48851                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48852                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48853                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48854                                     ,p_ae_header_id            =>  NULL
48855                                        );
48856 
48857         IF (C_LEVEL_ERROR>= g_log_level) THEN
48858                  trace
48859                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48860                       ,p_level    => C_LEVEL_ERROR
48861                       ,p_module   => l_log_module);
48862         END IF;
48863       END IF;
48864    END IF;
48865    --
48866    --
48867    ------------------------------------------------------------------------------------------------
48868    -- 4219869 Business Flow
48869    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48870    -- Prior Entry.  Currently, the following code is always generated.
48871    ------------------------------------------------------------------------------------------------
48872    XLA_AE_LINES_PKG.ValidateCurrentLine;
48873 
48874    ------------------------------------------------------------------------------------
48875    -- 4219869 Business Flow
48876    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48877    ------------------------------------------------------------------------------------
48878    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48879 
48880    ----------------------------------------------------------------------------------
48881    -- 4219869 Business Flow
48882    -- Update journal entry status -- Need to generate this within IF <condition>
48883    ----------------------------------------------------------------------------------
48884    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48885          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48886          ,p_balance_type_code => l_balance_type_code
48887          );
48888 
48889    -------------------------------------------------------------------------------------------
48890    -- 4262811 - Generate the Accrual Reversal lines
48891    -------------------------------------------------------------------------------------------
48892    BEGIN
48893       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48894                               (g_array_event(p_event_id).array_value_num('header_index'));
48895       IF l_acc_rev_flag IS NULL THEN
48896          l_acc_rev_flag := 'N';
48897       END IF;
48898    EXCEPTION
48899       WHEN OTHERS THEN
48900          l_acc_rev_flag := 'N';
48901    END;
48902    --
48903    IF (l_acc_rev_flag = 'Y') THEN
48904 
48905        -- 4645092  ------------------------------------------------------------------------------
48906        -- To allow MPA report to determine if it should generate report process
48910        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48907        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48908        ------------------------------------------------------------------------------------------
48909 
48911        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48912    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48913    -- call ADRs
48914    -- Bug 4922099
48915    --
48916    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48917         (NVL(l_actual_upg_option, 'N') = 'O') OR
48918         (NVL(l_enc_upg_option, 'N') = 'O')
48919       )
48920    THEN
48921    NULL;
48922    --
48923    --
48924    
48925   l_ccid := AcctDerRule_46(
48926            p_application_id           => p_application_id
48927          , p_ae_header_id             => l_ae_header_id 
48928 , p_source_48 => p_source_48
48929          , x_transaction_coa_id       => l_adr_transaction_coa_id
48930          , x_accounting_coa_id        => l_adr_accounting_coa_id
48931          , x_value_type_code          => l_adr_value_type_code
48932          , p_side                     => 'NA'
48933    );
48934 
48935    xla_ae_lines_pkg.set_ccid(
48936     p_code_combination_id          => l_ccid
48937   , p_value_type_code              => l_adr_value_type_code
48938   , p_transaction_coa_id           => l_adr_transaction_coa_id
48939   , p_accounting_coa_id            => l_adr_accounting_coa_id
48940   , p_adr_code                     => 'AP_TAX_ACCOUNT'
48941   , p_adr_type_code                => 'S'
48942   , p_component_type               => l_component_type
48943   , p_component_code               => l_component_code
48944   , p_component_type_code          => l_component_type_code
48945   , p_component_appl_id            => l_component_appl_id
48946   , p_amb_context_code             => l_amb_context_code
48947   , p_side                         => 'NA'
48948   );
48949 
48950 
48951    --
48952    --
48953    END IF;
48954 
48955        --
48956        -- Update the line information that should be overwritten
48957        --
48958        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48959                                          p_header_num   => 1);
48960        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48961 
48962        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48963 
48964        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48965           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48966        END IF;
48967 
48968       --
48969       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48970       --
48971       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48972           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48973       ELSE
48974           ---------------------------------------------------------------------------------------------------
48975           -- 4262811a Switch Sign
48976           ---------------------------------------------------------------------------------------------------
48977           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48978           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48979                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48980           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48981                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48982           -- 5132302
48983           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48984                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48985 
48986       END IF;
48987 
48988       -- 4955764
48989       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48990       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48991 
48992 
48993       XLA_AE_LINES_PKG.ValidateCurrentLine;
48994       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48995 
48996       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48997                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48998                ,p_balance_type_code => l_balance_type_code);
48999 
49000    END IF;
49001 
49002    -----------------------------------------------------------------------------------------
49003    -- 4262811 Multiperiod Accounting
49004    -----------------------------------------------------------------------------------------
49005      -- No MPA option is assigned.
49006 
49007 
49008 END IF;
49009 END IF;
49010 --
49011 
49012 --
49013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49014    trace
49015       (p_msg      => 'END of AcctLineType_112'
49016       ,p_level    => C_LEVEL_PROCEDURE
49017       ,p_module   => l_log_module);
49018 END IF;
49019 --
49020 EXCEPTION
49021   WHEN xla_exceptions_pkg.application_exception THEN
49022       RAISE;
49023   WHEN OTHERS THEN
49027 --
49024        xla_exceptions_pkg.raise_message
49025            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_112');
49026 END AcctLineType_112;
49028 
49029 ---------------------------------------
49030 --
49031 -- PRIVATE FUNCTION
49032 --         AcctLineType_113
49033 --
49034 ---------------------------------------
49035 PROCEDURE AcctLineType_113 (
49036   p_application_id        IN NUMBER
49037  ,p_event_id              IN NUMBER
49038  ,p_calculate_acctd_flag  IN VARCHAR2
49039  ,p_calculate_g_l_flag    IN VARCHAR2
49040  ,p_actual_flag           IN OUT VARCHAR2
49041  ,p_balance_type_code     OUT VARCHAR2
49042  ,p_gain_or_loss_ref      OUT VARCHAR2
49043  
49044 --Automatic Offsets Value
49045  , p_source_10            IN VARCHAR2
49046  , p_source_10_meaning    IN VARCHAR2
49047 --System Discount Account
49048  , p_source_13            IN NUMBER
49049 --Discount Distribution Method
49050  , p_source_14            IN VARCHAR2
49051  , p_source_14_meaning    IN VARCHAR2
49052 --Invoice Distribution Account
49053  , p_source_25            IN NUMBER
49054 --Invoice Distribution Type
49055  , p_source_28            IN VARCHAR2
49056  , p_source_28_meaning    IN VARCHAR2
49057 --Discount Account
49058  , p_source_40            IN NUMBER
49059 --Purchase Order Charge Account
49060  , p_source_41            IN NUMBER
49061 --Purchase Order Variance Account
49062  , p_source_42            IN NUMBER
49063 --When to Account for Payment Option
49064  , p_source_57            IN VARCHAR2
49065 --Accounting Reversal Indicator
49066  , p_source_58            IN VARCHAR2
49067 --Distribution Link Type
49068  , p_source_60            IN VARCHAR2
49069 --Invoice Currency Code
49070  , p_source_72            IN VARCHAR2
49071 --Override Accounted Amount Indicator
49072  , p_source_85            IN VARCHAR2
49073  , p_source_85_meaning    IN VARCHAR2
49074 --Third Party Type
49075  , p_source_88            IN VARCHAR2
49076 --Invoice Distribution Tax Line Identifier
49077  , p_source_91            IN NUMBER
49078 --Invoice Distribution Summary Tax Line Identifier
49079  , p_source_93            IN NUMBER
49080 --Business Flow Accounts Payable Application Identifier
49081  , p_source_96            IN NUMBER
49082 --Payment Distribution Type
49083  , p_source_101            IN VARCHAR2
49084  , p_source_101_meaning    IN VARCHAR2
49085 --Payment Distribution Amount
49086  , p_source_102            IN NUMBER
49087 --Business Flow Payment Distribution Type
49088  , p_source_103            IN VARCHAR2
49089 --Business Flow Payment Entity Code
49090  , p_source_104            IN VARCHAR2
49091 --Business Flow Payment Distribution Identifier
49092  , p_source_105            IN NUMBER
49093 --Business Flow Payment Identifier
49094  , p_source_106            IN NUMBER
49095 --Payment Distribution Identifier
49096  , p_source_107            IN NUMBER
49097 --Payment Distribution (Cleared Rate) Ledger Amount
49098  , p_source_112            IN NUMBER
49099 --Payment Supplier Identifier
49100  , p_source_113            IN NUMBER
49101 --Payment Supplier Site Identifier
49102  , p_source_114            IN NUMBER
49103 --Payment Distribution Reversed Identifier
49104  , p_source_115            IN NUMBER
49105 --Invoice Exchange Date
49106  , p_source_146            IN DATE
49107 --Invoice Exchange Rate
49108  , p_source_147            IN NUMBER
49109 --Invoice Exchange Rate Type
49110  , p_source_148            IN VARCHAR2
49111 )
49112 IS
49113 
49114 l_component_type              VARCHAR2(80);
49115 l_component_code              VARCHAR2(30);
49116 l_component_type_code         VARCHAR2(1);
49117 l_component_appl_id           INTEGER;
49118 l_amb_context_code            VARCHAR2(30);
49119 l_entity_code                 VARCHAR2(30);
49120 l_event_class_code            VARCHAR2(30);
49121 l_ae_header_id                NUMBER;
49122 l_event_type_code             VARCHAR2(30);
49123 l_line_definition_code        VARCHAR2(30);
49124 l_line_definition_owner_code  VARCHAR2(1);
49125 --
49126 -- adr variables
49127 l_segment                     VARCHAR2(30);
49128 l_ccid                        NUMBER;
49129 l_adr_transaction_coa_id      NUMBER;
49130 l_adr_accounting_coa_id       NUMBER;
49131 l_adr_flexfield_segment_code  VARCHAR2(30);
49132 l_adr_flex_value_set_id       NUMBER;
49133 l_adr_value_type_code         VARCHAR2(30);
49134 l_adr_value_combination_id    NUMBER;
49135 l_adr_value_segment_code      VARCHAR2(30);
49136 
49137 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49138 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49139 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49140 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49141 
49142 -- 4262811 Variables ------------------------------------------------------------------------------------------
49143 l_entered_amt_idx             NUMBER;
49144 l_accted_amt_idx              NUMBER;
49145 l_acc_rev_flag                VARCHAR2(1);
49146 l_accrual_line_num            NUMBER;
49147 l_tmp_amt                     NUMBER;
49148 l_acc_rev_natural_side_code   VARCHAR2(1);
49149 
49150 l_num_entries                 NUMBER;
49151 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49152 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49153 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49154 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49158 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49155 l_recog_line_1                NUMBER;
49156 l_recog_line_2                NUMBER;
49157 
49159 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49160 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49161 
49162 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49163 
49164 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49165 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49166 
49167 ---------------------------------------------------------------------------------------------------------------
49168 
49169 
49170 --
49171 -- bulk performance
49172 --
49173 l_balance_type_code           VARCHAR2(1);
49174 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49175 l_log_module                  VARCHAR2(240);
49176 
49177 --
49178 -- Upgrade strategy
49179 --
49180 l_actual_upg_option           VARCHAR2(1);
49181 l_enc_upg_option           VARCHAR2(1);
49182 
49183 --
49184 BEGIN
49185 --
49186 IF g_log_enabled THEN
49187       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
49188 END IF;
49189 --
49190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49191 
49192       trace
49193          (p_msg      => 'BEGIN of AcctLineType_113'
49194          ,p_level    => C_LEVEL_PROCEDURE
49195          ,p_module   => l_log_module);
49196 
49197 END IF;
49198 --
49199 l_component_type             := 'AMB_JLT';
49200 l_component_code             := 'AP_DISCOUNT_ACCR_CLEAR';
49201 l_component_type_code        := 'S';
49202 l_component_appl_id          :=  200;
49203 l_amb_context_code           := 'DEFAULT';
49204 l_entity_code                := 'AP_PAYMENTS';
49205 l_event_class_code           := 'RECONCILED PAYMENTS';
49206 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
49207 l_line_definition_owner_code := 'S';
49208 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
49209 --
49210 l_balance_type_code          := 'A';
49211 l_segment                     := NULL;
49212 l_ccid                        := NULL;
49213 l_adr_transaction_coa_id      := NULL;
49214 l_adr_accounting_coa_id       := NULL;
49215 l_adr_flexfield_segment_code  := NULL;
49216 l_adr_flex_value_set_id       := NULL;
49217 l_adr_value_type_code         := NULL;
49218 l_adr_value_combination_id    := NULL;
49219 l_adr_value_segment_code      := NULL;
49220 
49221 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49222 l_bflow_class_code           := '';    -- 4219869 Business Flow
49223 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49224 l_budgetary_control_flag     := 'N';
49225 
49226 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49227 l_bflow_applied_to_amt       := NULL; -- 5132302
49228 l_entered_amt_idx            := NULL;          -- 4262811
49229 l_accted_amt_idx             := NULL;          -- 4262811
49230 l_acc_rev_flag               := NULL;          -- 4262811
49231 l_accrual_line_num           := NULL;          -- 4262811
49232 l_tmp_amt                    := NULL;          -- 4262811
49233 --
49234  
49235 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49236     l_balance_type_code <> 'B' THEN
49237 IF NVL(p_source_57,'
49238 ') =  'CLEAR_CLEAR' AND 
49239 NVL(p_source_101,'
49240 ') =  'DISCOUNT' AND 
49241 (NVL(p_source_28,'
49242 ') =  'ITEM' OR 
49243 NVL(p_source_28,'
49244 ') =  'MISCELLANEOUS' OR 
49245 NVL(p_source_28,'
49246 ') =  'FREIGHT' OR 
49247 NVL(p_source_28,'
49248 ') =  'REC_TAX' OR 
49249 NVL(p_source_28,'
49250 ') =  'NONREC_TAX' OR 
49251 NVL(p_source_28,'
49252 ') =  'TIPV' OR 
49253 NVL(p_source_28,'
49254 ') =  'TRV' OR 
49255 NVL(p_source_28,'
49256 ') =  'IPV' OR 
49257 NVL(p_source_28,'
49258 ') =  'ACCRUAL')
49259  THEN 
49260 
49261    --
49262    XLA_AE_LINES_PKG.SetNewLine;
49263 
49264    p_balance_type_code          := l_balance_type_code;
49265    -- set the flag so later we will know whether the gain loss line needs to be created
49266    
49267    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49268      p_actual_flag :='A';
49269    END IF;
49270 
49271    --
49272    -- bulk performance
49273    --
49274    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49275                                       p_header_num   => 0); -- 4262811
49276    --
49277    -- set accounting line options
49278    --
49279    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49280            p_natural_side_code          => 'C'
49281          , p_gain_or_loss_flag          => 'N'
49282          , p_gl_transfer_mode_code      => 'S'
49283          , p_acct_entry_type_code       => 'A'
49284          , p_switch_side_flag           => 'Y'
49285          , p_merge_duplicate_code       => 'A'
49286          );
49287    --
49288    l_acc_rev_natural_side_code := 'D';  -- 4262811
49289    -- 
49290    --
49291    -- set accounting line type info
49292    --
49293    xla_ae_lines_pkg.SetAcctLineType
49294       (p_component_type             => l_component_type
49295       ,p_event_type_code            => l_event_type_code
49296       ,p_line_definition_owner_code => l_line_definition_owner_code
49300       ,p_accounting_line_appl_id    => l_component_appl_id
49297       ,p_line_definition_code       => l_line_definition_code
49298       ,p_accounting_line_code       => l_component_code
49299       ,p_accounting_line_type_code  => l_component_type_code
49301       ,p_amb_context_code           => l_amb_context_code
49302       ,p_entity_code                => l_entity_code
49303       ,p_event_class_code           => l_event_class_code);
49304    --
49305    -- set accounting class
49306    --
49307    xla_ae_lines_pkg.SetAcctClass(
49308            p_accounting_class_code  => 'DISCOUNT'
49309          , p_ae_header_id           => l_ae_header_id
49310          );
49311 
49312    --
49313    -- set rounding class
49314    --
49315    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49316                       'DISCOUNT';
49317 
49318    --
49319    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49320    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49321    --
49322    -- bulk performance
49323    --
49324    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49325 
49326    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49327       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49328 
49329    -- 4955764
49330    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49331       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49332 
49333    -- 4458381 Public Sector Enh
49334    
49335    --
49336    -- set accounting attributes for the line type
49337    --
49338    l_entered_amt_idx := 10;
49339    l_accted_amt_idx  := 15;
49340    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
49341    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49342    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
49343    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49344    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
49345    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49346    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
49347    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49348    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
49349    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49350    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
49351    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49352    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
49353    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49354    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
49355    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49356    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
49357    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49358    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
49359    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49360    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
49361    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49362    l_rec_acct_attrs.array_char_value(11)  := p_source_72;
49363    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49364    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
49365    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49366    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
49367    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49368    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
49369    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49370    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
49371    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49372    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
49373    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49374    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
49375    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49376    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
49377    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49378    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
49379    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49380    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
49381    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49382    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
49383    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49384    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
49385    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49386    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
49387    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49388    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
49389 
49390    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49391    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49392 
49393    ---------------------------------------------------------------------------------------------------------------
49394    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49398    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49395    ---------------------------------------------------------------------------------------------------------------
49396    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49397 
49399    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49400 
49401    IF xla_accounting_cache_pkg.GetValueChar
49402          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49403          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49404    AND l_bflow_method_code = 'PRIOR_ENTRY'
49405 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49406    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49407          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49408        )
49409    THEN
49410          xla_ae_lines_pkg.BflowUpgEntry
49411            (p_business_method_code    => l_bflow_method_code
49412            ,p_business_class_code     => l_bflow_class_code
49413            ,p_balance_type            => l_balance_type_code);
49414    ELSE
49415       NULL;
49416 -- No business flow processing for business flow method of NONE.
49417    END IF;
49418 
49419    --
49420    -- call analytical criteria
49421    --
49422    
49423    --
49424    -- call description
49425    --
49426    -- No description or it is inherited.
49427    --
49428    -- call ADRs
49429    -- Bug 4922099
49430    --
49431    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49432         (NVL(l_actual_upg_option, 'N') = 'O') OR
49433         (NVL(l_enc_upg_option, 'N') = 'O')
49434       )
49435    THEN
49436    NULL;
49437    --
49438    --
49439    
49440   l_ccid := AcctDerRule_31(
49441            p_application_id           => p_application_id
49442          , p_ae_header_id             => l_ae_header_id 
49443 , p_source_10 => p_source_10
49444 , p_source_10_meaning => p_source_10_meaning
49445 , p_source_13 => p_source_13
49446 , p_source_14 => p_source_14
49447 , p_source_14_meaning => p_source_14_meaning
49448 , p_source_25 => p_source_25
49449 , p_source_28 => p_source_28
49450 , p_source_28_meaning => p_source_28_meaning
49451 , p_source_40 => p_source_40
49452 , p_source_41 => p_source_41
49453 , p_source_42 => p_source_42
49454          , x_transaction_coa_id       => l_adr_transaction_coa_id
49455          , x_accounting_coa_id        => l_adr_accounting_coa_id
49456          , x_value_type_code          => l_adr_value_type_code
49457          , p_side                     => 'NA'
49458    );
49459 
49460    xla_ae_lines_pkg.set_ccid(
49461     p_code_combination_id          => l_ccid
49462   , p_value_type_code              => l_adr_value_type_code
49463   , p_transaction_coa_id           => l_adr_transaction_coa_id
49464   , p_accounting_coa_id            => l_adr_accounting_coa_id
49465   , p_adr_code                     => 'AP_DISCOUNT'
49466   , p_adr_type_code                => 'S'
49467   , p_component_type               => l_component_type
49468   , p_component_code               => l_component_code
49469   , p_component_type_code          => l_component_type_code
49470   , p_component_appl_id            => l_component_appl_id
49471   , p_amb_context_code             => l_amb_context_code
49472   , p_side                         => 'NA'
49473   );
49474 
49475 
49476    l_segment := AcctDerRule_22(
49477            p_application_id           => p_application_id
49478          , p_ae_header_id             => l_ae_header_id 
49479 , p_source_10 => p_source_10
49480 , p_source_10_meaning => p_source_10_meaning
49481 , p_source_14 => p_source_14
49482 , p_source_14_meaning => p_source_14_meaning
49483 , p_source_25 => p_source_25
49484          , x_transaction_coa_id       => l_adr_transaction_coa_id
49485          , x_accounting_coa_id        => l_adr_accounting_coa_id
49486          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49487          , x_flex_value_set_id        => l_adr_flex_value_set_id
49488          , x_value_type_code          => l_adr_value_type_code
49489          , x_value_combination_id     => l_adr_value_combination_id
49490          , x_value_segment_code       => l_adr_value_segment_code
49491          , p_side                     => 'NA'
49492          , p_override_seg_flag        => 'Y'
49493    );
49494 
49495    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49496 
49497       xla_ae_lines_pkg.set_segment(
49498           p_to_segment_code         => 'GL_BALANCING'
49499         , p_segment_value           => l_segment
49500         , p_from_segment_code       => l_adr_value_segment_code
49501         , p_from_combination_id     => l_adr_value_combination_id
49502         , p_value_type_code         => l_adr_value_type_code
49503         , p_transaction_coa_id      => l_adr_transaction_coa_id
49504         , p_accounting_coa_id       => l_adr_accounting_coa_id
49505         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49506         , p_flex_value_set_id       => l_adr_flex_value_set_id
49507         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
49508         , p_adr_type_code           => 'S'
49509         , p_component_type          => l_component_type
49510         , p_component_code          => l_component_code
49511         , p_component_type_code     => l_component_type_code
49512         , p_component_appl_id       => l_component_appl_id
49513         , p_amb_context_code        => l_amb_context_code
49517         );
49514         , p_entity_code             => 'AP_PAYMENTS'
49515         , p_event_class_code        => 'RECONCILED PAYMENTS'
49516         , p_side                    => 'NA'
49518 
49519   END IF;
49520 
49521    l_segment := AcctDerRule_7(
49522            p_application_id           => p_application_id
49523          , p_ae_header_id             => l_ae_header_id 
49524 , p_source_10 => p_source_10
49525 , p_source_10_meaning => p_source_10_meaning
49526 , p_source_13 => p_source_13
49527 , p_source_14 => p_source_14
49528 , p_source_14_meaning => p_source_14_meaning
49529          , x_transaction_coa_id       => l_adr_transaction_coa_id
49530          , x_accounting_coa_id        => l_adr_accounting_coa_id
49531          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49532          , x_flex_value_set_id        => l_adr_flex_value_set_id
49533          , x_value_type_code          => l_adr_value_type_code
49534          , x_value_combination_id     => l_adr_value_combination_id
49535          , x_value_segment_code       => l_adr_value_segment_code
49536          , p_side                     => 'NA'
49537          , p_override_seg_flag        => 'Y'
49538    );
49539 
49540    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49541 
49542       xla_ae_lines_pkg.set_segment(
49543           p_to_segment_code         => 'GL_ACCOUNT'
49544         , p_segment_value           => l_segment
49545         , p_from_segment_code       => l_adr_value_segment_code
49546         , p_from_combination_id     => l_adr_value_combination_id
49547         , p_value_type_code         => l_adr_value_type_code
49548         , p_transaction_coa_id      => l_adr_transaction_coa_id
49549         , p_accounting_coa_id       => l_adr_accounting_coa_id
49550         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49551         , p_flex_value_set_id       => l_adr_flex_value_set_id
49552         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
49553         , p_adr_type_code           => 'S'
49554         , p_component_type          => l_component_type
49555         , p_component_code          => l_component_code
49556         , p_component_type_code     => l_component_type_code
49557         , p_component_appl_id       => l_component_appl_id
49558         , p_amb_context_code        => l_amb_context_code
49559         , p_entity_code             => 'AP_PAYMENTS'
49560         , p_event_class_code        => 'RECONCILED PAYMENTS'
49561         , p_side                    => 'NA'
49562         );
49563 
49564   END IF;
49565 
49566    --
49567    --
49568    END IF;
49569    --
49570    -- Bug 4922099
49571    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49572           (NVL(l_enc_upg_option, 'N') = 'O')
49573         ) AND
49574         (l_bflow_method_code = 'PRIOR_ENTRY')
49575       )
49576    THEN
49577       IF
49578       --
49579       1 = 2
49580       --
49581       THEN
49582       xla_accounting_err_pkg.build_message
49583                                     (p_appli_s_name            => 'XLA'
49584                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49585                                     ,p_token_1                 => 'LINE_NUMBER'
49586                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49587                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49588                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49589                                                                              l_component_type
49590                                                                             ,l_component_code
49591                                                                             ,l_component_type_code
49592                                                                             ,l_component_appl_id
49593                                                                             ,l_amb_context_code
49594                                                                             ,l_entity_code
49595                                                                             ,l_event_class_code
49596                                                                            )
49597                                     ,p_token_3                 => 'OWNER'
49598                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49599                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49600                                                                           ,p_lookup_code    => l_component_type_code
49601                                                                          )
49602                                     ,p_token_4                 => 'PRODUCT_NAME'
49603                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49604                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49605                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49606                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49607                                     ,p_ae_header_id            =>  NULL
49608                                        );
49609 
49610         IF (C_LEVEL_ERROR>= g_log_level) THEN
49614                       ,p_module   => l_log_module);
49611                  trace
49612                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49613                       ,p_level    => C_LEVEL_ERROR
49615         END IF;
49616       END IF;
49617    END IF;
49618    --
49619    --
49620    ------------------------------------------------------------------------------------------------
49621    -- 4219869 Business Flow
49622    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49623    -- Prior Entry.  Currently, the following code is always generated.
49624    ------------------------------------------------------------------------------------------------
49625    XLA_AE_LINES_PKG.ValidateCurrentLine;
49626 
49627    ------------------------------------------------------------------------------------
49628    -- 4219869 Business Flow
49629    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49630    ------------------------------------------------------------------------------------
49631    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49632 
49633    ----------------------------------------------------------------------------------
49634    -- 4219869 Business Flow
49635    -- Update journal entry status -- Need to generate this within IF <condition>
49636    ----------------------------------------------------------------------------------
49637    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49638          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49639          ,p_balance_type_code => l_balance_type_code
49640          );
49641 
49642    -------------------------------------------------------------------------------------------
49643    -- 4262811 - Generate the Accrual Reversal lines
49644    -------------------------------------------------------------------------------------------
49645    BEGIN
49646       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49647                               (g_array_event(p_event_id).array_value_num('header_index'));
49648       IF l_acc_rev_flag IS NULL THEN
49649          l_acc_rev_flag := 'N';
49650       END IF;
49651    EXCEPTION
49652       WHEN OTHERS THEN
49653          l_acc_rev_flag := 'N';
49654    END;
49655    --
49656    IF (l_acc_rev_flag = 'Y') THEN
49657 
49658        -- 4645092  ------------------------------------------------------------------------------
49659        -- To allow MPA report to determine if it should generate report process
49660        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49661        ------------------------------------------------------------------------------------------
49662 
49663        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49664        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49665    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49666    -- call ADRs
49667    -- Bug 4922099
49668    --
49669    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49670         (NVL(l_actual_upg_option, 'N') = 'O') OR
49671         (NVL(l_enc_upg_option, 'N') = 'O')
49672       )
49673    THEN
49674    NULL;
49675    --
49676    --
49677    
49678   l_ccid := AcctDerRule_31(
49679            p_application_id           => p_application_id
49680          , p_ae_header_id             => l_ae_header_id 
49681 , p_source_10 => p_source_10
49682 , p_source_10_meaning => p_source_10_meaning
49683 , p_source_13 => p_source_13
49684 , p_source_14 => p_source_14
49685 , p_source_14_meaning => p_source_14_meaning
49686 , p_source_25 => p_source_25
49687 , p_source_28 => p_source_28
49688 , p_source_28_meaning => p_source_28_meaning
49689 , p_source_40 => p_source_40
49690 , p_source_41 => p_source_41
49691 , p_source_42 => p_source_42
49692          , x_transaction_coa_id       => l_adr_transaction_coa_id
49693          , x_accounting_coa_id        => l_adr_accounting_coa_id
49694          , x_value_type_code          => l_adr_value_type_code
49695          , p_side                     => 'NA'
49696    );
49697 
49698    xla_ae_lines_pkg.set_ccid(
49699     p_code_combination_id          => l_ccid
49700   , p_value_type_code              => l_adr_value_type_code
49701   , p_transaction_coa_id           => l_adr_transaction_coa_id
49702   , p_accounting_coa_id            => l_adr_accounting_coa_id
49703   , p_adr_code                     => 'AP_DISCOUNT'
49704   , p_adr_type_code                => 'S'
49705   , p_component_type               => l_component_type
49706   , p_component_code               => l_component_code
49707   , p_component_type_code          => l_component_type_code
49708   , p_component_appl_id            => l_component_appl_id
49709   , p_amb_context_code             => l_amb_context_code
49710   , p_side                         => 'NA'
49711   );
49712 
49713 
49714    l_segment := AcctDerRule_22(
49715            p_application_id           => p_application_id
49716          , p_ae_header_id             => l_ae_header_id 
49717 , p_source_10 => p_source_10
49718 , p_source_10_meaning => p_source_10_meaning
49719 , p_source_14 => p_source_14
49720 , p_source_14_meaning => p_source_14_meaning
49721 , p_source_25 => p_source_25
49722          , x_transaction_coa_id       => l_adr_transaction_coa_id
49723          , x_accounting_coa_id        => l_adr_accounting_coa_id
49724          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49725          , x_flex_value_set_id        => l_adr_flex_value_set_id
49729          , p_side                     => 'NA'
49726          , x_value_type_code          => l_adr_value_type_code
49727          , x_value_combination_id     => l_adr_value_combination_id
49728          , x_value_segment_code       => l_adr_value_segment_code
49730          , p_override_seg_flag        => 'Y'
49731    );
49732 
49733    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49734 
49735       xla_ae_lines_pkg.set_segment(
49736           p_to_segment_code         => 'GL_BALANCING'
49737         , p_segment_value           => l_segment
49738         , p_from_segment_code       => l_adr_value_segment_code
49739         , p_from_combination_id     => l_adr_value_combination_id
49740         , p_value_type_code         => l_adr_value_type_code
49741         , p_transaction_coa_id      => l_adr_transaction_coa_id
49742         , p_accounting_coa_id       => l_adr_accounting_coa_id
49743         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49744         , p_flex_value_set_id       => l_adr_flex_value_set_id
49745         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
49746         , p_adr_type_code           => 'S'
49747         , p_component_type          => l_component_type
49748         , p_component_code          => l_component_code
49749         , p_component_type_code     => l_component_type_code
49750         , p_component_appl_id       => l_component_appl_id
49751         , p_amb_context_code        => l_amb_context_code
49752         , p_entity_code             => 'AP_PAYMENTS'
49753         , p_event_class_code        => 'RECONCILED PAYMENTS'
49754         , p_side                    => 'NA'
49755         );
49756 
49757   END IF;
49758 
49759    l_segment := AcctDerRule_7(
49760            p_application_id           => p_application_id
49761          , p_ae_header_id             => l_ae_header_id 
49762 , p_source_10 => p_source_10
49763 , p_source_10_meaning => p_source_10_meaning
49764 , p_source_13 => p_source_13
49765 , p_source_14 => p_source_14
49766 , p_source_14_meaning => p_source_14_meaning
49767          , x_transaction_coa_id       => l_adr_transaction_coa_id
49768          , x_accounting_coa_id        => l_adr_accounting_coa_id
49769          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49770          , x_flex_value_set_id        => l_adr_flex_value_set_id
49771          , x_value_type_code          => l_adr_value_type_code
49772          , x_value_combination_id     => l_adr_value_combination_id
49773          , x_value_segment_code       => l_adr_value_segment_code
49774          , p_side                     => 'NA'
49775          , p_override_seg_flag        => 'Y'
49776    );
49777 
49778    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49779 
49780       xla_ae_lines_pkg.set_segment(
49781           p_to_segment_code         => 'GL_ACCOUNT'
49782         , p_segment_value           => l_segment
49783         , p_from_segment_code       => l_adr_value_segment_code
49784         , p_from_combination_id     => l_adr_value_combination_id
49785         , p_value_type_code         => l_adr_value_type_code
49786         , p_transaction_coa_id      => l_adr_transaction_coa_id
49787         , p_accounting_coa_id       => l_adr_accounting_coa_id
49788         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49789         , p_flex_value_set_id       => l_adr_flex_value_set_id
49790         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
49791         , p_adr_type_code           => 'S'
49792         , p_component_type          => l_component_type
49793         , p_component_code          => l_component_code
49794         , p_component_type_code     => l_component_type_code
49795         , p_component_appl_id       => l_component_appl_id
49796         , p_amb_context_code        => l_amb_context_code
49797         , p_entity_code             => 'AP_PAYMENTS'
49798         , p_event_class_code        => 'RECONCILED PAYMENTS'
49799         , p_side                    => 'NA'
49800         );
49801 
49802   END IF;
49803 
49804    --
49805    --
49806    END IF;
49807 
49808        --
49809        -- Update the line information that should be overwritten
49810        --
49811        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49812                                          p_header_num   => 1);
49813        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49814 
49815        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49816 
49817        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49818           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49819        END IF;
49820 
49821       --
49822       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49823       --
49824       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49825           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49826       ELSE
49827           ---------------------------------------------------------------------------------------------------
49828           -- 4262811a Switch Sign
49829           ---------------------------------------------------------------------------------------------------
49830           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49831           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49835           -- 5132302
49832                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49833           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49834                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49836           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49837                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49838 
49839       END IF;
49840 
49841       -- 4955764
49842       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49843       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49844 
49845 
49846       XLA_AE_LINES_PKG.ValidateCurrentLine;
49847       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49848 
49849       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49850                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49851                ,p_balance_type_code => l_balance_type_code);
49852 
49853    END IF;
49854 
49855    -----------------------------------------------------------------------------------------
49856    -- 4262811 Multiperiod Accounting
49857    -----------------------------------------------------------------------------------------
49858      -- No MPA option is assigned.
49859 
49860 
49861 END IF;
49862 END IF;
49863 --
49864 
49865 --
49866 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49867    trace
49868       (p_msg      => 'END of AcctLineType_113'
49869       ,p_level    => C_LEVEL_PROCEDURE
49870       ,p_module   => l_log_module);
49871 END IF;
49872 --
49873 EXCEPTION
49874   WHEN xla_exceptions_pkg.application_exception THEN
49875       RAISE;
49876   WHEN OTHERS THEN
49877        xla_exceptions_pkg.raise_message
49878            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_113');
49879 END AcctLineType_113;
49880 --
49881 
49882 ---------------------------------------
49883 --
49884 -- PRIVATE FUNCTION
49885 --         AcctLineType_114
49886 --
49887 ---------------------------------------
49888 PROCEDURE AcctLineType_114 (
49889   p_application_id        IN NUMBER
49890  ,p_event_id              IN NUMBER
49891  ,p_calculate_acctd_flag  IN VARCHAR2
49892  ,p_calculate_g_l_flag    IN VARCHAR2
49893  ,p_actual_flag           IN OUT VARCHAR2
49894  ,p_balance_type_code     OUT VARCHAR2
49895  ,p_gain_or_loss_ref      OUT VARCHAR2
49896  
49897 --Payment Currency Code
49898  , p_source_8            IN VARCHAR2
49899 --Automatic Offsets Value
49900  , p_source_10            IN VARCHAR2
49901  , p_source_10_meaning    IN VARCHAR2
49902 --System Discount Account
49903  , p_source_13            IN NUMBER
49904 --Discount Distribution Method
49905  , p_source_14            IN VARCHAR2
49906  , p_source_14_meaning    IN VARCHAR2
49907 --Invoice Distribution Account
49908  , p_source_25            IN NUMBER
49909 --Invoice Distribution Type
49910  , p_source_28            IN VARCHAR2
49911  , p_source_28_meaning    IN VARCHAR2
49912 --Discount Account
49913  , p_source_40            IN NUMBER
49914 --Purchase Order Charge Account
49915  , p_source_41            IN NUMBER
49916 --Purchase Order Variance Account
49917  , p_source_42            IN NUMBER
49918 --When to Account for Payment Option
49919  , p_source_57            IN VARCHAR2
49920 --Accounting Reversal Indicator
49921  , p_source_58            IN VARCHAR2
49922 --Distribution Link Type
49923  , p_source_60            IN VARCHAR2
49924 --Override Accounted Amount Indicator
49925  , p_source_85            IN VARCHAR2
49926  , p_source_85_meaning    IN VARCHAR2
49927 --Third Party Type
49928  , p_source_88            IN VARCHAR2
49929 --Invoice Distribution Tax Line Identifier
49930  , p_source_91            IN NUMBER
49931 --Invoice Distribution Tax Distribution Identifier from Tax
49932  , p_source_92            IN NUMBER
49933 --Invoice Distribution Summary Tax Line Identifier
49934  , p_source_93            IN NUMBER
49935 --Business Flow Accounts Payable Application Identifier
49936  , p_source_96            IN NUMBER
49937 --Business Flow Invoice Distribution Type
49938  , p_source_97            IN VARCHAR2
49939 --Business Flow Invoice Entity Code
49940  , p_source_98            IN VARCHAR2
49941 --Business Flow Invoice Distribution Identifier
49942  , p_source_99            IN NUMBER
49943 --Business Flow Invoice Identifier
49944  , p_source_100            IN NUMBER
49945 --Payment Distribution Type
49946  , p_source_101            IN VARCHAR2
49947  , p_source_101_meaning    IN VARCHAR2
49948 --Payment Distribution Amount
49949  , p_source_102            IN NUMBER
49950 --Payment Distribution Identifier
49951  , p_source_107            IN NUMBER
49952 --Payment Supplier Identifier
49953  , p_source_113            IN NUMBER
49954 --Payment Supplier Site Identifier
49955  , p_source_114            IN NUMBER
49956 --Payment Distribution Reversed Identifier
49957  , p_source_115            IN NUMBER
49958 --Payment Distribution (Payment Rate) Ledger Amount
49959  , p_source_118            IN NUMBER
49960 --Payment Type
49961  , p_source_125            IN VARCHAR2
49962  , p_source_125_meaning    IN VARCHAR2
49963 --Payment Processing Type
49964  , p_source_126            IN VARCHAR2
49968  , p_source_146            IN DATE
49965 --Invoice Distribution Amount of the Payment Distribution
49966  , p_source_127            IN NUMBER
49967 --Invoice Exchange Date
49969 --Invoice Exchange Rate
49970  , p_source_147            IN NUMBER
49971 --Invoice Exchange Rate Type
49972  , p_source_148            IN VARCHAR2
49973 )
49974 IS
49975 
49976 l_component_type              VARCHAR2(80);
49977 l_component_code              VARCHAR2(30);
49978 l_component_type_code         VARCHAR2(1);
49979 l_component_appl_id           INTEGER;
49980 l_amb_context_code            VARCHAR2(30);
49981 l_entity_code                 VARCHAR2(30);
49982 l_event_class_code            VARCHAR2(30);
49983 l_ae_header_id                NUMBER;
49984 l_event_type_code             VARCHAR2(30);
49985 l_line_definition_code        VARCHAR2(30);
49986 l_line_definition_owner_code  VARCHAR2(1);
49987 --
49988 -- adr variables
49989 l_segment                     VARCHAR2(30);
49990 l_ccid                        NUMBER;
49991 l_adr_transaction_coa_id      NUMBER;
49992 l_adr_accounting_coa_id       NUMBER;
49993 l_adr_flexfield_segment_code  VARCHAR2(30);
49994 l_adr_flex_value_set_id       NUMBER;
49995 l_adr_value_type_code         VARCHAR2(30);
49996 l_adr_value_combination_id    NUMBER;
49997 l_adr_value_segment_code      VARCHAR2(30);
49998 
49999 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50000 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50001 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50002 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50003 
50004 -- 4262811 Variables ------------------------------------------------------------------------------------------
50005 l_entered_amt_idx             NUMBER;
50006 l_accted_amt_idx              NUMBER;
50007 l_acc_rev_flag                VARCHAR2(1);
50008 l_accrual_line_num            NUMBER;
50009 l_tmp_amt                     NUMBER;
50010 l_acc_rev_natural_side_code   VARCHAR2(1);
50011 
50012 l_num_entries                 NUMBER;
50013 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50014 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50015 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50016 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50017 l_recog_line_1                NUMBER;
50018 l_recog_line_2                NUMBER;
50019 
50020 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50021 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50022 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50023 
50024 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50025 
50026 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50027 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50028 
50029 ---------------------------------------------------------------------------------------------------------------
50030 
50031 
50032 --
50033 -- bulk performance
50034 --
50035 l_balance_type_code           VARCHAR2(1);
50036 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50037 l_log_module                  VARCHAR2(240);
50038 
50039 --
50040 -- Upgrade strategy
50041 --
50042 l_actual_upg_option           VARCHAR2(1);
50043 l_enc_upg_option           VARCHAR2(1);
50044 
50045 --
50046 BEGIN
50047 --
50048 IF g_log_enabled THEN
50049       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
50050 END IF;
50051 --
50052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50053 
50054       trace
50055          (p_msg      => 'BEGIN of AcctLineType_114'
50056          ,p_level    => C_LEVEL_PROCEDURE
50057          ,p_module   => l_log_module);
50058 
50059 END IF;
50060 --
50061 l_component_type             := 'AMB_JLT';
50062 l_component_code             := 'AP_DISCOUNT_ACCR_PMT';
50063 l_component_type_code        := 'S';
50064 l_component_appl_id          :=  200;
50065 l_amb_context_code           := 'DEFAULT';
50066 l_entity_code                := 'AP_PAYMENTS';
50067 l_event_class_code           := 'PAYMENTS';
50068 l_event_type_code            := 'PAYMENTS_ALL';
50069 l_line_definition_owner_code := 'S';
50070 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
50071 --
50072 l_balance_type_code          := 'A';
50073 l_segment                     := NULL;
50074 l_ccid                        := NULL;
50075 l_adr_transaction_coa_id      := NULL;
50076 l_adr_accounting_coa_id       := NULL;
50077 l_adr_flexfield_segment_code  := NULL;
50078 l_adr_flex_value_set_id       := NULL;
50079 l_adr_value_type_code         := NULL;
50080 l_adr_value_combination_id    := NULL;
50081 l_adr_value_segment_code      := NULL;
50082 
50083 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50084 l_bflow_class_code           := '';    -- 4219869 Business Flow
50085 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50086 l_budgetary_control_flag     := 'N';
50087 
50088 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50089 l_bflow_applied_to_amt       := NULL; -- 5132302
50090 l_entered_amt_idx            := NULL;          -- 4262811
50091 l_accted_amt_idx             := NULL;          -- 4262811
50092 l_acc_rev_flag               := NULL;          -- 4262811
50096  
50093 l_accrual_line_num           := NULL;          -- 4262811
50094 l_tmp_amt                    := NULL;          -- 4262811
50095 --
50097 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50098     l_balance_type_code <> 'B' THEN
50099 IF NVL(p_source_57,'
50100 ') <>  'CLEAR_CLEAR' AND 
50101 NVL(p_source_101,'
50102 ') =  'DISCOUNT' AND 
50103 NVL(p_source_125,'
50104 ') <>  'R' AND 
50105 NVL(p_source_126,'
50106 ') <>  'PAYMENTCARD'
50107  THEN 
50108 
50109    --
50110    XLA_AE_LINES_PKG.SetNewLine;
50111 
50112    p_balance_type_code          := l_balance_type_code;
50113    -- set the flag so later we will know whether the gain loss line needs to be created
50114    
50115    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50116      p_actual_flag :='A';
50117    END IF;
50118 
50119    --
50120    -- bulk performance
50121    --
50122    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50123                                       p_header_num   => 0); -- 4262811
50124    --
50125    -- set accounting line options
50126    --
50127    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50128            p_natural_side_code          => 'C'
50129          , p_gain_or_loss_flag          => 'N'
50130          , p_gl_transfer_mode_code      => 'S'
50131          , p_acct_entry_type_code       => 'A'
50132          , p_switch_side_flag           => 'Y'
50133          , p_merge_duplicate_code       => 'A'
50134          );
50135    --
50136    l_acc_rev_natural_side_code := 'D';  -- 4262811
50137    -- 
50138    --
50139    -- set accounting line type info
50140    --
50141    xla_ae_lines_pkg.SetAcctLineType
50142       (p_component_type             => l_component_type
50143       ,p_event_type_code            => l_event_type_code
50144       ,p_line_definition_owner_code => l_line_definition_owner_code
50145       ,p_line_definition_code       => l_line_definition_code
50146       ,p_accounting_line_code       => l_component_code
50147       ,p_accounting_line_type_code  => l_component_type_code
50148       ,p_accounting_line_appl_id    => l_component_appl_id
50149       ,p_amb_context_code           => l_amb_context_code
50150       ,p_entity_code                => l_entity_code
50151       ,p_event_class_code           => l_event_class_code);
50152    --
50153    -- set accounting class
50154    --
50155    xla_ae_lines_pkg.SetAcctClass(
50156            p_accounting_class_code  => 'DISCOUNT'
50157          , p_ae_header_id           => l_ae_header_id
50158          );
50159 
50160    --
50161    -- set rounding class
50162    --
50163    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50164                       'DISCOUNT';
50165 
50166    --
50167    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50168    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50169    --
50170    -- bulk performance
50171    --
50172    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50173 
50174    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50175       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50176 
50177    -- 4955764
50178    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50179       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50180 
50181    -- 4458381 Public Sector Enh
50182    
50183    --
50184    -- set accounting attributes for the line type
50185    --
50186    l_entered_amt_idx := 10;
50187    l_accted_amt_idx  := 15;
50188    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
50189    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50190    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
50191    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
50192    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
50193    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
50194    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
50195    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50196    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
50197    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
50198    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
50199    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
50200    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
50201    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50202    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
50203    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
50204    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
50205    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
50206    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
50207    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
50208    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
50209    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
50210    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
50211    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
50212    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
50216    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
50213    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
50214    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
50215    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
50217    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
50218    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
50219    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
50220    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
50221    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
50222    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
50223    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
50224    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
50225    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
50226    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
50227    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
50228    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
50229    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
50230    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
50231    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
50232    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
50233    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
50234    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
50235    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
50236    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
50237 
50238    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50239    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50240 
50241    ---------------------------------------------------------------------------------------------------------------
50242    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50243    ---------------------------------------------------------------------------------------------------------------
50244    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50245 
50246    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50247    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50248 
50249    IF xla_accounting_cache_pkg.GetValueChar
50250          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50251          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50252    AND l_bflow_method_code = 'PRIOR_ENTRY'
50253 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50254    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50255          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50256        )
50257    THEN
50258          xla_ae_lines_pkg.BflowUpgEntry
50259            (p_business_method_code    => l_bflow_method_code
50260            ,p_business_class_code     => l_bflow_class_code
50261            ,p_balance_type            => l_balance_type_code);
50262    ELSE
50263       NULL;
50264 -- No business flow processing for business flow method of NONE.
50265    END IF;
50266 
50267    --
50268    -- call analytical criteria
50269    --
50270    
50271    --
50272    -- call description
50273    --
50274    -- No description or it is inherited.
50275    --
50276    -- call ADRs
50277    -- Bug 4922099
50278    --
50279    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50280         (NVL(l_actual_upg_option, 'N') = 'O') OR
50281         (NVL(l_enc_upg_option, 'N') = 'O')
50282       )
50283    THEN
50284    NULL;
50285    --
50286    --
50287    
50288   l_ccid := AcctDerRule_31(
50289            p_application_id           => p_application_id
50290          , p_ae_header_id             => l_ae_header_id 
50291 , p_source_10 => p_source_10
50292 , p_source_10_meaning => p_source_10_meaning
50293 , p_source_13 => p_source_13
50294 , p_source_14 => p_source_14
50295 , p_source_14_meaning => p_source_14_meaning
50296 , p_source_25 => p_source_25
50297 , p_source_28 => p_source_28
50298 , p_source_28_meaning => p_source_28_meaning
50299 , p_source_40 => p_source_40
50300 , p_source_41 => p_source_41
50301 , p_source_42 => p_source_42
50302          , x_transaction_coa_id       => l_adr_transaction_coa_id
50303          , x_accounting_coa_id        => l_adr_accounting_coa_id
50304          , x_value_type_code          => l_adr_value_type_code
50305          , p_side                     => 'NA'
50306    );
50307 
50308    xla_ae_lines_pkg.set_ccid(
50309     p_code_combination_id          => l_ccid
50310   , p_value_type_code              => l_adr_value_type_code
50311   , p_transaction_coa_id           => l_adr_transaction_coa_id
50312   , p_accounting_coa_id            => l_adr_accounting_coa_id
50313   , p_adr_code                     => 'AP_DISCOUNT'
50314   , p_adr_type_code                => 'S'
50315   , p_component_type               => l_component_type
50316   , p_component_code               => l_component_code
50317   , p_component_type_code          => l_component_type_code
50318   , p_component_appl_id            => l_component_appl_id
50319   , p_amb_context_code             => l_amb_context_code
50320   , p_side                         => 'NA'
50321   );
50322 
50323 
50327 , p_source_10 => p_source_10
50324    l_segment := AcctDerRule_22(
50325            p_application_id           => p_application_id
50326          , p_ae_header_id             => l_ae_header_id 
50328 , p_source_10_meaning => p_source_10_meaning
50329 , p_source_14 => p_source_14
50330 , p_source_14_meaning => p_source_14_meaning
50331 , p_source_25 => p_source_25
50332          , x_transaction_coa_id       => l_adr_transaction_coa_id
50333          , x_accounting_coa_id        => l_adr_accounting_coa_id
50334          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50335          , x_flex_value_set_id        => l_adr_flex_value_set_id
50336          , x_value_type_code          => l_adr_value_type_code
50337          , x_value_combination_id     => l_adr_value_combination_id
50338          , x_value_segment_code       => l_adr_value_segment_code
50339          , p_side                     => 'NA'
50340          , p_override_seg_flag        => 'Y'
50341    );
50342 
50343    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50344 
50345       xla_ae_lines_pkg.set_segment(
50346           p_to_segment_code         => 'GL_BALANCING'
50347         , p_segment_value           => l_segment
50348         , p_from_segment_code       => l_adr_value_segment_code
50349         , p_from_combination_id     => l_adr_value_combination_id
50350         , p_value_type_code         => l_adr_value_type_code
50351         , p_transaction_coa_id      => l_adr_transaction_coa_id
50352         , p_accounting_coa_id       => l_adr_accounting_coa_id
50353         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50354         , p_flex_value_set_id       => l_adr_flex_value_set_id
50355         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50356         , p_adr_type_code           => 'S'
50357         , p_component_type          => l_component_type
50358         , p_component_code          => l_component_code
50359         , p_component_type_code     => l_component_type_code
50360         , p_component_appl_id       => l_component_appl_id
50361         , p_amb_context_code        => l_amb_context_code
50362         , p_entity_code             => 'AP_PAYMENTS'
50363         , p_event_class_code        => 'PAYMENTS'
50364         , p_side                    => 'NA'
50365         );
50366 
50367   END IF;
50368 
50369    l_segment := AcctDerRule_7(
50370            p_application_id           => p_application_id
50371          , p_ae_header_id             => l_ae_header_id 
50372 , p_source_10 => p_source_10
50373 , p_source_10_meaning => p_source_10_meaning
50374 , p_source_13 => p_source_13
50375 , p_source_14 => p_source_14
50376 , p_source_14_meaning => p_source_14_meaning
50377          , x_transaction_coa_id       => l_adr_transaction_coa_id
50378          , x_accounting_coa_id        => l_adr_accounting_coa_id
50379          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50380          , x_flex_value_set_id        => l_adr_flex_value_set_id
50381          , x_value_type_code          => l_adr_value_type_code
50382          , x_value_combination_id     => l_adr_value_combination_id
50383          , x_value_segment_code       => l_adr_value_segment_code
50384          , p_side                     => 'NA'
50385          , p_override_seg_flag        => 'Y'
50386    );
50387 
50388    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50389 
50390       xla_ae_lines_pkg.set_segment(
50391           p_to_segment_code         => 'GL_ACCOUNT'
50392         , p_segment_value           => l_segment
50393         , p_from_segment_code       => l_adr_value_segment_code
50394         , p_from_combination_id     => l_adr_value_combination_id
50395         , p_value_type_code         => l_adr_value_type_code
50396         , p_transaction_coa_id      => l_adr_transaction_coa_id
50397         , p_accounting_coa_id       => l_adr_accounting_coa_id
50398         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50399         , p_flex_value_set_id       => l_adr_flex_value_set_id
50400         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50401         , p_adr_type_code           => 'S'
50402         , p_component_type          => l_component_type
50403         , p_component_code          => l_component_code
50404         , p_component_type_code     => l_component_type_code
50405         , p_component_appl_id       => l_component_appl_id
50406         , p_amb_context_code        => l_amb_context_code
50407         , p_entity_code             => 'AP_PAYMENTS'
50408         , p_event_class_code        => 'PAYMENTS'
50409         , p_side                    => 'NA'
50410         );
50411 
50412   END IF;
50413 
50414    --
50415    --
50416    END IF;
50417    --
50418    -- Bug 4922099
50419    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50420           (NVL(l_enc_upg_option, 'N') = 'O')
50421         ) AND
50422         (l_bflow_method_code = 'PRIOR_ENTRY')
50423       )
50424    THEN
50425       IF
50426       --
50427       1 = 2
50428       --
50429       THEN
50430       xla_accounting_err_pkg.build_message
50431                                     (p_appli_s_name            => 'XLA'
50432                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50433                                     ,p_token_1                 => 'LINE_NUMBER'
50434                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50435                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50439                                                                             ,l_component_type_code
50436                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50437                                                                              l_component_type
50438                                                                             ,l_component_code
50440                                                                             ,l_component_appl_id
50441                                                                             ,l_amb_context_code
50442                                                                             ,l_entity_code
50443                                                                             ,l_event_class_code
50444                                                                            )
50445                                     ,p_token_3                 => 'OWNER'
50446                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50447                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50448                                                                           ,p_lookup_code    => l_component_type_code
50449                                                                          )
50450                                     ,p_token_4                 => 'PRODUCT_NAME'
50451                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50452                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50453                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50454                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50455                                     ,p_ae_header_id            =>  NULL
50456                                        );
50457 
50458         IF (C_LEVEL_ERROR>= g_log_level) THEN
50459                  trace
50460                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50461                       ,p_level    => C_LEVEL_ERROR
50462                       ,p_module   => l_log_module);
50463         END IF;
50464       END IF;
50465    END IF;
50466    --
50467    --
50468    ------------------------------------------------------------------------------------------------
50469    -- 4219869 Business Flow
50470    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50471    -- Prior Entry.  Currently, the following code is always generated.
50472    ------------------------------------------------------------------------------------------------
50473    XLA_AE_LINES_PKG.ValidateCurrentLine;
50474 
50475    ------------------------------------------------------------------------------------
50476    -- 4219869 Business Flow
50477    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50478    ------------------------------------------------------------------------------------
50479    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50480 
50481    ----------------------------------------------------------------------------------
50482    -- 4219869 Business Flow
50483    -- Update journal entry status -- Need to generate this within IF <condition>
50484    ----------------------------------------------------------------------------------
50485    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50486          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50487          ,p_balance_type_code => l_balance_type_code
50488          );
50489 
50490    -------------------------------------------------------------------------------------------
50491    -- 4262811 - Generate the Accrual Reversal lines
50492    -------------------------------------------------------------------------------------------
50493    BEGIN
50494       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50495                               (g_array_event(p_event_id).array_value_num('header_index'));
50496       IF l_acc_rev_flag IS NULL THEN
50497          l_acc_rev_flag := 'N';
50498       END IF;
50499    EXCEPTION
50500       WHEN OTHERS THEN
50501          l_acc_rev_flag := 'N';
50502    END;
50503    --
50504    IF (l_acc_rev_flag = 'Y') THEN
50505 
50506        -- 4645092  ------------------------------------------------------------------------------
50507        -- To allow MPA report to determine if it should generate report process
50508        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50509        ------------------------------------------------------------------------------------------
50510 
50511        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50512        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50513    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50514    -- call ADRs
50515    -- Bug 4922099
50516    --
50517    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50518         (NVL(l_actual_upg_option, 'N') = 'O') OR
50519         (NVL(l_enc_upg_option, 'N') = 'O')
50520       )
50521    THEN
50522    NULL;
50523    --
50524    --
50525    
50526   l_ccid := AcctDerRule_31(
50527            p_application_id           => p_application_id
50528          , p_ae_header_id             => l_ae_header_id 
50529 , p_source_10 => p_source_10
50530 , p_source_10_meaning => p_source_10_meaning
50531 , p_source_13 => p_source_13
50532 , p_source_14 => p_source_14
50536 , p_source_28_meaning => p_source_28_meaning
50533 , p_source_14_meaning => p_source_14_meaning
50534 , p_source_25 => p_source_25
50535 , p_source_28 => p_source_28
50537 , p_source_40 => p_source_40
50538 , p_source_41 => p_source_41
50539 , p_source_42 => p_source_42
50540          , x_transaction_coa_id       => l_adr_transaction_coa_id
50541          , x_accounting_coa_id        => l_adr_accounting_coa_id
50542          , x_value_type_code          => l_adr_value_type_code
50543          , p_side                     => 'NA'
50544    );
50545 
50546    xla_ae_lines_pkg.set_ccid(
50547     p_code_combination_id          => l_ccid
50548   , p_value_type_code              => l_adr_value_type_code
50549   , p_transaction_coa_id           => l_adr_transaction_coa_id
50550   , p_accounting_coa_id            => l_adr_accounting_coa_id
50551   , p_adr_code                     => 'AP_DISCOUNT'
50552   , p_adr_type_code                => 'S'
50553   , p_component_type               => l_component_type
50554   , p_component_code               => l_component_code
50555   , p_component_type_code          => l_component_type_code
50556   , p_component_appl_id            => l_component_appl_id
50557   , p_amb_context_code             => l_amb_context_code
50558   , p_side                         => 'NA'
50559   );
50560 
50561 
50562    l_segment := AcctDerRule_22(
50563            p_application_id           => p_application_id
50564          , p_ae_header_id             => l_ae_header_id 
50565 , p_source_10 => p_source_10
50566 , p_source_10_meaning => p_source_10_meaning
50567 , p_source_14 => p_source_14
50568 , p_source_14_meaning => p_source_14_meaning
50569 , p_source_25 => p_source_25
50570          , x_transaction_coa_id       => l_adr_transaction_coa_id
50571          , x_accounting_coa_id        => l_adr_accounting_coa_id
50572          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50573          , x_flex_value_set_id        => l_adr_flex_value_set_id
50574          , x_value_type_code          => l_adr_value_type_code
50575          , x_value_combination_id     => l_adr_value_combination_id
50576          , x_value_segment_code       => l_adr_value_segment_code
50577          , p_side                     => 'NA'
50578          , p_override_seg_flag        => 'Y'
50579    );
50580 
50581    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50582 
50583       xla_ae_lines_pkg.set_segment(
50584           p_to_segment_code         => 'GL_BALANCING'
50585         , p_segment_value           => l_segment
50586         , p_from_segment_code       => l_adr_value_segment_code
50587         , p_from_combination_id     => l_adr_value_combination_id
50588         , p_value_type_code         => l_adr_value_type_code
50589         , p_transaction_coa_id      => l_adr_transaction_coa_id
50590         , p_accounting_coa_id       => l_adr_accounting_coa_id
50591         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50592         , p_flex_value_set_id       => l_adr_flex_value_set_id
50593         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50594         , p_adr_type_code           => 'S'
50595         , p_component_type          => l_component_type
50596         , p_component_code          => l_component_code
50597         , p_component_type_code     => l_component_type_code
50598         , p_component_appl_id       => l_component_appl_id
50599         , p_amb_context_code        => l_amb_context_code
50600         , p_entity_code             => 'AP_PAYMENTS'
50601         , p_event_class_code        => 'PAYMENTS'
50602         , p_side                    => 'NA'
50603         );
50604 
50605   END IF;
50606 
50607    l_segment := AcctDerRule_7(
50608            p_application_id           => p_application_id
50609          , p_ae_header_id             => l_ae_header_id 
50610 , p_source_10 => p_source_10
50611 , p_source_10_meaning => p_source_10_meaning
50612 , p_source_13 => p_source_13
50613 , p_source_14 => p_source_14
50614 , p_source_14_meaning => p_source_14_meaning
50615          , x_transaction_coa_id       => l_adr_transaction_coa_id
50616          , x_accounting_coa_id        => l_adr_accounting_coa_id
50617          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50618          , x_flex_value_set_id        => l_adr_flex_value_set_id
50619          , x_value_type_code          => l_adr_value_type_code
50620          , x_value_combination_id     => l_adr_value_combination_id
50621          , x_value_segment_code       => l_adr_value_segment_code
50622          , p_side                     => 'NA'
50623          , p_override_seg_flag        => 'Y'
50624    );
50625 
50626    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50627 
50628       xla_ae_lines_pkg.set_segment(
50629           p_to_segment_code         => 'GL_ACCOUNT'
50630         , p_segment_value           => l_segment
50631         , p_from_segment_code       => l_adr_value_segment_code
50632         , p_from_combination_id     => l_adr_value_combination_id
50633         , p_value_type_code         => l_adr_value_type_code
50634         , p_transaction_coa_id      => l_adr_transaction_coa_id
50635         , p_accounting_coa_id       => l_adr_accounting_coa_id
50636         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50637         , p_flex_value_set_id       => l_adr_flex_value_set_id
50638         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50639         , p_adr_type_code           => 'S'
50640         , p_component_type          => l_component_type
50641         , p_component_code          => l_component_code
50645         , p_entity_code             => 'AP_PAYMENTS'
50642         , p_component_type_code     => l_component_type_code
50643         , p_component_appl_id       => l_component_appl_id
50644         , p_amb_context_code        => l_amb_context_code
50646         , p_event_class_code        => 'PAYMENTS'
50647         , p_side                    => 'NA'
50648         );
50649 
50650   END IF;
50651 
50652    --
50653    --
50654    END IF;
50655 
50656        --
50657        -- Update the line information that should be overwritten
50658        --
50659        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50660                                          p_header_num   => 1);
50661        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50662 
50663        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50664 
50665        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50666           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50667        END IF;
50668 
50669       --
50670       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50671       --
50672       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50673           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50674       ELSE
50675           ---------------------------------------------------------------------------------------------------
50676           -- 4262811a Switch Sign
50677           ---------------------------------------------------------------------------------------------------
50678           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50679           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50680                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50681           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50682                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50683           -- 5132302
50684           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50685                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50686 
50687       END IF;
50688 
50689       -- 4955764
50690       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50691       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50692 
50693 
50694       XLA_AE_LINES_PKG.ValidateCurrentLine;
50695       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50696 
50697       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50698                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50699                ,p_balance_type_code => l_balance_type_code);
50700 
50701    END IF;
50702 
50703    -----------------------------------------------------------------------------------------
50704    -- 4262811 Multiperiod Accounting
50705    -----------------------------------------------------------------------------------------
50706      -- No MPA option is assigned.
50707 
50708 
50709 END IF;
50710 END IF;
50711 --
50712 
50713 --
50714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50715    trace
50716       (p_msg      => 'END of AcctLineType_114'
50717       ,p_level    => C_LEVEL_PROCEDURE
50718       ,p_module   => l_log_module);
50719 END IF;
50720 --
50721 EXCEPTION
50722   WHEN xla_exceptions_pkg.application_exception THEN
50723       RAISE;
50724   WHEN OTHERS THEN
50725        xla_exceptions_pkg.raise_message
50726            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_114');
50727 END AcctLineType_114;
50728 --
50729 
50730 ---------------------------------------
50731 --
50732 -- PRIVATE FUNCTION
50733 --         AcctLineType_115
50734 --
50735 ---------------------------------------
50736 PROCEDURE AcctLineType_115 (
50737   p_application_id        IN NUMBER
50738  ,p_event_id              IN NUMBER
50739  ,p_calculate_acctd_flag  IN VARCHAR2
50740  ,p_calculate_g_l_flag    IN VARCHAR2
50741  ,p_actual_flag           IN OUT VARCHAR2
50742  ,p_balance_type_code     OUT VARCHAR2
50743  ,p_gain_or_loss_ref      OUT VARCHAR2
50744  
50745 --Payment Currency Code
50746  , p_source_8            IN VARCHAR2
50747 --Automatic Offsets Value
50748  , p_source_10            IN VARCHAR2
50749  , p_source_10_meaning    IN VARCHAR2
50750 --System Discount Account
50751  , p_source_13            IN NUMBER
50752 --Discount Distribution Method
50753  , p_source_14            IN VARCHAR2
50754  , p_source_14_meaning    IN VARCHAR2
50755 --Invoice Distribution Account
50756  , p_source_25            IN NUMBER
50757 --Invoice Distribution Type
50758  , p_source_28            IN VARCHAR2
50759  , p_source_28_meaning    IN VARCHAR2
50760 --Discount Account
50761  , p_source_40            IN NUMBER
50762 --Purchase Order Charge Account
50763  , p_source_41            IN NUMBER
50764 --Purchase Order Variance Account
50765  , p_source_42            IN NUMBER
50766 --When to Account for Payment Option
50770 --Distribution Link Type
50767  , p_source_57            IN VARCHAR2
50768 --Accounting Reversal Indicator
50769  , p_source_58            IN VARCHAR2
50771  , p_source_60            IN VARCHAR2
50772 --Override Accounted Amount Indicator
50773  , p_source_85            IN VARCHAR2
50774  , p_source_85_meaning    IN VARCHAR2
50775 --Third Party Type
50776  , p_source_88            IN VARCHAR2
50777 --Invoice Distribution Tax Line Identifier
50778  , p_source_91            IN NUMBER
50779 --Invoice Distribution Tax Distribution Identifier from Tax
50780  , p_source_92            IN NUMBER
50781 --Invoice Distribution Summary Tax Line Identifier
50782  , p_source_93            IN NUMBER
50783 --Business Flow Accounts Payable Application Identifier
50784  , p_source_96            IN NUMBER
50785 --Business Flow Invoice Distribution Type
50786  , p_source_97            IN VARCHAR2
50787 --Business Flow Invoice Entity Code
50788  , p_source_98            IN VARCHAR2
50789 --Business Flow Invoice Distribution Identifier
50790  , p_source_99            IN NUMBER
50791 --Business Flow Invoice Identifier
50792  , p_source_100            IN NUMBER
50793 --Payment Distribution Type
50794  , p_source_101            IN VARCHAR2
50795  , p_source_101_meaning    IN VARCHAR2
50796 --Payment Distribution Amount
50797  , p_source_102            IN NUMBER
50798 --Payment Distribution Identifier
50799  , p_source_107            IN NUMBER
50800 --Payment Supplier Identifier
50801  , p_source_113            IN NUMBER
50802 --Payment Supplier Site Identifier
50803  , p_source_114            IN NUMBER
50804 --Payment Distribution Reversed Identifier
50805  , p_source_115            IN NUMBER
50806 --Payment Distribution (Invoice Rate) Ledger Amount
50807  , p_source_119            IN NUMBER
50808 --Payment Type
50809  , p_source_125            IN VARCHAR2
50810  , p_source_125_meaning    IN VARCHAR2
50811 --Invoice Exchange Date
50812  , p_source_146            IN DATE
50813 --Invoice Exchange Rate
50814  , p_source_147            IN NUMBER
50815 --Invoice Exchange Rate Type
50816  , p_source_148            IN VARCHAR2
50817 )
50818 IS
50819 
50820 l_component_type              VARCHAR2(80);
50821 l_component_code              VARCHAR2(30);
50822 l_component_type_code         VARCHAR2(1);
50823 l_component_appl_id           INTEGER;
50824 l_amb_context_code            VARCHAR2(30);
50825 l_entity_code                 VARCHAR2(30);
50826 l_event_class_code            VARCHAR2(30);
50827 l_ae_header_id                NUMBER;
50828 l_event_type_code             VARCHAR2(30);
50829 l_line_definition_code        VARCHAR2(30);
50830 l_line_definition_owner_code  VARCHAR2(1);
50831 --
50832 -- adr variables
50833 l_segment                     VARCHAR2(30);
50834 l_ccid                        NUMBER;
50835 l_adr_transaction_coa_id      NUMBER;
50836 l_adr_accounting_coa_id       NUMBER;
50837 l_adr_flexfield_segment_code  VARCHAR2(30);
50838 l_adr_flex_value_set_id       NUMBER;
50839 l_adr_value_type_code         VARCHAR2(30);
50840 l_adr_value_combination_id    NUMBER;
50841 l_adr_value_segment_code      VARCHAR2(30);
50842 
50843 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50844 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50845 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50846 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50847 
50848 -- 4262811 Variables ------------------------------------------------------------------------------------------
50849 l_entered_amt_idx             NUMBER;
50850 l_accted_amt_idx              NUMBER;
50851 l_acc_rev_flag                VARCHAR2(1);
50852 l_accrual_line_num            NUMBER;
50853 l_tmp_amt                     NUMBER;
50854 l_acc_rev_natural_side_code   VARCHAR2(1);
50855 
50856 l_num_entries                 NUMBER;
50857 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50858 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50859 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50860 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50861 l_recog_line_1                NUMBER;
50862 l_recog_line_2                NUMBER;
50863 
50864 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50865 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50866 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50867 
50868 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50869 
50870 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50871 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50872 
50873 ---------------------------------------------------------------------------------------------------------------
50874 
50875 
50876 --
50877 -- bulk performance
50878 --
50879 l_balance_type_code           VARCHAR2(1);
50880 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50881 l_log_module                  VARCHAR2(240);
50882 
50883 --
50884 -- Upgrade strategy
50885 --
50886 l_actual_upg_option           VARCHAR2(1);
50887 l_enc_upg_option           VARCHAR2(1);
50888 
50889 --
50890 BEGIN
50891 --
50892 IF g_log_enabled THEN
50893       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
50894 END IF;
50895 --
50896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50900          ,p_level    => C_LEVEL_PROCEDURE
50897 
50898       trace
50899          (p_msg      => 'BEGIN of AcctLineType_115'
50901          ,p_module   => l_log_module);
50902 
50903 END IF;
50904 --
50905 l_component_type             := 'AMB_JLT';
50906 l_component_code             := 'AP_DISCOUNT_ACCR_REF';
50907 l_component_type_code        := 'S';
50908 l_component_appl_id          :=  200;
50909 l_amb_context_code           := 'DEFAULT';
50910 l_entity_code                := 'AP_PAYMENTS';
50911 l_event_class_code           := 'REFUNDS';
50912 l_event_type_code            := 'REFUNDS_ALL';
50913 l_line_definition_owner_code := 'S';
50914 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
50915 --
50916 l_balance_type_code          := 'A';
50917 l_segment                     := NULL;
50918 l_ccid                        := NULL;
50919 l_adr_transaction_coa_id      := NULL;
50920 l_adr_accounting_coa_id       := NULL;
50921 l_adr_flexfield_segment_code  := NULL;
50922 l_adr_flex_value_set_id       := NULL;
50923 l_adr_value_type_code         := NULL;
50924 l_adr_value_combination_id    := NULL;
50925 l_adr_value_segment_code      := NULL;
50926 
50927 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50928 l_bflow_class_code           := '';    -- 4219869 Business Flow
50929 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50930 l_budgetary_control_flag     := 'N';
50931 
50932 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50933 l_bflow_applied_to_amt       := NULL; -- 5132302
50934 l_entered_amt_idx            := NULL;          -- 4262811
50935 l_accted_amt_idx             := NULL;          -- 4262811
50936 l_acc_rev_flag               := NULL;          -- 4262811
50937 l_accrual_line_num           := NULL;          -- 4262811
50938 l_tmp_amt                    := NULL;          -- 4262811
50939 --
50940  
50941 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50942     l_balance_type_code <> 'B' THEN
50943 IF NVL(p_source_57,'
50944 ') <>  'CLEAR_CLEAR' AND 
50945 NVL(p_source_101,'
50946 ') =  'DISCOUNT' AND 
50947 NVL(p_source_125,'
50948 ') =  'R'
50949  THEN 
50950 
50951    --
50952    XLA_AE_LINES_PKG.SetNewLine;
50953 
50954    p_balance_type_code          := l_balance_type_code;
50955    -- set the flag so later we will know whether the gain loss line needs to be created
50956    
50957    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50958      p_actual_flag :='A';
50959    END IF;
50960 
50961    --
50962    -- bulk performance
50963    --
50964    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50965                                       p_header_num   => 0); -- 4262811
50966    --
50967    -- set accounting line options
50968    --
50969    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50970            p_natural_side_code          => 'C'
50971          , p_gain_or_loss_flag          => 'N'
50972          , p_gl_transfer_mode_code      => 'S'
50973          , p_acct_entry_type_code       => 'A'
50974          , p_switch_side_flag           => 'Y'
50975          , p_merge_duplicate_code       => 'A'
50976          );
50977    --
50978    l_acc_rev_natural_side_code := 'D';  -- 4262811
50979    -- 
50980    --
50981    -- set accounting line type info
50982    --
50983    xla_ae_lines_pkg.SetAcctLineType
50984       (p_component_type             => l_component_type
50985       ,p_event_type_code            => l_event_type_code
50986       ,p_line_definition_owner_code => l_line_definition_owner_code
50987       ,p_line_definition_code       => l_line_definition_code
50988       ,p_accounting_line_code       => l_component_code
50989       ,p_accounting_line_type_code  => l_component_type_code
50990       ,p_accounting_line_appl_id    => l_component_appl_id
50991       ,p_amb_context_code           => l_amb_context_code
50992       ,p_entity_code                => l_entity_code
50993       ,p_event_class_code           => l_event_class_code);
50994    --
50995    -- set accounting class
50996    --
50997    xla_ae_lines_pkg.SetAcctClass(
50998            p_accounting_class_code  => 'DISCOUNT'
50999          , p_ae_header_id           => l_ae_header_id
51000          );
51001 
51002    --
51003    -- set rounding class
51004    --
51005    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51006                       'DISCOUNT';
51007 
51008    --
51009    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51010    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51011    --
51012    -- bulk performance
51013    --
51014    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51015 
51016    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51017       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51018 
51019    -- 4955764
51020    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51022 
51023    -- 4458381 Public Sector Enh
51024    
51025    --
51026    -- set accounting attributes for the line type
51030    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51027    --
51028    l_entered_amt_idx := 9;
51029    l_accted_amt_idx  := 14;
51031    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51032    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
51033    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
51034    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
51035    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51036    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
51037    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
51038    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
51039    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
51040    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
51041    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51042    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
51043    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
51044    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
51045    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
51046    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
51047    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
51048    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
51049    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
51050    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
51051    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
51052    l_rec_acct_attrs.array_date_value(11)  := p_source_146;
51053    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
51054    l_rec_acct_attrs.array_num_value(12)  := p_source_147;
51055    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
51056    l_rec_acct_attrs.array_char_value(13)  := p_source_148;
51057    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
51058    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
51059    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
51060    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
51061    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
51062    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
51063    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
51064    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
51065    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
51066    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
51067    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
51068    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
51069    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
51070    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
51071    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
51072    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
51073    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
51074    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
51075    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
51076    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
51077 
51078    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51079    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51080 
51081    ---------------------------------------------------------------------------------------------------------------
51082    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51083    ---------------------------------------------------------------------------------------------------------------
51084    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51085 
51086    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51087    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51088 
51089    IF xla_accounting_cache_pkg.GetValueChar
51090          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51091          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51092    AND l_bflow_method_code = 'PRIOR_ENTRY'
51093 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51094    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51095          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51096        )
51097    THEN
51098          xla_ae_lines_pkg.BflowUpgEntry
51099            (p_business_method_code    => l_bflow_method_code
51100            ,p_business_class_code     => l_bflow_class_code
51101            ,p_balance_type            => l_balance_type_code);
51102    ELSE
51103       NULL;
51104 -- No business flow processing for business flow method of NONE.
51105    END IF;
51106 
51107    --
51108    -- call analytical criteria
51109    --
51110    
51111    --
51112    -- call description
51113    --
51114    -- No description or it is inherited.
51115    --
51116    -- call ADRs
51117    -- Bug 4922099
51118    --
51119    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51120         (NVL(l_actual_upg_option, 'N') = 'O') OR
51121         (NVL(l_enc_upg_option, 'N') = 'O')
51122       )
51123    THEN
51124    NULL;
51125    --
51126    --
51127    
51128   l_ccid := AcctDerRule_31(
51132 , p_source_10_meaning => p_source_10_meaning
51129            p_application_id           => p_application_id
51130          , p_ae_header_id             => l_ae_header_id 
51131 , p_source_10 => p_source_10
51133 , p_source_13 => p_source_13
51134 , p_source_14 => p_source_14
51135 , p_source_14_meaning => p_source_14_meaning
51136 , p_source_25 => p_source_25
51137 , p_source_28 => p_source_28
51138 , p_source_28_meaning => p_source_28_meaning
51139 , p_source_40 => p_source_40
51140 , p_source_41 => p_source_41
51141 , p_source_42 => p_source_42
51142          , x_transaction_coa_id       => l_adr_transaction_coa_id
51143          , x_accounting_coa_id        => l_adr_accounting_coa_id
51144          , x_value_type_code          => l_adr_value_type_code
51145          , p_side                     => 'NA'
51146    );
51147 
51148    xla_ae_lines_pkg.set_ccid(
51149     p_code_combination_id          => l_ccid
51150   , p_value_type_code              => l_adr_value_type_code
51151   , p_transaction_coa_id           => l_adr_transaction_coa_id
51152   , p_accounting_coa_id            => l_adr_accounting_coa_id
51153   , p_adr_code                     => 'AP_DISCOUNT'
51154   , p_adr_type_code                => 'S'
51155   , p_component_type               => l_component_type
51156   , p_component_code               => l_component_code
51157   , p_component_type_code          => l_component_type_code
51158   , p_component_appl_id            => l_component_appl_id
51159   , p_amb_context_code             => l_amb_context_code
51160   , p_side                         => 'NA'
51161   );
51162 
51163 
51164    l_segment := AcctDerRule_22(
51165            p_application_id           => p_application_id
51166          , p_ae_header_id             => l_ae_header_id 
51167 , p_source_10 => p_source_10
51168 , p_source_10_meaning => p_source_10_meaning
51169 , p_source_14 => p_source_14
51170 , p_source_14_meaning => p_source_14_meaning
51171 , p_source_25 => p_source_25
51172          , x_transaction_coa_id       => l_adr_transaction_coa_id
51173          , x_accounting_coa_id        => l_adr_accounting_coa_id
51174          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51175          , x_flex_value_set_id        => l_adr_flex_value_set_id
51176          , x_value_type_code          => l_adr_value_type_code
51177          , x_value_combination_id     => l_adr_value_combination_id
51178          , x_value_segment_code       => l_adr_value_segment_code
51179          , p_side                     => 'NA'
51180          , p_override_seg_flag        => 'Y'
51181    );
51182 
51183    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51184 
51185       xla_ae_lines_pkg.set_segment(
51186           p_to_segment_code         => 'GL_BALANCING'
51187         , p_segment_value           => l_segment
51188         , p_from_segment_code       => l_adr_value_segment_code
51189         , p_from_combination_id     => l_adr_value_combination_id
51190         , p_value_type_code         => l_adr_value_type_code
51191         , p_transaction_coa_id      => l_adr_transaction_coa_id
51192         , p_accounting_coa_id       => l_adr_accounting_coa_id
51193         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51194         , p_flex_value_set_id       => l_adr_flex_value_set_id
51195         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
51196         , p_adr_type_code           => 'S'
51197         , p_component_type          => l_component_type
51198         , p_component_code          => l_component_code
51199         , p_component_type_code     => l_component_type_code
51200         , p_component_appl_id       => l_component_appl_id
51201         , p_amb_context_code        => l_amb_context_code
51202         , p_entity_code             => 'AP_PAYMENTS'
51203         , p_event_class_code        => 'REFUNDS'
51204         , p_side                    => 'NA'
51205         );
51206 
51207   END IF;
51208 
51209    l_segment := AcctDerRule_7(
51210            p_application_id           => p_application_id
51211          , p_ae_header_id             => l_ae_header_id 
51212 , p_source_10 => p_source_10
51213 , p_source_10_meaning => p_source_10_meaning
51214 , p_source_13 => p_source_13
51215 , p_source_14 => p_source_14
51216 , p_source_14_meaning => p_source_14_meaning
51217          , x_transaction_coa_id       => l_adr_transaction_coa_id
51218          , x_accounting_coa_id        => l_adr_accounting_coa_id
51219          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51220          , x_flex_value_set_id        => l_adr_flex_value_set_id
51221          , x_value_type_code          => l_adr_value_type_code
51222          , x_value_combination_id     => l_adr_value_combination_id
51223          , x_value_segment_code       => l_adr_value_segment_code
51224          , p_side                     => 'NA'
51225          , p_override_seg_flag        => 'Y'
51226    );
51227 
51228    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51229 
51230       xla_ae_lines_pkg.set_segment(
51231           p_to_segment_code         => 'GL_ACCOUNT'
51232         , p_segment_value           => l_segment
51233         , p_from_segment_code       => l_adr_value_segment_code
51234         , p_from_combination_id     => l_adr_value_combination_id
51235         , p_value_type_code         => l_adr_value_type_code
51236         , p_transaction_coa_id      => l_adr_transaction_coa_id
51237         , p_accounting_coa_id       => l_adr_accounting_coa_id
51238         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51242         , p_component_type          => l_component_type
51239         , p_flex_value_set_id       => l_adr_flex_value_set_id
51240         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
51241         , p_adr_type_code           => 'S'
51243         , p_component_code          => l_component_code
51244         , p_component_type_code     => l_component_type_code
51245         , p_component_appl_id       => l_component_appl_id
51246         , p_amb_context_code        => l_amb_context_code
51247         , p_entity_code             => 'AP_PAYMENTS'
51248         , p_event_class_code        => 'REFUNDS'
51249         , p_side                    => 'NA'
51250         );
51251 
51252   END IF;
51253 
51254    --
51255    --
51256    END IF;
51257    --
51258    -- Bug 4922099
51259    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51260           (NVL(l_enc_upg_option, 'N') = 'O')
51261         ) AND
51262         (l_bflow_method_code = 'PRIOR_ENTRY')
51263       )
51264    THEN
51265       IF
51266       --
51267       1 = 2
51268       --
51269       THEN
51270       xla_accounting_err_pkg.build_message
51271                                     (p_appli_s_name            => 'XLA'
51272                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51273                                     ,p_token_1                 => 'LINE_NUMBER'
51274                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51275                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51276                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51277                                                                              l_component_type
51278                                                                             ,l_component_code
51279                                                                             ,l_component_type_code
51280                                                                             ,l_component_appl_id
51281                                                                             ,l_amb_context_code
51282                                                                             ,l_entity_code
51283                                                                             ,l_event_class_code
51284                                                                            )
51285                                     ,p_token_3                 => 'OWNER'
51286                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51287                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51288                                                                           ,p_lookup_code    => l_component_type_code
51289                                                                          )
51290                                     ,p_token_4                 => 'PRODUCT_NAME'
51291                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51292                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51293                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51294                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51295                                     ,p_ae_header_id            =>  NULL
51296                                        );
51297 
51298         IF (C_LEVEL_ERROR>= g_log_level) THEN
51299                  trace
51300                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51301                       ,p_level    => C_LEVEL_ERROR
51302                       ,p_module   => l_log_module);
51303         END IF;
51304       END IF;
51305    END IF;
51306    --
51307    --
51308    ------------------------------------------------------------------------------------------------
51309    -- 4219869 Business Flow
51310    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51311    -- Prior Entry.  Currently, the following code is always generated.
51312    ------------------------------------------------------------------------------------------------
51313    XLA_AE_LINES_PKG.ValidateCurrentLine;
51314 
51315    ------------------------------------------------------------------------------------
51316    -- 4219869 Business Flow
51317    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51318    ------------------------------------------------------------------------------------
51319    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51320 
51321    ----------------------------------------------------------------------------------
51322    -- 4219869 Business Flow
51323    -- Update journal entry status -- Need to generate this within IF <condition>
51324    ----------------------------------------------------------------------------------
51325    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51326          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51327          ,p_balance_type_code => l_balance_type_code
51328          );
51329 
51330    -------------------------------------------------------------------------------------------
51331    -- 4262811 - Generate the Accrual Reversal lines
51332    -------------------------------------------------------------------------------------------
51333    BEGIN
51337          l_acc_rev_flag := 'N';
51334       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51335                               (g_array_event(p_event_id).array_value_num('header_index'));
51336       IF l_acc_rev_flag IS NULL THEN
51338       END IF;
51339    EXCEPTION
51340       WHEN OTHERS THEN
51341          l_acc_rev_flag := 'N';
51342    END;
51343    --
51344    IF (l_acc_rev_flag = 'Y') THEN
51345 
51346        -- 4645092  ------------------------------------------------------------------------------
51347        -- To allow MPA report to determine if it should generate report process
51348        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51349        ------------------------------------------------------------------------------------------
51350 
51351        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51352        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51353    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51354    -- call ADRs
51355    -- Bug 4922099
51356    --
51357    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51358         (NVL(l_actual_upg_option, 'N') = 'O') OR
51359         (NVL(l_enc_upg_option, 'N') = 'O')
51360       )
51361    THEN
51362    NULL;
51363    --
51364    --
51365    
51366   l_ccid := AcctDerRule_31(
51367            p_application_id           => p_application_id
51368          , p_ae_header_id             => l_ae_header_id 
51369 , p_source_10 => p_source_10
51370 , p_source_10_meaning => p_source_10_meaning
51371 , p_source_13 => p_source_13
51372 , p_source_14 => p_source_14
51373 , p_source_14_meaning => p_source_14_meaning
51374 , p_source_25 => p_source_25
51375 , p_source_28 => p_source_28
51376 , p_source_28_meaning => p_source_28_meaning
51377 , p_source_40 => p_source_40
51378 , p_source_41 => p_source_41
51379 , p_source_42 => p_source_42
51380          , x_transaction_coa_id       => l_adr_transaction_coa_id
51381          , x_accounting_coa_id        => l_adr_accounting_coa_id
51382          , x_value_type_code          => l_adr_value_type_code
51383          , p_side                     => 'NA'
51384    );
51385 
51386    xla_ae_lines_pkg.set_ccid(
51387     p_code_combination_id          => l_ccid
51388   , p_value_type_code              => l_adr_value_type_code
51389   , p_transaction_coa_id           => l_adr_transaction_coa_id
51390   , p_accounting_coa_id            => l_adr_accounting_coa_id
51391   , p_adr_code                     => 'AP_DISCOUNT'
51392   , p_adr_type_code                => 'S'
51393   , p_component_type               => l_component_type
51394   , p_component_code               => l_component_code
51395   , p_component_type_code          => l_component_type_code
51396   , p_component_appl_id            => l_component_appl_id
51397   , p_amb_context_code             => l_amb_context_code
51398   , p_side                         => 'NA'
51399   );
51400 
51401 
51402    l_segment := AcctDerRule_22(
51403            p_application_id           => p_application_id
51404          , p_ae_header_id             => l_ae_header_id 
51405 , p_source_10 => p_source_10
51406 , p_source_10_meaning => p_source_10_meaning
51407 , p_source_14 => p_source_14
51408 , p_source_14_meaning => p_source_14_meaning
51409 , p_source_25 => p_source_25
51410          , x_transaction_coa_id       => l_adr_transaction_coa_id
51411          , x_accounting_coa_id        => l_adr_accounting_coa_id
51412          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51413          , x_flex_value_set_id        => l_adr_flex_value_set_id
51414          , x_value_type_code          => l_adr_value_type_code
51415          , x_value_combination_id     => l_adr_value_combination_id
51416          , x_value_segment_code       => l_adr_value_segment_code
51417          , p_side                     => 'NA'
51418          , p_override_seg_flag        => 'Y'
51419    );
51420 
51421    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51422 
51423       xla_ae_lines_pkg.set_segment(
51424           p_to_segment_code         => 'GL_BALANCING'
51425         , p_segment_value           => l_segment
51426         , p_from_segment_code       => l_adr_value_segment_code
51427         , p_from_combination_id     => l_adr_value_combination_id
51428         , p_value_type_code         => l_adr_value_type_code
51429         , p_transaction_coa_id      => l_adr_transaction_coa_id
51430         , p_accounting_coa_id       => l_adr_accounting_coa_id
51431         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51432         , p_flex_value_set_id       => l_adr_flex_value_set_id
51433         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
51434         , p_adr_type_code           => 'S'
51435         , p_component_type          => l_component_type
51436         , p_component_code          => l_component_code
51437         , p_component_type_code     => l_component_type_code
51438         , p_component_appl_id       => l_component_appl_id
51439         , p_amb_context_code        => l_amb_context_code
51440         , p_entity_code             => 'AP_PAYMENTS'
51441         , p_event_class_code        => 'REFUNDS'
51442         , p_side                    => 'NA'
51443         );
51444 
51445   END IF;
51446 
51447    l_segment := AcctDerRule_7(
51448            p_application_id           => p_application_id
51449          , p_ae_header_id             => l_ae_header_id 
51450 , p_source_10 => p_source_10
51451 , p_source_10_meaning => p_source_10_meaning
51452 , p_source_13 => p_source_13
51456          , x_accounting_coa_id        => l_adr_accounting_coa_id
51453 , p_source_14 => p_source_14
51454 , p_source_14_meaning => p_source_14_meaning
51455          , x_transaction_coa_id       => l_adr_transaction_coa_id
51457          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51458          , x_flex_value_set_id        => l_adr_flex_value_set_id
51459          , x_value_type_code          => l_adr_value_type_code
51460          , x_value_combination_id     => l_adr_value_combination_id
51461          , x_value_segment_code       => l_adr_value_segment_code
51462          , p_side                     => 'NA'
51463          , p_override_seg_flag        => 'Y'
51464    );
51465 
51466    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51467 
51468       xla_ae_lines_pkg.set_segment(
51469           p_to_segment_code         => 'GL_ACCOUNT'
51470         , p_segment_value           => l_segment
51471         , p_from_segment_code       => l_adr_value_segment_code
51472         , p_from_combination_id     => l_adr_value_combination_id
51473         , p_value_type_code         => l_adr_value_type_code
51474         , p_transaction_coa_id      => l_adr_transaction_coa_id
51475         , p_accounting_coa_id       => l_adr_accounting_coa_id
51476         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51477         , p_flex_value_set_id       => l_adr_flex_value_set_id
51478         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
51479         , p_adr_type_code           => 'S'
51480         , p_component_type          => l_component_type
51481         , p_component_code          => l_component_code
51482         , p_component_type_code     => l_component_type_code
51483         , p_component_appl_id       => l_component_appl_id
51484         , p_amb_context_code        => l_amb_context_code
51485         , p_entity_code             => 'AP_PAYMENTS'
51486         , p_event_class_code        => 'REFUNDS'
51487         , p_side                    => 'NA'
51488         );
51489 
51490   END IF;
51491 
51492    --
51493    --
51494    END IF;
51495 
51496        --
51497        -- Update the line information that should be overwritten
51498        --
51499        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51500                                          p_header_num   => 1);
51501        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51502 
51503        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51504 
51505        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51506           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51507        END IF;
51508 
51509       --
51510       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51511       --
51512       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51513           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51514       ELSE
51515           ---------------------------------------------------------------------------------------------------
51516           -- 4262811a Switch Sign
51517           ---------------------------------------------------------------------------------------------------
51518           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51519           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51520                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51521           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51522                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51523           -- 5132302
51524           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51525                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51526 
51527       END IF;
51528 
51529       -- 4955764
51530       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51531       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51532 
51533 
51534       XLA_AE_LINES_PKG.ValidateCurrentLine;
51535       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51536 
51537       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51538                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51539                ,p_balance_type_code => l_balance_type_code);
51540 
51541    END IF;
51542 
51543    -----------------------------------------------------------------------------------------
51544    -- 4262811 Multiperiod Accounting
51545    -----------------------------------------------------------------------------------------
51546      -- No MPA option is assigned.
51547 
51548 
51549 END IF;
51550 END IF;
51551 --
51552 
51553 --
51554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51555    trace
51556       (p_msg      => 'END of AcctLineType_115'
51557       ,p_level    => C_LEVEL_PROCEDURE
51558       ,p_module   => l_log_module);
51559 END IF;
51560 --
51561 EXCEPTION
51562   WHEN xla_exceptions_pkg.application_exception THEN
51563       RAISE;
51564   WHEN OTHERS THEN
51568 --
51565        xla_exceptions_pkg.raise_message
51566            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_115');
51567 END AcctLineType_115;
51569 
51570 ---------------------------------------
51571 --
51572 -- PRIVATE FUNCTION
51573 --         AcctLineType_116
51574 --
51575 ---------------------------------------
51576 PROCEDURE AcctLineType_116 (
51577   p_application_id        IN NUMBER
51578  ,p_event_id              IN NUMBER
51579  ,p_calculate_acctd_flag  IN VARCHAR2
51580  ,p_calculate_g_l_flag    IN VARCHAR2
51581  ,p_actual_flag           IN OUT VARCHAR2
51582  ,p_balance_type_code     OUT VARCHAR2
51583  ,p_gain_or_loss_ref      OUT VARCHAR2
51584  
51585 --Invoice Distribution Description
51586  , p_source_1            IN VARCHAR2
51587 --Automatic Offsets Value
51588  , p_source_10            IN VARCHAR2
51589  , p_source_10_meaning    IN VARCHAR2
51590 --Purchase Order Rate Variance Gain Account
51591  , p_source_15            IN NUMBER
51592 --Invoice Distribution Ledger Amount
51593  , p_source_16            IN NUMBER
51594 --Destination Type of the PO Distribution
51595  , p_source_17            IN VARCHAR2
51596  , p_source_17_meaning    IN VARCHAR2
51597 --Purchase Order Rate Variance Loss Account
51598  , p_source_18            IN NUMBER
51599 --Invoice Distribution Account
51600  , p_source_25            IN NUMBER
51601 --Invoice Distribution Type
51602  , p_source_28            IN VARCHAR2
51603  , p_source_28_meaning    IN VARCHAR2
51604 --Automatic Offsets Flag
51605  , p_source_43            IN VARCHAR2
51606  , p_source_43_meaning    IN VARCHAR2
51607 --Accrue on Receipt Option
51608  , p_source_54            IN VARCHAR2
51609  , p_source_54_meaning    IN VARCHAR2
51610 --Accounting Reversal Indicator
51611  , p_source_58            IN VARCHAR2
51612 --Distribution Link Type
51613  , p_source_60            IN VARCHAR2
51614 --Allocation to Main Distribution Identifier
51615  , p_source_62            IN NUMBER
51616 --Invoice Identifier
51617  , p_source_63            IN NUMBER
51618 --Invoice Distribution Identifier
51619  , p_source_69            IN NUMBER
51620 --Payables Encumbrance Upgrade Credit Account
51621  , p_source_70            IN NUMBER
51622 --Payables Encumbrance Upgrade Credit Amount
51623  , p_source_71            IN NUMBER
51624 --Invoice Currency Code
51625  , p_source_72            IN VARCHAR2
51626 --Payables Encumbrance Upgrade Credit Base Amount
51627  , p_source_73            IN NUMBER
51628 --Payables Encumbrance Upgrade Debit Account
51629  , p_source_74            IN NUMBER
51630 --Payables Encumbrance Upgrade Debit Amount
51631  , p_source_75            IN NUMBER
51632 --Payables Encumbrance Upgrade Debit Base Amount
51633  , p_source_76            IN NUMBER
51634 --Payables Encumbrance Upgrade Option
51635  , p_source_77            IN VARCHAR2
51636 --Invoice Distribution Amount
51637  , p_source_78            IN NUMBER
51638 --Deferred Accounting End Date
51639  , p_source_82            IN DATE
51640 --Deferred Accounting Option
51641  , p_source_83            IN VARCHAR2
51642 --Deferred Accounting Start Date
51643  , p_source_84            IN DATE
51644 --Override Accounted Amount Indicator
51645  , p_source_85            IN VARCHAR2
51646  , p_source_85_meaning    IN VARCHAR2
51647 --Invoice Supplier Identifier
51648  , p_source_86            IN NUMBER
51649 --Invoice Supplier Site Identifier
51650  , p_source_87            IN NUMBER
51651 --Third Party Type
51652  , p_source_88            IN VARCHAR2
51653 --Parent Reversal Identifier
51654  , p_source_89            IN NUMBER
51655 --Invoice Distribution Statistical Amount
51656  , p_source_90            IN NUMBER
51657 --Invoice Distribution Tax Line Identifier
51658  , p_source_91            IN NUMBER
51659 --Invoice Distribution Tax Distribution Identifier from Tax
51660  , p_source_92            IN NUMBER
51661 --Invoice Distribution Summary Tax Line Identifier
51662  , p_source_93            IN NUMBER
51663 --Payables Upgrade Credit Encumbrance Type Identifier
51664  , p_source_94            IN NUMBER
51665 --Payables Upgrade Debit Encumbrance Type Identifier
51666  , p_source_95            IN NUMBER
51667 --Business Flow Accounts Payable Application Identifier
51668  , p_source_96            IN NUMBER
51669 --Business Flow Invoice Distribution Type
51670  , p_source_97            IN VARCHAR2
51671 --Business Flow Invoice Entity Code
51672  , p_source_98            IN VARCHAR2
51673 --Business Flow Invoice Distribution Identifier
51674  , p_source_99            IN NUMBER
51675 --Business Flow Invoice Identifier
51676  , p_source_100            IN NUMBER
51677 --Invoice Exchange Date
51678  , p_source_146            IN DATE
51679 --Invoice Exchange Rate
51680  , p_source_147            IN NUMBER
51681 --Invoice Exchange Rate Type
51682  , p_source_148            IN VARCHAR2
51683 )
51684 IS
51685 
51686 l_component_type              VARCHAR2(80);
51687 l_component_code              VARCHAR2(30);
51688 l_component_type_code         VARCHAR2(1);
51689 l_component_appl_id           INTEGER;
51690 l_amb_context_code            VARCHAR2(30);
51691 l_entity_code                 VARCHAR2(30);
51692 l_event_class_code            VARCHAR2(30);
51693 l_ae_header_id                NUMBER;
51694 l_event_type_code             VARCHAR2(30);
51695 l_line_definition_code        VARCHAR2(30);
51696 l_line_definition_owner_code  VARCHAR2(1);
51700 l_ccid                        NUMBER;
51697 --
51698 -- adr variables
51699 l_segment                     VARCHAR2(30);
51701 l_adr_transaction_coa_id      NUMBER;
51702 l_adr_accounting_coa_id       NUMBER;
51703 l_adr_flexfield_segment_code  VARCHAR2(30);
51704 l_adr_flex_value_set_id       NUMBER;
51705 l_adr_value_type_code         VARCHAR2(30);
51706 l_adr_value_combination_id    NUMBER;
51707 l_adr_value_segment_code      VARCHAR2(30);
51708 
51709 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51710 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51711 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51712 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51713 
51714 -- 4262811 Variables ------------------------------------------------------------------------------------------
51715 l_entered_amt_idx             NUMBER;
51716 l_accted_amt_idx              NUMBER;
51717 l_acc_rev_flag                VARCHAR2(1);
51718 l_accrual_line_num            NUMBER;
51719 l_tmp_amt                     NUMBER;
51720 l_acc_rev_natural_side_code   VARCHAR2(1);
51721 
51722 l_num_entries                 NUMBER;
51723 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51724 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51725 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51726 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51727 l_recog_line_1                NUMBER;
51728 l_recog_line_2                NUMBER;
51729 
51730 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51731 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51732 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51733 
51734 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51735 
51736 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51737 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51738 
51739 ---------------------------------------------------------------------------------------------------------------
51740 
51741 
51742 --
51743 -- bulk performance
51744 --
51745 l_balance_type_code           VARCHAR2(1);
51746 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51747 l_log_module                  VARCHAR2(240);
51748 
51749 --
51750 -- Upgrade strategy
51751 --
51752 l_actual_upg_option           VARCHAR2(1);
51753 l_enc_upg_option           VARCHAR2(1);
51754 
51755 --
51756 BEGIN
51757 --
51758 IF g_log_enabled THEN
51759       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
51760 END IF;
51761 --
51762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51763 
51764       trace
51765          (p_msg      => 'BEGIN of AcctLineType_116'
51766          ,p_level    => C_LEVEL_PROCEDURE
51767          ,p_module   => l_log_module);
51768 
51769 END IF;
51770 --
51771 l_component_type             := 'AMB_JLT';
51772 l_component_code             := 'AP_EX_RATE_VAR_CM';
51773 l_component_type_code        := 'S';
51774 l_component_appl_id          :=  200;
51775 l_amb_context_code           := 'DEFAULT';
51776 l_entity_code                := 'AP_INVOICES';
51777 l_event_class_code           := 'CREDIT MEMOS';
51778 l_event_type_code            := 'CREDIT MEMOS_ALL';
51779 l_line_definition_owner_code := 'S';
51780 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
51781 --
51782 l_balance_type_code          := 'A';
51783 l_segment                     := NULL;
51784 l_ccid                        := NULL;
51785 l_adr_transaction_coa_id      := NULL;
51786 l_adr_accounting_coa_id       := NULL;
51787 l_adr_flexfield_segment_code  := NULL;
51788 l_adr_flex_value_set_id       := NULL;
51789 l_adr_value_type_code         := NULL;
51790 l_adr_value_combination_id    := NULL;
51791 l_adr_value_segment_code      := NULL;
51792 
51793 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51794 l_bflow_class_code           := '';    -- 4219869 Business Flow
51795 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51796 l_budgetary_control_flag     := 'N';
51797 
51798 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51799 l_bflow_applied_to_amt       := NULL; -- 5132302
51800 l_entered_amt_idx            := NULL;          -- 4262811
51801 l_accted_amt_idx             := NULL;          -- 4262811
51802 l_acc_rev_flag               := NULL;          -- 4262811
51803 l_accrual_line_num           := NULL;          -- 4262811
51804 l_tmp_amt                    := NULL;          -- 4262811
51805 --
51806 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
51807             (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
51808                return;
51809   END IF;
51810   
51811 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51812     l_balance_type_code <> 'B' THEN
51813 IF NVL(p_source_28,'
51814 ') =  'ERV' AND 
51815 NVL(p_source_54,'
51816 ') =  'Y'
51817  THEN 
51818 
51819    --
51820    XLA_AE_LINES_PKG.SetNewLine;
51821 
51825    IF(l_balance_type_code = 'A' ) THEN
51822    p_balance_type_code          := l_balance_type_code;
51823    -- set the flag so later we will know whether the gain loss line needs to be created
51824    
51826      p_actual_flag :='G';
51827    END IF;
51828 
51829    --
51830    -- bulk performance
51831    --
51832    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51833                                       p_header_num   => 0); -- 4262811
51834    --
51835    -- set accounting line options
51836    --
51837    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51838            p_natural_side_code          => 'D'
51839          , p_gain_or_loss_flag          => 'Y'
51840          , p_gl_transfer_mode_code      => 'S'
51841          , p_acct_entry_type_code       => 'A'
51842          , p_switch_side_flag           => 'Y'
51843          , p_merge_duplicate_code       => 'A'
51844          );
51845    --
51846    l_acc_rev_natural_side_code := 'C';  -- 4262811
51847    -- 
51848    --
51849    -- set accounting line type info
51850    --
51851    xla_ae_lines_pkg.SetAcctLineType
51852       (p_component_type             => l_component_type
51853       ,p_event_type_code            => l_event_type_code
51854       ,p_line_definition_owner_code => l_line_definition_owner_code
51855       ,p_line_definition_code       => l_line_definition_code
51856       ,p_accounting_line_code       => l_component_code
51857       ,p_accounting_line_type_code  => l_component_type_code
51858       ,p_accounting_line_appl_id    => l_component_appl_id
51859       ,p_amb_context_code           => l_amb_context_code
51860       ,p_entity_code                => l_entity_code
51861       ,p_event_class_code           => l_event_class_code);
51862    --
51863    -- set accounting class
51864    --
51865    xla_ae_lines_pkg.SetAcctClass(
51866            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
51867          , p_ae_header_id           => l_ae_header_id
51868          );
51869 
51870    --
51871    -- set rounding class
51872    --
51873    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51874                       'EXCHANGE_RATE_VARIANCE';
51875 
51876    --
51877    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51878    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51879    --
51880    -- bulk performance
51881    --
51882    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51883 
51884    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51885       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51886 
51887    -- 4955764
51888    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51889       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51890 
51891    -- 4458381 Public Sector Enh
51892    
51893    --
51894    -- set accounting attributes for the line type
51895    --
51896    l_entered_amt_idx := 23;
51897    l_accted_amt_idx  := 28;
51898    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51899    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51900    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
51901    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
51902    l_rec_acct_attrs.array_num_value(2)  := 
51903 xla_ae_sources_pkg.GetSystemSourceNum(
51904    p_source_code           => 'XLA_EVENT_APPL_ID'
51905  , p_source_type_code      => 'Y'
51906  , p_source_application_id =>  602
51907 );
51908    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
51909    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
51910    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
51911    l_rec_acct_attrs.array_char_value(4)  := 
51912 xla_ae_sources_pkg.GetSystemSourceChar(
51913    p_source_code           => 'XLA_ENTITY_CODE'
51914  , p_source_type_code      => 'Y'
51915  , p_source_application_id =>  602
51916 );
51917    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
51918    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
51919    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
51920    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
51921    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
51922    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
51923    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51924    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
51925    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
51926    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
51927    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
51928    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
51929    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51930    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
51931    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
51932    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
51933    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
51934    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
51935    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
51939    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
51936    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
51937    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
51938    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
51940    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
51941    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
51942    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
51943    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
51944    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
51945    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
51946    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
51947    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
51948    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
51949    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
51950    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
51951    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
51952    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
51953    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
51954    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
51955    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
51956    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
51957    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
51958    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
51959    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
51960    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
51961    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
51962    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
51963    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
51964    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
51965    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
51966    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
51967    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
51968    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
51969    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
51970    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
51971    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
51972    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
51973    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
51974    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
51975    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
51976    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
51977    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
51978    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
51979    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
51980    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
51981    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
51982    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
51983    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
51984    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
51985    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
51986    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
51987    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
51988    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
51989    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
51990    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
51991    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
51992    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
51993    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
51994    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
51995 
51996    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51997    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51998 
51999    ---------------------------------------------------------------------------------------------------------------
52000    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52001    ---------------------------------------------------------------------------------------------------------------
52002    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52003 
52004    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52005    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52006 
52007    IF xla_accounting_cache_pkg.GetValueChar
52008          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52009          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52010    AND l_bflow_method_code = 'PRIOR_ENTRY'
52011 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52012    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52013          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52014        )
52015    THEN
52016          xla_ae_lines_pkg.BflowUpgEntry
52017            (p_business_method_code    => l_bflow_method_code
52018            ,p_business_class_code     => l_bflow_class_code
52019            ,p_balance_type            => l_balance_type_code);
52020    ELSE
52021       NULL;
52025    --
52022 -- No business flow processing for business flow method of NONE.
52023    END IF;
52024 
52026    -- call analytical criteria
52027    --
52028    
52029    --
52030    -- call description
52031    --
52032    
52033 xla_ae_lines_pkg.SetLineDescription(
52034    p_ae_header_id => l_ae_header_id
52035   ,p_description  => Description_2 (
52036      p_application_id         => p_application_id
52037    , p_ae_header_id           => l_ae_header_id 
52038 , p_source_1 => p_source_1
52039    )
52040 );
52041 
52042 
52043    --
52044    -- call ADRs
52045    -- Bug 4922099
52046    --
52047    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52048         (NVL(l_actual_upg_option, 'N') = 'O') OR
52049         (NVL(l_enc_upg_option, 'N') = 'O')
52050       )
52051    THEN
52052    NULL;
52053    --
52054    --
52055    
52056   l_ccid := AcctDerRule_32(
52057            p_application_id           => p_application_id
52058          , p_ae_header_id             => l_ae_header_id 
52059 , p_source_10 => p_source_10
52060 , p_source_10_meaning => p_source_10_meaning
52061 , p_source_15 => p_source_15
52062 , p_source_16 => p_source_16
52063 , p_source_17 => p_source_17
52064 , p_source_17_meaning => p_source_17_meaning
52065 , p_source_18 => p_source_18
52066 , p_source_25 => p_source_25
52067 , p_source_43 => p_source_43
52068 , p_source_43_meaning => p_source_43_meaning
52069          , x_transaction_coa_id       => l_adr_transaction_coa_id
52070          , x_accounting_coa_id        => l_adr_accounting_coa_id
52071          , x_value_type_code          => l_adr_value_type_code
52072          , p_side                     => 'NA'
52073    );
52074 
52075    xla_ae_lines_pkg.set_ccid(
52076     p_code_combination_id          => l_ccid
52077   , p_value_type_code              => l_adr_value_type_code
52078   , p_transaction_coa_id           => l_adr_transaction_coa_id
52079   , p_accounting_coa_id            => l_adr_accounting_coa_id
52080   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
52081   , p_adr_type_code                => 'S'
52082   , p_component_type               => l_component_type
52083   , p_component_code               => l_component_code
52084   , p_component_type_code          => l_component_type_code
52085   , p_component_appl_id            => l_component_appl_id
52086   , p_amb_context_code             => l_amb_context_code
52087   , p_side                         => 'NA'
52088   );
52089 
52090 
52091    l_segment := AcctDerRule_8(
52092            p_application_id           => p_application_id
52093          , p_ae_header_id             => l_ae_header_id 
52094 , p_source_10 => p_source_10
52095 , p_source_10_meaning => p_source_10_meaning
52096 , p_source_15 => p_source_15
52097 , p_source_16 => p_source_16
52098 , p_source_17 => p_source_17
52099 , p_source_17_meaning => p_source_17_meaning
52100 , p_source_18 => p_source_18
52101          , x_transaction_coa_id       => l_adr_transaction_coa_id
52102          , x_accounting_coa_id        => l_adr_accounting_coa_id
52103          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52104          , x_flex_value_set_id        => l_adr_flex_value_set_id
52105          , x_value_type_code          => l_adr_value_type_code
52106          , x_value_combination_id     => l_adr_value_combination_id
52107          , x_value_segment_code       => l_adr_value_segment_code
52108          , p_side                     => 'NA'
52109          , p_override_seg_flag        => 'Y'
52110    );
52111 
52112    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52113 
52114       xla_ae_lines_pkg.set_segment(
52115           p_to_segment_code         => 'GL_ACCOUNT'
52116         , p_segment_value           => l_segment
52117         , p_from_segment_code       => l_adr_value_segment_code
52118         , p_from_combination_id     => l_adr_value_combination_id
52119         , p_value_type_code         => l_adr_value_type_code
52120         , p_transaction_coa_id      => l_adr_transaction_coa_id
52121         , p_accounting_coa_id       => l_adr_accounting_coa_id
52122         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52123         , p_flex_value_set_id       => l_adr_flex_value_set_id
52124         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
52125         , p_adr_type_code           => 'S'
52126         , p_component_type          => l_component_type
52127         , p_component_code          => l_component_code
52128         , p_component_type_code     => l_component_type_code
52129         , p_component_appl_id       => l_component_appl_id
52130         , p_amb_context_code        => l_amb_context_code
52131         , p_entity_code             => 'AP_INVOICES'
52132         , p_event_class_code        => 'CREDIT MEMOS'
52133         , p_side                    => 'NA'
52134         );
52135 
52136   END IF;
52137 
52138    l_segment := AcctDerRule_24(
52139            p_application_id           => p_application_id
52140          , p_ae_header_id             => l_ae_header_id 
52141 , p_source_10 => p_source_10
52142 , p_source_10_meaning => p_source_10_meaning
52143 , p_source_17 => p_source_17
52144 , p_source_17_meaning => p_source_17_meaning
52145 , p_source_25 => p_source_25
52146          , x_transaction_coa_id       => l_adr_transaction_coa_id
52147          , x_accounting_coa_id        => l_adr_accounting_coa_id
52148          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52149          , x_flex_value_set_id        => l_adr_flex_value_set_id
52153          , p_side                     => 'NA'
52150          , x_value_type_code          => l_adr_value_type_code
52151          , x_value_combination_id     => l_adr_value_combination_id
52152          , x_value_segment_code       => l_adr_value_segment_code
52154          , p_override_seg_flag        => 'Y'
52155    );
52156 
52157    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52158 
52159       xla_ae_lines_pkg.set_segment(
52160           p_to_segment_code         => 'GL_BALANCING'
52161         , p_segment_value           => l_segment
52162         , p_from_segment_code       => l_adr_value_segment_code
52163         , p_from_combination_id     => l_adr_value_combination_id
52164         , p_value_type_code         => l_adr_value_type_code
52165         , p_transaction_coa_id      => l_adr_transaction_coa_id
52166         , p_accounting_coa_id       => l_adr_accounting_coa_id
52167         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52168         , p_flex_value_set_id       => l_adr_flex_value_set_id
52169         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52170         , p_adr_type_code           => 'S'
52171         , p_component_type          => l_component_type
52172         , p_component_code          => l_component_code
52173         , p_component_type_code     => l_component_type_code
52174         , p_component_appl_id       => l_component_appl_id
52175         , p_amb_context_code        => l_amb_context_code
52176         , p_entity_code             => 'AP_INVOICES'
52177         , p_event_class_code        => 'CREDIT MEMOS'
52178         , p_side                    => 'NA'
52179         );
52180 
52181   END IF;
52182 
52183    --
52184    --
52185    END IF;
52186    --
52187    -- Bug 4922099
52188    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52189           (NVL(l_enc_upg_option, 'N') = 'O')
52190         ) AND
52191         (l_bflow_method_code = 'PRIOR_ENTRY')
52192       )
52193    THEN
52194       IF
52195       --
52196       1 = 2
52197       --
52198       THEN
52199       xla_accounting_err_pkg.build_message
52200                                     (p_appli_s_name            => 'XLA'
52201                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52202                                     ,p_token_1                 => 'LINE_NUMBER'
52203                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52204                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52205                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52206                                                                              l_component_type
52207                                                                             ,l_component_code
52208                                                                             ,l_component_type_code
52209                                                                             ,l_component_appl_id
52210                                                                             ,l_amb_context_code
52211                                                                             ,l_entity_code
52212                                                                             ,l_event_class_code
52213                                                                            )
52214                                     ,p_token_3                 => 'OWNER'
52215                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52216                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52217                                                                           ,p_lookup_code    => l_component_type_code
52218                                                                          )
52219                                     ,p_token_4                 => 'PRODUCT_NAME'
52220                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52221                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52222                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52223                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52224                                     ,p_ae_header_id            =>  NULL
52225                                        );
52226 
52227         IF (C_LEVEL_ERROR>= g_log_level) THEN
52228                  trace
52229                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52230                       ,p_level    => C_LEVEL_ERROR
52231                       ,p_module   => l_log_module);
52232         END IF;
52233       END IF;
52234    END IF;
52235    --
52236    --
52237    ------------------------------------------------------------------------------------------------
52238    -- 4219869 Business Flow
52239    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52240    -- Prior Entry.  Currently, the following code is always generated.
52241    ------------------------------------------------------------------------------------------------
52242    XLA_AE_LINES_PKG.ValidateCurrentLine;
52243 
52244    ------------------------------------------------------------------------------------
52245    -- 4219869 Business Flow
52249 
52246    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52247    ------------------------------------------------------------------------------------
52248    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52250    ----------------------------------------------------------------------------------
52251    -- 4219869 Business Flow
52252    -- Update journal entry status -- Need to generate this within IF <condition>
52253    ----------------------------------------------------------------------------------
52254    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52255          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52256          ,p_balance_type_code => l_balance_type_code
52257          );
52258 
52259    -------------------------------------------------------------------------------------------
52260    -- 4262811 - Generate the Accrual Reversal lines
52261    -------------------------------------------------------------------------------------------
52262    BEGIN
52263       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52264                               (g_array_event(p_event_id).array_value_num('header_index'));
52265       IF l_acc_rev_flag IS NULL THEN
52266          l_acc_rev_flag := 'N';
52267       END IF;
52268    EXCEPTION
52269       WHEN OTHERS THEN
52270          l_acc_rev_flag := 'N';
52271    END;
52272    --
52273    IF (l_acc_rev_flag = 'Y') THEN
52274 
52275        -- 4645092  ------------------------------------------------------------------------------
52276        -- To allow MPA report to determine if it should generate report process
52277        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52278        ------------------------------------------------------------------------------------------
52279 
52280        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52281        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52282    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52283    -- call ADRs
52284    -- Bug 4922099
52285    --
52286    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52287         (NVL(l_actual_upg_option, 'N') = 'O') OR
52288         (NVL(l_enc_upg_option, 'N') = 'O')
52289       )
52290    THEN
52291    NULL;
52292    --
52293    --
52294    
52295   l_ccid := AcctDerRule_32(
52296            p_application_id           => p_application_id
52297          , p_ae_header_id             => l_ae_header_id 
52298 , p_source_10 => p_source_10
52299 , p_source_10_meaning => p_source_10_meaning
52300 , p_source_15 => p_source_15
52301 , p_source_16 => p_source_16
52302 , p_source_17 => p_source_17
52303 , p_source_17_meaning => p_source_17_meaning
52304 , p_source_18 => p_source_18
52305 , p_source_25 => p_source_25
52306 , p_source_43 => p_source_43
52307 , p_source_43_meaning => p_source_43_meaning
52308          , x_transaction_coa_id       => l_adr_transaction_coa_id
52309          , x_accounting_coa_id        => l_adr_accounting_coa_id
52310          , x_value_type_code          => l_adr_value_type_code
52311          , p_side                     => 'NA'
52312    );
52313 
52314    xla_ae_lines_pkg.set_ccid(
52315     p_code_combination_id          => l_ccid
52316   , p_value_type_code              => l_adr_value_type_code
52317   , p_transaction_coa_id           => l_adr_transaction_coa_id
52318   , p_accounting_coa_id            => l_adr_accounting_coa_id
52319   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
52320   , p_adr_type_code                => 'S'
52321   , p_component_type               => l_component_type
52322   , p_component_code               => l_component_code
52323   , p_component_type_code          => l_component_type_code
52324   , p_component_appl_id            => l_component_appl_id
52325   , p_amb_context_code             => l_amb_context_code
52326   , p_side                         => 'NA'
52327   );
52328 
52329 
52330    l_segment := AcctDerRule_8(
52331            p_application_id           => p_application_id
52332          , p_ae_header_id             => l_ae_header_id 
52333 , p_source_10 => p_source_10
52334 , p_source_10_meaning => p_source_10_meaning
52335 , p_source_15 => p_source_15
52336 , p_source_16 => p_source_16
52337 , p_source_17 => p_source_17
52338 , p_source_17_meaning => p_source_17_meaning
52339 , p_source_18 => p_source_18
52340          , x_transaction_coa_id       => l_adr_transaction_coa_id
52341          , x_accounting_coa_id        => l_adr_accounting_coa_id
52342          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52343          , x_flex_value_set_id        => l_adr_flex_value_set_id
52344          , x_value_type_code          => l_adr_value_type_code
52345          , x_value_combination_id     => l_adr_value_combination_id
52346          , x_value_segment_code       => l_adr_value_segment_code
52347          , p_side                     => 'NA'
52348          , p_override_seg_flag        => 'Y'
52349    );
52350 
52351    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52352 
52353       xla_ae_lines_pkg.set_segment(
52354           p_to_segment_code         => 'GL_ACCOUNT'
52355         , p_segment_value           => l_segment
52356         , p_from_segment_code       => l_adr_value_segment_code
52357         , p_from_combination_id     => l_adr_value_combination_id
52358         , p_value_type_code         => l_adr_value_type_code
52359         , p_transaction_coa_id      => l_adr_transaction_coa_id
52363         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
52360         , p_accounting_coa_id       => l_adr_accounting_coa_id
52361         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52362         , p_flex_value_set_id       => l_adr_flex_value_set_id
52364         , p_adr_type_code           => 'S'
52365         , p_component_type          => l_component_type
52366         , p_component_code          => l_component_code
52367         , p_component_type_code     => l_component_type_code
52368         , p_component_appl_id       => l_component_appl_id
52369         , p_amb_context_code        => l_amb_context_code
52370         , p_entity_code             => 'AP_INVOICES'
52371         , p_event_class_code        => 'CREDIT MEMOS'
52372         , p_side                    => 'NA'
52373         );
52374 
52375   END IF;
52376 
52377    l_segment := AcctDerRule_24(
52378            p_application_id           => p_application_id
52379          , p_ae_header_id             => l_ae_header_id 
52380 , p_source_10 => p_source_10
52381 , p_source_10_meaning => p_source_10_meaning
52382 , p_source_17 => p_source_17
52383 , p_source_17_meaning => p_source_17_meaning
52384 , p_source_25 => p_source_25
52385          , x_transaction_coa_id       => l_adr_transaction_coa_id
52386          , x_accounting_coa_id        => l_adr_accounting_coa_id
52387          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52388          , x_flex_value_set_id        => l_adr_flex_value_set_id
52389          , x_value_type_code          => l_adr_value_type_code
52390          , x_value_combination_id     => l_adr_value_combination_id
52391          , x_value_segment_code       => l_adr_value_segment_code
52392          , p_side                     => 'NA'
52393          , p_override_seg_flag        => 'Y'
52394    );
52395 
52396    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52397 
52398       xla_ae_lines_pkg.set_segment(
52399           p_to_segment_code         => 'GL_BALANCING'
52400         , p_segment_value           => l_segment
52401         , p_from_segment_code       => l_adr_value_segment_code
52402         , p_from_combination_id     => l_adr_value_combination_id
52403         , p_value_type_code         => l_adr_value_type_code
52404         , p_transaction_coa_id      => l_adr_transaction_coa_id
52405         , p_accounting_coa_id       => l_adr_accounting_coa_id
52406         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52407         , p_flex_value_set_id       => l_adr_flex_value_set_id
52408         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52409         , p_adr_type_code           => 'S'
52410         , p_component_type          => l_component_type
52411         , p_component_code          => l_component_code
52412         , p_component_type_code     => l_component_type_code
52413         , p_component_appl_id       => l_component_appl_id
52414         , p_amb_context_code        => l_amb_context_code
52415         , p_entity_code             => 'AP_INVOICES'
52416         , p_event_class_code        => 'CREDIT MEMOS'
52417         , p_side                    => 'NA'
52418         );
52419 
52420   END IF;
52421 
52422    --
52423    --
52424    END IF;
52425 
52426        --
52427        -- Update the line information that should be overwritten
52428        --
52429        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52430                                          p_header_num   => 1);
52431        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52432 
52433        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52434 
52435        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52436           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52437        END IF;
52438 
52439       --
52440       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52441       --
52442       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52443           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52444       ELSE
52445           ---------------------------------------------------------------------------------------------------
52446           -- 4262811a Switch Sign
52447           ---------------------------------------------------------------------------------------------------
52448           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52449           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52450                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52451           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52452                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52453           -- 5132302
52454           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52455                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52456 
52457       END IF;
52458 
52459       -- 4955764
52460       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52464       XLA_AE_LINES_PKG.ValidateCurrentLine;
52461       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52462 
52463 
52465       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52466 
52467       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52468                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52469                ,p_balance_type_code => l_balance_type_code);
52470 
52471    END IF;
52472 
52473    -----------------------------------------------------------------------------------------
52474    -- 4262811 Multiperiod Accounting
52475    -----------------------------------------------------------------------------------------
52476      -- No MPA option is assigned.
52477 
52478 
52479 END IF;
52480 END IF;
52481 --
52482 
52483 --
52484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52485    trace
52486       (p_msg      => 'END of AcctLineType_116'
52487       ,p_level    => C_LEVEL_PROCEDURE
52488       ,p_module   => l_log_module);
52489 END IF;
52490 --
52491 EXCEPTION
52492   WHEN xla_exceptions_pkg.application_exception THEN
52493       RAISE;
52494   WHEN OTHERS THEN
52495        xla_exceptions_pkg.raise_message
52496            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_116');
52497 END AcctLineType_116;
52498 --
52499 
52500 ---------------------------------------
52501 --
52502 -- PRIVATE FUNCTION
52503 --         AcctLineType_117
52504 --
52505 ---------------------------------------
52506 PROCEDURE AcctLineType_117 (
52507   p_application_id        IN NUMBER
52508  ,p_event_id              IN NUMBER
52509  ,p_calculate_acctd_flag  IN VARCHAR2
52510  ,p_calculate_g_l_flag    IN VARCHAR2
52511  ,p_actual_flag           IN OUT VARCHAR2
52512  ,p_balance_type_code     OUT VARCHAR2
52513  ,p_gain_or_loss_ref      OUT VARCHAR2
52514  
52515 --Invoice Distribution Description
52516  , p_source_1            IN VARCHAR2
52517 --Automatic Offsets Value
52518  , p_source_10            IN VARCHAR2
52519  , p_source_10_meaning    IN VARCHAR2
52520 --Purchase Order Rate Variance Gain Account
52521  , p_source_15            IN NUMBER
52522 --Invoice Distribution Ledger Amount
52523  , p_source_16            IN NUMBER
52524 --Destination Type of the PO Distribution
52525  , p_source_17            IN VARCHAR2
52526  , p_source_17_meaning    IN VARCHAR2
52527 --Purchase Order Rate Variance Loss Account
52528  , p_source_18            IN NUMBER
52529 --Invoice Distribution Account
52530  , p_source_25            IN NUMBER
52531 --Invoice Distribution Type
52532  , p_source_28            IN VARCHAR2
52533  , p_source_28_meaning    IN VARCHAR2
52534 --Automatic Offsets Flag
52535  , p_source_43            IN VARCHAR2
52536  , p_source_43_meaning    IN VARCHAR2
52537 --Accrue on Receipt Option
52538  , p_source_54            IN VARCHAR2
52539  , p_source_54_meaning    IN VARCHAR2
52540 --Accounting Reversal Indicator
52541  , p_source_58            IN VARCHAR2
52542 --Distribution Link Type
52543  , p_source_60            IN VARCHAR2
52544 --Allocation to Main Distribution Identifier
52545  , p_source_62            IN NUMBER
52546 --Invoice Identifier
52547  , p_source_63            IN NUMBER
52548 --Invoice Distribution Identifier
52549  , p_source_69            IN NUMBER
52550 --Payables Encumbrance Upgrade Credit Account
52551  , p_source_70            IN NUMBER
52552 --Payables Encumbrance Upgrade Credit Amount
52553  , p_source_71            IN NUMBER
52554 --Invoice Currency Code
52555  , p_source_72            IN VARCHAR2
52556 --Payables Encumbrance Upgrade Credit Base Amount
52557  , p_source_73            IN NUMBER
52558 --Payables Encumbrance Upgrade Debit Account
52559  , p_source_74            IN NUMBER
52560 --Payables Encumbrance Upgrade Debit Amount
52561  , p_source_75            IN NUMBER
52562 --Payables Encumbrance Upgrade Debit Base Amount
52563  , p_source_76            IN NUMBER
52564 --Payables Encumbrance Upgrade Option
52565  , p_source_77            IN VARCHAR2
52566 --Invoice Distribution Amount
52567  , p_source_78            IN NUMBER
52568 --Deferred Accounting End Date
52569  , p_source_82            IN DATE
52570 --Deferred Accounting Option
52571  , p_source_83            IN VARCHAR2
52572 --Deferred Accounting Start Date
52573  , p_source_84            IN DATE
52574 --Override Accounted Amount Indicator
52575  , p_source_85            IN VARCHAR2
52576  , p_source_85_meaning    IN VARCHAR2
52577 --Invoice Supplier Identifier
52578  , p_source_86            IN NUMBER
52579 --Invoice Supplier Site Identifier
52580  , p_source_87            IN NUMBER
52581 --Third Party Type
52582  , p_source_88            IN VARCHAR2
52583 --Parent Reversal Identifier
52584  , p_source_89            IN NUMBER
52585 --Invoice Distribution Tax Line Identifier
52586  , p_source_91            IN NUMBER
52587 --Invoice Distribution Tax Distribution Identifier from Tax
52588  , p_source_92            IN NUMBER
52589 --Invoice Distribution Summary Tax Line Identifier
52590  , p_source_93            IN NUMBER
52591 --Payables Upgrade Credit Encumbrance Type Identifier
52592  , p_source_94            IN NUMBER
52593 --Payables Upgrade Debit Encumbrance Type Identifier
52594  , p_source_95            IN NUMBER
52595 --Business Flow Accounts Payable Application Identifier
52596  , p_source_96            IN NUMBER
52597 --Business Flow Invoice Distribution Type
52601 --Business Flow Invoice Distribution Identifier
52598  , p_source_97            IN VARCHAR2
52599 --Business Flow Invoice Entity Code
52600  , p_source_98            IN VARCHAR2
52602  , p_source_99            IN NUMBER
52603 --Business Flow Invoice Identifier
52604  , p_source_100            IN NUMBER
52605 --Invoice Exchange Date
52606  , p_source_146            IN DATE
52607 --Invoice Exchange Rate
52608  , p_source_147            IN NUMBER
52609 --Invoice Exchange Rate Type
52610  , p_source_148            IN VARCHAR2
52611 )
52612 IS
52613 
52614 l_component_type              VARCHAR2(80);
52615 l_component_code              VARCHAR2(30);
52616 l_component_type_code         VARCHAR2(1);
52617 l_component_appl_id           INTEGER;
52618 l_amb_context_code            VARCHAR2(30);
52619 l_entity_code                 VARCHAR2(30);
52620 l_event_class_code            VARCHAR2(30);
52621 l_ae_header_id                NUMBER;
52622 l_event_type_code             VARCHAR2(30);
52623 l_line_definition_code        VARCHAR2(30);
52624 l_line_definition_owner_code  VARCHAR2(1);
52625 --
52626 -- adr variables
52627 l_segment                     VARCHAR2(30);
52628 l_ccid                        NUMBER;
52629 l_adr_transaction_coa_id      NUMBER;
52630 l_adr_accounting_coa_id       NUMBER;
52631 l_adr_flexfield_segment_code  VARCHAR2(30);
52632 l_adr_flex_value_set_id       NUMBER;
52633 l_adr_value_type_code         VARCHAR2(30);
52634 l_adr_value_combination_id    NUMBER;
52635 l_adr_value_segment_code      VARCHAR2(30);
52636 
52637 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52638 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52639 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52640 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52641 
52642 -- 4262811 Variables ------------------------------------------------------------------------------------------
52643 l_entered_amt_idx             NUMBER;
52644 l_accted_amt_idx              NUMBER;
52645 l_acc_rev_flag                VARCHAR2(1);
52646 l_accrual_line_num            NUMBER;
52647 l_tmp_amt                     NUMBER;
52648 l_acc_rev_natural_side_code   VARCHAR2(1);
52649 
52650 l_num_entries                 NUMBER;
52651 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52652 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52653 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52654 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52655 l_recog_line_1                NUMBER;
52656 l_recog_line_2                NUMBER;
52657 
52658 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52659 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52660 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52661 
52662 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52663 
52664 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52665 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52666 
52667 ---------------------------------------------------------------------------------------------------------------
52668 
52669 
52670 --
52671 -- bulk performance
52672 --
52673 l_balance_type_code           VARCHAR2(1);
52674 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52675 l_log_module                  VARCHAR2(240);
52676 
52677 --
52678 -- Upgrade strategy
52679 --
52680 l_actual_upg_option           VARCHAR2(1);
52681 l_enc_upg_option           VARCHAR2(1);
52682 
52683 --
52684 BEGIN
52685 --
52686 IF g_log_enabled THEN
52687       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
52688 END IF;
52689 --
52690 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52691 
52692       trace
52693          (p_msg      => 'BEGIN of AcctLineType_117'
52694          ,p_level    => C_LEVEL_PROCEDURE
52695          ,p_module   => l_log_module);
52696 
52697 END IF;
52698 --
52699 l_component_type             := 'AMB_JLT';
52700 l_component_code             := 'AP_EX_RATE_VAR_DM';
52701 l_component_type_code        := 'S';
52702 l_component_appl_id          :=  200;
52703 l_amb_context_code           := 'DEFAULT';
52704 l_entity_code                := 'AP_INVOICES';
52705 l_event_class_code           := 'DEBIT MEMOS';
52706 l_event_type_code            := 'DEBIT MEMOS_ALL';
52707 l_line_definition_owner_code := 'S';
52708 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
52709 --
52710 l_balance_type_code          := 'A';
52711 l_segment                     := NULL;
52712 l_ccid                        := NULL;
52713 l_adr_transaction_coa_id      := NULL;
52714 l_adr_accounting_coa_id       := NULL;
52715 l_adr_flexfield_segment_code  := NULL;
52716 l_adr_flex_value_set_id       := NULL;
52717 l_adr_value_type_code         := NULL;
52718 l_adr_value_combination_id    := NULL;
52719 l_adr_value_segment_code      := NULL;
52720 
52721 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52722 l_bflow_class_code           := '';    -- 4219869 Business Flow
52723 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52724 l_budgetary_control_flag     := 'N';
52725 
52726 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52727 l_bflow_applied_to_amt       := NULL; -- 5132302
52731 l_accrual_line_num           := NULL;          -- 4262811
52728 l_entered_amt_idx            := NULL;          -- 4262811
52729 l_accted_amt_idx             := NULL;          -- 4262811
52730 l_acc_rev_flag               := NULL;          -- 4262811
52732 l_tmp_amt                    := NULL;          -- 4262811
52733 --
52734 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52735             (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
52736                return;
52737   END IF;
52738   
52739 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52740     l_balance_type_code <> 'B' THEN
52741 IF NVL(p_source_28,'
52742 ') =  'ERV' AND 
52743 NVL(p_source_54,'
52744 ') =  'Y'
52745  THEN 
52746 
52747    --
52748    XLA_AE_LINES_PKG.SetNewLine;
52749 
52750    p_balance_type_code          := l_balance_type_code;
52751    -- set the flag so later we will know whether the gain loss line needs to be created
52752    
52753    IF(l_balance_type_code = 'A' ) THEN
52754      p_actual_flag :='G';
52755    END IF;
52756 
52757    --
52758    -- bulk performance
52759    --
52760    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52761                                       p_header_num   => 0); -- 4262811
52762    --
52763    -- set accounting line options
52764    --
52765    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52766            p_natural_side_code          => 'D'
52767          , p_gain_or_loss_flag          => 'Y'
52768          , p_gl_transfer_mode_code      => 'S'
52769          , p_acct_entry_type_code       => 'A'
52770          , p_switch_side_flag           => 'Y'
52771          , p_merge_duplicate_code       => 'A'
52772          );
52773    --
52774    l_acc_rev_natural_side_code := 'C';  -- 4262811
52775    -- 
52776    --
52777    -- set accounting line type info
52778    --
52779    xla_ae_lines_pkg.SetAcctLineType
52780       (p_component_type             => l_component_type
52781       ,p_event_type_code            => l_event_type_code
52782       ,p_line_definition_owner_code => l_line_definition_owner_code
52783       ,p_line_definition_code       => l_line_definition_code
52784       ,p_accounting_line_code       => l_component_code
52785       ,p_accounting_line_type_code  => l_component_type_code
52786       ,p_accounting_line_appl_id    => l_component_appl_id
52787       ,p_amb_context_code           => l_amb_context_code
52788       ,p_entity_code                => l_entity_code
52789       ,p_event_class_code           => l_event_class_code);
52790    --
52791    -- set accounting class
52792    --
52793    xla_ae_lines_pkg.SetAcctClass(
52794            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
52795          , p_ae_header_id           => l_ae_header_id
52796          );
52797 
52798    --
52799    -- set rounding class
52800    --
52801    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52802                       'EXCHANGE_RATE_VARIANCE';
52803 
52804    --
52805    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52806    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52807    --
52808    -- bulk performance
52809    --
52810    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52811 
52812    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52813       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52814 
52815    -- 4955764
52816    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52817       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52818 
52819    -- 4458381 Public Sector Enh
52820    
52821    --
52822    -- set accounting attributes for the line type
52823    --
52824    l_entered_amt_idx := 23;
52825    l_accted_amt_idx  := 28;
52826    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
52827    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52828    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
52829    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
52830    l_rec_acct_attrs.array_num_value(2)  := 
52831 xla_ae_sources_pkg.GetSystemSourceNum(
52832    p_source_code           => 'XLA_EVENT_APPL_ID'
52833  , p_source_type_code      => 'Y'
52834  , p_source_application_id =>  602
52835 );
52836    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
52837    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
52838    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
52839    l_rec_acct_attrs.array_char_value(4)  := 
52840 xla_ae_sources_pkg.GetSystemSourceChar(
52841    p_source_code           => 'XLA_ENTITY_CODE'
52842  , p_source_type_code      => 'Y'
52843  , p_source_application_id =>  602
52844 );
52845    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
52846    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
52847    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
52848    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
52849    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
52853    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
52850    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
52851    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52852    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
52854    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
52855    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
52856    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
52857    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52858    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
52859    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
52860    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
52861    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
52862    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
52863    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
52864    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
52865    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
52866    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
52867    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
52868    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
52869    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
52870    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
52871    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
52872    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
52873    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
52874    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
52875    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
52876    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
52877    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
52878    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
52879    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
52880    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
52881    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
52882    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
52883    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
52884    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
52885    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
52886    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
52887    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
52888    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
52889    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
52890    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
52891    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
52892    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
52893    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
52894    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
52895    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
52896    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
52897    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
52898    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
52899    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
52900    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
52901    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
52902    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
52903    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
52904    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
52905    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
52906    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
52907    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
52908    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
52909    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
52910    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
52911    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
52912    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
52913    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
52914    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
52915    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
52916    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
52917    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
52918    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
52919    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
52920    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
52921 
52922    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52923    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52924 
52925    ---------------------------------------------------------------------------------------------------------------
52926    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52927    ---------------------------------------------------------------------------------------------------------------
52928    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52929 
52930    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52934          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52931    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52932 
52933    IF xla_accounting_cache_pkg.GetValueChar
52935          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52936    AND l_bflow_method_code = 'PRIOR_ENTRY'
52937 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52938    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52939          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52940        )
52941    THEN
52942          xla_ae_lines_pkg.BflowUpgEntry
52943            (p_business_method_code    => l_bflow_method_code
52944            ,p_business_class_code     => l_bflow_class_code
52945            ,p_balance_type            => l_balance_type_code);
52946    ELSE
52947       NULL;
52948 -- No business flow processing for business flow method of NONE.
52949    END IF;
52950 
52951    --
52952    -- call analytical criteria
52953    --
52954    
52955    --
52956    -- call description
52957    --
52958    
52959 xla_ae_lines_pkg.SetLineDescription(
52960    p_ae_header_id => l_ae_header_id
52961   ,p_description  => Description_2 (
52962      p_application_id         => p_application_id
52963    , p_ae_header_id           => l_ae_header_id 
52964 , p_source_1 => p_source_1
52965    )
52966 );
52967 
52968 
52969    --
52970    -- call ADRs
52971    -- Bug 4922099
52972    --
52973    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52974         (NVL(l_actual_upg_option, 'N') = 'O') OR
52975         (NVL(l_enc_upg_option, 'N') = 'O')
52976       )
52977    THEN
52978    NULL;
52979    --
52980    --
52981    
52982   l_ccid := AcctDerRule_32(
52983            p_application_id           => p_application_id
52984          , p_ae_header_id             => l_ae_header_id 
52985 , p_source_10 => p_source_10
52986 , p_source_10_meaning => p_source_10_meaning
52987 , p_source_15 => p_source_15
52988 , p_source_16 => p_source_16
52989 , p_source_17 => p_source_17
52990 , p_source_17_meaning => p_source_17_meaning
52991 , p_source_18 => p_source_18
52992 , p_source_25 => p_source_25
52993 , p_source_43 => p_source_43
52994 , p_source_43_meaning => p_source_43_meaning
52995          , x_transaction_coa_id       => l_adr_transaction_coa_id
52996          , x_accounting_coa_id        => l_adr_accounting_coa_id
52997          , x_value_type_code          => l_adr_value_type_code
52998          , p_side                     => 'NA'
52999    );
53000 
53001    xla_ae_lines_pkg.set_ccid(
53002     p_code_combination_id          => l_ccid
53003   , p_value_type_code              => l_adr_value_type_code
53004   , p_transaction_coa_id           => l_adr_transaction_coa_id
53005   , p_accounting_coa_id            => l_adr_accounting_coa_id
53006   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53007   , p_adr_type_code                => 'S'
53008   , p_component_type               => l_component_type
53009   , p_component_code               => l_component_code
53010   , p_component_type_code          => l_component_type_code
53011   , p_component_appl_id            => l_component_appl_id
53012   , p_amb_context_code             => l_amb_context_code
53013   , p_side                         => 'NA'
53014   );
53015 
53016 
53017    l_segment := AcctDerRule_8(
53018            p_application_id           => p_application_id
53019          , p_ae_header_id             => l_ae_header_id 
53020 , p_source_10 => p_source_10
53021 , p_source_10_meaning => p_source_10_meaning
53022 , p_source_15 => p_source_15
53023 , p_source_16 => p_source_16
53024 , p_source_17 => p_source_17
53025 , p_source_17_meaning => p_source_17_meaning
53026 , p_source_18 => p_source_18
53027          , x_transaction_coa_id       => l_adr_transaction_coa_id
53028          , x_accounting_coa_id        => l_adr_accounting_coa_id
53029          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53030          , x_flex_value_set_id        => l_adr_flex_value_set_id
53031          , x_value_type_code          => l_adr_value_type_code
53032          , x_value_combination_id     => l_adr_value_combination_id
53033          , x_value_segment_code       => l_adr_value_segment_code
53034          , p_side                     => 'NA'
53035          , p_override_seg_flag        => 'Y'
53036    );
53037 
53038    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53039 
53040       xla_ae_lines_pkg.set_segment(
53041           p_to_segment_code         => 'GL_ACCOUNT'
53042         , p_segment_value           => l_segment
53043         , p_from_segment_code       => l_adr_value_segment_code
53044         , p_from_combination_id     => l_adr_value_combination_id
53045         , p_value_type_code         => l_adr_value_type_code
53046         , p_transaction_coa_id      => l_adr_transaction_coa_id
53047         , p_accounting_coa_id       => l_adr_accounting_coa_id
53048         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53049         , p_flex_value_set_id       => l_adr_flex_value_set_id
53050         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53051         , p_adr_type_code           => 'S'
53052         , p_component_type          => l_component_type
53053         , p_component_code          => l_component_code
53054         , p_component_type_code     => l_component_type_code
53058         , p_event_class_code        => 'DEBIT MEMOS'
53055         , p_component_appl_id       => l_component_appl_id
53056         , p_amb_context_code        => l_amb_context_code
53057         , p_entity_code             => 'AP_INVOICES'
53059         , p_side                    => 'NA'
53060         );
53061 
53062   END IF;
53063 
53064    l_segment := AcctDerRule_24(
53065            p_application_id           => p_application_id
53066          , p_ae_header_id             => l_ae_header_id 
53067 , p_source_10 => p_source_10
53068 , p_source_10_meaning => p_source_10_meaning
53069 , p_source_17 => p_source_17
53070 , p_source_17_meaning => p_source_17_meaning
53071 , p_source_25 => p_source_25
53072          , x_transaction_coa_id       => l_adr_transaction_coa_id
53073          , x_accounting_coa_id        => l_adr_accounting_coa_id
53074          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53075          , x_flex_value_set_id        => l_adr_flex_value_set_id
53076          , x_value_type_code          => l_adr_value_type_code
53077          , x_value_combination_id     => l_adr_value_combination_id
53078          , x_value_segment_code       => l_adr_value_segment_code
53079          , p_side                     => 'NA'
53080          , p_override_seg_flag        => 'Y'
53081    );
53082 
53083    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53084 
53085       xla_ae_lines_pkg.set_segment(
53086           p_to_segment_code         => 'GL_BALANCING'
53087         , p_segment_value           => l_segment
53088         , p_from_segment_code       => l_adr_value_segment_code
53089         , p_from_combination_id     => l_adr_value_combination_id
53090         , p_value_type_code         => l_adr_value_type_code
53091         , p_transaction_coa_id      => l_adr_transaction_coa_id
53092         , p_accounting_coa_id       => l_adr_accounting_coa_id
53093         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53094         , p_flex_value_set_id       => l_adr_flex_value_set_id
53095         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53096         , p_adr_type_code           => 'S'
53097         , p_component_type          => l_component_type
53098         , p_component_code          => l_component_code
53099         , p_component_type_code     => l_component_type_code
53100         , p_component_appl_id       => l_component_appl_id
53101         , p_amb_context_code        => l_amb_context_code
53102         , p_entity_code             => 'AP_INVOICES'
53103         , p_event_class_code        => 'DEBIT MEMOS'
53104         , p_side                    => 'NA'
53105         );
53106 
53107   END IF;
53108 
53109    --
53110    --
53111    END IF;
53112    --
53113    -- Bug 4922099
53114    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53115           (NVL(l_enc_upg_option, 'N') = 'O')
53116         ) AND
53117         (l_bflow_method_code = 'PRIOR_ENTRY')
53118       )
53119    THEN
53120       IF
53121       --
53122       1 = 2
53123       --
53124       THEN
53125       xla_accounting_err_pkg.build_message
53126                                     (p_appli_s_name            => 'XLA'
53127                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53128                                     ,p_token_1                 => 'LINE_NUMBER'
53129                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53130                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53131                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53132                                                                              l_component_type
53133                                                                             ,l_component_code
53134                                                                             ,l_component_type_code
53135                                                                             ,l_component_appl_id
53136                                                                             ,l_amb_context_code
53137                                                                             ,l_entity_code
53138                                                                             ,l_event_class_code
53139                                                                            )
53140                                     ,p_token_3                 => 'OWNER'
53141                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53142                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53143                                                                           ,p_lookup_code    => l_component_type_code
53144                                                                          )
53145                                     ,p_token_4                 => 'PRODUCT_NAME'
53146                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53147                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53148                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53149                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53150                                     ,p_ae_header_id            =>  NULL
53151                                        );
53152 
53153         IF (C_LEVEL_ERROR>= g_log_level) THEN
53157                       ,p_module   => l_log_module);
53154                  trace
53155                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53156                       ,p_level    => C_LEVEL_ERROR
53158         END IF;
53159       END IF;
53160    END IF;
53161    --
53162    --
53163    ------------------------------------------------------------------------------------------------
53164    -- 4219869 Business Flow
53165    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53166    -- Prior Entry.  Currently, the following code is always generated.
53167    ------------------------------------------------------------------------------------------------
53168    XLA_AE_LINES_PKG.ValidateCurrentLine;
53169 
53170    ------------------------------------------------------------------------------------
53171    -- 4219869 Business Flow
53172    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53173    ------------------------------------------------------------------------------------
53174    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53175 
53176    ----------------------------------------------------------------------------------
53177    -- 4219869 Business Flow
53178    -- Update journal entry status -- Need to generate this within IF <condition>
53179    ----------------------------------------------------------------------------------
53180    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53181          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53182          ,p_balance_type_code => l_balance_type_code
53183          );
53184 
53185    -------------------------------------------------------------------------------------------
53186    -- 4262811 - Generate the Accrual Reversal lines
53187    -------------------------------------------------------------------------------------------
53188    BEGIN
53189       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53190                               (g_array_event(p_event_id).array_value_num('header_index'));
53191       IF l_acc_rev_flag IS NULL THEN
53192          l_acc_rev_flag := 'N';
53193       END IF;
53194    EXCEPTION
53195       WHEN OTHERS THEN
53196          l_acc_rev_flag := 'N';
53197    END;
53198    --
53199    IF (l_acc_rev_flag = 'Y') THEN
53200 
53201        -- 4645092  ------------------------------------------------------------------------------
53202        -- To allow MPA report to determine if it should generate report process
53203        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53204        ------------------------------------------------------------------------------------------
53205 
53206        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53207        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53208    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53209    -- call ADRs
53210    -- Bug 4922099
53211    --
53212    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53213         (NVL(l_actual_upg_option, 'N') = 'O') OR
53214         (NVL(l_enc_upg_option, 'N') = 'O')
53215       )
53216    THEN
53217    NULL;
53218    --
53219    --
53220    
53221   l_ccid := AcctDerRule_32(
53222            p_application_id           => p_application_id
53223          , p_ae_header_id             => l_ae_header_id 
53224 , p_source_10 => p_source_10
53225 , p_source_10_meaning => p_source_10_meaning
53226 , p_source_15 => p_source_15
53227 , p_source_16 => p_source_16
53228 , p_source_17 => p_source_17
53229 , p_source_17_meaning => p_source_17_meaning
53230 , p_source_18 => p_source_18
53231 , p_source_25 => p_source_25
53232 , p_source_43 => p_source_43
53233 , p_source_43_meaning => p_source_43_meaning
53234          , x_transaction_coa_id       => l_adr_transaction_coa_id
53235          , x_accounting_coa_id        => l_adr_accounting_coa_id
53236          , x_value_type_code          => l_adr_value_type_code
53237          , p_side                     => 'NA'
53238    );
53239 
53240    xla_ae_lines_pkg.set_ccid(
53241     p_code_combination_id          => l_ccid
53242   , p_value_type_code              => l_adr_value_type_code
53243   , p_transaction_coa_id           => l_adr_transaction_coa_id
53244   , p_accounting_coa_id            => l_adr_accounting_coa_id
53245   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53246   , p_adr_type_code                => 'S'
53247   , p_component_type               => l_component_type
53248   , p_component_code               => l_component_code
53249   , p_component_type_code          => l_component_type_code
53250   , p_component_appl_id            => l_component_appl_id
53251   , p_amb_context_code             => l_amb_context_code
53252   , p_side                         => 'NA'
53253   );
53254 
53255 
53256    l_segment := AcctDerRule_8(
53257            p_application_id           => p_application_id
53258          , p_ae_header_id             => l_ae_header_id 
53259 , p_source_10 => p_source_10
53260 , p_source_10_meaning => p_source_10_meaning
53261 , p_source_15 => p_source_15
53262 , p_source_16 => p_source_16
53263 , p_source_17 => p_source_17
53264 , p_source_17_meaning => p_source_17_meaning
53265 , p_source_18 => p_source_18
53266          , x_transaction_coa_id       => l_adr_transaction_coa_id
53267          , x_accounting_coa_id        => l_adr_accounting_coa_id
53268          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53269          , x_flex_value_set_id        => l_adr_flex_value_set_id
53273          , p_side                     => 'NA'
53270          , x_value_type_code          => l_adr_value_type_code
53271          , x_value_combination_id     => l_adr_value_combination_id
53272          , x_value_segment_code       => l_adr_value_segment_code
53274          , p_override_seg_flag        => 'Y'
53275    );
53276 
53277    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53278 
53279       xla_ae_lines_pkg.set_segment(
53280           p_to_segment_code         => 'GL_ACCOUNT'
53281         , p_segment_value           => l_segment
53282         , p_from_segment_code       => l_adr_value_segment_code
53283         , p_from_combination_id     => l_adr_value_combination_id
53284         , p_value_type_code         => l_adr_value_type_code
53285         , p_transaction_coa_id      => l_adr_transaction_coa_id
53286         , p_accounting_coa_id       => l_adr_accounting_coa_id
53287         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53288         , p_flex_value_set_id       => l_adr_flex_value_set_id
53289         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53290         , p_adr_type_code           => 'S'
53291         , p_component_type          => l_component_type
53292         , p_component_code          => l_component_code
53293         , p_component_type_code     => l_component_type_code
53294         , p_component_appl_id       => l_component_appl_id
53295         , p_amb_context_code        => l_amb_context_code
53296         , p_entity_code             => 'AP_INVOICES'
53297         , p_event_class_code        => 'DEBIT MEMOS'
53298         , p_side                    => 'NA'
53299         );
53300 
53301   END IF;
53302 
53303    l_segment := AcctDerRule_24(
53304            p_application_id           => p_application_id
53305          , p_ae_header_id             => l_ae_header_id 
53306 , p_source_10 => p_source_10
53307 , p_source_10_meaning => p_source_10_meaning
53308 , p_source_17 => p_source_17
53309 , p_source_17_meaning => p_source_17_meaning
53310 , p_source_25 => p_source_25
53311          , x_transaction_coa_id       => l_adr_transaction_coa_id
53312          , x_accounting_coa_id        => l_adr_accounting_coa_id
53313          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53314          , x_flex_value_set_id        => l_adr_flex_value_set_id
53315          , x_value_type_code          => l_adr_value_type_code
53316          , x_value_combination_id     => l_adr_value_combination_id
53317          , x_value_segment_code       => l_adr_value_segment_code
53318          , p_side                     => 'NA'
53319          , p_override_seg_flag        => 'Y'
53320    );
53321 
53322    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53323 
53324       xla_ae_lines_pkg.set_segment(
53325           p_to_segment_code         => 'GL_BALANCING'
53326         , p_segment_value           => l_segment
53327         , p_from_segment_code       => l_adr_value_segment_code
53328         , p_from_combination_id     => l_adr_value_combination_id
53329         , p_value_type_code         => l_adr_value_type_code
53330         , p_transaction_coa_id      => l_adr_transaction_coa_id
53331         , p_accounting_coa_id       => l_adr_accounting_coa_id
53332         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53333         , p_flex_value_set_id       => l_adr_flex_value_set_id
53334         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53335         , p_adr_type_code           => 'S'
53336         , p_component_type          => l_component_type
53337         , p_component_code          => l_component_code
53338         , p_component_type_code     => l_component_type_code
53339         , p_component_appl_id       => l_component_appl_id
53340         , p_amb_context_code        => l_amb_context_code
53341         , p_entity_code             => 'AP_INVOICES'
53342         , p_event_class_code        => 'DEBIT MEMOS'
53343         , p_side                    => 'NA'
53344         );
53345 
53346   END IF;
53347 
53348    --
53349    --
53350    END IF;
53351 
53352        --
53353        -- Update the line information that should be overwritten
53354        --
53355        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53356                                          p_header_num   => 1);
53357        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53358 
53359        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53360 
53361        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53362           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53363        END IF;
53364 
53365       --
53366       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53367       --
53368       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53369           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53370       ELSE
53371           ---------------------------------------------------------------------------------------------------
53372           -- 4262811a Switch Sign
53373           ---------------------------------------------------------------------------------------------------
53374           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53375           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53379           -- 5132302
53376                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53377           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53378                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53380           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53381                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53382 
53383       END IF;
53384 
53385       -- 4955764
53386       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53387       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53388 
53389 
53390       XLA_AE_LINES_PKG.ValidateCurrentLine;
53391       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53392 
53393       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53394                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53395                ,p_balance_type_code => l_balance_type_code);
53396 
53397    END IF;
53398 
53399    -----------------------------------------------------------------------------------------
53400    -- 4262811 Multiperiod Accounting
53401    -----------------------------------------------------------------------------------------
53402      -- No MPA option is assigned.
53403 
53404 
53405 END IF;
53406 END IF;
53407 --
53408 
53409 --
53410 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53411    trace
53412       (p_msg      => 'END of AcctLineType_117'
53413       ,p_level    => C_LEVEL_PROCEDURE
53414       ,p_module   => l_log_module);
53415 END IF;
53416 --
53417 EXCEPTION
53418   WHEN xla_exceptions_pkg.application_exception THEN
53419       RAISE;
53420   WHEN OTHERS THEN
53421        xla_exceptions_pkg.raise_message
53422            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_117');
53423 END AcctLineType_117;
53424 --
53425 
53426 ---------------------------------------
53427 --
53428 -- PRIVATE FUNCTION
53429 --         AcctLineType_118
53430 --
53431 ---------------------------------------
53432 PROCEDURE AcctLineType_118 (
53433   p_application_id        IN NUMBER
53434  ,p_event_id              IN NUMBER
53435  ,p_calculate_acctd_flag  IN VARCHAR2
53436  ,p_calculate_g_l_flag    IN VARCHAR2
53437  ,p_actual_flag           IN OUT VARCHAR2
53438  ,p_balance_type_code     OUT VARCHAR2
53439  ,p_gain_or_loss_ref      OUT VARCHAR2
53440  
53441 --Invoice Distribution Description
53442  , p_source_1            IN VARCHAR2
53443 --Automatic Offsets Value
53444  , p_source_10            IN VARCHAR2
53445  , p_source_10_meaning    IN VARCHAR2
53446 --Purchase Order Rate Variance Gain Account
53447  , p_source_15            IN NUMBER
53448 --Invoice Distribution Ledger Amount
53449  , p_source_16            IN NUMBER
53450 --Destination Type of the PO Distribution
53451  , p_source_17            IN VARCHAR2
53452  , p_source_17_meaning    IN VARCHAR2
53453 --Purchase Order Rate Variance Loss Account
53454  , p_source_18            IN NUMBER
53455 --Invoice Distribution Account
53456  , p_source_25            IN NUMBER
53457 --Invoice Distribution Type
53458  , p_source_28            IN VARCHAR2
53459  , p_source_28_meaning    IN VARCHAR2
53460 --Automatic Offsets Flag
53461  , p_source_43            IN VARCHAR2
53462  , p_source_43_meaning    IN VARCHAR2
53463 --Accrue on Receipt Option
53464  , p_source_54            IN VARCHAR2
53465  , p_source_54_meaning    IN VARCHAR2
53466 --Accounting Reversal Indicator
53467  , p_source_58            IN VARCHAR2
53468 --Distribution Link Type
53469  , p_source_60            IN VARCHAR2
53470 --Allocation to Main Distribution Identifier
53471  , p_source_62            IN NUMBER
53472 --Invoice Identifier
53473  , p_source_63            IN NUMBER
53474 --Invoice Distribution Identifier
53475  , p_source_69            IN NUMBER
53476 --Payables Encumbrance Upgrade Credit Account
53477  , p_source_70            IN NUMBER
53478 --Payables Encumbrance Upgrade Credit Amount
53479  , p_source_71            IN NUMBER
53480 --Invoice Currency Code
53481  , p_source_72            IN VARCHAR2
53482 --Payables Encumbrance Upgrade Credit Base Amount
53483  , p_source_73            IN NUMBER
53484 --Payables Encumbrance Upgrade Debit Account
53485  , p_source_74            IN NUMBER
53486 --Payables Encumbrance Upgrade Debit Amount
53487  , p_source_75            IN NUMBER
53488 --Payables Encumbrance Upgrade Debit Base Amount
53489  , p_source_76            IN NUMBER
53490 --Payables Encumbrance Upgrade Option
53491  , p_source_77            IN VARCHAR2
53492 --Invoice Distribution Amount
53493  , p_source_78            IN NUMBER
53494 --Deferred Accounting End Date
53495  , p_source_82            IN DATE
53496 --Deferred Accounting Option
53497  , p_source_83            IN VARCHAR2
53498 --Deferred Accounting Start Date
53499  , p_source_84            IN DATE
53500 --Override Accounted Amount Indicator
53501  , p_source_85            IN VARCHAR2
53502  , p_source_85_meaning    IN VARCHAR2
53503 --Invoice Supplier Identifier
53504  , p_source_86            IN NUMBER
53505 --Invoice Supplier Site Identifier
53506  , p_source_87            IN NUMBER
53507 --Third Party Type
53508  , p_source_88            IN VARCHAR2
53509 --Parent Reversal Identifier
53510  , p_source_89            IN NUMBER
53514  , p_source_91            IN NUMBER
53511 --Invoice Distribution Statistical Amount
53512  , p_source_90            IN NUMBER
53513 --Invoice Distribution Tax Line Identifier
53515 --Invoice Distribution Tax Distribution Identifier from Tax
53516  , p_source_92            IN NUMBER
53517 --Invoice Distribution Summary Tax Line Identifier
53518  , p_source_93            IN NUMBER
53519 --Payables Upgrade Credit Encumbrance Type Identifier
53520  , p_source_94            IN NUMBER
53521 --Payables Upgrade Debit Encumbrance Type Identifier
53522  , p_source_95            IN NUMBER
53523 --Business Flow Accounts Payable Application Identifier
53524  , p_source_96            IN NUMBER
53525 --Business Flow Invoice Distribution Type
53526  , p_source_97            IN VARCHAR2
53527 --Business Flow Invoice Entity Code
53528  , p_source_98            IN VARCHAR2
53529 --Business Flow Invoice Distribution Identifier
53530  , p_source_99            IN NUMBER
53531 --Business Flow Invoice Identifier
53532  , p_source_100            IN NUMBER
53533 --Invoice Exchange Date
53534  , p_source_146            IN DATE
53535 --Invoice Exchange Rate
53536  , p_source_147            IN NUMBER
53537 --Invoice Exchange Rate Type
53538  , p_source_148            IN VARCHAR2
53539 )
53540 IS
53541 
53542 l_component_type              VARCHAR2(80);
53543 l_component_code              VARCHAR2(30);
53544 l_component_type_code         VARCHAR2(1);
53545 l_component_appl_id           INTEGER;
53546 l_amb_context_code            VARCHAR2(30);
53547 l_entity_code                 VARCHAR2(30);
53548 l_event_class_code            VARCHAR2(30);
53549 l_ae_header_id                NUMBER;
53550 l_event_type_code             VARCHAR2(30);
53551 l_line_definition_code        VARCHAR2(30);
53552 l_line_definition_owner_code  VARCHAR2(1);
53553 --
53554 -- adr variables
53555 l_segment                     VARCHAR2(30);
53556 l_ccid                        NUMBER;
53557 l_adr_transaction_coa_id      NUMBER;
53558 l_adr_accounting_coa_id       NUMBER;
53559 l_adr_flexfield_segment_code  VARCHAR2(30);
53560 l_adr_flex_value_set_id       NUMBER;
53561 l_adr_value_type_code         VARCHAR2(30);
53562 l_adr_value_combination_id    NUMBER;
53563 l_adr_value_segment_code      VARCHAR2(30);
53564 
53565 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53566 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53567 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53568 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53569 
53570 -- 4262811 Variables ------------------------------------------------------------------------------------------
53571 l_entered_amt_idx             NUMBER;
53572 l_accted_amt_idx              NUMBER;
53573 l_acc_rev_flag                VARCHAR2(1);
53574 l_accrual_line_num            NUMBER;
53575 l_tmp_amt                     NUMBER;
53576 l_acc_rev_natural_side_code   VARCHAR2(1);
53577 
53578 l_num_entries                 NUMBER;
53579 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53580 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53581 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53582 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53583 l_recog_line_1                NUMBER;
53584 l_recog_line_2                NUMBER;
53585 
53586 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53587 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53588 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53589 
53590 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53591 
53592 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53593 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53594 
53595 ---------------------------------------------------------------------------------------------------------------
53596 
53597 
53598 --
53599 -- bulk performance
53600 --
53601 l_balance_type_code           VARCHAR2(1);
53602 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53603 l_log_module                  VARCHAR2(240);
53604 
53605 --
53606 -- Upgrade strategy
53607 --
53608 l_actual_upg_option           VARCHAR2(1);
53609 l_enc_upg_option           VARCHAR2(1);
53610 
53611 --
53612 BEGIN
53613 --
53614 IF g_log_enabled THEN
53615       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
53616 END IF;
53617 --
53618 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53619 
53620       trace
53621          (p_msg      => 'BEGIN of AcctLineType_118'
53622          ,p_level    => C_LEVEL_PROCEDURE
53623          ,p_module   => l_log_module);
53624 
53625 END IF;
53626 --
53627 l_component_type             := 'AMB_JLT';
53628 l_component_code             := 'AP_EX_RATE_VAR_INV';
53629 l_component_type_code        := 'S';
53630 l_component_appl_id          :=  200;
53631 l_amb_context_code           := 'DEFAULT';
53632 l_entity_code                := 'AP_INVOICES';
53633 l_event_class_code           := 'INVOICES';
53634 l_event_type_code            := 'INVOICES_ALL';
53635 l_line_definition_owner_code := 'S';
53636 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
53637 --
53638 l_balance_type_code          := 'A';
53642 l_adr_accounting_coa_id       := NULL;
53639 l_segment                     := NULL;
53640 l_ccid                        := NULL;
53641 l_adr_transaction_coa_id      := NULL;
53643 l_adr_flexfield_segment_code  := NULL;
53644 l_adr_flex_value_set_id       := NULL;
53645 l_adr_value_type_code         := NULL;
53646 l_adr_value_combination_id    := NULL;
53647 l_adr_value_segment_code      := NULL;
53648 
53649 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53650 l_bflow_class_code           := '';    -- 4219869 Business Flow
53651 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53652 l_budgetary_control_flag     := 'N';
53653 
53654 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53655 l_bflow_applied_to_amt       := NULL; -- 5132302
53656 l_entered_amt_idx            := NULL;          -- 4262811
53657 l_accted_amt_idx             := NULL;          -- 4262811
53658 l_acc_rev_flag               := NULL;          -- 4262811
53659 l_accrual_line_num           := NULL;          -- 4262811
53660 l_tmp_amt                    := NULL;          -- 4262811
53661 --
53662 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53663             (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
53664                return;
53665   END IF;
53666   
53667 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53668     l_balance_type_code <> 'B' THEN
53669 IF NVL(p_source_28,'
53670 ') =  'ERV' AND 
53671 NVL(p_source_54,'
53672 ') =  'Y'
53673  THEN 
53674 
53675    --
53676    XLA_AE_LINES_PKG.SetNewLine;
53677 
53678    p_balance_type_code          := l_balance_type_code;
53679    -- set the flag so later we will know whether the gain loss line needs to be created
53680    
53681    IF(l_balance_type_code = 'A' ) THEN
53682      p_actual_flag :='G';
53683    END IF;
53684 
53685    --
53686    -- bulk performance
53687    --
53688    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53689                                       p_header_num   => 0); -- 4262811
53690    --
53691    -- set accounting line options
53692    --
53693    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53694            p_natural_side_code          => 'D'
53695          , p_gain_or_loss_flag          => 'Y'
53696          , p_gl_transfer_mode_code      => 'S'
53697          , p_acct_entry_type_code       => 'A'
53698          , p_switch_side_flag           => 'Y'
53699          , p_merge_duplicate_code       => 'A'
53700          );
53701    --
53702    l_acc_rev_natural_side_code := 'C';  -- 4262811
53703    -- 
53704    --
53705    -- set accounting line type info
53706    --
53707    xla_ae_lines_pkg.SetAcctLineType
53708       (p_component_type             => l_component_type
53709       ,p_event_type_code            => l_event_type_code
53710       ,p_line_definition_owner_code => l_line_definition_owner_code
53711       ,p_line_definition_code       => l_line_definition_code
53712       ,p_accounting_line_code       => l_component_code
53713       ,p_accounting_line_type_code  => l_component_type_code
53714       ,p_accounting_line_appl_id    => l_component_appl_id
53715       ,p_amb_context_code           => l_amb_context_code
53716       ,p_entity_code                => l_entity_code
53717       ,p_event_class_code           => l_event_class_code);
53718    --
53719    -- set accounting class
53720    --
53721    xla_ae_lines_pkg.SetAcctClass(
53722            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
53723          , p_ae_header_id           => l_ae_header_id
53724          );
53725 
53726    --
53727    -- set rounding class
53728    --
53729    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53730                       'EXCHANGE_RATE_VARIANCE';
53731 
53732    --
53733    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53734    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53735    --
53736    -- bulk performance
53737    --
53738    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53739 
53740    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53741       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53742 
53743    -- 4955764
53744    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53745       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53746 
53747    -- 4458381 Public Sector Enh
53748    
53749    --
53750    -- set accounting attributes for the line type
53751    --
53752    l_entered_amt_idx := 24;
53753    l_accted_amt_idx  := 29;
53754    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
53755    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53756    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
53757    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
53758    l_rec_acct_attrs.array_num_value(2)  := 
53759 xla_ae_sources_pkg.GetSystemSourceNum(
53760    p_source_code           => 'XLA_EVENT_APPL_ID'
53764    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
53761  , p_source_type_code      => 'Y'
53762  , p_source_application_id =>  602
53763 );
53765    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
53766    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
53767    l_rec_acct_attrs.array_char_value(4)  := 
53768 xla_ae_sources_pkg.GetSystemSourceChar(
53769    p_source_code           => 'XLA_ENTITY_CODE'
53770  , p_source_type_code      => 'Y'
53771  , p_source_application_id =>  602
53772 );
53773    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
53774    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
53775    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
53776    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
53777    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
53778    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
53779    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
53780    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
53781    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53782    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
53783    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
53784    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
53785    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
53786    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
53787    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53788    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
53789    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
53790    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
53791    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
53792    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
53793    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
53794    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
53795    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
53796    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
53797    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
53798    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
53799    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
53800    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
53801    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
53802    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
53803    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
53804    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
53805    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
53806    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
53807    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
53808    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
53809    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
53810    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
53811    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
53812    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
53813    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
53814    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
53815    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
53816    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
53817    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
53818    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
53819    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
53820    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
53821    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
53822    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
53823    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
53824    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
53825    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
53826    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
53827    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
53828    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
53829    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
53830    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
53831    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
53832    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
53833    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
53834    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
53835    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
53836    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
53837    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
53838    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
53839    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
53840    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
53841    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
53842    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
53843    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
53844    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
53845    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
53849    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
53846    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
53847    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
53848    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
53850    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
53851    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
53852    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
53853 
53854    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53855    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53856 
53857    ---------------------------------------------------------------------------------------------------------------
53858    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53859    ---------------------------------------------------------------------------------------------------------------
53860    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53861 
53862    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53863    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53864 
53865    IF xla_accounting_cache_pkg.GetValueChar
53866          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53867          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53868    AND l_bflow_method_code = 'PRIOR_ENTRY'
53869 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53870    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53871          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53872        )
53873    THEN
53874          xla_ae_lines_pkg.BflowUpgEntry
53875            (p_business_method_code    => l_bflow_method_code
53876            ,p_business_class_code     => l_bflow_class_code
53877            ,p_balance_type            => l_balance_type_code);
53878    ELSE
53879       NULL;
53880 -- No business flow processing for business flow method of NONE.
53881    END IF;
53882 
53883    --
53884    -- call analytical criteria
53885    --
53886    
53887    --
53888    -- call description
53889    --
53890    
53891 xla_ae_lines_pkg.SetLineDescription(
53892    p_ae_header_id => l_ae_header_id
53893   ,p_description  => Description_2 (
53894      p_application_id         => p_application_id
53895    , p_ae_header_id           => l_ae_header_id 
53896 , p_source_1 => p_source_1
53897    )
53898 );
53899 
53900 
53901    --
53902    -- call ADRs
53903    -- Bug 4922099
53904    --
53905    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53906         (NVL(l_actual_upg_option, 'N') = 'O') OR
53907         (NVL(l_enc_upg_option, 'N') = 'O')
53908       )
53909    THEN
53910    NULL;
53911    --
53912    --
53913    
53914   l_ccid := AcctDerRule_32(
53915            p_application_id           => p_application_id
53916          , p_ae_header_id             => l_ae_header_id 
53917 , p_source_10 => p_source_10
53918 , p_source_10_meaning => p_source_10_meaning
53919 , p_source_15 => p_source_15
53920 , p_source_16 => p_source_16
53921 , p_source_17 => p_source_17
53922 , p_source_17_meaning => p_source_17_meaning
53923 , p_source_18 => p_source_18
53924 , p_source_25 => p_source_25
53925 , p_source_43 => p_source_43
53926 , p_source_43_meaning => p_source_43_meaning
53927          , x_transaction_coa_id       => l_adr_transaction_coa_id
53928          , x_accounting_coa_id        => l_adr_accounting_coa_id
53929          , x_value_type_code          => l_adr_value_type_code
53930          , p_side                     => 'NA'
53931    );
53932 
53933    xla_ae_lines_pkg.set_ccid(
53934     p_code_combination_id          => l_ccid
53935   , p_value_type_code              => l_adr_value_type_code
53936   , p_transaction_coa_id           => l_adr_transaction_coa_id
53937   , p_accounting_coa_id            => l_adr_accounting_coa_id
53938   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53939   , p_adr_type_code                => 'S'
53940   , p_component_type               => l_component_type
53941   , p_component_code               => l_component_code
53942   , p_component_type_code          => l_component_type_code
53943   , p_component_appl_id            => l_component_appl_id
53944   , p_amb_context_code             => l_amb_context_code
53945   , p_side                         => 'NA'
53946   );
53947 
53948 
53949    l_segment := AcctDerRule_8(
53950            p_application_id           => p_application_id
53951          , p_ae_header_id             => l_ae_header_id 
53952 , p_source_10 => p_source_10
53953 , p_source_10_meaning => p_source_10_meaning
53954 , p_source_15 => p_source_15
53955 , p_source_16 => p_source_16
53956 , p_source_17 => p_source_17
53957 , p_source_17_meaning => p_source_17_meaning
53958 , p_source_18 => p_source_18
53959          , x_transaction_coa_id       => l_adr_transaction_coa_id
53960          , x_accounting_coa_id        => l_adr_accounting_coa_id
53961          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53962          , x_flex_value_set_id        => l_adr_flex_value_set_id
53963          , x_value_type_code          => l_adr_value_type_code
53964          , x_value_combination_id     => l_adr_value_combination_id
53965          , x_value_segment_code       => l_adr_value_segment_code
53966          , p_side                     => 'NA'
53970    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53967          , p_override_seg_flag        => 'Y'
53968    );
53969 
53971 
53972       xla_ae_lines_pkg.set_segment(
53973           p_to_segment_code         => 'GL_ACCOUNT'
53974         , p_segment_value           => l_segment
53975         , p_from_segment_code       => l_adr_value_segment_code
53976         , p_from_combination_id     => l_adr_value_combination_id
53977         , p_value_type_code         => l_adr_value_type_code
53978         , p_transaction_coa_id      => l_adr_transaction_coa_id
53979         , p_accounting_coa_id       => l_adr_accounting_coa_id
53980         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53981         , p_flex_value_set_id       => l_adr_flex_value_set_id
53982         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53983         , p_adr_type_code           => 'S'
53984         , p_component_type          => l_component_type
53985         , p_component_code          => l_component_code
53986         , p_component_type_code     => l_component_type_code
53987         , p_component_appl_id       => l_component_appl_id
53988         , p_amb_context_code        => l_amb_context_code
53989         , p_entity_code             => 'AP_INVOICES'
53990         , p_event_class_code        => 'INVOICES'
53991         , p_side                    => 'NA'
53992         );
53993 
53994   END IF;
53995 
53996    l_segment := AcctDerRule_24(
53997            p_application_id           => p_application_id
53998          , p_ae_header_id             => l_ae_header_id 
53999 , p_source_10 => p_source_10
54000 , p_source_10_meaning => p_source_10_meaning
54001 , p_source_17 => p_source_17
54002 , p_source_17_meaning => p_source_17_meaning
54003 , p_source_25 => p_source_25
54004          , x_transaction_coa_id       => l_adr_transaction_coa_id
54005          , x_accounting_coa_id        => l_adr_accounting_coa_id
54006          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54007          , x_flex_value_set_id        => l_adr_flex_value_set_id
54008          , x_value_type_code          => l_adr_value_type_code
54009          , x_value_combination_id     => l_adr_value_combination_id
54010          , x_value_segment_code       => l_adr_value_segment_code
54011          , p_side                     => 'NA'
54012          , p_override_seg_flag        => 'Y'
54013    );
54014 
54015    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54016 
54017       xla_ae_lines_pkg.set_segment(
54018           p_to_segment_code         => 'GL_BALANCING'
54019         , p_segment_value           => l_segment
54020         , p_from_segment_code       => l_adr_value_segment_code
54021         , p_from_combination_id     => l_adr_value_combination_id
54022         , p_value_type_code         => l_adr_value_type_code
54023         , p_transaction_coa_id      => l_adr_transaction_coa_id
54024         , p_accounting_coa_id       => l_adr_accounting_coa_id
54025         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54026         , p_flex_value_set_id       => l_adr_flex_value_set_id
54027         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
54028         , p_adr_type_code           => 'S'
54029         , p_component_type          => l_component_type
54030         , p_component_code          => l_component_code
54031         , p_component_type_code     => l_component_type_code
54032         , p_component_appl_id       => l_component_appl_id
54033         , p_amb_context_code        => l_amb_context_code
54034         , p_entity_code             => 'AP_INVOICES'
54035         , p_event_class_code        => 'INVOICES'
54036         , p_side                    => 'NA'
54037         );
54038 
54039   END IF;
54040 
54041    --
54042    --
54043    END IF;
54044    --
54045    -- Bug 4922099
54046    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54047           (NVL(l_enc_upg_option, 'N') = 'O')
54048         ) AND
54049         (l_bflow_method_code = 'PRIOR_ENTRY')
54050       )
54051    THEN
54052       IF
54053       --
54054       1 = 2
54055       --
54056       THEN
54057       xla_accounting_err_pkg.build_message
54058                                     (p_appli_s_name            => 'XLA'
54059                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54060                                     ,p_token_1                 => 'LINE_NUMBER'
54061                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54062                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54063                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54064                                                                              l_component_type
54065                                                                             ,l_component_code
54066                                                                             ,l_component_type_code
54067                                                                             ,l_component_appl_id
54068                                                                             ,l_amb_context_code
54069                                                                             ,l_entity_code
54070                                                                             ,l_event_class_code
54071                                                                            )
54072                                     ,p_token_3                 => 'OWNER'
54076                                                                          )
54073                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54074                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54075                                                                           ,p_lookup_code    => l_component_type_code
54077                                     ,p_token_4                 => 'PRODUCT_NAME'
54078                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54079                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54080                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54081                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54082                                     ,p_ae_header_id            =>  NULL
54083                                        );
54084 
54085         IF (C_LEVEL_ERROR>= g_log_level) THEN
54086                  trace
54087                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54088                       ,p_level    => C_LEVEL_ERROR
54089                       ,p_module   => l_log_module);
54090         END IF;
54091       END IF;
54092    END IF;
54093    --
54094    --
54095    ------------------------------------------------------------------------------------------------
54096    -- 4219869 Business Flow
54097    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54098    -- Prior Entry.  Currently, the following code is always generated.
54099    ------------------------------------------------------------------------------------------------
54100    XLA_AE_LINES_PKG.ValidateCurrentLine;
54101 
54102    ------------------------------------------------------------------------------------
54103    -- 4219869 Business Flow
54104    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54105    ------------------------------------------------------------------------------------
54106    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54107 
54108    ----------------------------------------------------------------------------------
54109    -- 4219869 Business Flow
54110    -- Update journal entry status -- Need to generate this within IF <condition>
54111    ----------------------------------------------------------------------------------
54112    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54113          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54114          ,p_balance_type_code => l_balance_type_code
54115          );
54116 
54117    -------------------------------------------------------------------------------------------
54118    -- 4262811 - Generate the Accrual Reversal lines
54119    -------------------------------------------------------------------------------------------
54120    BEGIN
54121       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54122                               (g_array_event(p_event_id).array_value_num('header_index'));
54123       IF l_acc_rev_flag IS NULL THEN
54124          l_acc_rev_flag := 'N';
54125       END IF;
54126    EXCEPTION
54127       WHEN OTHERS THEN
54128          l_acc_rev_flag := 'N';
54129    END;
54130    --
54131    IF (l_acc_rev_flag = 'Y') THEN
54132 
54133        -- 4645092  ------------------------------------------------------------------------------
54134        -- To allow MPA report to determine if it should generate report process
54135        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54136        ------------------------------------------------------------------------------------------
54137 
54138        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54139        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54140    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54141    -- call ADRs
54142    -- Bug 4922099
54143    --
54144    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54145         (NVL(l_actual_upg_option, 'N') = 'O') OR
54146         (NVL(l_enc_upg_option, 'N') = 'O')
54147       )
54148    THEN
54149    NULL;
54150    --
54151    --
54152    
54153   l_ccid := AcctDerRule_32(
54154            p_application_id           => p_application_id
54155          , p_ae_header_id             => l_ae_header_id 
54156 , p_source_10 => p_source_10
54157 , p_source_10_meaning => p_source_10_meaning
54158 , p_source_15 => p_source_15
54159 , p_source_16 => p_source_16
54160 , p_source_17 => p_source_17
54161 , p_source_17_meaning => p_source_17_meaning
54162 , p_source_18 => p_source_18
54163 , p_source_25 => p_source_25
54164 , p_source_43 => p_source_43
54165 , p_source_43_meaning => p_source_43_meaning
54166          , x_transaction_coa_id       => l_adr_transaction_coa_id
54167          , x_accounting_coa_id        => l_adr_accounting_coa_id
54168          , x_value_type_code          => l_adr_value_type_code
54169          , p_side                     => 'NA'
54170    );
54171 
54172    xla_ae_lines_pkg.set_ccid(
54173     p_code_combination_id          => l_ccid
54174   , p_value_type_code              => l_adr_value_type_code
54175   , p_transaction_coa_id           => l_adr_transaction_coa_id
54176   , p_accounting_coa_id            => l_adr_accounting_coa_id
54177   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
54181   , p_component_type_code          => l_component_type_code
54178   , p_adr_type_code                => 'S'
54179   , p_component_type               => l_component_type
54180   , p_component_code               => l_component_code
54182   , p_component_appl_id            => l_component_appl_id
54183   , p_amb_context_code             => l_amb_context_code
54184   , p_side                         => 'NA'
54185   );
54186 
54187 
54188    l_segment := AcctDerRule_8(
54189            p_application_id           => p_application_id
54190          , p_ae_header_id             => l_ae_header_id 
54191 , p_source_10 => p_source_10
54192 , p_source_10_meaning => p_source_10_meaning
54193 , p_source_15 => p_source_15
54194 , p_source_16 => p_source_16
54195 , p_source_17 => p_source_17
54196 , p_source_17_meaning => p_source_17_meaning
54197 , p_source_18 => p_source_18
54198          , x_transaction_coa_id       => l_adr_transaction_coa_id
54199          , x_accounting_coa_id        => l_adr_accounting_coa_id
54200          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54201          , x_flex_value_set_id        => l_adr_flex_value_set_id
54202          , x_value_type_code          => l_adr_value_type_code
54203          , x_value_combination_id     => l_adr_value_combination_id
54204          , x_value_segment_code       => l_adr_value_segment_code
54205          , p_side                     => 'NA'
54206          , p_override_seg_flag        => 'Y'
54207    );
54208 
54209    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54210 
54211       xla_ae_lines_pkg.set_segment(
54212           p_to_segment_code         => 'GL_ACCOUNT'
54213         , p_segment_value           => l_segment
54214         , p_from_segment_code       => l_adr_value_segment_code
54215         , p_from_combination_id     => l_adr_value_combination_id
54216         , p_value_type_code         => l_adr_value_type_code
54217         , p_transaction_coa_id      => l_adr_transaction_coa_id
54218         , p_accounting_coa_id       => l_adr_accounting_coa_id
54219         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54220         , p_flex_value_set_id       => l_adr_flex_value_set_id
54221         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
54222         , p_adr_type_code           => 'S'
54223         , p_component_type          => l_component_type
54224         , p_component_code          => l_component_code
54225         , p_component_type_code     => l_component_type_code
54226         , p_component_appl_id       => l_component_appl_id
54227         , p_amb_context_code        => l_amb_context_code
54228         , p_entity_code             => 'AP_INVOICES'
54229         , p_event_class_code        => 'INVOICES'
54230         , p_side                    => 'NA'
54231         );
54232 
54233   END IF;
54234 
54235    l_segment := AcctDerRule_24(
54236            p_application_id           => p_application_id
54237          , p_ae_header_id             => l_ae_header_id 
54238 , p_source_10 => p_source_10
54239 , p_source_10_meaning => p_source_10_meaning
54240 , p_source_17 => p_source_17
54241 , p_source_17_meaning => p_source_17_meaning
54242 , p_source_25 => p_source_25
54243          , x_transaction_coa_id       => l_adr_transaction_coa_id
54244          , x_accounting_coa_id        => l_adr_accounting_coa_id
54245          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54246          , x_flex_value_set_id        => l_adr_flex_value_set_id
54247          , x_value_type_code          => l_adr_value_type_code
54248          , x_value_combination_id     => l_adr_value_combination_id
54249          , x_value_segment_code       => l_adr_value_segment_code
54250          , p_side                     => 'NA'
54251          , p_override_seg_flag        => 'Y'
54252    );
54253 
54254    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54255 
54256       xla_ae_lines_pkg.set_segment(
54257           p_to_segment_code         => 'GL_BALANCING'
54258         , p_segment_value           => l_segment
54259         , p_from_segment_code       => l_adr_value_segment_code
54260         , p_from_combination_id     => l_adr_value_combination_id
54261         , p_value_type_code         => l_adr_value_type_code
54262         , p_transaction_coa_id      => l_adr_transaction_coa_id
54263         , p_accounting_coa_id       => l_adr_accounting_coa_id
54264         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54265         , p_flex_value_set_id       => l_adr_flex_value_set_id
54266         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
54267         , p_adr_type_code           => 'S'
54268         , p_component_type          => l_component_type
54269         , p_component_code          => l_component_code
54270         , p_component_type_code     => l_component_type_code
54271         , p_component_appl_id       => l_component_appl_id
54272         , p_amb_context_code        => l_amb_context_code
54273         , p_entity_code             => 'AP_INVOICES'
54274         , p_event_class_code        => 'INVOICES'
54275         , p_side                    => 'NA'
54276         );
54277 
54278   END IF;
54279 
54280    --
54281    --
54282    END IF;
54283 
54284        --
54285        -- Update the line information that should be overwritten
54286        --
54287        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54288                                          p_header_num   => 1);
54292 
54289        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54290 
54291        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54293        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54294           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54295        END IF;
54296 
54297       --
54298       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54299       --
54300       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54301           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54302       ELSE
54303           ---------------------------------------------------------------------------------------------------
54304           -- 4262811a Switch Sign
54305           ---------------------------------------------------------------------------------------------------
54306           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54307           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54308                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54309           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54310                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54311           -- 5132302
54312           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54313                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54314 
54315       END IF;
54316 
54317       -- 4955764
54318       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54319       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54320 
54321 
54322       XLA_AE_LINES_PKG.ValidateCurrentLine;
54323       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54324 
54325       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54326                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54327                ,p_balance_type_code => l_balance_type_code);
54328 
54329    END IF;
54330 
54331    -----------------------------------------------------------------------------------------
54332    -- 4262811 Multiperiod Accounting
54333    -----------------------------------------------------------------------------------------
54334      -- No MPA option is assigned.
54335 
54336 
54337 END IF;
54338 END IF;
54339 --
54340 
54341 --
54342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54343    trace
54344       (p_msg      => 'END of AcctLineType_118'
54345       ,p_level    => C_LEVEL_PROCEDURE
54346       ,p_module   => l_log_module);
54347 END IF;
54348 --
54349 EXCEPTION
54350   WHEN xla_exceptions_pkg.application_exception THEN
54351       RAISE;
54352   WHEN OTHERS THEN
54353        xla_exceptions_pkg.raise_message
54354            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_118');
54355 END AcctLineType_118;
54356 --
54357 
54358 ---------------------------------------
54359 --
54360 -- PRIVATE FUNCTION
54361 --         AcctLineType_119
54362 --
54363 ---------------------------------------
54364 PROCEDURE AcctLineType_119 (
54365   p_application_id        IN NUMBER
54366  ,p_event_id              IN NUMBER
54367  ,p_calculate_acctd_flag  IN VARCHAR2
54368  ,p_calculate_g_l_flag    IN VARCHAR2
54369  ,p_actual_flag           IN OUT VARCHAR2
54370  ,p_balance_type_code     OUT VARCHAR2
54371  ,p_gain_or_loss_ref      OUT VARCHAR2
54372  
54373 --Invoice Distribution Description
54374  , p_source_1            IN VARCHAR2
54375 --Automatic Offsets Value
54376  , p_source_10            IN VARCHAR2
54377  , p_source_10_meaning    IN VARCHAR2
54378 --Purchase Order Rate Variance Gain Account
54379  , p_source_15            IN NUMBER
54380 --Invoice Distribution Ledger Amount
54381  , p_source_16            IN NUMBER
54382 --Destination Type of the PO Distribution
54383  , p_source_17            IN VARCHAR2
54384  , p_source_17_meaning    IN VARCHAR2
54385 --Purchase Order Rate Variance Loss Account
54386  , p_source_18            IN NUMBER
54387 --Invoice Distribution Account
54388  , p_source_25            IN NUMBER
54389 --Invoice Distribution Type
54390  , p_source_28            IN VARCHAR2
54391  , p_source_28_meaning    IN VARCHAR2
54392 --Automatic Offsets Flag
54393  , p_source_43            IN VARCHAR2
54394  , p_source_43_meaning    IN VARCHAR2
54395 --Accrue on Receipt Option
54396  , p_source_54            IN VARCHAR2
54397  , p_source_54_meaning    IN VARCHAR2
54398 --Accounting Reversal Indicator
54399  , p_source_58            IN VARCHAR2
54400 --Distribution Link Type
54401  , p_source_60            IN VARCHAR2
54402 --Allocation to Main Distribution Identifier
54403  , p_source_62            IN NUMBER
54404 --Invoice Identifier
54405  , p_source_63            IN NUMBER
54406 --Invoice Distribution Identifier
54407  , p_source_69            IN NUMBER
54408 --Payables Encumbrance Upgrade Credit Account
54409  , p_source_70            IN NUMBER
54413  , p_source_72            IN VARCHAR2
54410 --Payables Encumbrance Upgrade Credit Amount
54411  , p_source_71            IN NUMBER
54412 --Invoice Currency Code
54414 --Payables Encumbrance Upgrade Credit Base Amount
54415  , p_source_73            IN NUMBER
54416 --Payables Encumbrance Upgrade Debit Account
54417  , p_source_74            IN NUMBER
54418 --Payables Encumbrance Upgrade Debit Amount
54419  , p_source_75            IN NUMBER
54420 --Payables Encumbrance Upgrade Debit Base Amount
54421  , p_source_76            IN NUMBER
54422 --Payables Encumbrance Upgrade Option
54423  , p_source_77            IN VARCHAR2
54424 --Invoice Distribution Amount
54425  , p_source_78            IN NUMBER
54426 --Deferred Accounting End Date
54427  , p_source_82            IN DATE
54428 --Deferred Accounting Option
54429  , p_source_83            IN VARCHAR2
54430 --Deferred Accounting Start Date
54431  , p_source_84            IN DATE
54432 --Override Accounted Amount Indicator
54433  , p_source_85            IN VARCHAR2
54434  , p_source_85_meaning    IN VARCHAR2
54435 --Invoice Supplier Identifier
54436  , p_source_86            IN NUMBER
54437 --Invoice Supplier Site Identifier
54438  , p_source_87            IN NUMBER
54439 --Third Party Type
54440  , p_source_88            IN VARCHAR2
54441 --Parent Reversal Identifier
54442  , p_source_89            IN NUMBER
54443 --Invoice Distribution Statistical Amount
54444  , p_source_90            IN NUMBER
54445 --Invoice Distribution Tax Line Identifier
54446  , p_source_91            IN NUMBER
54447 --Invoice Distribution Tax Distribution Identifier from Tax
54448  , p_source_92            IN NUMBER
54449 --Invoice Distribution Summary Tax Line Identifier
54450  , p_source_93            IN NUMBER
54451 --Payables Upgrade Credit Encumbrance Type Identifier
54452  , p_source_94            IN NUMBER
54453 --Payables Upgrade Debit Encumbrance Type Identifier
54454  , p_source_95            IN NUMBER
54455 --Business Flow Accounts Payable Application Identifier
54456  , p_source_96            IN NUMBER
54457 --Business Flow Invoice Distribution Type
54458  , p_source_97            IN VARCHAR2
54459 --Business Flow Invoice Entity Code
54460  , p_source_98            IN VARCHAR2
54461 --Business Flow Invoice Distribution Identifier
54462  , p_source_99            IN NUMBER
54463 --Business Flow Invoice Identifier
54464  , p_source_100            IN NUMBER
54465 --Invoice Exchange Date
54466  , p_source_146            IN DATE
54467 --Invoice Exchange Rate
54468  , p_source_147            IN NUMBER
54469 --Invoice Exchange Rate Type
54470  , p_source_148            IN VARCHAR2
54471 )
54472 IS
54473 
54474 l_component_type              VARCHAR2(80);
54475 l_component_code              VARCHAR2(30);
54476 l_component_type_code         VARCHAR2(1);
54477 l_component_appl_id           INTEGER;
54478 l_amb_context_code            VARCHAR2(30);
54479 l_entity_code                 VARCHAR2(30);
54480 l_event_class_code            VARCHAR2(30);
54481 l_ae_header_id                NUMBER;
54482 l_event_type_code             VARCHAR2(30);
54483 l_line_definition_code        VARCHAR2(30);
54484 l_line_definition_owner_code  VARCHAR2(1);
54485 --
54486 -- adr variables
54487 l_segment                     VARCHAR2(30);
54488 l_ccid                        NUMBER;
54489 l_adr_transaction_coa_id      NUMBER;
54490 l_adr_accounting_coa_id       NUMBER;
54491 l_adr_flexfield_segment_code  VARCHAR2(30);
54492 l_adr_flex_value_set_id       NUMBER;
54493 l_adr_value_type_code         VARCHAR2(30);
54494 l_adr_value_combination_id    NUMBER;
54495 l_adr_value_segment_code      VARCHAR2(30);
54496 
54497 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54498 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54499 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54500 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54501 
54502 -- 4262811 Variables ------------------------------------------------------------------------------------------
54503 l_entered_amt_idx             NUMBER;
54504 l_accted_amt_idx              NUMBER;
54505 l_acc_rev_flag                VARCHAR2(1);
54506 l_accrual_line_num            NUMBER;
54507 l_tmp_amt                     NUMBER;
54508 l_acc_rev_natural_side_code   VARCHAR2(1);
54509 
54510 l_num_entries                 NUMBER;
54511 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54512 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54513 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54514 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54515 l_recog_line_1                NUMBER;
54516 l_recog_line_2                NUMBER;
54517 
54518 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54519 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54520 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54521 
54522 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54523 
54524 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54525 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54526 
54527 ---------------------------------------------------------------------------------------------------------------
54528 
54529 
54530 --
54531 -- bulk performance
54532 --
54533 l_balance_type_code           VARCHAR2(1);
54537 --
54534 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54535 l_log_module                  VARCHAR2(240);
54536 
54538 -- Upgrade strategy
54539 --
54540 l_actual_upg_option           VARCHAR2(1);
54541 l_enc_upg_option           VARCHAR2(1);
54542 
54543 --
54544 BEGIN
54545 --
54546 IF g_log_enabled THEN
54547       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
54548 END IF;
54549 --
54550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54551 
54552       trace
54553          (p_msg      => 'BEGIN of AcctLineType_119'
54554          ,p_level    => C_LEVEL_PROCEDURE
54555          ,p_module   => l_log_module);
54556 
54557 END IF;
54558 --
54559 l_component_type             := 'AMB_JLT';
54560 l_component_code             := 'AP_EX_RATE_VAR_PREPAY';
54561 l_component_type_code        := 'S';
54562 l_component_appl_id          :=  200;
54563 l_amb_context_code           := 'DEFAULT';
54564 l_entity_code                := 'AP_INVOICES';
54565 l_event_class_code           := 'PREPAYMENTS';
54566 l_event_type_code            := 'PREPAYMENTS_ALL';
54567 l_line_definition_owner_code := 'S';
54568 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
54569 --
54570 l_balance_type_code          := 'A';
54571 l_segment                     := NULL;
54572 l_ccid                        := NULL;
54573 l_adr_transaction_coa_id      := NULL;
54574 l_adr_accounting_coa_id       := NULL;
54575 l_adr_flexfield_segment_code  := NULL;
54576 l_adr_flex_value_set_id       := NULL;
54577 l_adr_value_type_code         := NULL;
54578 l_adr_value_combination_id    := NULL;
54579 l_adr_value_segment_code      := NULL;
54580 
54581 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54582 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
54583 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54584 l_budgetary_control_flag     := 'N';
54585 
54586 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54587 l_bflow_applied_to_amt       := NULL; -- 5132302
54588 l_entered_amt_idx            := NULL;          -- 4262811
54589 l_accted_amt_idx             := NULL;          -- 4262811
54590 l_acc_rev_flag               := NULL;          -- 4262811
54591 l_accrual_line_num           := NULL;          -- 4262811
54592 l_tmp_amt                    := NULL;          -- 4262811
54593 --
54594 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
54595             (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
54596                return;
54597   END IF;
54598   
54599 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54600     l_balance_type_code <> 'B' THEN
54601 IF NVL(p_source_28,'
54602 ') =  'ERV' AND 
54603 NVL(p_source_54,'
54604 ') =  'Y'
54605  THEN 
54606 
54607    --
54608    XLA_AE_LINES_PKG.SetNewLine;
54609 
54610    p_balance_type_code          := l_balance_type_code;
54611    -- set the flag so later we will know whether the gain loss line needs to be created
54612    
54613    IF(l_balance_type_code = 'A' ) THEN
54614      p_actual_flag :='G';
54615    END IF;
54616 
54617    --
54618    -- bulk performance
54619    --
54620    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54621                                       p_header_num   => 0); -- 4262811
54622    --
54623    -- set accounting line options
54624    --
54625    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54626            p_natural_side_code          => 'D'
54627          , p_gain_or_loss_flag          => 'Y'
54628          , p_gl_transfer_mode_code      => 'S'
54629          , p_acct_entry_type_code       => 'A'
54630          , p_switch_side_flag           => 'Y'
54631          , p_merge_duplicate_code       => 'A'
54632          );
54633    --
54634    l_acc_rev_natural_side_code := 'C';  -- 4262811
54635    -- 
54636    --
54637    -- set accounting line type info
54638    --
54639    xla_ae_lines_pkg.SetAcctLineType
54640       (p_component_type             => l_component_type
54641       ,p_event_type_code            => l_event_type_code
54642       ,p_line_definition_owner_code => l_line_definition_owner_code
54643       ,p_line_definition_code       => l_line_definition_code
54644       ,p_accounting_line_code       => l_component_code
54645       ,p_accounting_line_type_code  => l_component_type_code
54646       ,p_accounting_line_appl_id    => l_component_appl_id
54647       ,p_amb_context_code           => l_amb_context_code
54648       ,p_entity_code                => l_entity_code
54649       ,p_event_class_code           => l_event_class_code);
54650    --
54651    -- set accounting class
54652    --
54653    xla_ae_lines_pkg.SetAcctClass(
54654            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
54655          , p_ae_header_id           => l_ae_header_id
54656          );
54657 
54658    --
54659    -- set rounding class
54660    --
54661    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54662                       'EXCHANGE_RATE_VARIANCE';
54663 
54664    --
54665    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54669    --
54666    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54667    --
54668    -- bulk performance
54670    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54671 
54672    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54673       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54674 
54675    -- 4955764
54676    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54677       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54678 
54679    -- 4458381 Public Sector Enh
54680    
54681    --
54682    -- set accounting attributes for the line type
54683    --
54684    l_entered_amt_idx := 23;
54685    l_accted_amt_idx  := 28;
54686    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54687    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54688    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
54689    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54690    l_rec_acct_attrs.array_num_value(2)  := 
54691 xla_ae_sources_pkg.GetSystemSourceNum(
54692    p_source_code           => 'XLA_EVENT_APPL_ID'
54693  , p_source_type_code      => 'Y'
54694  , p_source_application_id =>  602
54695 );
54696    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54697    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
54698    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54699    l_rec_acct_attrs.array_char_value(4)  := 
54700 xla_ae_sources_pkg.GetSystemSourceChar(
54701    p_source_code           => 'XLA_ENTITY_CODE'
54702  , p_source_type_code      => 'Y'
54703  , p_source_application_id =>  602
54704 );
54705    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54706    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
54707    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54708    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
54709    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54710    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
54711    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54712    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
54713    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54714    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
54715    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54716    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
54717    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54718    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
54719    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
54720    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
54721    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
54722    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
54723    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
54724    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
54725    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
54726    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
54727    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
54728    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
54729    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
54730    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
54731    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
54732    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
54733    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
54734    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
54735    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
54736    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
54737    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
54738    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
54739    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
54740    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
54741    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
54742    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
54743    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
54744    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
54745    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
54746    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
54747    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
54748    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
54749    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
54750    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
54751    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
54752    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
54753    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
54754    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
54755    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
54756    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
54757    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
54758    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
54759    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
54760    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
54764    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
54761    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
54762    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
54763    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
54765    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
54766    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
54767    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
54768    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
54769    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
54770    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
54771    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
54772    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
54773    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
54774    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
54775    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
54776    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
54777    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
54778    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
54779    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
54780    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
54781    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
54782    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
54783 
54784    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54785    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54786 
54787    ---------------------------------------------------------------------------------------------------------------
54788    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54789    ---------------------------------------------------------------------------------------------------------------
54790    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54791 
54792    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54793    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54794 
54795    IF xla_accounting_cache_pkg.GetValueChar
54796          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54797          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54798    AND l_bflow_method_code = 'PRIOR_ENTRY'
54799 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54800    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54801          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54802        )
54803    THEN
54804          xla_ae_lines_pkg.BflowUpgEntry
54805            (p_business_method_code    => l_bflow_method_code
54806            ,p_business_class_code     => l_bflow_class_code
54807            ,p_balance_type            => l_balance_type_code);
54808    ELSE
54809       NULL;
54810 -- No business flow processing for business flow method of NONE.
54811    END IF;
54812 
54813    --
54814    -- call analytical criteria
54815    --
54816    
54817    --
54818    -- call description
54819    --
54820    
54821 xla_ae_lines_pkg.SetLineDescription(
54822    p_ae_header_id => l_ae_header_id
54823   ,p_description  => Description_2 (
54824      p_application_id         => p_application_id
54825    , p_ae_header_id           => l_ae_header_id 
54826 , p_source_1 => p_source_1
54827    )
54828 );
54829 
54830 
54831    --
54832    -- call ADRs
54833    -- Bug 4922099
54834    --
54835    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54836         (NVL(l_actual_upg_option, 'N') = 'O') OR
54837         (NVL(l_enc_upg_option, 'N') = 'O')
54838       )
54839    THEN
54840    NULL;
54841    --
54842    --
54843    
54844   l_ccid := AcctDerRule_32(
54845            p_application_id           => p_application_id
54846          , p_ae_header_id             => l_ae_header_id 
54847 , p_source_10 => p_source_10
54848 , p_source_10_meaning => p_source_10_meaning
54849 , p_source_15 => p_source_15
54850 , p_source_16 => p_source_16
54851 , p_source_17 => p_source_17
54852 , p_source_17_meaning => p_source_17_meaning
54853 , p_source_18 => p_source_18
54854 , p_source_25 => p_source_25
54855 , p_source_43 => p_source_43
54856 , p_source_43_meaning => p_source_43_meaning
54857          , x_transaction_coa_id       => l_adr_transaction_coa_id
54858          , x_accounting_coa_id        => l_adr_accounting_coa_id
54859          , x_value_type_code          => l_adr_value_type_code
54860          , p_side                     => 'NA'
54861    );
54862 
54863    xla_ae_lines_pkg.set_ccid(
54864     p_code_combination_id          => l_ccid
54865   , p_value_type_code              => l_adr_value_type_code
54866   , p_transaction_coa_id           => l_adr_transaction_coa_id
54867   , p_accounting_coa_id            => l_adr_accounting_coa_id
54868   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
54869   , p_adr_type_code                => 'S'
54870   , p_component_type               => l_component_type
54871   , p_component_code               => l_component_code
54872   , p_component_type_code          => l_component_type_code
54873   , p_component_appl_id            => l_component_appl_id
54877 
54874   , p_amb_context_code             => l_amb_context_code
54875   , p_side                         => 'NA'
54876   );
54878 
54879    l_segment := AcctDerRule_8(
54880            p_application_id           => p_application_id
54881          , p_ae_header_id             => l_ae_header_id 
54882 , p_source_10 => p_source_10
54883 , p_source_10_meaning => p_source_10_meaning
54884 , p_source_15 => p_source_15
54885 , p_source_16 => p_source_16
54886 , p_source_17 => p_source_17
54887 , p_source_17_meaning => p_source_17_meaning
54888 , p_source_18 => p_source_18
54889          , x_transaction_coa_id       => l_adr_transaction_coa_id
54890          , x_accounting_coa_id        => l_adr_accounting_coa_id
54891          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54892          , x_flex_value_set_id        => l_adr_flex_value_set_id
54893          , x_value_type_code          => l_adr_value_type_code
54894          , x_value_combination_id     => l_adr_value_combination_id
54895          , x_value_segment_code       => l_adr_value_segment_code
54896          , p_side                     => 'NA'
54897          , p_override_seg_flag        => 'Y'
54898    );
54899 
54900    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54901 
54902       xla_ae_lines_pkg.set_segment(
54903           p_to_segment_code         => 'GL_ACCOUNT'
54904         , p_segment_value           => l_segment
54905         , p_from_segment_code       => l_adr_value_segment_code
54906         , p_from_combination_id     => l_adr_value_combination_id
54907         , p_value_type_code         => l_adr_value_type_code
54908         , p_transaction_coa_id      => l_adr_transaction_coa_id
54909         , p_accounting_coa_id       => l_adr_accounting_coa_id
54910         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54911         , p_flex_value_set_id       => l_adr_flex_value_set_id
54912         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
54913         , p_adr_type_code           => 'S'
54914         , p_component_type          => l_component_type
54915         , p_component_code          => l_component_code
54916         , p_component_type_code     => l_component_type_code
54917         , p_component_appl_id       => l_component_appl_id
54918         , p_amb_context_code        => l_amb_context_code
54919         , p_entity_code             => 'AP_INVOICES'
54920         , p_event_class_code        => 'PREPAYMENTS'
54921         , p_side                    => 'NA'
54922         );
54923 
54924   END IF;
54925 
54926    l_segment := AcctDerRule_24(
54927            p_application_id           => p_application_id
54928          , p_ae_header_id             => l_ae_header_id 
54929 , p_source_10 => p_source_10
54930 , p_source_10_meaning => p_source_10_meaning
54931 , p_source_17 => p_source_17
54932 , p_source_17_meaning => p_source_17_meaning
54933 , p_source_25 => p_source_25
54934          , x_transaction_coa_id       => l_adr_transaction_coa_id
54935          , x_accounting_coa_id        => l_adr_accounting_coa_id
54936          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54937          , x_flex_value_set_id        => l_adr_flex_value_set_id
54938          , x_value_type_code          => l_adr_value_type_code
54939          , x_value_combination_id     => l_adr_value_combination_id
54940          , x_value_segment_code       => l_adr_value_segment_code
54941          , p_side                     => 'NA'
54942          , p_override_seg_flag        => 'Y'
54943    );
54944 
54945    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54946 
54947       xla_ae_lines_pkg.set_segment(
54948           p_to_segment_code         => 'GL_BALANCING'
54949         , p_segment_value           => l_segment
54950         , p_from_segment_code       => l_adr_value_segment_code
54951         , p_from_combination_id     => l_adr_value_combination_id
54952         , p_value_type_code         => l_adr_value_type_code
54953         , p_transaction_coa_id      => l_adr_transaction_coa_id
54954         , p_accounting_coa_id       => l_adr_accounting_coa_id
54955         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54956         , p_flex_value_set_id       => l_adr_flex_value_set_id
54957         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
54958         , p_adr_type_code           => 'S'
54959         , p_component_type          => l_component_type
54960         , p_component_code          => l_component_code
54961         , p_component_type_code     => l_component_type_code
54962         , p_component_appl_id       => l_component_appl_id
54963         , p_amb_context_code        => l_amb_context_code
54964         , p_entity_code             => 'AP_INVOICES'
54965         , p_event_class_code        => 'PREPAYMENTS'
54966         , p_side                    => 'NA'
54967         );
54968 
54969   END IF;
54970 
54971    --
54972    --
54973    END IF;
54974    --
54975    -- Bug 4922099
54976    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54977           (NVL(l_enc_upg_option, 'N') = 'O')
54978         ) AND
54979         (l_bflow_method_code = 'PRIOR_ENTRY')
54980       )
54981    THEN
54982       IF
54983       --
54984       1 = 2
54985       --
54986       THEN
54987       xla_accounting_err_pkg.build_message
54988                                     (p_appli_s_name            => 'XLA'
54989                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54993                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54990                                     ,p_token_1                 => 'LINE_NUMBER'
54991                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54992                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54994                                                                              l_component_type
54995                                                                             ,l_component_code
54996                                                                             ,l_component_type_code
54997                                                                             ,l_component_appl_id
54998                                                                             ,l_amb_context_code
54999                                                                             ,l_entity_code
55000                                                                             ,l_event_class_code
55001                                                                            )
55002                                     ,p_token_3                 => 'OWNER'
55003                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55004                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55005                                                                           ,p_lookup_code    => l_component_type_code
55006                                                                          )
55007                                     ,p_token_4                 => 'PRODUCT_NAME'
55008                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55009                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55010                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55011                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55012                                     ,p_ae_header_id            =>  NULL
55013                                        );
55014 
55015         IF (C_LEVEL_ERROR>= g_log_level) THEN
55016                  trace
55017                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55018                       ,p_level    => C_LEVEL_ERROR
55019                       ,p_module   => l_log_module);
55020         END IF;
55021       END IF;
55022    END IF;
55023    --
55024    --
55025    ------------------------------------------------------------------------------------------------
55026    -- 4219869 Business Flow
55027    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55028    -- Prior Entry.  Currently, the following code is always generated.
55029    ------------------------------------------------------------------------------------------------
55030    XLA_AE_LINES_PKG.ValidateCurrentLine;
55031 
55032    ------------------------------------------------------------------------------------
55033    -- 4219869 Business Flow
55034    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55035    ------------------------------------------------------------------------------------
55036    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55037 
55038    ----------------------------------------------------------------------------------
55039    -- 4219869 Business Flow
55040    -- Update journal entry status -- Need to generate this within IF <condition>
55041    ----------------------------------------------------------------------------------
55042    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55043          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55044          ,p_balance_type_code => l_balance_type_code
55045          );
55046 
55047    -------------------------------------------------------------------------------------------
55048    -- 4262811 - Generate the Accrual Reversal lines
55049    -------------------------------------------------------------------------------------------
55050    BEGIN
55051       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55052                               (g_array_event(p_event_id).array_value_num('header_index'));
55053       IF l_acc_rev_flag IS NULL THEN
55054          l_acc_rev_flag := 'N';
55055       END IF;
55056    EXCEPTION
55057       WHEN OTHERS THEN
55058          l_acc_rev_flag := 'N';
55059    END;
55060    --
55061    IF (l_acc_rev_flag = 'Y') THEN
55062 
55063        -- 4645092  ------------------------------------------------------------------------------
55064        -- To allow MPA report to determine if it should generate report process
55065        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55066        ------------------------------------------------------------------------------------------
55067 
55068        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55069        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55070    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55071    -- call ADRs
55072    -- Bug 4922099
55073    --
55074    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55075         (NVL(l_actual_upg_option, 'N') = 'O') OR
55076         (NVL(l_enc_upg_option, 'N') = 'O')
55077       )
55078    THEN
55079    NULL;
55080    --
55081    --
55082    
55083   l_ccid := AcctDerRule_32(
55087 , p_source_10_meaning => p_source_10_meaning
55084            p_application_id           => p_application_id
55085          , p_ae_header_id             => l_ae_header_id 
55086 , p_source_10 => p_source_10
55088 , p_source_15 => p_source_15
55089 , p_source_16 => p_source_16
55090 , p_source_17 => p_source_17
55091 , p_source_17_meaning => p_source_17_meaning
55092 , p_source_18 => p_source_18
55093 , p_source_25 => p_source_25
55094 , p_source_43 => p_source_43
55095 , p_source_43_meaning => p_source_43_meaning
55096          , x_transaction_coa_id       => l_adr_transaction_coa_id
55097          , x_accounting_coa_id        => l_adr_accounting_coa_id
55098          , x_value_type_code          => l_adr_value_type_code
55099          , p_side                     => 'NA'
55100    );
55101 
55102    xla_ae_lines_pkg.set_ccid(
55103     p_code_combination_id          => l_ccid
55104   , p_value_type_code              => l_adr_value_type_code
55105   , p_transaction_coa_id           => l_adr_transaction_coa_id
55106   , p_accounting_coa_id            => l_adr_accounting_coa_id
55107   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
55108   , p_adr_type_code                => 'S'
55109   , p_component_type               => l_component_type
55110   , p_component_code               => l_component_code
55111   , p_component_type_code          => l_component_type_code
55112   , p_component_appl_id            => l_component_appl_id
55113   , p_amb_context_code             => l_amb_context_code
55114   , p_side                         => 'NA'
55115   );
55116 
55117 
55118    l_segment := AcctDerRule_8(
55119            p_application_id           => p_application_id
55120          , p_ae_header_id             => l_ae_header_id 
55121 , p_source_10 => p_source_10
55122 , p_source_10_meaning => p_source_10_meaning
55123 , p_source_15 => p_source_15
55124 , p_source_16 => p_source_16
55125 , p_source_17 => p_source_17
55126 , p_source_17_meaning => p_source_17_meaning
55127 , p_source_18 => p_source_18
55128          , x_transaction_coa_id       => l_adr_transaction_coa_id
55129          , x_accounting_coa_id        => l_adr_accounting_coa_id
55130          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
55131          , x_flex_value_set_id        => l_adr_flex_value_set_id
55132          , x_value_type_code          => l_adr_value_type_code
55133          , x_value_combination_id     => l_adr_value_combination_id
55134          , x_value_segment_code       => l_adr_value_segment_code
55135          , p_side                     => 'NA'
55136          , p_override_seg_flag        => 'Y'
55137    );
55138 
55139    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
55140 
55141       xla_ae_lines_pkg.set_segment(
55142           p_to_segment_code         => 'GL_ACCOUNT'
55143         , p_segment_value           => l_segment
55144         , p_from_segment_code       => l_adr_value_segment_code
55145         , p_from_combination_id     => l_adr_value_combination_id
55146         , p_value_type_code         => l_adr_value_type_code
55147         , p_transaction_coa_id      => l_adr_transaction_coa_id
55148         , p_accounting_coa_id       => l_adr_accounting_coa_id
55149         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
55150         , p_flex_value_set_id       => l_adr_flex_value_set_id
55151         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
55152         , p_adr_type_code           => 'S'
55153         , p_component_type          => l_component_type
55154         , p_component_code          => l_component_code
55155         , p_component_type_code     => l_component_type_code
55156         , p_component_appl_id       => l_component_appl_id
55157         , p_amb_context_code        => l_amb_context_code
55158         , p_entity_code             => 'AP_INVOICES'
55159         , p_event_class_code        => 'PREPAYMENTS'
55160         , p_side                    => 'NA'
55161         );
55162 
55163   END IF;
55164 
55165    l_segment := AcctDerRule_24(
55166            p_application_id           => p_application_id
55167          , p_ae_header_id             => l_ae_header_id 
55168 , p_source_10 => p_source_10
55169 , p_source_10_meaning => p_source_10_meaning
55170 , p_source_17 => p_source_17
55171 , p_source_17_meaning => p_source_17_meaning
55172 , p_source_25 => p_source_25
55173          , x_transaction_coa_id       => l_adr_transaction_coa_id
55174          , x_accounting_coa_id        => l_adr_accounting_coa_id
55175          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
55176          , x_flex_value_set_id        => l_adr_flex_value_set_id
55177          , x_value_type_code          => l_adr_value_type_code
55178          , x_value_combination_id     => l_adr_value_combination_id
55179          , x_value_segment_code       => l_adr_value_segment_code
55180          , p_side                     => 'NA'
55181          , p_override_seg_flag        => 'Y'
55182    );
55183 
55184    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
55185 
55186       xla_ae_lines_pkg.set_segment(
55187           p_to_segment_code         => 'GL_BALANCING'
55188         , p_segment_value           => l_segment
55189         , p_from_segment_code       => l_adr_value_segment_code
55190         , p_from_combination_id     => l_adr_value_combination_id
55191         , p_value_type_code         => l_adr_value_type_code
55192         , p_transaction_coa_id      => l_adr_transaction_coa_id
55193         , p_accounting_coa_id       => l_adr_accounting_coa_id
55194         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
55195         , p_flex_value_set_id       => l_adr_flex_value_set_id
55199         , p_component_code          => l_component_code
55196         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
55197         , p_adr_type_code           => 'S'
55198         , p_component_type          => l_component_type
55200         , p_component_type_code     => l_component_type_code
55201         , p_component_appl_id       => l_component_appl_id
55202         , p_amb_context_code        => l_amb_context_code
55203         , p_entity_code             => 'AP_INVOICES'
55204         , p_event_class_code        => 'PREPAYMENTS'
55205         , p_side                    => 'NA'
55206         );
55207 
55208   END IF;
55209 
55210    --
55211    --
55212    END IF;
55213 
55214        --
55215        -- Update the line information that should be overwritten
55216        --
55217        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55218                                          p_header_num   => 1);
55219        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55220 
55221        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55222 
55223        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55224           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55225        END IF;
55226 
55227       --
55228       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55229       --
55230       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55231           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55232       ELSE
55233           ---------------------------------------------------------------------------------------------------
55234           -- 4262811a Switch Sign
55235           ---------------------------------------------------------------------------------------------------
55236           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55237           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55238                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55239           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55240                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55241           -- 5132302
55242           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55243                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55244 
55245       END IF;
55246 
55247       -- 4955764
55248       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55249       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55250 
55251 
55252       XLA_AE_LINES_PKG.ValidateCurrentLine;
55253       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55254 
55255       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55256                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55257                ,p_balance_type_code => l_balance_type_code);
55258 
55259    END IF;
55260 
55261    -----------------------------------------------------------------------------------------
55262    -- 4262811 Multiperiod Accounting
55263    -----------------------------------------------------------------------------------------
55264      -- No MPA option is assigned.
55265 
55266 
55267 END IF;
55268 END IF;
55269 --
55270 
55271 --
55272 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55273    trace
55274       (p_msg      => 'END of AcctLineType_119'
55275       ,p_level    => C_LEVEL_PROCEDURE
55276       ,p_module   => l_log_module);
55277 END IF;
55278 --
55279 EXCEPTION
55280   WHEN xla_exceptions_pkg.application_exception THEN
55281       RAISE;
55282   WHEN OTHERS THEN
55283        xla_exceptions_pkg.raise_message
55284            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_119');
55285 END AcctLineType_119;
55286 --
55287 
55288 ---------------------------------------
55289 --
55290 -- PRIVATE FUNCTION
55291 --         AcctLineType_120
55292 --
55293 ---------------------------------------
55294 PROCEDURE AcctLineType_120 (
55295   p_application_id        IN NUMBER
55296  ,p_event_id              IN NUMBER
55297  ,p_calculate_acctd_flag  IN VARCHAR2
55298  ,p_calculate_g_l_flag    IN VARCHAR2
55299  ,p_actual_flag           IN OUT VARCHAR2
55300  ,p_balance_type_code     OUT VARCHAR2
55301  ,p_gain_or_loss_ref      OUT VARCHAR2
55302  
55303 --Automatic Offsets Value
55304  , p_source_10            IN VARCHAR2
55305  , p_source_10_meaning    IN VARCHAR2
55306 --Invoice Distribution Account
55307  , p_source_25            IN NUMBER
55308 --Payables Options Rounding Account
55309  , p_source_45            IN NUMBER
55310 --Accounting Reversal Indicator
55311  , p_source_58            IN VARCHAR2
55312 --Distribution Link Type
55313  , p_source_60            IN VARCHAR2
55314 --Invoice Identifier
55315  , p_source_63            IN NUMBER
55316 --Payables Encumbrance Upgrade Credit Account
55317  , p_source_70            IN NUMBER
55321  , p_source_72            IN VARCHAR2
55318 --Payables Encumbrance Upgrade Credit Amount
55319  , p_source_71            IN NUMBER
55320 --Invoice Currency Code
55322 --Payables Encumbrance Upgrade Credit Base Amount
55323  , p_source_73            IN NUMBER
55324 --Payables Encumbrance Upgrade Debit Account
55325  , p_source_74            IN NUMBER
55326 --Payables Encumbrance Upgrade Debit Amount
55327  , p_source_75            IN NUMBER
55328 --Payables Encumbrance Upgrade Debit Base Amount
55329  , p_source_76            IN NUMBER
55330 --Payables Encumbrance Upgrade Option
55331  , p_source_77            IN VARCHAR2
55332 --Deferred Accounting End Date
55333  , p_source_82            IN DATE
55334 --Deferred Accounting Option
55335  , p_source_83            IN VARCHAR2
55336 --Deferred Accounting Start Date
55337  , p_source_84            IN DATE
55338 --Override Accounted Amount Indicator
55339  , p_source_85            IN VARCHAR2
55340  , p_source_85_meaning    IN VARCHAR2
55341 --Invoice Supplier Identifier
55342  , p_source_86            IN NUMBER
55343 --Invoice Supplier Site Identifier
55344  , p_source_87            IN NUMBER
55345 --Third Party Type
55346  , p_source_88            IN VARCHAR2
55347 --Invoice Distribution Tax Line Identifier
55348  , p_source_91            IN NUMBER
55349 --Invoice Distribution Tax Distribution Identifier from Tax
55350  , p_source_92            IN NUMBER
55351 --Invoice Distribution Summary Tax Line Identifier
55352  , p_source_93            IN NUMBER
55353 --Payables Upgrade Credit Encumbrance Type Identifier
55354  , p_source_94            IN NUMBER
55355 --Payables Upgrade Debit Encumbrance Type Identifier
55356  , p_source_95            IN NUMBER
55357 --Business Flow Accounts Payable Application Identifier
55358  , p_source_96            IN NUMBER
55359 --Prepayment Distribution Type
55360  , p_source_128            IN VARCHAR2
55361 --Prepayment Application Distribution Identifier
55362  , p_source_130            IN NUMBER
55363 --Upgrade Encumbrance Credit Account Class
55364  , p_source_135            IN VARCHAR2
55365 --Upgrade Encumbrance Debit Account Class
55366  , p_source_136            IN VARCHAR2
55367 --Prepayment Distribution Amount
55368  , p_source_137            IN NUMBER
55369 --Prepayment Distribution (Prepayment Rate) Ledger Amount
55370  , p_source_138            IN NUMBER
55371 --Identifier of the Prepayment Application Reversed
55372  , p_source_139            IN NUMBER
55373 --Invoice Exchange Date
55374  , p_source_146            IN DATE
55375 --Invoice Exchange Rate
55376  , p_source_147            IN NUMBER
55377 --Invoice Exchange Rate Type
55378  , p_source_148            IN VARCHAR2
55379 --Business Flow Prepayment Invoice Distribution Type
55380  , p_source_149            IN VARCHAR2
55381 --Business Flow Prepayment Invoice Entity Code
55382  , p_source_150            IN VARCHAR2
55383 --Business Flow Prepayment Invoice Distribution Identifier
55384  , p_source_151            IN NUMBER
55385 --Business Flow Prepayment Invoice Identifier
55386  , p_source_152            IN NUMBER
55387 )
55388 IS
55389 
55390 l_component_type              VARCHAR2(80);
55391 l_component_code              VARCHAR2(30);
55392 l_component_type_code         VARCHAR2(1);
55393 l_component_appl_id           INTEGER;
55394 l_amb_context_code            VARCHAR2(30);
55395 l_entity_code                 VARCHAR2(30);
55396 l_event_class_code            VARCHAR2(30);
55397 l_ae_header_id                NUMBER;
55398 l_event_type_code             VARCHAR2(30);
55399 l_line_definition_code        VARCHAR2(30);
55400 l_line_definition_owner_code  VARCHAR2(1);
55401 --
55402 -- adr variables
55403 l_segment                     VARCHAR2(30);
55404 l_ccid                        NUMBER;
55405 l_adr_transaction_coa_id      NUMBER;
55406 l_adr_accounting_coa_id       NUMBER;
55407 l_adr_flexfield_segment_code  VARCHAR2(30);
55408 l_adr_flex_value_set_id       NUMBER;
55409 l_adr_value_type_code         VARCHAR2(30);
55410 l_adr_value_combination_id    NUMBER;
55411 l_adr_value_segment_code      VARCHAR2(30);
55412 
55413 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55414 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55415 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55416 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55417 
55418 -- 4262811 Variables ------------------------------------------------------------------------------------------
55419 l_entered_amt_idx             NUMBER;
55420 l_accted_amt_idx              NUMBER;
55421 l_acc_rev_flag                VARCHAR2(1);
55422 l_accrual_line_num            NUMBER;
55423 l_tmp_amt                     NUMBER;
55424 l_acc_rev_natural_side_code   VARCHAR2(1);
55425 
55426 l_num_entries                 NUMBER;
55427 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55428 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55429 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55430 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55431 l_recog_line_1                NUMBER;
55432 l_recog_line_2                NUMBER;
55433 
55434 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55435 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55436 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55437 
55441 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55438 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55439 
55440 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55442 
55443 ---------------------------------------------------------------------------------------------------------------
55444 
55445 
55446 --
55447 -- bulk performance
55448 --
55449 l_balance_type_code           VARCHAR2(1);
55450 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55451 l_log_module                  VARCHAR2(240);
55452 
55453 --
55454 -- Upgrade strategy
55455 --
55456 l_actual_upg_option           VARCHAR2(1);
55457 l_enc_upg_option           VARCHAR2(1);
55458 
55459 --
55460 BEGIN
55461 --
55462 IF g_log_enabled THEN
55463       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
55464 END IF;
55465 --
55466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55467 
55468       trace
55469          (p_msg      => 'BEGIN of AcctLineType_120'
55470          ,p_level    => C_LEVEL_PROCEDURE
55471          ,p_module   => l_log_module);
55472 
55473 END IF;
55474 --
55475 l_component_type             := 'AMB_JLT';
55476 l_component_code             := 'AP_FINAL_APP_ROUND_ACCR';
55477 l_component_type_code        := 'S';
55478 l_component_appl_id          :=  200;
55479 l_amb_context_code           := 'DEFAULT';
55480 l_entity_code                := 'AP_INVOICES';
55481 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
55482 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
55483 l_line_definition_owner_code := 'S';
55484 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
55485 --
55486 l_balance_type_code          := 'A';
55487 l_segment                     := NULL;
55488 l_ccid                        := NULL;
55489 l_adr_transaction_coa_id      := NULL;
55490 l_adr_accounting_coa_id       := NULL;
55491 l_adr_flexfield_segment_code  := NULL;
55492 l_adr_flex_value_set_id       := NULL;
55493 l_adr_value_type_code         := NULL;
55494 l_adr_value_combination_id    := NULL;
55495 l_adr_value_segment_code      := NULL;
55496 
55497 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55498 l_bflow_class_code           := '';    -- 4219869 Business Flow
55499 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55500 l_budgetary_control_flag     := 'N';
55501 
55502 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55503 l_bflow_applied_to_amt       := NULL; -- 5132302
55504 l_entered_amt_idx            := NULL;          -- 4262811
55505 l_accted_amt_idx             := NULL;          -- 4262811
55506 l_acc_rev_flag               := NULL;          -- 4262811
55507 l_accrual_line_num           := NULL;          -- 4262811
55508 l_tmp_amt                    := NULL;          -- 4262811
55509 --
55510  
55511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55512     l_balance_type_code <> 'B' THEN
55513 IF NVL(p_source_128,'
55514 ') =  'FINAL APPLICATION ROUNDING'
55515  THEN 
55516 
55517    --
55518    XLA_AE_LINES_PKG.SetNewLine;
55519 
55520    p_balance_type_code          := l_balance_type_code;
55521    -- set the flag so later we will know whether the gain loss line needs to be created
55522    
55523    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55524      p_actual_flag :='A';
55525    END IF;
55526 
55527    --
55528    -- bulk performance
55529    --
55530    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55531                                       p_header_num   => 0); -- 4262811
55532    --
55533    -- set accounting line options
55534    --
55535    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55536            p_natural_side_code          => 'C'
55537          , p_gain_or_loss_flag          => 'N'
55538          , p_gl_transfer_mode_code      => 'S'
55539          , p_acct_entry_type_code       => 'A'
55540          , p_switch_side_flag           => 'Y'
55541          , p_merge_duplicate_code       => 'A'
55542          );
55543    --
55544    l_acc_rev_natural_side_code := 'D';  -- 4262811
55545    -- 
55546    --
55547    -- set accounting line type info
55548    --
55549    xla_ae_lines_pkg.SetAcctLineType
55550       (p_component_type             => l_component_type
55551       ,p_event_type_code            => l_event_type_code
55552       ,p_line_definition_owner_code => l_line_definition_owner_code
55553       ,p_line_definition_code       => l_line_definition_code
55554       ,p_accounting_line_code       => l_component_code
55555       ,p_accounting_line_type_code  => l_component_type_code
55556       ,p_accounting_line_appl_id    => l_component_appl_id
55557       ,p_amb_context_code           => l_amb_context_code
55558       ,p_entity_code                => l_entity_code
55559       ,p_event_class_code           => l_event_class_code);
55560    --
55561    -- set accounting class
55562    --
55563    xla_ae_lines_pkg.SetAcctClass(
55564            p_accounting_class_code  => 'ROUNDING'
55565          , p_ae_header_id           => l_ae_header_id
55566          );
55567 
55568    --
55569    -- set rounding class
55570    --
55574    --
55571    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55572                       'ROUNDING';
55573 
55575    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55576    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55577    --
55578    -- bulk performance
55579    --
55580    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55581 
55582    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55583       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55584 
55585    -- 4955764
55586    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55587       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55588 
55589    -- 4458381 Public Sector Enh
55590    
55591    --
55592    -- set accounting attributes for the line type
55593    --
55594    l_entered_amt_idx := 25;
55595    l_accted_amt_idx  := 30;
55596    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
55597    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55598    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
55599    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
55600    l_rec_acct_attrs.array_num_value(2)  := 
55601 xla_ae_sources_pkg.GetSystemSourceNum(
55602    p_source_code           => 'XLA_EVENT_APPL_ID'
55603  , p_source_type_code      => 'Y'
55604  , p_source_application_id =>  602
55605 );
55606    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
55607    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
55608    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
55609    l_rec_acct_attrs.array_char_value(4)  := 
55610 xla_ae_sources_pkg.GetSystemSourceChar(
55611    p_source_code           => 'XLA_ENTITY_CODE'
55612  , p_source_type_code      => 'Y'
55613  , p_source_application_id =>  602
55614 );
55615    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
55616    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
55617    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
55618    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
55619    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
55620    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
55621    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55622    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
55623    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
55624    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
55625    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
55626    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
55627    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55628    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
55629    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
55630    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
55631    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
55632    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
55633    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
55634    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
55635    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
55636    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
55637    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
55638    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
55639    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
55640    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
55641    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
55642    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
55643    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
55644    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
55645    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
55646    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
55647    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
55648    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
55649    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
55650    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
55651    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
55652    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
55653    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
55654    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
55655    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
55656    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
55657    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
55658    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
55659    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
55660    l_rec_acct_attrs.array_date_value(27)  := p_source_146;
55661    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
55662    l_rec_acct_attrs.array_num_value(28)  := p_source_147;
55663    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
55664    l_rec_acct_attrs.array_char_value(29)  := p_source_148;
55665    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
55669    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
55666    l_rec_acct_attrs.array_num_value(30)  := p_source_138;
55667    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
55668    l_rec_acct_attrs.array_date_value(31)  := p_source_82;
55670    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
55671    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
55672    l_rec_acct_attrs.array_date_value(33)  := p_source_84;
55673    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
55674    l_rec_acct_attrs.array_char_value(34)  := p_source_85;
55675    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
55676    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
55677    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
55678    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
55679    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
55680    l_rec_acct_attrs.array_char_value(37)  := p_source_88;
55681    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
55682    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_139);
55683    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
55684    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
55685    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
55686    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
55687    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
55688    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
55689    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
55690    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
55691    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
55692    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
55693    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
55694    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
55695 
55696    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55697    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55698 
55699    ---------------------------------------------------------------------------------------------------------------
55700    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55701    ---------------------------------------------------------------------------------------------------------------
55702    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55703 
55704    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55705    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55706 
55707    IF xla_accounting_cache_pkg.GetValueChar
55708          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55709          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55710    AND l_bflow_method_code = 'PRIOR_ENTRY'
55711 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55712    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55713          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55714        )
55715    THEN
55716          xla_ae_lines_pkg.BflowUpgEntry
55717            (p_business_method_code    => l_bflow_method_code
55718            ,p_business_class_code     => l_bflow_class_code
55719            ,p_balance_type            => l_balance_type_code);
55720    ELSE
55721       NULL;
55722 -- No business flow processing for business flow method of NONE.
55723    END IF;
55724 
55725    --
55726    -- call analytical criteria
55727    --
55728    
55729    --
55730    -- call description
55731    --
55732    -- No description or it is inherited.
55733    --
55734    -- call ADRs
55735    -- Bug 4922099
55736    --
55737    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55738         (NVL(l_actual_upg_option, 'N') = 'O') OR
55739         (NVL(l_enc_upg_option, 'N') = 'O')
55740       )
55741    THEN
55742    NULL;
55743    --
55744    --
55745    
55746   l_ccid := AcctDerRule_43(
55747            p_application_id           => p_application_id
55748          , p_ae_header_id             => l_ae_header_id 
55749 , p_source_10 => p_source_10
55750 , p_source_10_meaning => p_source_10_meaning
55751 , p_source_25 => p_source_25
55752 , p_source_45 => p_source_45
55753          , x_transaction_coa_id       => l_adr_transaction_coa_id
55754          , x_accounting_coa_id        => l_adr_accounting_coa_id
55755          , x_value_type_code          => l_adr_value_type_code
55756          , p_side                     => 'NA'
55757    );
55758 
55759    xla_ae_lines_pkg.set_ccid(
55760     p_code_combination_id          => l_ccid
55761   , p_value_type_code              => l_adr_value_type_code
55762   , p_transaction_coa_id           => l_adr_transaction_coa_id
55763   , p_accounting_coa_id            => l_adr_accounting_coa_id
55764   , p_adr_code                     => 'AP_ROUNDING'
55765   , p_adr_type_code                => 'S'
55766   , p_component_type               => l_component_type
55767   , p_component_code               => l_component_code
55768   , p_component_type_code          => l_component_type_code
55769   , p_component_appl_id            => l_component_appl_id
55770   , p_amb_context_code             => l_amb_context_code
55771   , p_side                         => 'NA'
55775    --
55772   );
55773 
55774 
55776    --
55777    END IF;
55778    --
55779    -- Bug 4922099
55780    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55781           (NVL(l_enc_upg_option, 'N') = 'O')
55782         ) AND
55783         (l_bflow_method_code = 'PRIOR_ENTRY')
55784       )
55785    THEN
55786       IF
55787       --
55788       1 = 2
55789       --
55790       THEN
55791       xla_accounting_err_pkg.build_message
55792                                     (p_appli_s_name            => 'XLA'
55793                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55794                                     ,p_token_1                 => 'LINE_NUMBER'
55795                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55796                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55797                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55798                                                                              l_component_type
55799                                                                             ,l_component_code
55800                                                                             ,l_component_type_code
55801                                                                             ,l_component_appl_id
55802                                                                             ,l_amb_context_code
55803                                                                             ,l_entity_code
55804                                                                             ,l_event_class_code
55805                                                                            )
55806                                     ,p_token_3                 => 'OWNER'
55807                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55808                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55809                                                                           ,p_lookup_code    => l_component_type_code
55810                                                                          )
55811                                     ,p_token_4                 => 'PRODUCT_NAME'
55812                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55813                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55814                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55815                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55816                                     ,p_ae_header_id            =>  NULL
55817                                        );
55818 
55819         IF (C_LEVEL_ERROR>= g_log_level) THEN
55820                  trace
55821                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55822                       ,p_level    => C_LEVEL_ERROR
55823                       ,p_module   => l_log_module);
55824         END IF;
55825       END IF;
55826    END IF;
55827    --
55828    --
55829    ------------------------------------------------------------------------------------------------
55830    -- 4219869 Business Flow
55831    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55832    -- Prior Entry.  Currently, the following code is always generated.
55833    ------------------------------------------------------------------------------------------------
55834    XLA_AE_LINES_PKG.ValidateCurrentLine;
55835 
55836    ------------------------------------------------------------------------------------
55837    -- 4219869 Business Flow
55838    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55839    ------------------------------------------------------------------------------------
55840    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55841 
55842    ----------------------------------------------------------------------------------
55843    -- 4219869 Business Flow
55844    -- Update journal entry status -- Need to generate this within IF <condition>
55845    ----------------------------------------------------------------------------------
55846    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55847          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55848          ,p_balance_type_code => l_balance_type_code
55849          );
55850 
55851    -------------------------------------------------------------------------------------------
55852    -- 4262811 - Generate the Accrual Reversal lines
55853    -------------------------------------------------------------------------------------------
55854    BEGIN
55855       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55856                               (g_array_event(p_event_id).array_value_num('header_index'));
55857       IF l_acc_rev_flag IS NULL THEN
55858          l_acc_rev_flag := 'N';
55859       END IF;
55860    EXCEPTION
55861       WHEN OTHERS THEN
55862          l_acc_rev_flag := 'N';
55863    END;
55864    --
55865    IF (l_acc_rev_flag = 'Y') THEN
55866 
55867        -- 4645092  ------------------------------------------------------------------------------
55868        -- To allow MPA report to determine if it should generate report process
55869        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55873        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55870        ------------------------------------------------------------------------------------------
55871 
55872        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55874    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55875    -- call ADRs
55876    -- Bug 4922099
55877    --
55878    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55879         (NVL(l_actual_upg_option, 'N') = 'O') OR
55880         (NVL(l_enc_upg_option, 'N') = 'O')
55881       )
55882    THEN
55883    NULL;
55884    --
55885    --
55886    
55887   l_ccid := AcctDerRule_43(
55888            p_application_id           => p_application_id
55889          , p_ae_header_id             => l_ae_header_id 
55890 , p_source_10 => p_source_10
55891 , p_source_10_meaning => p_source_10_meaning
55892 , p_source_25 => p_source_25
55893 , p_source_45 => p_source_45
55894          , x_transaction_coa_id       => l_adr_transaction_coa_id
55895          , x_accounting_coa_id        => l_adr_accounting_coa_id
55896          , x_value_type_code          => l_adr_value_type_code
55897          , p_side                     => 'NA'
55898    );
55899 
55900    xla_ae_lines_pkg.set_ccid(
55901     p_code_combination_id          => l_ccid
55902   , p_value_type_code              => l_adr_value_type_code
55903   , p_transaction_coa_id           => l_adr_transaction_coa_id
55904   , p_accounting_coa_id            => l_adr_accounting_coa_id
55905   , p_adr_code                     => 'AP_ROUNDING'
55906   , p_adr_type_code                => 'S'
55907   , p_component_type               => l_component_type
55908   , p_component_code               => l_component_code
55909   , p_component_type_code          => l_component_type_code
55910   , p_component_appl_id            => l_component_appl_id
55911   , p_amb_context_code             => l_amb_context_code
55912   , p_side                         => 'NA'
55913   );
55914 
55915 
55916    --
55917    --
55918    END IF;
55919 
55920        --
55921        -- Update the line information that should be overwritten
55922        --
55923        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55924                                          p_header_num   => 1);
55925        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55926 
55927        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55928 
55929        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55930           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55931        END IF;
55932 
55933       --
55934       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55935       --
55936       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55937           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55938       ELSE
55939           ---------------------------------------------------------------------------------------------------
55940           -- 4262811a Switch Sign
55941           ---------------------------------------------------------------------------------------------------
55942           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55943           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55944                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55945           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55946                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55947           -- 5132302
55948           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55949                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55950 
55951       END IF;
55952 
55953       -- 4955764
55954       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55955       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55956 
55957 
55958       XLA_AE_LINES_PKG.ValidateCurrentLine;
55959       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55960 
55961       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55962                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55963                ,p_balance_type_code => l_balance_type_code);
55964 
55965    END IF;
55966 
55967    -----------------------------------------------------------------------------------------
55968    -- 4262811 Multiperiod Accounting
55969    -----------------------------------------------------------------------------------------
55970      -- No MPA option is assigned.
55971 
55972 
55973 END IF;
55974 END IF;
55975 --
55976 
55977 --
55978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55979    trace
55980       (p_msg      => 'END of AcctLineType_120'
55981       ,p_level    => C_LEVEL_PROCEDURE
55982       ,p_module   => l_log_module);
55983 END IF;
55984 --
55985 EXCEPTION
55986   WHEN xla_exceptions_pkg.application_exception THEN
55987       RAISE;
55988   WHEN OTHERS THEN
55989        xla_exceptions_pkg.raise_message
55993 
55990            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_120');
55991 END AcctLineType_120;
55992 --
55994 ---------------------------------------
55995 --
55996 -- PRIVATE FUNCTION
55997 --         AcctLineType_121
55998 --
55999 ---------------------------------------
56000 PROCEDURE AcctLineType_121 (
56001   p_application_id        IN NUMBER
56002  ,p_event_id              IN NUMBER
56003  ,p_calculate_acctd_flag  IN VARCHAR2
56004  ,p_calculate_g_l_flag    IN VARCHAR2
56005  ,p_actual_flag           IN OUT VARCHAR2
56006  ,p_balance_type_code     OUT VARCHAR2
56007  ,p_gain_or_loss_ref      OUT VARCHAR2
56008  
56009 --Automatic Offsets Value
56010  , p_source_10            IN VARCHAR2
56011  , p_source_10_meaning    IN VARCHAR2
56012 --Invoice Distribution Account
56013  , p_source_25            IN NUMBER
56014 --Payables Options Rounding Account
56015  , p_source_45            IN NUMBER
56016 --When to Account for Payment Option
56017  , p_source_57            IN VARCHAR2
56018 --Accounting Reversal Indicator
56019  , p_source_58            IN VARCHAR2
56020 --Distribution Link Type
56021  , p_source_60            IN VARCHAR2
56022 --Invoice Currency Code
56023  , p_source_72            IN VARCHAR2
56024 --Override Accounted Amount Indicator
56025  , p_source_85            IN VARCHAR2
56026  , p_source_85_meaning    IN VARCHAR2
56027 --Third Party Type
56028  , p_source_88            IN VARCHAR2
56029 --Invoice Distribution Tax Line Identifier
56030  , p_source_91            IN NUMBER
56031 --Invoice Distribution Summary Tax Line Identifier
56032  , p_source_93            IN NUMBER
56033 --Business Flow Accounts Payable Application Identifier
56034  , p_source_96            IN NUMBER
56035 --Payment Distribution Type
56036  , p_source_101            IN VARCHAR2
56037  , p_source_101_meaning    IN VARCHAR2
56038 --Payment Distribution Amount
56039  , p_source_102            IN NUMBER
56040 --Business Flow Payment Distribution Type
56041  , p_source_103            IN VARCHAR2
56042 --Business Flow Payment Entity Code
56043  , p_source_104            IN VARCHAR2
56044 --Business Flow Payment Distribution Identifier
56045  , p_source_105            IN NUMBER
56046 --Business Flow Payment Identifier
56047  , p_source_106            IN NUMBER
56048 --Payment Distribution Identifier
56049  , p_source_107            IN NUMBER
56050 --Payment Supplier Identifier
56051  , p_source_113            IN NUMBER
56052 --Payment Supplier Site Identifier
56053  , p_source_114            IN NUMBER
56054 --Payment Distribution Reversed Identifier
56055  , p_source_115            IN NUMBER
56056 --Payment Distribution (Invoice Rate) Ledger Amount
56057  , p_source_119            IN NUMBER
56058 --Invoice Exchange Date
56059  , p_source_146            IN DATE
56060 --Invoice Exchange Rate
56061  , p_source_147            IN NUMBER
56062 --Invoice Exchange Rate Type
56063  , p_source_148            IN VARCHAR2
56064 )
56065 IS
56066 
56067 l_component_type              VARCHAR2(80);
56068 l_component_code              VARCHAR2(30);
56069 l_component_type_code         VARCHAR2(1);
56070 l_component_appl_id           INTEGER;
56071 l_amb_context_code            VARCHAR2(30);
56072 l_entity_code                 VARCHAR2(30);
56073 l_event_class_code            VARCHAR2(30);
56074 l_ae_header_id                NUMBER;
56075 l_event_type_code             VARCHAR2(30);
56076 l_line_definition_code        VARCHAR2(30);
56077 l_line_definition_owner_code  VARCHAR2(1);
56078 --
56079 -- adr variables
56080 l_segment                     VARCHAR2(30);
56081 l_ccid                        NUMBER;
56082 l_adr_transaction_coa_id      NUMBER;
56083 l_adr_accounting_coa_id       NUMBER;
56084 l_adr_flexfield_segment_code  VARCHAR2(30);
56085 l_adr_flex_value_set_id       NUMBER;
56086 l_adr_value_type_code         VARCHAR2(30);
56087 l_adr_value_combination_id    NUMBER;
56088 l_adr_value_segment_code      VARCHAR2(30);
56089 
56090 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56091 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56092 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56093 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56094 
56095 -- 4262811 Variables ------------------------------------------------------------------------------------------
56096 l_entered_amt_idx             NUMBER;
56097 l_accted_amt_idx              NUMBER;
56098 l_acc_rev_flag                VARCHAR2(1);
56099 l_accrual_line_num            NUMBER;
56100 l_tmp_amt                     NUMBER;
56101 l_acc_rev_natural_side_code   VARCHAR2(1);
56102 
56103 l_num_entries                 NUMBER;
56104 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56105 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56106 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56107 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56108 l_recog_line_1                NUMBER;
56109 l_recog_line_2                NUMBER;
56110 
56111 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56112 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56113 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56114 
56115 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56116 
56120 ---------------------------------------------------------------------------------------------------------------
56117 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56118 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56119 
56121 
56122 
56123 --
56124 -- bulk performance
56125 --
56126 l_balance_type_code           VARCHAR2(1);
56127 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56128 l_log_module                  VARCHAR2(240);
56129 
56130 --
56131 -- Upgrade strategy
56132 --
56133 l_actual_upg_option           VARCHAR2(1);
56134 l_enc_upg_option           VARCHAR2(1);
56135 
56136 --
56137 BEGIN
56138 --
56139 IF g_log_enabled THEN
56140       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
56141 END IF;
56142 --
56143 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56144 
56145       trace
56146          (p_msg      => 'BEGIN of AcctLineType_121'
56147          ,p_level    => C_LEVEL_PROCEDURE
56148          ,p_module   => l_log_module);
56149 
56150 END IF;
56151 --
56152 l_component_type             := 'AMB_JLT';
56153 l_component_code             := 'AP_FINAL_PMT_ROUNDING_CLEAR';
56154 l_component_type_code        := 'S';
56155 l_component_appl_id          :=  200;
56156 l_amb_context_code           := 'DEFAULT';
56157 l_entity_code                := 'AP_PAYMENTS';
56158 l_event_class_code           := 'RECONCILED PAYMENTS';
56159 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
56160 l_line_definition_owner_code := 'S';
56161 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
56162 --
56163 l_balance_type_code          := 'A';
56164 l_segment                     := NULL;
56165 l_ccid                        := NULL;
56166 l_adr_transaction_coa_id      := NULL;
56167 l_adr_accounting_coa_id       := NULL;
56168 l_adr_flexfield_segment_code  := NULL;
56169 l_adr_flex_value_set_id       := NULL;
56170 l_adr_value_type_code         := NULL;
56171 l_adr_value_combination_id    := NULL;
56172 l_adr_value_segment_code      := NULL;
56173 
56174 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56175 l_bflow_class_code           := '';    -- 4219869 Business Flow
56176 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56177 l_budgetary_control_flag     := 'N';
56178 
56179 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56180 l_bflow_applied_to_amt       := NULL; -- 5132302
56181 l_entered_amt_idx            := NULL;          -- 4262811
56182 l_accted_amt_idx             := NULL;          -- 4262811
56183 l_acc_rev_flag               := NULL;          -- 4262811
56184 l_accrual_line_num           := NULL;          -- 4262811
56185 l_tmp_amt                    := NULL;          -- 4262811
56186 --
56187  
56188 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56189     l_balance_type_code <> 'B' THEN
56190 IF NVL(p_source_57,'
56191 ') =  'CLEAR_CLEAR' AND 
56192 NVL(p_source_101,'
56193 ') =  'FINAL PAYMENT ROUNDING'
56194  THEN 
56195 
56196    --
56197    XLA_AE_LINES_PKG.SetNewLine;
56198 
56199    p_balance_type_code          := l_balance_type_code;
56200    -- set the flag so later we will know whether the gain loss line needs to be created
56201    
56202    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56203      p_actual_flag :='A';
56204    END IF;
56205 
56206    --
56207    -- bulk performance
56208    --
56209    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56210                                       p_header_num   => 0); -- 4262811
56211    --
56212    -- set accounting line options
56213    --
56214    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56215            p_natural_side_code          => 'D'
56216          , p_gain_or_loss_flag          => 'N'
56217          , p_gl_transfer_mode_code      => 'S'
56218          , p_acct_entry_type_code       => 'A'
56219          , p_switch_side_flag           => 'Y'
56220          , p_merge_duplicate_code       => 'A'
56221          );
56222    --
56223    l_acc_rev_natural_side_code := 'C';  -- 4262811
56224    -- 
56225    --
56226    -- set accounting line type info
56227    --
56228    xla_ae_lines_pkg.SetAcctLineType
56229       (p_component_type             => l_component_type
56230       ,p_event_type_code            => l_event_type_code
56231       ,p_line_definition_owner_code => l_line_definition_owner_code
56232       ,p_line_definition_code       => l_line_definition_code
56233       ,p_accounting_line_code       => l_component_code
56234       ,p_accounting_line_type_code  => l_component_type_code
56235       ,p_accounting_line_appl_id    => l_component_appl_id
56236       ,p_amb_context_code           => l_amb_context_code
56237       ,p_entity_code                => l_entity_code
56238       ,p_event_class_code           => l_event_class_code);
56239    --
56240    -- set accounting class
56241    --
56242    xla_ae_lines_pkg.SetAcctClass(
56243            p_accounting_class_code  => 'ROUNDING'
56244          , p_ae_header_id           => l_ae_header_id
56245          );
56246 
56247    --
56248    -- set rounding class
56249    --
56250    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56251                       'ROUNDING';
56255    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56252 
56253    --
56254    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56256    --
56257    -- bulk performance
56258    --
56259    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56260 
56261    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56262       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56263 
56264    -- 4955764
56265    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56266       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56267 
56268    -- 4458381 Public Sector Enh
56269    
56270    --
56271    -- set accounting attributes for the line type
56272    --
56273    l_entered_amt_idx := 10;
56274    l_accted_amt_idx  := 15;
56275    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
56276    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56277    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
56278    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
56279    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
56280    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
56281    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
56282    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56283    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
56284    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
56285    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
56286    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
56287    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
56288    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56289    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
56290    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
56291    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
56292    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
56293    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
56294    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
56295    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
56296    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
56297    l_rec_acct_attrs.array_char_value(11)  := p_source_72;
56298    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
56299    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
56300    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
56301    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
56302    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
56303    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
56304    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
56305    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
56306    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
56307    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
56308    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
56309    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
56310    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
56311    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
56312    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
56313    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
56314    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
56315    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
56316    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
56317    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
56318    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
56319    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
56320    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
56321    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
56322    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
56323    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
56324 
56325    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56326    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56327 
56328    ---------------------------------------------------------------------------------------------------------------
56329    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56330    ---------------------------------------------------------------------------------------------------------------
56331    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56332 
56333    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56334    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56335 
56336    IF xla_accounting_cache_pkg.GetValueChar
56337          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56338          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56339    AND l_bflow_method_code = 'PRIOR_ENTRY'
56340 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56344    THEN
56341    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56342          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56343        )
56345          xla_ae_lines_pkg.BflowUpgEntry
56346            (p_business_method_code    => l_bflow_method_code
56347            ,p_business_class_code     => l_bflow_class_code
56348            ,p_balance_type            => l_balance_type_code);
56349    ELSE
56350       NULL;
56351 -- No business flow processing for business flow method of NONE.
56352    END IF;
56353 
56354    --
56355    -- call analytical criteria
56356    --
56357    
56358    --
56359    -- call description
56360    --
56361    -- No description or it is inherited.
56362    --
56363    -- call ADRs
56364    -- Bug 4922099
56365    --
56366    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56367         (NVL(l_actual_upg_option, 'N') = 'O') OR
56368         (NVL(l_enc_upg_option, 'N') = 'O')
56369       )
56370    THEN
56371    NULL;
56372    --
56373    --
56374    
56375   l_ccid := AcctDerRule_43(
56376            p_application_id           => p_application_id
56377          , p_ae_header_id             => l_ae_header_id 
56378 , p_source_10 => p_source_10
56379 , p_source_10_meaning => p_source_10_meaning
56380 , p_source_25 => p_source_25
56381 , p_source_45 => p_source_45
56382          , x_transaction_coa_id       => l_adr_transaction_coa_id
56383          , x_accounting_coa_id        => l_adr_accounting_coa_id
56384          , x_value_type_code          => l_adr_value_type_code
56385          , p_side                     => 'NA'
56386    );
56387 
56388    xla_ae_lines_pkg.set_ccid(
56389     p_code_combination_id          => l_ccid
56390   , p_value_type_code              => l_adr_value_type_code
56391   , p_transaction_coa_id           => l_adr_transaction_coa_id
56392   , p_accounting_coa_id            => l_adr_accounting_coa_id
56393   , p_adr_code                     => 'AP_ROUNDING'
56394   , p_adr_type_code                => 'S'
56395   , p_component_type               => l_component_type
56396   , p_component_code               => l_component_code
56397   , p_component_type_code          => l_component_type_code
56398   , p_component_appl_id            => l_component_appl_id
56399   , p_amb_context_code             => l_amb_context_code
56400   , p_side                         => 'NA'
56401   );
56402 
56403 
56404    --
56405    --
56406    END IF;
56407    --
56408    -- Bug 4922099
56409    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56410           (NVL(l_enc_upg_option, 'N') = 'O')
56411         ) AND
56412         (l_bflow_method_code = 'PRIOR_ENTRY')
56413       )
56414    THEN
56415       IF
56416       --
56417       1 = 2
56418       --
56419       THEN
56420       xla_accounting_err_pkg.build_message
56421                                     (p_appli_s_name            => 'XLA'
56422                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56423                                     ,p_token_1                 => 'LINE_NUMBER'
56424                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56425                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56426                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56427                                                                              l_component_type
56428                                                                             ,l_component_code
56429                                                                             ,l_component_type_code
56430                                                                             ,l_component_appl_id
56431                                                                             ,l_amb_context_code
56432                                                                             ,l_entity_code
56433                                                                             ,l_event_class_code
56434                                                                            )
56435                                     ,p_token_3                 => 'OWNER'
56436                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56437                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56438                                                                           ,p_lookup_code    => l_component_type_code
56439                                                                          )
56440                                     ,p_token_4                 => 'PRODUCT_NAME'
56441                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56442                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56443                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56444                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56445                                     ,p_ae_header_id            =>  NULL
56446                                        );
56447 
56448         IF (C_LEVEL_ERROR>= g_log_level) THEN
56449                  trace
56450                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56451                       ,p_level    => C_LEVEL_ERROR
56455    END IF;
56452                       ,p_module   => l_log_module);
56453         END IF;
56454       END IF;
56456    --
56457    --
56458    ------------------------------------------------------------------------------------------------
56459    -- 4219869 Business Flow
56460    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56461    -- Prior Entry.  Currently, the following code is always generated.
56462    ------------------------------------------------------------------------------------------------
56463    XLA_AE_LINES_PKG.ValidateCurrentLine;
56464 
56465    ------------------------------------------------------------------------------------
56466    -- 4219869 Business Flow
56467    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56468    ------------------------------------------------------------------------------------
56469    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56470 
56471    ----------------------------------------------------------------------------------
56472    -- 4219869 Business Flow
56473    -- Update journal entry status -- Need to generate this within IF <condition>
56474    ----------------------------------------------------------------------------------
56475    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56476          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56477          ,p_balance_type_code => l_balance_type_code
56478          );
56479 
56480    -------------------------------------------------------------------------------------------
56481    -- 4262811 - Generate the Accrual Reversal lines
56482    -------------------------------------------------------------------------------------------
56483    BEGIN
56484       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56485                               (g_array_event(p_event_id).array_value_num('header_index'));
56486       IF l_acc_rev_flag IS NULL THEN
56487          l_acc_rev_flag := 'N';
56488       END IF;
56489    EXCEPTION
56490       WHEN OTHERS THEN
56491          l_acc_rev_flag := 'N';
56492    END;
56493    --
56494    IF (l_acc_rev_flag = 'Y') THEN
56495 
56496        -- 4645092  ------------------------------------------------------------------------------
56497        -- To allow MPA report to determine if it should generate report process
56498        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56499        ------------------------------------------------------------------------------------------
56500 
56501        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56502        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56503    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56504    -- call ADRs
56505    -- Bug 4922099
56506    --
56507    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56508         (NVL(l_actual_upg_option, 'N') = 'O') OR
56509         (NVL(l_enc_upg_option, 'N') = 'O')
56510       )
56511    THEN
56512    NULL;
56513    --
56514    --
56515    
56516   l_ccid := AcctDerRule_43(
56517            p_application_id           => p_application_id
56518          , p_ae_header_id             => l_ae_header_id 
56519 , p_source_10 => p_source_10
56520 , p_source_10_meaning => p_source_10_meaning
56521 , p_source_25 => p_source_25
56522 , p_source_45 => p_source_45
56523          , x_transaction_coa_id       => l_adr_transaction_coa_id
56524          , x_accounting_coa_id        => l_adr_accounting_coa_id
56525          , x_value_type_code          => l_adr_value_type_code
56526          , p_side                     => 'NA'
56527    );
56528 
56529    xla_ae_lines_pkg.set_ccid(
56530     p_code_combination_id          => l_ccid
56531   , p_value_type_code              => l_adr_value_type_code
56532   , p_transaction_coa_id           => l_adr_transaction_coa_id
56533   , p_accounting_coa_id            => l_adr_accounting_coa_id
56534   , p_adr_code                     => 'AP_ROUNDING'
56535   , p_adr_type_code                => 'S'
56536   , p_component_type               => l_component_type
56537   , p_component_code               => l_component_code
56538   , p_component_type_code          => l_component_type_code
56539   , p_component_appl_id            => l_component_appl_id
56540   , p_amb_context_code             => l_amb_context_code
56541   , p_side                         => 'NA'
56542   );
56543 
56544 
56545    --
56546    --
56547    END IF;
56548 
56549        --
56550        -- Update the line information that should be overwritten
56551        --
56552        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56553                                          p_header_num   => 1);
56554        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56555 
56556        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56557 
56558        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56559           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56560        END IF;
56561 
56562       --
56563       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56564       --
56565       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56566           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56567       ELSE
56571           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56568           ---------------------------------------------------------------------------------------------------
56569           -- 4262811a Switch Sign
56570           ---------------------------------------------------------------------------------------------------
56572           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56573                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56574           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56575                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56576           -- 5132302
56577           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56578                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56579 
56580       END IF;
56581 
56582       -- 4955764
56583       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56584       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56585 
56586 
56587       XLA_AE_LINES_PKG.ValidateCurrentLine;
56588       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56589 
56590       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56591                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56592                ,p_balance_type_code => l_balance_type_code);
56593 
56594    END IF;
56595 
56596    -----------------------------------------------------------------------------------------
56597    -- 4262811 Multiperiod Accounting
56598    -----------------------------------------------------------------------------------------
56599      -- No MPA option is assigned.
56600 
56601 
56602 END IF;
56603 END IF;
56604 --
56605 
56606 --
56607 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56608    trace
56609       (p_msg      => 'END of AcctLineType_121'
56610       ,p_level    => C_LEVEL_PROCEDURE
56611       ,p_module   => l_log_module);
56612 END IF;
56613 --
56614 EXCEPTION
56615   WHEN xla_exceptions_pkg.application_exception THEN
56616       RAISE;
56617   WHEN OTHERS THEN
56618        xla_exceptions_pkg.raise_message
56619            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_121');
56620 END AcctLineType_121;
56621 --
56622 
56623 ---------------------------------------
56624 --
56625 -- PRIVATE FUNCTION
56626 --         AcctLineType_122
56627 --
56628 ---------------------------------------
56629 PROCEDURE AcctLineType_122 (
56630   p_application_id        IN NUMBER
56631  ,p_event_id              IN NUMBER
56632  ,p_calculate_acctd_flag  IN VARCHAR2
56633  ,p_calculate_g_l_flag    IN VARCHAR2
56634  ,p_actual_flag           IN OUT VARCHAR2
56635  ,p_balance_type_code     OUT VARCHAR2
56636  ,p_gain_or_loss_ref      OUT VARCHAR2
56637  
56638 --Automatic Offsets Value
56639  , p_source_10            IN VARCHAR2
56640  , p_source_10_meaning    IN VARCHAR2
56641 --Invoice Distribution Account
56642  , p_source_25            IN NUMBER
56643 --Payables Options Rounding Account
56644  , p_source_45            IN NUMBER
56645 --When to Account for Payment Option
56646  , p_source_57            IN VARCHAR2
56647 --Accounting Reversal Indicator
56648  , p_source_58            IN VARCHAR2
56649 --Distribution Link Type
56650  , p_source_60            IN VARCHAR2
56651 --Invoice Currency Code
56652  , p_source_72            IN VARCHAR2
56653 --Override Accounted Amount Indicator
56654  , p_source_85            IN VARCHAR2
56655  , p_source_85_meaning    IN VARCHAR2
56656 --Third Party Type
56657  , p_source_88            IN VARCHAR2
56658 --Invoice Distribution Tax Line Identifier
56659  , p_source_91            IN NUMBER
56660 --Invoice Distribution Tax Distribution Identifier from Tax
56661  , p_source_92            IN NUMBER
56662 --Invoice Distribution Summary Tax Line Identifier
56663  , p_source_93            IN NUMBER
56664 --Business Flow Accounts Payable Application Identifier
56665  , p_source_96            IN NUMBER
56666 --Business Flow Invoice Distribution Type
56667  , p_source_97            IN VARCHAR2
56668 --Business Flow Invoice Entity Code
56669  , p_source_98            IN VARCHAR2
56670 --Business Flow Invoice Distribution Identifier
56671  , p_source_99            IN NUMBER
56672 --Business Flow Invoice Identifier
56673  , p_source_100            IN NUMBER
56674 --Payment Distribution Type
56675  , p_source_101            IN VARCHAR2
56676  , p_source_101_meaning    IN VARCHAR2
56677 --Payment Distribution Amount
56678  , p_source_102            IN NUMBER
56679 --Payment Distribution Identifier
56680  , p_source_107            IN NUMBER
56681 --Payment Supplier Identifier
56682  , p_source_113            IN NUMBER
56683 --Payment Supplier Site Identifier
56684  , p_source_114            IN NUMBER
56685 --Payment Distribution Reversed Identifier
56686  , p_source_115            IN NUMBER
56687 --Payment Distribution (Invoice Rate) Ledger Amount
56688  , p_source_119            IN NUMBER
56689 --Payment Type
56690  , p_source_125            IN VARCHAR2
56691  , p_source_125_meaning    IN VARCHAR2
56692 --Payment Processing Type
56693  , p_source_126            IN VARCHAR2
56694 --Invoice Distribution Amount of the Payment Distribution
56698 --Invoice Exchange Rate
56695  , p_source_127            IN NUMBER
56696 --Invoice Exchange Date
56697  , p_source_146            IN DATE
56699  , p_source_147            IN NUMBER
56700 --Invoice Exchange Rate Type
56701  , p_source_148            IN VARCHAR2
56702 )
56703 IS
56704 
56705 l_component_type              VARCHAR2(80);
56706 l_component_code              VARCHAR2(30);
56707 l_component_type_code         VARCHAR2(1);
56708 l_component_appl_id           INTEGER;
56709 l_amb_context_code            VARCHAR2(30);
56710 l_entity_code                 VARCHAR2(30);
56711 l_event_class_code            VARCHAR2(30);
56712 l_ae_header_id                NUMBER;
56713 l_event_type_code             VARCHAR2(30);
56714 l_line_definition_code        VARCHAR2(30);
56715 l_line_definition_owner_code  VARCHAR2(1);
56716 --
56717 -- adr variables
56718 l_segment                     VARCHAR2(30);
56719 l_ccid                        NUMBER;
56720 l_adr_transaction_coa_id      NUMBER;
56721 l_adr_accounting_coa_id       NUMBER;
56722 l_adr_flexfield_segment_code  VARCHAR2(30);
56723 l_adr_flex_value_set_id       NUMBER;
56724 l_adr_value_type_code         VARCHAR2(30);
56725 l_adr_value_combination_id    NUMBER;
56726 l_adr_value_segment_code      VARCHAR2(30);
56727 
56728 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56729 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56730 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56731 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56732 
56733 -- 4262811 Variables ------------------------------------------------------------------------------------------
56734 l_entered_amt_idx             NUMBER;
56735 l_accted_amt_idx              NUMBER;
56736 l_acc_rev_flag                VARCHAR2(1);
56737 l_accrual_line_num            NUMBER;
56738 l_tmp_amt                     NUMBER;
56739 l_acc_rev_natural_side_code   VARCHAR2(1);
56740 
56741 l_num_entries                 NUMBER;
56742 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56743 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56744 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56745 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56746 l_recog_line_1                NUMBER;
56747 l_recog_line_2                NUMBER;
56748 
56749 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56750 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56751 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56752 
56753 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56754 
56755 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56756 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56757 
56758 ---------------------------------------------------------------------------------------------------------------
56759 
56760 
56761 --
56762 -- bulk performance
56763 --
56764 l_balance_type_code           VARCHAR2(1);
56765 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56766 l_log_module                  VARCHAR2(240);
56767 
56768 --
56769 -- Upgrade strategy
56770 --
56771 l_actual_upg_option           VARCHAR2(1);
56772 l_enc_upg_option           VARCHAR2(1);
56773 
56774 --
56775 BEGIN
56776 --
56777 IF g_log_enabled THEN
56778       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
56779 END IF;
56780 --
56781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56782 
56783       trace
56784          (p_msg      => 'BEGIN of AcctLineType_122'
56785          ,p_level    => C_LEVEL_PROCEDURE
56786          ,p_module   => l_log_module);
56787 
56788 END IF;
56789 --
56790 l_component_type             := 'AMB_JLT';
56791 l_component_code             := 'AP_FINAL_PMT_ROUNDING_PMT';
56792 l_component_type_code        := 'S';
56793 l_component_appl_id          :=  200;
56794 l_amb_context_code           := 'DEFAULT';
56795 l_entity_code                := 'AP_PAYMENTS';
56796 l_event_class_code           := 'PAYMENTS';
56797 l_event_type_code            := 'PAYMENTS_ALL';
56798 l_line_definition_owner_code := 'S';
56799 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
56800 --
56801 l_balance_type_code          := 'A';
56802 l_segment                     := NULL;
56803 l_ccid                        := NULL;
56804 l_adr_transaction_coa_id      := NULL;
56805 l_adr_accounting_coa_id       := NULL;
56806 l_adr_flexfield_segment_code  := NULL;
56807 l_adr_flex_value_set_id       := NULL;
56808 l_adr_value_type_code         := NULL;
56809 l_adr_value_combination_id    := NULL;
56810 l_adr_value_segment_code      := NULL;
56811 
56812 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56813 l_bflow_class_code           := '';    -- 4219869 Business Flow
56814 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56815 l_budgetary_control_flag     := 'N';
56816 
56817 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56818 l_bflow_applied_to_amt       := NULL; -- 5132302
56819 l_entered_amt_idx            := NULL;          -- 4262811
56820 l_accted_amt_idx             := NULL;          -- 4262811
56821 l_acc_rev_flag               := NULL;          -- 4262811
56822 l_accrual_line_num           := NULL;          -- 4262811
56826 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56823 l_tmp_amt                    := NULL;          -- 4262811
56824 --
56825  
56827     l_balance_type_code <> 'B' THEN
56828 IF NVL(p_source_57,'
56829 ') <>  'CLEAR_CLEAR' AND 
56830 NVL(p_source_101,'
56831 ') =  'FINAL PAYMENT ROUNDING' AND 
56832 NVL(p_source_125,'
56833 ') <>  'R' AND 
56834 NVL(p_source_126,'
56835 ') <>  'PAYMENTCARD'
56836  THEN 
56837 
56838    --
56839    XLA_AE_LINES_PKG.SetNewLine;
56840 
56841    p_balance_type_code          := l_balance_type_code;
56842    -- set the flag so later we will know whether the gain loss line needs to be created
56843    
56844    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56845      p_actual_flag :='A';
56846    END IF;
56847 
56848    --
56849    -- bulk performance
56850    --
56851    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56852                                       p_header_num   => 0); -- 4262811
56853    --
56854    -- set accounting line options
56855    --
56856    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56857            p_natural_side_code          => 'D'
56858          , p_gain_or_loss_flag          => 'N'
56859          , p_gl_transfer_mode_code      => 'S'
56860          , p_acct_entry_type_code       => 'A'
56861          , p_switch_side_flag           => 'Y'
56862          , p_merge_duplicate_code       => 'A'
56863          );
56864    --
56865    l_acc_rev_natural_side_code := 'C';  -- 4262811
56866    -- 
56867    --
56868    -- set accounting line type info
56869    --
56870    xla_ae_lines_pkg.SetAcctLineType
56871       (p_component_type             => l_component_type
56872       ,p_event_type_code            => l_event_type_code
56873       ,p_line_definition_owner_code => l_line_definition_owner_code
56874       ,p_line_definition_code       => l_line_definition_code
56875       ,p_accounting_line_code       => l_component_code
56876       ,p_accounting_line_type_code  => l_component_type_code
56877       ,p_accounting_line_appl_id    => l_component_appl_id
56878       ,p_amb_context_code           => l_amb_context_code
56879       ,p_entity_code                => l_entity_code
56880       ,p_event_class_code           => l_event_class_code);
56881    --
56882    -- set accounting class
56883    --
56884    xla_ae_lines_pkg.SetAcctClass(
56885            p_accounting_class_code  => 'ROUNDING'
56886          , p_ae_header_id           => l_ae_header_id
56887          );
56888 
56889    --
56890    -- set rounding class
56891    --
56892    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56893                       'ROUNDING';
56894 
56895    --
56896    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56897    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56898    --
56899    -- bulk performance
56900    --
56901    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56902 
56903    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56904       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56905 
56906    -- 4955764
56907    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56908       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56909 
56910    -- 4458381 Public Sector Enh
56911    
56912    --
56913    -- set accounting attributes for the line type
56914    --
56915    l_entered_amt_idx := 10;
56916    l_accted_amt_idx  := 15;
56917    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
56918    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56919    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
56920    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
56921    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
56922    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
56923    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
56924    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56925    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
56926    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
56927    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
56928    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
56929    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
56930    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56931    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
56932    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
56933    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
56934    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
56935    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
56936    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
56937    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
56938    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
56939    l_rec_acct_attrs.array_char_value(11)  := p_source_72;
56940    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
56944    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
56941    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
56942    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
56943    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
56945    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
56946    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
56947    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
56948    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
56949    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
56950    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
56951    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
56952    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
56953    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
56954    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
56955    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
56956    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
56957    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
56958    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
56959    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
56960    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
56961    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
56962    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
56963    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
56964    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
56965    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
56966 
56967    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56968    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56969 
56970    ---------------------------------------------------------------------------------------------------------------
56971    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56972    ---------------------------------------------------------------------------------------------------------------
56973    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56974 
56975    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56976    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56977 
56978    IF xla_accounting_cache_pkg.GetValueChar
56979          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56980          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56981    AND l_bflow_method_code = 'PRIOR_ENTRY'
56982 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56983    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56984          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56985        )
56986    THEN
56987          xla_ae_lines_pkg.BflowUpgEntry
56988            (p_business_method_code    => l_bflow_method_code
56989            ,p_business_class_code     => l_bflow_class_code
56990            ,p_balance_type            => l_balance_type_code);
56991    ELSE
56992       NULL;
56993 -- No business flow processing for business flow method of NONE.
56994    END IF;
56995 
56996    --
56997    -- call analytical criteria
56998    --
56999    
57000    --
57001    -- call description
57002    --
57003    -- No description or it is inherited.
57004    --
57005    -- call ADRs
57006    -- Bug 4922099
57007    --
57008    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57009         (NVL(l_actual_upg_option, 'N') = 'O') OR
57010         (NVL(l_enc_upg_option, 'N') = 'O')
57011       )
57012    THEN
57013    NULL;
57014    --
57015    --
57016    
57017   l_ccid := AcctDerRule_43(
57018            p_application_id           => p_application_id
57019          , p_ae_header_id             => l_ae_header_id 
57020 , p_source_10 => p_source_10
57021 , p_source_10_meaning => p_source_10_meaning
57022 , p_source_25 => p_source_25
57023 , p_source_45 => p_source_45
57024          , x_transaction_coa_id       => l_adr_transaction_coa_id
57025          , x_accounting_coa_id        => l_adr_accounting_coa_id
57026          , x_value_type_code          => l_adr_value_type_code
57027          , p_side                     => 'NA'
57028    );
57029 
57030    xla_ae_lines_pkg.set_ccid(
57031     p_code_combination_id          => l_ccid
57032   , p_value_type_code              => l_adr_value_type_code
57033   , p_transaction_coa_id           => l_adr_transaction_coa_id
57034   , p_accounting_coa_id            => l_adr_accounting_coa_id
57035   , p_adr_code                     => 'AP_ROUNDING'
57036   , p_adr_type_code                => 'S'
57037   , p_component_type               => l_component_type
57038   , p_component_code               => l_component_code
57039   , p_component_type_code          => l_component_type_code
57040   , p_component_appl_id            => l_component_appl_id
57041   , p_amb_context_code             => l_amb_context_code
57042   , p_side                         => 'NA'
57043   );
57044 
57045 
57046    --
57047    --
57048    END IF;
57049    --
57050    -- Bug 4922099
57051    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57052           (NVL(l_enc_upg_option, 'N') = 'O')
57056    THEN
57053         ) AND
57054         (l_bflow_method_code = 'PRIOR_ENTRY')
57055       )
57057       IF
57058       --
57059       1 = 2
57060       --
57061       THEN
57062       xla_accounting_err_pkg.build_message
57063                                     (p_appli_s_name            => 'XLA'
57064                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57065                                     ,p_token_1                 => 'LINE_NUMBER'
57066                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57067                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57068                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57069                                                                              l_component_type
57070                                                                             ,l_component_code
57071                                                                             ,l_component_type_code
57072                                                                             ,l_component_appl_id
57073                                                                             ,l_amb_context_code
57074                                                                             ,l_entity_code
57075                                                                             ,l_event_class_code
57076                                                                            )
57077                                     ,p_token_3                 => 'OWNER'
57078                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57079                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57080                                                                           ,p_lookup_code    => l_component_type_code
57081                                                                          )
57082                                     ,p_token_4                 => 'PRODUCT_NAME'
57083                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57084                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57085                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57086                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57087                                     ,p_ae_header_id            =>  NULL
57088                                        );
57089 
57090         IF (C_LEVEL_ERROR>= g_log_level) THEN
57091                  trace
57092                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57093                       ,p_level    => C_LEVEL_ERROR
57094                       ,p_module   => l_log_module);
57095         END IF;
57096       END IF;
57097    END IF;
57098    --
57099    --
57100    ------------------------------------------------------------------------------------------------
57101    -- 4219869 Business Flow
57102    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57103    -- Prior Entry.  Currently, the following code is always generated.
57104    ------------------------------------------------------------------------------------------------
57105    XLA_AE_LINES_PKG.ValidateCurrentLine;
57106 
57107    ------------------------------------------------------------------------------------
57108    -- 4219869 Business Flow
57109    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57110    ------------------------------------------------------------------------------------
57111    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57112 
57113    ----------------------------------------------------------------------------------
57114    -- 4219869 Business Flow
57115    -- Update journal entry status -- Need to generate this within IF <condition>
57116    ----------------------------------------------------------------------------------
57117    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57118          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57119          ,p_balance_type_code => l_balance_type_code
57120          );
57121 
57122    -------------------------------------------------------------------------------------------
57123    -- 4262811 - Generate the Accrual Reversal lines
57124    -------------------------------------------------------------------------------------------
57125    BEGIN
57126       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57127                               (g_array_event(p_event_id).array_value_num('header_index'));
57128       IF l_acc_rev_flag IS NULL THEN
57129          l_acc_rev_flag := 'N';
57130       END IF;
57131    EXCEPTION
57132       WHEN OTHERS THEN
57133          l_acc_rev_flag := 'N';
57134    END;
57135    --
57136    IF (l_acc_rev_flag = 'Y') THEN
57137 
57138        -- 4645092  ------------------------------------------------------------------------------
57139        -- To allow MPA report to determine if it should generate report process
57140        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57141        ------------------------------------------------------------------------------------------
57142 
57143        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57144        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57148    --
57145    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57146    -- call ADRs
57147    -- Bug 4922099
57149    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57150         (NVL(l_actual_upg_option, 'N') = 'O') OR
57151         (NVL(l_enc_upg_option, 'N') = 'O')
57152       )
57153    THEN
57154    NULL;
57155    --
57156    --
57157    
57158   l_ccid := AcctDerRule_43(
57159            p_application_id           => p_application_id
57160          , p_ae_header_id             => l_ae_header_id 
57161 , p_source_10 => p_source_10
57162 , p_source_10_meaning => p_source_10_meaning
57163 , p_source_25 => p_source_25
57164 , p_source_45 => p_source_45
57165          , x_transaction_coa_id       => l_adr_transaction_coa_id
57166          , x_accounting_coa_id        => l_adr_accounting_coa_id
57167          , x_value_type_code          => l_adr_value_type_code
57168          , p_side                     => 'NA'
57169    );
57170 
57171    xla_ae_lines_pkg.set_ccid(
57172     p_code_combination_id          => l_ccid
57173   , p_value_type_code              => l_adr_value_type_code
57174   , p_transaction_coa_id           => l_adr_transaction_coa_id
57175   , p_accounting_coa_id            => l_adr_accounting_coa_id
57176   , p_adr_code                     => 'AP_ROUNDING'
57177   , p_adr_type_code                => 'S'
57178   , p_component_type               => l_component_type
57179   , p_component_code               => l_component_code
57180   , p_component_type_code          => l_component_type_code
57181   , p_component_appl_id            => l_component_appl_id
57182   , p_amb_context_code             => l_amb_context_code
57183   , p_side                         => 'NA'
57184   );
57185 
57186 
57187    --
57188    --
57189    END IF;
57190 
57191        --
57192        -- Update the line information that should be overwritten
57193        --
57194        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57195                                          p_header_num   => 1);
57196        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57197 
57198        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57199 
57200        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57201           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57202        END IF;
57203 
57204       --
57205       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57206       --
57207       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57208           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57209       ELSE
57210           ---------------------------------------------------------------------------------------------------
57211           -- 4262811a Switch Sign
57212           ---------------------------------------------------------------------------------------------------
57213           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57214           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57215                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57216           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57217                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57218           -- 5132302
57219           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57220                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57221 
57222       END IF;
57223 
57224       -- 4955764
57225       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57226       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57227 
57228 
57229       XLA_AE_LINES_PKG.ValidateCurrentLine;
57230       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57231 
57232       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57233                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57234                ,p_balance_type_code => l_balance_type_code);
57235 
57236    END IF;
57237 
57238    -----------------------------------------------------------------------------------------
57239    -- 4262811 Multiperiod Accounting
57240    -----------------------------------------------------------------------------------------
57241      -- No MPA option is assigned.
57242 
57243 
57244 END IF;
57245 END IF;
57246 --
57247 
57248 --
57249 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57250    trace
57251       (p_msg      => 'END of AcctLineType_122'
57252       ,p_level    => C_LEVEL_PROCEDURE
57253       ,p_module   => l_log_module);
57254 END IF;
57255 --
57256 EXCEPTION
57257   WHEN xla_exceptions_pkg.application_exception THEN
57258       RAISE;
57259   WHEN OTHERS THEN
57260        xla_exceptions_pkg.raise_message
57261            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_122');
57262 END AcctLineType_122;
57263 --
57264 
57265 ---------------------------------------
57266 --
57267 -- PRIVATE FUNCTION
57271 PROCEDURE AcctLineType_123 (
57268 --         AcctLineType_123
57269 --
57270 ---------------------------------------
57272   p_application_id        IN NUMBER
57273  ,p_event_id              IN NUMBER
57274  ,p_calculate_acctd_flag  IN VARCHAR2
57275  ,p_calculate_g_l_flag    IN VARCHAR2
57276  ,p_actual_flag           IN OUT VARCHAR2
57277  ,p_balance_type_code     OUT VARCHAR2
57278  ,p_gain_or_loss_ref      OUT VARCHAR2
57279  
57280 --Automatic Offsets Value
57281  , p_source_10            IN VARCHAR2
57282  , p_source_10_meaning    IN VARCHAR2
57283 --Invoice Distribution Account
57284  , p_source_25            IN NUMBER
57285 --Payables Options Rounding Account
57286  , p_source_45            IN NUMBER
57287 --When to Account for Payment Option
57288  , p_source_57            IN VARCHAR2
57289 --Accounting Reversal Indicator
57290  , p_source_58            IN VARCHAR2
57291 --Distribution Link Type
57292  , p_source_60            IN VARCHAR2
57293 --Invoice Currency Code
57294  , p_source_72            IN VARCHAR2
57295 --Override Accounted Amount Indicator
57296  , p_source_85            IN VARCHAR2
57297  , p_source_85_meaning    IN VARCHAR2
57298 --Third Party Type
57299  , p_source_88            IN VARCHAR2
57300 --Invoice Distribution Tax Line Identifier
57301  , p_source_91            IN NUMBER
57302 --Invoice Distribution Tax Distribution Identifier from Tax
57303  , p_source_92            IN NUMBER
57304 --Invoice Distribution Summary Tax Line Identifier
57305  , p_source_93            IN NUMBER
57306 --Business Flow Accounts Payable Application Identifier
57307  , p_source_96            IN NUMBER
57308 --Business Flow Invoice Distribution Type
57309  , p_source_97            IN VARCHAR2
57310 --Business Flow Invoice Entity Code
57311  , p_source_98            IN VARCHAR2
57312 --Business Flow Invoice Distribution Identifier
57313  , p_source_99            IN NUMBER
57314 --Business Flow Invoice Identifier
57315  , p_source_100            IN NUMBER
57316 --Payment Distribution Type
57317  , p_source_101            IN VARCHAR2
57318  , p_source_101_meaning    IN VARCHAR2
57319 --Payment Distribution Amount
57320  , p_source_102            IN NUMBER
57321 --Payment Distribution Identifier
57322  , p_source_107            IN NUMBER
57323 --Payment Supplier Identifier
57324  , p_source_113            IN NUMBER
57325 --Payment Supplier Site Identifier
57326  , p_source_114            IN NUMBER
57327 --Payment Distribution Reversed Identifier
57328  , p_source_115            IN NUMBER
57329 --Payment Distribution (Invoice Rate) Ledger Amount
57330  , p_source_119            IN NUMBER
57331 --Payment Type
57332  , p_source_125            IN VARCHAR2
57333  , p_source_125_meaning    IN VARCHAR2
57334 --Invoice Exchange Date
57335  , p_source_146            IN DATE
57336 --Invoice Exchange Rate
57337  , p_source_147            IN NUMBER
57338 --Invoice Exchange Rate Type
57339  , p_source_148            IN VARCHAR2
57340 )
57341 IS
57342 
57343 l_component_type              VARCHAR2(80);
57344 l_component_code              VARCHAR2(30);
57345 l_component_type_code         VARCHAR2(1);
57346 l_component_appl_id           INTEGER;
57347 l_amb_context_code            VARCHAR2(30);
57348 l_entity_code                 VARCHAR2(30);
57349 l_event_class_code            VARCHAR2(30);
57350 l_ae_header_id                NUMBER;
57351 l_event_type_code             VARCHAR2(30);
57352 l_line_definition_code        VARCHAR2(30);
57353 l_line_definition_owner_code  VARCHAR2(1);
57354 --
57355 -- adr variables
57356 l_segment                     VARCHAR2(30);
57357 l_ccid                        NUMBER;
57358 l_adr_transaction_coa_id      NUMBER;
57359 l_adr_accounting_coa_id       NUMBER;
57360 l_adr_flexfield_segment_code  VARCHAR2(30);
57361 l_adr_flex_value_set_id       NUMBER;
57362 l_adr_value_type_code         VARCHAR2(30);
57363 l_adr_value_combination_id    NUMBER;
57364 l_adr_value_segment_code      VARCHAR2(30);
57365 
57366 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57367 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57368 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57369 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57370 
57371 -- 4262811 Variables ------------------------------------------------------------------------------------------
57372 l_entered_amt_idx             NUMBER;
57373 l_accted_amt_idx              NUMBER;
57374 l_acc_rev_flag                VARCHAR2(1);
57375 l_accrual_line_num            NUMBER;
57376 l_tmp_amt                     NUMBER;
57377 l_acc_rev_natural_side_code   VARCHAR2(1);
57378 
57379 l_num_entries                 NUMBER;
57380 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57381 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57382 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57383 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57384 l_recog_line_1                NUMBER;
57385 l_recog_line_2                NUMBER;
57386 
57387 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57388 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57389 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57390 
57391 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57392 
57393 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57397 
57394 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57395 
57396 ---------------------------------------------------------------------------------------------------------------
57398 
57399 --
57400 -- bulk performance
57401 --
57402 l_balance_type_code           VARCHAR2(1);
57403 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57404 l_log_module                  VARCHAR2(240);
57405 
57406 --
57407 -- Upgrade strategy
57408 --
57409 l_actual_upg_option           VARCHAR2(1);
57410 l_enc_upg_option           VARCHAR2(1);
57411 
57412 --
57413 BEGIN
57414 --
57415 IF g_log_enabled THEN
57416       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
57417 END IF;
57418 --
57419 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57420 
57421       trace
57422          (p_msg      => 'BEGIN of AcctLineType_123'
57423          ,p_level    => C_LEVEL_PROCEDURE
57424          ,p_module   => l_log_module);
57425 
57426 END IF;
57427 --
57428 l_component_type             := 'AMB_JLT';
57429 l_component_code             := 'AP_FINAL_PMT_ROUNDING_REF';
57430 l_component_type_code        := 'S';
57431 l_component_appl_id          :=  200;
57432 l_amb_context_code           := 'DEFAULT';
57433 l_entity_code                := 'AP_PAYMENTS';
57434 l_event_class_code           := 'REFUNDS';
57435 l_event_type_code            := 'REFUNDS_ALL';
57436 l_line_definition_owner_code := 'S';
57437 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
57438 --
57439 l_balance_type_code          := 'A';
57440 l_segment                     := NULL;
57441 l_ccid                        := NULL;
57442 l_adr_transaction_coa_id      := NULL;
57443 l_adr_accounting_coa_id       := NULL;
57444 l_adr_flexfield_segment_code  := NULL;
57445 l_adr_flex_value_set_id       := NULL;
57446 l_adr_value_type_code         := NULL;
57447 l_adr_value_combination_id    := NULL;
57448 l_adr_value_segment_code      := NULL;
57449 
57450 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57451 l_bflow_class_code           := '';    -- 4219869 Business Flow
57452 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57453 l_budgetary_control_flag     := 'N';
57454 
57455 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57456 l_bflow_applied_to_amt       := NULL; -- 5132302
57457 l_entered_amt_idx            := NULL;          -- 4262811
57458 l_accted_amt_idx             := NULL;          -- 4262811
57459 l_acc_rev_flag               := NULL;          -- 4262811
57460 l_accrual_line_num           := NULL;          -- 4262811
57461 l_tmp_amt                    := NULL;          -- 4262811
57462 --
57463  
57464 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57465     l_balance_type_code <> 'B' THEN
57466 IF NVL(p_source_57,'
57467 ') <>  'CLEAR_CLEAR' AND 
57468 NVL(p_source_101,'
57469 ') =  'FINAL PAYMENT ROUNDING' AND 
57470 NVL(p_source_125,'
57471 ') =  'R'
57472  THEN 
57473 
57474    --
57475    XLA_AE_LINES_PKG.SetNewLine;
57476 
57477    p_balance_type_code          := l_balance_type_code;
57478    -- set the flag so later we will know whether the gain loss line needs to be created
57479    
57480    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57481      p_actual_flag :='A';
57482    END IF;
57483 
57484    --
57485    -- bulk performance
57486    --
57487    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57488                                       p_header_num   => 0); -- 4262811
57489    --
57490    -- set accounting line options
57491    --
57492    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57493            p_natural_side_code          => 'D'
57494          , p_gain_or_loss_flag          => 'N'
57495          , p_gl_transfer_mode_code      => 'S'
57496          , p_acct_entry_type_code       => 'A'
57497          , p_switch_side_flag           => 'Y'
57498          , p_merge_duplicate_code       => 'A'
57499          );
57500    --
57501    l_acc_rev_natural_side_code := 'C';  -- 4262811
57502    -- 
57503    --
57504    -- set accounting line type info
57505    --
57506    xla_ae_lines_pkg.SetAcctLineType
57507       (p_component_type             => l_component_type
57508       ,p_event_type_code            => l_event_type_code
57509       ,p_line_definition_owner_code => l_line_definition_owner_code
57510       ,p_line_definition_code       => l_line_definition_code
57511       ,p_accounting_line_code       => l_component_code
57512       ,p_accounting_line_type_code  => l_component_type_code
57513       ,p_accounting_line_appl_id    => l_component_appl_id
57514       ,p_amb_context_code           => l_amb_context_code
57515       ,p_entity_code                => l_entity_code
57516       ,p_event_class_code           => l_event_class_code);
57517    --
57518    -- set accounting class
57519    --
57520    xla_ae_lines_pkg.SetAcctClass(
57521            p_accounting_class_code  => 'ROUNDING'
57522          , p_ae_header_id           => l_ae_header_id
57523          );
57524 
57525    --
57526    -- set rounding class
57527    --
57528    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57529                       'ROUNDING';
57530 
57531    --
57532    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57536    --
57533    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57534    --
57535    -- bulk performance
57537    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57538 
57539    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57540       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57541 
57542    -- 4955764
57543    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57544       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57545 
57546    -- 4458381 Public Sector Enh
57547    
57548    --
57549    -- set accounting attributes for the line type
57550    --
57551    l_entered_amt_idx := 9;
57552    l_accted_amt_idx  := 14;
57553    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57554    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57555    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
57556    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
57557    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
57558    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57559    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
57560    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
57561    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
57562    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
57563    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
57564    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57565    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
57566    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
57567    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
57568    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
57569    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
57570    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
57571    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
57572    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
57573    l_rec_acct_attrs.array_char_value(10)  := p_source_72;
57574    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
57575    l_rec_acct_attrs.array_date_value(11)  := p_source_146;
57576    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
57577    l_rec_acct_attrs.array_num_value(12)  := p_source_147;
57578    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
57579    l_rec_acct_attrs.array_char_value(13)  := p_source_148;
57580    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
57581    l_rec_acct_attrs.array_num_value(14)  := p_source_119;
57582    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
57583    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
57584    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
57585    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
57586    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
57587    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
57588    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
57589    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
57590    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
57591    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
57592    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
57593    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
57594    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
57595    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
57596    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
57597    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
57598    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
57599    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
57600 
57601    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57602    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57603 
57604    ---------------------------------------------------------------------------------------------------------------
57605    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57606    ---------------------------------------------------------------------------------------------------------------
57607    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57608 
57609    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57610    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57611 
57612    IF xla_accounting_cache_pkg.GetValueChar
57613          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57614          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57615    AND l_bflow_method_code = 'PRIOR_ENTRY'
57616 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57617    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57618          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57619        )
57620    THEN
57621          xla_ae_lines_pkg.BflowUpgEntry
57622            (p_business_method_code    => l_bflow_method_code
57626       NULL;
57623            ,p_business_class_code     => l_bflow_class_code
57624            ,p_balance_type            => l_balance_type_code);
57625    ELSE
57627 -- No business flow processing for business flow method of NONE.
57628    END IF;
57629 
57630    --
57631    -- call analytical criteria
57632    --
57633    
57634    --
57635    -- call description
57636    --
57637    -- No description or it is inherited.
57638    --
57639    -- call ADRs
57640    -- Bug 4922099
57641    --
57642    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57643         (NVL(l_actual_upg_option, 'N') = 'O') OR
57644         (NVL(l_enc_upg_option, 'N') = 'O')
57645       )
57646    THEN
57647    NULL;
57648    --
57649    --
57650    
57651   l_ccid := AcctDerRule_43(
57652            p_application_id           => p_application_id
57653          , p_ae_header_id             => l_ae_header_id 
57654 , p_source_10 => p_source_10
57655 , p_source_10_meaning => p_source_10_meaning
57656 , p_source_25 => p_source_25
57657 , p_source_45 => p_source_45
57658          , x_transaction_coa_id       => l_adr_transaction_coa_id
57659          , x_accounting_coa_id        => l_adr_accounting_coa_id
57660          , x_value_type_code          => l_adr_value_type_code
57661          , p_side                     => 'NA'
57662    );
57663 
57664    xla_ae_lines_pkg.set_ccid(
57665     p_code_combination_id          => l_ccid
57666   , p_value_type_code              => l_adr_value_type_code
57667   , p_transaction_coa_id           => l_adr_transaction_coa_id
57668   , p_accounting_coa_id            => l_adr_accounting_coa_id
57669   , p_adr_code                     => 'AP_ROUNDING'
57670   , p_adr_type_code                => 'S'
57671   , p_component_type               => l_component_type
57672   , p_component_code               => l_component_code
57673   , p_component_type_code          => l_component_type_code
57674   , p_component_appl_id            => l_component_appl_id
57675   , p_amb_context_code             => l_amb_context_code
57676   , p_side                         => 'NA'
57677   );
57678 
57679 
57680    --
57681    --
57682    END IF;
57683    --
57684    -- Bug 4922099
57685    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57686           (NVL(l_enc_upg_option, 'N') = 'O')
57687         ) AND
57688         (l_bflow_method_code = 'PRIOR_ENTRY')
57689       )
57690    THEN
57691       IF
57692       --
57693       1 = 2
57694       --
57695       THEN
57696       xla_accounting_err_pkg.build_message
57697                                     (p_appli_s_name            => 'XLA'
57698                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57699                                     ,p_token_1                 => 'LINE_NUMBER'
57700                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57701                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57702                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57703                                                                              l_component_type
57704                                                                             ,l_component_code
57705                                                                             ,l_component_type_code
57706                                                                             ,l_component_appl_id
57707                                                                             ,l_amb_context_code
57708                                                                             ,l_entity_code
57709                                                                             ,l_event_class_code
57710                                                                            )
57711                                     ,p_token_3                 => 'OWNER'
57712                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57713                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57714                                                                           ,p_lookup_code    => l_component_type_code
57715                                                                          )
57716                                     ,p_token_4                 => 'PRODUCT_NAME'
57717                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57718                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57719                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57720                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57721                                     ,p_ae_header_id            =>  NULL
57722                                        );
57723 
57724         IF (C_LEVEL_ERROR>= g_log_level) THEN
57725                  trace
57726                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57727                       ,p_level    => C_LEVEL_ERROR
57728                       ,p_module   => l_log_module);
57729         END IF;
57730       END IF;
57731    END IF;
57732    --
57733    --
57737    -- Prior Entry.  Currently, the following code is always generated.
57734    ------------------------------------------------------------------------------------------------
57735    -- 4219869 Business Flow
57736    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57738    ------------------------------------------------------------------------------------------------
57739    XLA_AE_LINES_PKG.ValidateCurrentLine;
57740 
57741    ------------------------------------------------------------------------------------
57742    -- 4219869 Business Flow
57743    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57744    ------------------------------------------------------------------------------------
57745    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57746 
57747    ----------------------------------------------------------------------------------
57748    -- 4219869 Business Flow
57749    -- Update journal entry status -- Need to generate this within IF <condition>
57750    ----------------------------------------------------------------------------------
57751    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57752          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57753          ,p_balance_type_code => l_balance_type_code
57754          );
57755 
57756    -------------------------------------------------------------------------------------------
57757    -- 4262811 - Generate the Accrual Reversal lines
57758    -------------------------------------------------------------------------------------------
57759    BEGIN
57760       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57761                               (g_array_event(p_event_id).array_value_num('header_index'));
57762       IF l_acc_rev_flag IS NULL THEN
57763          l_acc_rev_flag := 'N';
57764       END IF;
57765    EXCEPTION
57766       WHEN OTHERS THEN
57767          l_acc_rev_flag := 'N';
57768    END;
57769    --
57770    IF (l_acc_rev_flag = 'Y') THEN
57771 
57772        -- 4645092  ------------------------------------------------------------------------------
57773        -- To allow MPA report to determine if it should generate report process
57774        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57775        ------------------------------------------------------------------------------------------
57776 
57777        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57778        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57779    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57780    -- call ADRs
57781    -- Bug 4922099
57782    --
57783    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57784         (NVL(l_actual_upg_option, 'N') = 'O') OR
57785         (NVL(l_enc_upg_option, 'N') = 'O')
57786       )
57787    THEN
57788    NULL;
57789    --
57790    --
57791    
57792   l_ccid := AcctDerRule_43(
57793            p_application_id           => p_application_id
57794          , p_ae_header_id             => l_ae_header_id 
57795 , p_source_10 => p_source_10
57796 , p_source_10_meaning => p_source_10_meaning
57797 , p_source_25 => p_source_25
57798 , p_source_45 => p_source_45
57799          , x_transaction_coa_id       => l_adr_transaction_coa_id
57800          , x_accounting_coa_id        => l_adr_accounting_coa_id
57801          , x_value_type_code          => l_adr_value_type_code
57802          , p_side                     => 'NA'
57803    );
57804 
57805    xla_ae_lines_pkg.set_ccid(
57806     p_code_combination_id          => l_ccid
57807   , p_value_type_code              => l_adr_value_type_code
57808   , p_transaction_coa_id           => l_adr_transaction_coa_id
57809   , p_accounting_coa_id            => l_adr_accounting_coa_id
57810   , p_adr_code                     => 'AP_ROUNDING'
57811   , p_adr_type_code                => 'S'
57812   , p_component_type               => l_component_type
57813   , p_component_code               => l_component_code
57814   , p_component_type_code          => l_component_type_code
57815   , p_component_appl_id            => l_component_appl_id
57816   , p_amb_context_code             => l_amb_context_code
57817   , p_side                         => 'NA'
57818   );
57819 
57820 
57821    --
57822    --
57823    END IF;
57824 
57825        --
57826        -- Update the line information that should be overwritten
57827        --
57828        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57829                                          p_header_num   => 1);
57830        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57831 
57832        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57833 
57834        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57835           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57836        END IF;
57837 
57838       --
57839       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57840       --
57841       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57842           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57843       ELSE
57844           ---------------------------------------------------------------------------------------------------
57845           -- 4262811a Switch Sign
57849                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57846           ---------------------------------------------------------------------------------------------------
57847           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57848           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57850           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57851                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57852           -- 5132302
57853           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57854                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57855 
57856       END IF;
57857 
57858       -- 4955764
57859       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57860       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57861 
57862 
57863       XLA_AE_LINES_PKG.ValidateCurrentLine;
57864       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57865 
57866       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57867                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57868                ,p_balance_type_code => l_balance_type_code);
57869 
57870    END IF;
57871 
57872    -----------------------------------------------------------------------------------------
57873    -- 4262811 Multiperiod Accounting
57874    -----------------------------------------------------------------------------------------
57875      -- No MPA option is assigned.
57876 
57877 
57878 END IF;
57879 END IF;
57880 --
57881 
57882 --
57883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57884    trace
57885       (p_msg      => 'END of AcctLineType_123'
57886       ,p_level    => C_LEVEL_PROCEDURE
57887       ,p_module   => l_log_module);
57888 END IF;
57889 --
57890 EXCEPTION
57891   WHEN xla_exceptions_pkg.application_exception THEN
57892       RAISE;
57893   WHEN OTHERS THEN
57894        xla_exceptions_pkg.raise_message
57895            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_123');
57896 END AcctLineType_123;
57897 --
57898 
57899 ---------------------------------------
57900 --
57901 -- PRIVATE FUNCTION
57902 --         AcctLineType_124
57903 --
57904 ---------------------------------------
57905 PROCEDURE AcctLineType_124 (
57906   p_application_id        IN NUMBER
57907  ,p_event_id              IN NUMBER
57908  ,p_calculate_acctd_flag  IN VARCHAR2
57909  ,p_calculate_g_l_flag    IN VARCHAR2
57910  ,p_actual_flag           IN OUT VARCHAR2
57911  ,p_balance_type_code     OUT VARCHAR2
57912  ,p_gain_or_loss_ref      OUT VARCHAR2
57913  
57914 --Automatic Offsets Value
57915  , p_source_10            IN VARCHAR2
57916  , p_source_10_meaning    IN VARCHAR2
57917 --Invoice Distribution Account
57918  , p_source_25            IN NUMBER
57919 --Payables Options Rounding Account
57920  , p_source_45            IN NUMBER
57921 --Accounting Reversal Indicator
57922  , p_source_58            IN VARCHAR2
57923 --Distribution Link Type
57924  , p_source_60            IN VARCHAR2
57925 --Invoice Identifier
57926  , p_source_63            IN NUMBER
57927 --Payables Encumbrance Upgrade Credit Account
57928  , p_source_70            IN NUMBER
57929 --Payables Encumbrance Upgrade Credit Amount
57930  , p_source_71            IN NUMBER
57931 --Invoice Currency Code
57932  , p_source_72            IN VARCHAR2
57933 --Payables Encumbrance Upgrade Credit Base Amount
57934  , p_source_73            IN NUMBER
57935 --Payables Encumbrance Upgrade Debit Account
57936  , p_source_74            IN NUMBER
57937 --Payables Encumbrance Upgrade Debit Amount
57938  , p_source_75            IN NUMBER
57939 --Payables Encumbrance Upgrade Debit Base Amount
57940  , p_source_76            IN NUMBER
57941 --Payables Encumbrance Upgrade Option
57942  , p_source_77            IN VARCHAR2
57943 --Deferred Accounting End Date
57944  , p_source_82            IN DATE
57945 --Deferred Accounting Option
57946  , p_source_83            IN VARCHAR2
57947 --Deferred Accounting Start Date
57948  , p_source_84            IN DATE
57949 --Override Accounted Amount Indicator
57950  , p_source_85            IN VARCHAR2
57951  , p_source_85_meaning    IN VARCHAR2
57952 --Invoice Supplier Identifier
57953  , p_source_86            IN NUMBER
57954 --Invoice Supplier Site Identifier
57955  , p_source_87            IN NUMBER
57956 --Third Party Type
57957  , p_source_88            IN VARCHAR2
57958 --Invoice Distribution Tax Line Identifier
57959  , p_source_91            IN NUMBER
57960 --Invoice Distribution Tax Distribution Identifier from Tax
57961  , p_source_92            IN NUMBER
57962 --Invoice Distribution Summary Tax Line Identifier
57963  , p_source_93            IN NUMBER
57964 --Payables Upgrade Credit Encumbrance Type Identifier
57965  , p_source_94            IN NUMBER
57966 --Payables Upgrade Debit Encumbrance Type Identifier
57967  , p_source_95            IN NUMBER
57968 --Business Flow Accounts Payable Application Identifier
57969  , p_source_96            IN NUMBER
57970 --Prepayment Distribution Type
57971  , p_source_128            IN VARCHAR2
57972 --Prepayment Application Distribution Identifier
57976 --Upgrade Encumbrance Debit Account Class
57973  , p_source_130            IN NUMBER
57974 --Upgrade Encumbrance Credit Account Class
57975  , p_source_135            IN VARCHAR2
57977  , p_source_136            IN VARCHAR2
57978 --Prepayment Distribution Amount
57979  , p_source_137            IN NUMBER
57980 --Identifier of the Prepayment Application Reversed
57981  , p_source_139            IN NUMBER
57982 --Invoice Exchange Date
57983  , p_source_146            IN DATE
57984 --Invoice Exchange Rate
57985  , p_source_147            IN NUMBER
57986 --Invoice Exchange Rate Type
57987  , p_source_148            IN VARCHAR2
57988 --Business Flow Prepayment Invoice Distribution Type
57989  , p_source_149            IN VARCHAR2
57990 --Business Flow Prepayment Invoice Entity Code
57991  , p_source_150            IN VARCHAR2
57992 --Business Flow Prepayment Invoice Distribution Identifier
57993  , p_source_151            IN NUMBER
57994 --Business Flow Prepayment Invoice Identifier
57995  , p_source_152            IN NUMBER
57996 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
57997  , p_source_153            IN NUMBER
57998 )
57999 IS
58000 
58001 l_component_type              VARCHAR2(80);
58002 l_component_code              VARCHAR2(30);
58003 l_component_type_code         VARCHAR2(1);
58004 l_component_appl_id           INTEGER;
58005 l_amb_context_code            VARCHAR2(30);
58006 l_entity_code                 VARCHAR2(30);
58007 l_event_class_code            VARCHAR2(30);
58008 l_ae_header_id                NUMBER;
58009 l_event_type_code             VARCHAR2(30);
58010 l_line_definition_code        VARCHAR2(30);
58011 l_line_definition_owner_code  VARCHAR2(1);
58012 --
58013 -- adr variables
58014 l_segment                     VARCHAR2(30);
58015 l_ccid                        NUMBER;
58016 l_adr_transaction_coa_id      NUMBER;
58017 l_adr_accounting_coa_id       NUMBER;
58018 l_adr_flexfield_segment_code  VARCHAR2(30);
58019 l_adr_flex_value_set_id       NUMBER;
58020 l_adr_value_type_code         VARCHAR2(30);
58021 l_adr_value_combination_id    NUMBER;
58022 l_adr_value_segment_code      VARCHAR2(30);
58023 
58024 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58025 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58026 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58027 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58028 
58029 -- 4262811 Variables ------------------------------------------------------------------------------------------
58030 l_entered_amt_idx             NUMBER;
58031 l_accted_amt_idx              NUMBER;
58032 l_acc_rev_flag                VARCHAR2(1);
58033 l_accrual_line_num            NUMBER;
58034 l_tmp_amt                     NUMBER;
58035 l_acc_rev_natural_side_code   VARCHAR2(1);
58036 
58037 l_num_entries                 NUMBER;
58038 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58039 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58040 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58041 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58042 l_recog_line_1                NUMBER;
58043 l_recog_line_2                NUMBER;
58044 
58045 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58046 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58047 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58048 
58049 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58050 
58051 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58052 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58053 
58054 ---------------------------------------------------------------------------------------------------------------
58055 
58056 
58057 --
58058 -- bulk performance
58059 --
58060 l_balance_type_code           VARCHAR2(1);
58061 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58062 l_log_module                  VARCHAR2(240);
58063 
58064 --
58065 -- Upgrade strategy
58066 --
58067 l_actual_upg_option           VARCHAR2(1);
58068 l_enc_upg_option           VARCHAR2(1);
58069 
58070 --
58071 BEGIN
58072 --
58073 IF g_log_enabled THEN
58074       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
58075 END IF;
58076 --
58077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58078 
58079       trace
58080          (p_msg      => 'BEGIN of AcctLineType_124'
58081          ,p_level    => C_LEVEL_PROCEDURE
58082          ,p_module   => l_log_module);
58083 
58084 END IF;
58085 --
58086 l_component_type             := 'AMB_JLT';
58087 l_component_code             := 'AP_FINAL_PMT_ROUND_PREPAY_APP';
58088 l_component_type_code        := 'S';
58089 l_component_appl_id          :=  200;
58090 l_amb_context_code           := 'DEFAULT';
58091 l_entity_code                := 'AP_INVOICES';
58092 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
58093 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
58094 l_line_definition_owner_code := 'S';
58095 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
58096 --
58097 l_balance_type_code          := 'A';
58098 l_segment                     := NULL;
58099 l_ccid                        := NULL;
58100 l_adr_transaction_coa_id      := NULL;
58101 l_adr_accounting_coa_id       := NULL;
58102 l_adr_flexfield_segment_code  := NULL;
58106 l_adr_value_segment_code      := NULL;
58103 l_adr_flex_value_set_id       := NULL;
58104 l_adr_value_type_code         := NULL;
58105 l_adr_value_combination_id    := NULL;
58107 
58108 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58109 l_bflow_class_code           := '';    -- 4219869 Business Flow
58110 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58111 l_budgetary_control_flag     := 'N';
58112 
58113 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58114 l_bflow_applied_to_amt       := NULL; -- 5132302
58115 l_entered_amt_idx            := NULL;          -- 4262811
58116 l_accted_amt_idx             := NULL;          -- 4262811
58117 l_acc_rev_flag               := NULL;          -- 4262811
58118 l_accrual_line_num           := NULL;          -- 4262811
58119 l_tmp_amt                    := NULL;          -- 4262811
58120 --
58121  
58122 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58123     l_balance_type_code <> 'B' THEN
58124 IF NVL(p_source_128,'
58125 ') =  'FINAL PAYMENT ROUNDING'
58126  THEN 
58127 
58128    --
58129    XLA_AE_LINES_PKG.SetNewLine;
58130 
58131    p_balance_type_code          := l_balance_type_code;
58132    -- set the flag so later we will know whether the gain loss line needs to be created
58133    
58134    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58135      p_actual_flag :='A';
58136    END IF;
58137 
58138    --
58139    -- bulk performance
58140    --
58141    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58142                                       p_header_num   => 0); -- 4262811
58143    --
58144    -- set accounting line options
58145    --
58146    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58147            p_natural_side_code          => 'C'
58148          , p_gain_or_loss_flag          => 'N'
58149          , p_gl_transfer_mode_code      => 'S'
58150          , p_acct_entry_type_code       => 'A'
58151          , p_switch_side_flag           => 'Y'
58152          , p_merge_duplicate_code       => 'A'
58153          );
58154    --
58155    l_acc_rev_natural_side_code := 'D';  -- 4262811
58156    -- 
58157    --
58158    -- set accounting line type info
58159    --
58160    xla_ae_lines_pkg.SetAcctLineType
58161       (p_component_type             => l_component_type
58162       ,p_event_type_code            => l_event_type_code
58163       ,p_line_definition_owner_code => l_line_definition_owner_code
58164       ,p_line_definition_code       => l_line_definition_code
58165       ,p_accounting_line_code       => l_component_code
58166       ,p_accounting_line_type_code  => l_component_type_code
58167       ,p_accounting_line_appl_id    => l_component_appl_id
58168       ,p_amb_context_code           => l_amb_context_code
58169       ,p_entity_code                => l_entity_code
58170       ,p_event_class_code           => l_event_class_code);
58171    --
58172    -- set accounting class
58173    --
58174    xla_ae_lines_pkg.SetAcctClass(
58175            p_accounting_class_code  => 'ROUNDING'
58176          , p_ae_header_id           => l_ae_header_id
58177          );
58178 
58179    --
58180    -- set rounding class
58181    --
58182    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58183                       'ROUNDING';
58184 
58185    --
58186    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58187    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58188    --
58189    -- bulk performance
58190    --
58191    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58192 
58193    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58194       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58195 
58196    -- 4955764
58197    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58199 
58200    -- 4458381 Public Sector Enh
58201    
58202    --
58203    -- set accounting attributes for the line type
58204    --
58205    l_entered_amt_idx := 25;
58206    l_accted_amt_idx  := 30;
58207    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58208    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58209    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
58210    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58211    l_rec_acct_attrs.array_num_value(2)  := 
58212 xla_ae_sources_pkg.GetSystemSourceNum(
58213    p_source_code           => 'XLA_EVENT_APPL_ID'
58214  , p_source_type_code      => 'Y'
58215  , p_source_application_id =>  602
58216 );
58217    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58218    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
58219    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58220    l_rec_acct_attrs.array_char_value(4)  := 
58221 xla_ae_sources_pkg.GetSystemSourceChar(
58222    p_source_code           => 'XLA_ENTITY_CODE'
58223  , p_source_type_code      => 'Y'
58224  , p_source_application_id =>  602
58225 );
58226    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58230    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58227    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
58228    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58229    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
58231    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
58232    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58233    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
58234    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58235    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
58236    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58237    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
58238    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58239    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
58240    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58241    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
58242    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58243    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
58244    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
58245    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
58246    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
58247    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
58248    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
58249    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
58250    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
58251    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
58252    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
58253    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
58254    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
58255    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
58256    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
58257    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
58258    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
58259    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
58260    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
58261    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
58262    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
58263    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
58264    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
58265    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
58266    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
58267    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
58268    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
58269    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
58270    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
58271    l_rec_acct_attrs.array_date_value(27)  := p_source_146;
58272    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
58273    l_rec_acct_attrs.array_num_value(28)  := p_source_147;
58274    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
58275    l_rec_acct_attrs.array_char_value(29)  := p_source_148;
58276    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
58277    l_rec_acct_attrs.array_num_value(30)  := p_source_153;
58278    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
58279    l_rec_acct_attrs.array_date_value(31)  := p_source_82;
58280    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
58281    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
58282    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
58283    l_rec_acct_attrs.array_date_value(33)  := p_source_84;
58284    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
58285    l_rec_acct_attrs.array_char_value(34)  := p_source_85;
58286    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
58287    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
58288    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
58289    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
58290    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
58291    l_rec_acct_attrs.array_char_value(37)  := p_source_88;
58292    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
58293    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_139);
58294    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
58295    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
58296    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
58297    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
58298    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
58299    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
58300    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
58301    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
58302    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
58303    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
58304    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
58305    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
58306 
58307    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58308    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58309 
58313    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58310    ---------------------------------------------------------------------------------------------------------------
58311    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58312    ---------------------------------------------------------------------------------------------------------------
58314 
58315    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58316    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58317 
58318    IF xla_accounting_cache_pkg.GetValueChar
58319          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58320          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58321    AND l_bflow_method_code = 'PRIOR_ENTRY'
58322 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58323    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58324          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58325        )
58326    THEN
58327          xla_ae_lines_pkg.BflowUpgEntry
58328            (p_business_method_code    => l_bflow_method_code
58329            ,p_business_class_code     => l_bflow_class_code
58330            ,p_balance_type            => l_balance_type_code);
58331    ELSE
58332       NULL;
58333 -- No business flow processing for business flow method of NONE.
58334    END IF;
58335 
58336    --
58337    -- call analytical criteria
58338    --
58339    
58340    --
58341    -- call description
58342    --
58343    -- No description or it is inherited.
58344    --
58345    -- call ADRs
58346    -- Bug 4922099
58347    --
58348    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58349         (NVL(l_actual_upg_option, 'N') = 'O') OR
58350         (NVL(l_enc_upg_option, 'N') = 'O')
58351       )
58352    THEN
58353    NULL;
58354    --
58355    --
58356    
58357   l_ccid := AcctDerRule_43(
58358            p_application_id           => p_application_id
58359          , p_ae_header_id             => l_ae_header_id 
58360 , p_source_10 => p_source_10
58361 , p_source_10_meaning => p_source_10_meaning
58362 , p_source_25 => p_source_25
58363 , p_source_45 => p_source_45
58364          , x_transaction_coa_id       => l_adr_transaction_coa_id
58365          , x_accounting_coa_id        => l_adr_accounting_coa_id
58366          , x_value_type_code          => l_adr_value_type_code
58367          , p_side                     => 'NA'
58368    );
58369 
58370    xla_ae_lines_pkg.set_ccid(
58371     p_code_combination_id          => l_ccid
58372   , p_value_type_code              => l_adr_value_type_code
58373   , p_transaction_coa_id           => l_adr_transaction_coa_id
58374   , p_accounting_coa_id            => l_adr_accounting_coa_id
58375   , p_adr_code                     => 'AP_ROUNDING'
58376   , p_adr_type_code                => 'S'
58377   , p_component_type               => l_component_type
58378   , p_component_code               => l_component_code
58379   , p_component_type_code          => l_component_type_code
58380   , p_component_appl_id            => l_component_appl_id
58381   , p_amb_context_code             => l_amb_context_code
58382   , p_side                         => 'NA'
58383   );
58384 
58385 
58386    --
58387    --
58388    END IF;
58389    --
58390    -- Bug 4922099
58391    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58392           (NVL(l_enc_upg_option, 'N') = 'O')
58393         ) AND
58394         (l_bflow_method_code = 'PRIOR_ENTRY')
58395       )
58396    THEN
58397       IF
58398       --
58399       1 = 2
58400       --
58401       THEN
58402       xla_accounting_err_pkg.build_message
58403                                     (p_appli_s_name            => 'XLA'
58404                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58405                                     ,p_token_1                 => 'LINE_NUMBER'
58406                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58407                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58408                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58409                                                                              l_component_type
58410                                                                             ,l_component_code
58411                                                                             ,l_component_type_code
58412                                                                             ,l_component_appl_id
58413                                                                             ,l_amb_context_code
58414                                                                             ,l_entity_code
58415                                                                             ,l_event_class_code
58416                                                                            )
58417                                     ,p_token_3                 => 'OWNER'
58418                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58419                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58423                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58420                                                                           ,p_lookup_code    => l_component_type_code
58421                                                                          )
58422                                     ,p_token_4                 => 'PRODUCT_NAME'
58424                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58425                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58426                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58427                                     ,p_ae_header_id            =>  NULL
58428                                        );
58429 
58430         IF (C_LEVEL_ERROR>= g_log_level) THEN
58431                  trace
58432                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58433                       ,p_level    => C_LEVEL_ERROR
58434                       ,p_module   => l_log_module);
58435         END IF;
58436       END IF;
58437    END IF;
58438    --
58439    --
58440    ------------------------------------------------------------------------------------------------
58441    -- 4219869 Business Flow
58442    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58443    -- Prior Entry.  Currently, the following code is always generated.
58444    ------------------------------------------------------------------------------------------------
58445    XLA_AE_LINES_PKG.ValidateCurrentLine;
58446 
58447    ------------------------------------------------------------------------------------
58448    -- 4219869 Business Flow
58449    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58450    ------------------------------------------------------------------------------------
58451    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58452 
58453    ----------------------------------------------------------------------------------
58454    -- 4219869 Business Flow
58455    -- Update journal entry status -- Need to generate this within IF <condition>
58456    ----------------------------------------------------------------------------------
58457    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58458          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58459          ,p_balance_type_code => l_balance_type_code
58460          );
58461 
58462    -------------------------------------------------------------------------------------------
58463    -- 4262811 - Generate the Accrual Reversal lines
58464    -------------------------------------------------------------------------------------------
58465    BEGIN
58466       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58467                               (g_array_event(p_event_id).array_value_num('header_index'));
58468       IF l_acc_rev_flag IS NULL THEN
58469          l_acc_rev_flag := 'N';
58470       END IF;
58471    EXCEPTION
58472       WHEN OTHERS THEN
58473          l_acc_rev_flag := 'N';
58474    END;
58475    --
58476    IF (l_acc_rev_flag = 'Y') THEN
58477 
58478        -- 4645092  ------------------------------------------------------------------------------
58479        -- To allow MPA report to determine if it should generate report process
58480        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58481        ------------------------------------------------------------------------------------------
58482 
58483        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58484        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58485    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58486    -- call ADRs
58487    -- Bug 4922099
58488    --
58489    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58490         (NVL(l_actual_upg_option, 'N') = 'O') OR
58491         (NVL(l_enc_upg_option, 'N') = 'O')
58492       )
58493    THEN
58494    NULL;
58495    --
58496    --
58497    
58498   l_ccid := AcctDerRule_43(
58499            p_application_id           => p_application_id
58500          , p_ae_header_id             => l_ae_header_id 
58501 , p_source_10 => p_source_10
58502 , p_source_10_meaning => p_source_10_meaning
58503 , p_source_25 => p_source_25
58504 , p_source_45 => p_source_45
58505          , x_transaction_coa_id       => l_adr_transaction_coa_id
58506          , x_accounting_coa_id        => l_adr_accounting_coa_id
58507          , x_value_type_code          => l_adr_value_type_code
58508          , p_side                     => 'NA'
58509    );
58510 
58511    xla_ae_lines_pkg.set_ccid(
58512     p_code_combination_id          => l_ccid
58513   , p_value_type_code              => l_adr_value_type_code
58514   , p_transaction_coa_id           => l_adr_transaction_coa_id
58515   , p_accounting_coa_id            => l_adr_accounting_coa_id
58516   , p_adr_code                     => 'AP_ROUNDING'
58517   , p_adr_type_code                => 'S'
58518   , p_component_type               => l_component_type
58519   , p_component_code               => l_component_code
58520   , p_component_type_code          => l_component_type_code
58521   , p_component_appl_id            => l_component_appl_id
58522   , p_amb_context_code             => l_amb_context_code
58523   , p_side                         => 'NA'
58524   );
58525 
58526 
58527    --
58528    --
58529    END IF;
58530 
58531        --
58535                                          p_header_num   => 1);
58532        -- Update the line information that should be overwritten
58533        --
58534        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58536        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58537 
58538        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58539 
58540        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58541           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58542        END IF;
58543 
58544       --
58545       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58546       --
58547       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58548           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58549       ELSE
58550           ---------------------------------------------------------------------------------------------------
58551           -- 4262811a Switch Sign
58552           ---------------------------------------------------------------------------------------------------
58553           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58554           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58555                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58556           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58557                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58558           -- 5132302
58559           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58560                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58561 
58562       END IF;
58563 
58564       -- 4955764
58565       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58566       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58567 
58568 
58569       XLA_AE_LINES_PKG.ValidateCurrentLine;
58570       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58571 
58572       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58573                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58574                ,p_balance_type_code => l_balance_type_code);
58575 
58576    END IF;
58577 
58578    -----------------------------------------------------------------------------------------
58579    -- 4262811 Multiperiod Accounting
58580    -----------------------------------------------------------------------------------------
58581      -- No MPA option is assigned.
58582 
58583 
58584 END IF;
58585 END IF;
58586 --
58587 
58588 --
58589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58590    trace
58591       (p_msg      => 'END of AcctLineType_124'
58592       ,p_level    => C_LEVEL_PROCEDURE
58593       ,p_module   => l_log_module);
58594 END IF;
58595 --
58596 EXCEPTION
58597   WHEN xla_exceptions_pkg.application_exception THEN
58598       RAISE;
58599   WHEN OTHERS THEN
58600        xla_exceptions_pkg.raise_message
58601            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_124');
58602 END AcctLineType_124;
58603 --
58604 
58605 ---------------------------------------
58606 --
58607 -- PRIVATE FUNCTION
58608 --         AcctLineType_125
58609 --
58610 ---------------------------------------
58611 PROCEDURE AcctLineType_125 (
58612   p_application_id        IN NUMBER
58613  ,p_event_id              IN NUMBER
58614  ,p_calculate_acctd_flag  IN VARCHAR2
58615  ,p_calculate_g_l_flag    IN VARCHAR2
58616  ,p_actual_flag           IN OUT VARCHAR2
58617  ,p_balance_type_code     OUT VARCHAR2
58618  ,p_gain_or_loss_ref      OUT VARCHAR2
58619  
58620 --Invoice Distribution Description
58621  , p_source_1            IN VARCHAR2
58622 --Invoice Distribution Ledger Amount
58623  , p_source_16            IN NUMBER
58624 --Invoice Distribution Account
58625  , p_source_25            IN NUMBER
58626 --Invoice Distribution Type
58627  , p_source_28            IN VARCHAR2
58628  , p_source_28_meaning    IN VARCHAR2
58629 --Accounting Reversal Indicator
58630  , p_source_58            IN VARCHAR2
58631 --Distribution Link Type
58632  , p_source_60            IN VARCHAR2
58633 --Allocation to Main Distribution Identifier
58634  , p_source_62            IN NUMBER
58635 --Invoice Identifier
58636  , p_source_63            IN NUMBER
58637 --Invoice Distribution Identifier
58638  , p_source_69            IN NUMBER
58639 --Payables Encumbrance Upgrade Credit Account
58640  , p_source_70            IN NUMBER
58641 --Payables Encumbrance Upgrade Credit Amount
58642  , p_source_71            IN NUMBER
58643 --Invoice Currency Code
58644  , p_source_72            IN VARCHAR2
58645 --Payables Encumbrance Upgrade Credit Base Amount
58646  , p_source_73            IN NUMBER
58647 --Payables Encumbrance Upgrade Debit Account
58648  , p_source_74            IN NUMBER
58649 --Payables Encumbrance Upgrade Debit Amount
58650  , p_source_75            IN NUMBER
58651 --Payables Encumbrance Upgrade Debit Base Amount
58652  , p_source_76            IN NUMBER
58656  , p_source_78            IN NUMBER
58653 --Payables Encumbrance Upgrade Option
58654  , p_source_77            IN VARCHAR2
58655 --Invoice Distribution Amount
58657 --Deferred Accounting End Date
58658  , p_source_82            IN DATE
58659 --Deferred Accounting Option
58660  , p_source_83            IN VARCHAR2
58661 --Deferred Accounting Start Date
58662  , p_source_84            IN DATE
58663 --Override Accounted Amount Indicator
58664  , p_source_85            IN VARCHAR2
58665  , p_source_85_meaning    IN VARCHAR2
58666 --Invoice Supplier Identifier
58667  , p_source_86            IN NUMBER
58668 --Invoice Supplier Site Identifier
58669  , p_source_87            IN NUMBER
58670 --Third Party Type
58671  , p_source_88            IN VARCHAR2
58672 --Parent Reversal Identifier
58673  , p_source_89            IN NUMBER
58674 --Invoice Distribution Statistical Amount
58675  , p_source_90            IN NUMBER
58676 --Invoice Distribution Tax Line Identifier
58677  , p_source_91            IN NUMBER
58678 --Invoice Distribution Tax Distribution Identifier from Tax
58679  , p_source_92            IN NUMBER
58680 --Invoice Distribution Summary Tax Line Identifier
58681  , p_source_93            IN NUMBER
58682 --Payables Upgrade Credit Encumbrance Type Identifier
58683  , p_source_94            IN NUMBER
58684 --Payables Upgrade Debit Encumbrance Type Identifier
58685  , p_source_95            IN NUMBER
58686 --Business Flow Accounts Payable Application Identifier
58687  , p_source_96            IN NUMBER
58688 --Business Flow Invoice Distribution Type
58689  , p_source_97            IN VARCHAR2
58690 --Business Flow Invoice Entity Code
58691  , p_source_98            IN VARCHAR2
58692 --Business Flow Invoice Distribution Identifier
58693  , p_source_99            IN NUMBER
58694 --Business Flow Invoice Identifier
58695  , p_source_100            IN NUMBER
58696 --Invoice Exchange Date
58697  , p_source_146            IN DATE
58698 --Invoice Exchange Rate
58699  , p_source_147            IN NUMBER
58700 --Invoice Exchange Rate Type
58701  , p_source_148            IN VARCHAR2
58702 )
58703 IS
58704 
58705 l_component_type              VARCHAR2(80);
58706 l_component_code              VARCHAR2(30);
58707 l_component_type_code         VARCHAR2(1);
58708 l_component_appl_id           INTEGER;
58709 l_amb_context_code            VARCHAR2(30);
58710 l_entity_code                 VARCHAR2(30);
58711 l_event_class_code            VARCHAR2(30);
58712 l_ae_header_id                NUMBER;
58713 l_event_type_code             VARCHAR2(30);
58714 l_line_definition_code        VARCHAR2(30);
58715 l_line_definition_owner_code  VARCHAR2(1);
58716 --
58717 -- adr variables
58718 l_segment                     VARCHAR2(30);
58719 l_ccid                        NUMBER;
58720 l_adr_transaction_coa_id      NUMBER;
58721 l_adr_accounting_coa_id       NUMBER;
58722 l_adr_flexfield_segment_code  VARCHAR2(30);
58723 l_adr_flex_value_set_id       NUMBER;
58724 l_adr_value_type_code         VARCHAR2(30);
58725 l_adr_value_combination_id    NUMBER;
58726 l_adr_value_segment_code      VARCHAR2(30);
58727 
58728 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58729 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58730 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58731 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58732 
58733 -- 4262811 Variables ------------------------------------------------------------------------------------------
58734 l_entered_amt_idx             NUMBER;
58735 l_accted_amt_idx              NUMBER;
58736 l_acc_rev_flag                VARCHAR2(1);
58737 l_accrual_line_num            NUMBER;
58738 l_tmp_amt                     NUMBER;
58739 l_acc_rev_natural_side_code   VARCHAR2(1);
58740 
58741 l_num_entries                 NUMBER;
58742 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58743 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58744 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58745 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58746 l_recog_line_1                NUMBER;
58747 l_recog_line_2                NUMBER;
58748 
58749 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58750 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58751 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58752 
58753 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58754 
58755 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58756 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58757 
58758 ---------------------------------------------------------------------------------------------------------------
58759 
58760 
58761 --
58762 -- bulk performance
58763 --
58764 l_balance_type_code           VARCHAR2(1);
58765 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58766 l_log_module                  VARCHAR2(240);
58767 
58768 --
58769 -- Upgrade strategy
58770 --
58771 l_actual_upg_option           VARCHAR2(1);
58772 l_enc_upg_option           VARCHAR2(1);
58773 
58774 --
58775 BEGIN
58776 --
58777 IF g_log_enabled THEN
58778       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
58779 END IF;
58780 --
58781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58782 
58783       trace
58787 
58784          (p_msg      => 'BEGIN of AcctLineType_125'
58785          ,p_level    => C_LEVEL_PROCEDURE
58786          ,p_module   => l_log_module);
58788 END IF;
58789 --
58790 l_component_type             := 'AMB_JLT';
58791 l_component_code             := 'AP_FREIGHT_EXPENSE_CM';
58792 l_component_type_code        := 'S';
58793 l_component_appl_id          :=  200;
58794 l_amb_context_code           := 'DEFAULT';
58795 l_entity_code                := 'AP_INVOICES';
58796 l_event_class_code           := 'CREDIT MEMOS';
58797 l_event_type_code            := 'CREDIT MEMOS_ALL';
58798 l_line_definition_owner_code := 'S';
58799 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
58800 --
58801 l_balance_type_code          := 'A';
58802 l_segment                     := NULL;
58803 l_ccid                        := NULL;
58804 l_adr_transaction_coa_id      := NULL;
58805 l_adr_accounting_coa_id       := NULL;
58806 l_adr_flexfield_segment_code  := NULL;
58807 l_adr_flex_value_set_id       := NULL;
58808 l_adr_value_type_code         := NULL;
58809 l_adr_value_combination_id    := NULL;
58810 l_adr_value_segment_code      := NULL;
58811 
58812 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58813 l_bflow_class_code           := '';    -- 4219869 Business Flow
58814 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58815 l_budgetary_control_flag     := 'N';
58816 
58817 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58818 l_bflow_applied_to_amt       := NULL; -- 5132302
58819 l_entered_amt_idx            := NULL;          -- 4262811
58820 l_accted_amt_idx             := NULL;          -- 4262811
58821 l_acc_rev_flag               := NULL;          -- 4262811
58822 l_accrual_line_num           := NULL;          -- 4262811
58823 l_tmp_amt                    := NULL;          -- 4262811
58824 --
58825  
58826 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58827     l_balance_type_code <> 'B' THEN
58828 IF NVL(p_source_28,'
58829 ') =  'FREIGHT'
58830  THEN 
58831 
58832    --
58833    XLA_AE_LINES_PKG.SetNewLine;
58834 
58835    p_balance_type_code          := l_balance_type_code;
58836    -- set the flag so later we will know whether the gain loss line needs to be created
58837    
58838    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58839      p_actual_flag :='A';
58840    END IF;
58841 
58842    --
58843    -- bulk performance
58844    --
58845    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58846                                       p_header_num   => 0); -- 4262811
58847    --
58848    -- set accounting line options
58849    --
58850    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58851            p_natural_side_code          => 'D'
58852          , p_gain_or_loss_flag          => 'N'
58853          , p_gl_transfer_mode_code      => 'S'
58854          , p_acct_entry_type_code       => 'A'
58855          , p_switch_side_flag           => 'Y'
58856          , p_merge_duplicate_code       => 'A'
58857          );
58858    --
58859    l_acc_rev_natural_side_code := 'C';  -- 4262811
58860    -- 
58861    --
58862    -- set accounting line type info
58863    --
58864    xla_ae_lines_pkg.SetAcctLineType
58865       (p_component_type             => l_component_type
58866       ,p_event_type_code            => l_event_type_code
58867       ,p_line_definition_owner_code => l_line_definition_owner_code
58868       ,p_line_definition_code       => l_line_definition_code
58869       ,p_accounting_line_code       => l_component_code
58870       ,p_accounting_line_type_code  => l_component_type_code
58871       ,p_accounting_line_appl_id    => l_component_appl_id
58872       ,p_amb_context_code           => l_amb_context_code
58873       ,p_entity_code                => l_entity_code
58874       ,p_event_class_code           => l_event_class_code);
58875    --
58876    -- set accounting class
58877    --
58878    xla_ae_lines_pkg.SetAcctClass(
58879            p_accounting_class_code  => 'FREIGHT'
58880          , p_ae_header_id           => l_ae_header_id
58881          );
58882 
58883    --
58884    -- set rounding class
58885    --
58886    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58887                       'FREIGHT';
58888 
58889    --
58890    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58891    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58892    --
58893    -- bulk performance
58894    --
58895    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58896 
58897    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58898       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58899 
58900    -- 4955764
58901    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58902       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58903 
58904    -- 4458381 Public Sector Enh
58905    
58906    --
58907    -- set accounting attributes for the line type
58908    --
58909    l_entered_amt_idx := 23;
58910    l_accted_amt_idx  := 28;
58911    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58915    l_rec_acct_attrs.array_num_value(2)  := 
58912    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58913    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
58914    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58916 xla_ae_sources_pkg.GetSystemSourceNum(
58917    p_source_code           => 'XLA_EVENT_APPL_ID'
58918  , p_source_type_code      => 'Y'
58919  , p_source_application_id =>  602
58920 );
58921    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58922    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
58923    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58924    l_rec_acct_attrs.array_char_value(4)  := 
58925 xla_ae_sources_pkg.GetSystemSourceChar(
58926    p_source_code           => 'XLA_ENTITY_CODE'
58927  , p_source_type_code      => 'Y'
58928  , p_source_application_id =>  602
58929 );
58930    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58931    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
58932    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58933    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
58934    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58935    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
58936    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58937    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
58938    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58939    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
58940    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58941    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
58942    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58943    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
58944    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58945    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
58946    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58947    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
58948    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
58949    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
58950    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
58951    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
58952    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
58953    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
58954    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
58955    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
58956    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
58957    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
58958    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
58959    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
58960    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
58961    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
58962    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
58963    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
58964    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
58965    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
58966    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
58967    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
58968    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
58969    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
58970    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
58971    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
58972    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
58973    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
58974    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
58975    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
58976    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
58977    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
58978    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
58979    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
58980    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
58981    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
58982    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
58983    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
58984    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
58985    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
58986    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
58987    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
58988    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
58989    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
58990    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
58991    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
58992    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
58993    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
58994    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
58995    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
58996    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
58997    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
59001    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
58998    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
58999    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
59000    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
59002    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
59003    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
59004    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
59005    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
59006    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
59007    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
59008 
59009    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59010    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59011 
59012    ---------------------------------------------------------------------------------------------------------------
59013    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59014    ---------------------------------------------------------------------------------------------------------------
59015    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59016 
59017    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59018    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59019 
59020    IF xla_accounting_cache_pkg.GetValueChar
59021          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59022          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59023    AND l_bflow_method_code = 'PRIOR_ENTRY'
59024 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59025    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59026          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59027        )
59028    THEN
59029          xla_ae_lines_pkg.BflowUpgEntry
59030            (p_business_method_code    => l_bflow_method_code
59031            ,p_business_class_code     => l_bflow_class_code
59032            ,p_balance_type            => l_balance_type_code);
59033    ELSE
59034       NULL;
59035 -- No business flow processing for business flow method of NONE.
59036    END IF;
59037 
59038    --
59039    -- call analytical criteria
59040    --
59041    
59042    --
59043    -- call description
59044    --
59045    
59046 xla_ae_lines_pkg.SetLineDescription(
59047    p_ae_header_id => l_ae_header_id
59048   ,p_description  => Description_2 (
59049      p_application_id         => p_application_id
59050    , p_ae_header_id           => l_ae_header_id 
59051 , p_source_1 => p_source_1
59052    )
59053 );
59054 
59055 
59056    --
59057    -- call ADRs
59058    -- Bug 4922099
59059    --
59060    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59061         (NVL(l_actual_upg_option, 'N') = 'O') OR
59062         (NVL(l_enc_upg_option, 'N') = 'O')
59063       )
59064    THEN
59065    NULL;
59066    --
59067    --
59068    
59069   l_ccid := AcctDerRule_35(
59070            p_application_id           => p_application_id
59071          , p_ae_header_id             => l_ae_header_id 
59072 , p_source_25 => p_source_25
59073          , x_transaction_coa_id       => l_adr_transaction_coa_id
59074          , x_accounting_coa_id        => l_adr_accounting_coa_id
59075          , x_value_type_code          => l_adr_value_type_code
59076          , p_side                     => 'NA'
59077    );
59078 
59079    xla_ae_lines_pkg.set_ccid(
59080     p_code_combination_id          => l_ccid
59081   , p_value_type_code              => l_adr_value_type_code
59082   , p_transaction_coa_id           => l_adr_transaction_coa_id
59083   , p_accounting_coa_id            => l_adr_accounting_coa_id
59084   , p_adr_code                     => 'AP_INVOICE_DIST'
59085   , p_adr_type_code                => 'S'
59086   , p_component_type               => l_component_type
59087   , p_component_code               => l_component_code
59088   , p_component_type_code          => l_component_type_code
59089   , p_component_appl_id            => l_component_appl_id
59090   , p_amb_context_code             => l_amb_context_code
59091   , p_side                         => 'NA'
59092   );
59093 
59094 
59095    --
59096    --
59097    END IF;
59098    --
59099    -- Bug 4922099
59100    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59101           (NVL(l_enc_upg_option, 'N') = 'O')
59102         ) AND
59103         (l_bflow_method_code = 'PRIOR_ENTRY')
59104       )
59105    THEN
59106       IF
59107       --
59108       1 = 2
59109       --
59110       THEN
59111       xla_accounting_err_pkg.build_message
59112                                     (p_appli_s_name            => 'XLA'
59113                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59114                                     ,p_token_1                 => 'LINE_NUMBER'
59115                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59116                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59117                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59121                                                                             ,l_component_appl_id
59118                                                                              l_component_type
59119                                                                             ,l_component_code
59120                                                                             ,l_component_type_code
59122                                                                             ,l_amb_context_code
59123                                                                             ,l_entity_code
59124                                                                             ,l_event_class_code
59125                                                                            )
59126                                     ,p_token_3                 => 'OWNER'
59127                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59128                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59129                                                                           ,p_lookup_code    => l_component_type_code
59130                                                                          )
59131                                     ,p_token_4                 => 'PRODUCT_NAME'
59132                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59133                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59134                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59135                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59136                                     ,p_ae_header_id            =>  NULL
59137                                        );
59138 
59139         IF (C_LEVEL_ERROR>= g_log_level) THEN
59140                  trace
59141                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59142                       ,p_level    => C_LEVEL_ERROR
59143                       ,p_module   => l_log_module);
59144         END IF;
59145       END IF;
59146    END IF;
59147    --
59148    --
59149    ------------------------------------------------------------------------------------------------
59150    -- 4219869 Business Flow
59151    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59152    -- Prior Entry.  Currently, the following code is always generated.
59153    ------------------------------------------------------------------------------------------------
59154    XLA_AE_LINES_PKG.ValidateCurrentLine;
59155 
59156    ------------------------------------------------------------------------------------
59157    -- 4219869 Business Flow
59158    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59159    ------------------------------------------------------------------------------------
59160    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59161 
59162    ----------------------------------------------------------------------------------
59163    -- 4219869 Business Flow
59164    -- Update journal entry status -- Need to generate this within IF <condition>
59165    ----------------------------------------------------------------------------------
59166    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59167          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59168          ,p_balance_type_code => l_balance_type_code
59169          );
59170 
59171    -------------------------------------------------------------------------------------------
59172    -- 4262811 - Generate the Accrual Reversal lines
59173    -------------------------------------------------------------------------------------------
59174    BEGIN
59175       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59176                               (g_array_event(p_event_id).array_value_num('header_index'));
59177       IF l_acc_rev_flag IS NULL THEN
59178          l_acc_rev_flag := 'N';
59179       END IF;
59180    EXCEPTION
59181       WHEN OTHERS THEN
59182          l_acc_rev_flag := 'N';
59183    END;
59184    --
59185    IF (l_acc_rev_flag = 'Y') THEN
59186 
59187        -- 4645092  ------------------------------------------------------------------------------
59188        -- To allow MPA report to determine if it should generate report process
59189        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59190        ------------------------------------------------------------------------------------------
59191 
59192        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59193        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59194    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59195    -- call ADRs
59196    -- Bug 4922099
59197    --
59198    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59199         (NVL(l_actual_upg_option, 'N') = 'O') OR
59200         (NVL(l_enc_upg_option, 'N') = 'O')
59201       )
59202    THEN
59203    NULL;
59204    --
59205    --
59206    
59207   l_ccid := AcctDerRule_35(
59208            p_application_id           => p_application_id
59209          , p_ae_header_id             => l_ae_header_id 
59210 , p_source_25 => p_source_25
59211          , x_transaction_coa_id       => l_adr_transaction_coa_id
59212          , x_accounting_coa_id        => l_adr_accounting_coa_id
59213          , x_value_type_code          => l_adr_value_type_code
59214          , p_side                     => 'NA'
59215    );
59216 
59220   , p_transaction_coa_id           => l_adr_transaction_coa_id
59217    xla_ae_lines_pkg.set_ccid(
59218     p_code_combination_id          => l_ccid
59219   , p_value_type_code              => l_adr_value_type_code
59221   , p_accounting_coa_id            => l_adr_accounting_coa_id
59222   , p_adr_code                     => 'AP_INVOICE_DIST'
59223   , p_adr_type_code                => 'S'
59224   , p_component_type               => l_component_type
59225   , p_component_code               => l_component_code
59226   , p_component_type_code          => l_component_type_code
59227   , p_component_appl_id            => l_component_appl_id
59228   , p_amb_context_code             => l_amb_context_code
59229   , p_side                         => 'NA'
59230   );
59231 
59232 
59233    --
59234    --
59235    END IF;
59236 
59237        --
59238        -- Update the line information that should be overwritten
59239        --
59240        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59241                                          p_header_num   => 1);
59242        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59243 
59244        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59245 
59246        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59247           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59248        END IF;
59249 
59250       --
59251       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59252       --
59253       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59254           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59255       ELSE
59256           ---------------------------------------------------------------------------------------------------
59257           -- 4262811a Switch Sign
59258           ---------------------------------------------------------------------------------------------------
59259           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59260           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59261                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59262           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59263                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59264           -- 5132302
59265           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59266                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59267 
59268       END IF;
59269 
59270       -- 4955764
59271       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59272       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59273 
59274 
59275       XLA_AE_LINES_PKG.ValidateCurrentLine;
59276       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59277 
59278       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59279                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59280                ,p_balance_type_code => l_balance_type_code);
59281 
59282    END IF;
59283 
59284    -----------------------------------------------------------------------------------------
59285    -- 4262811 Multiperiod Accounting
59286    -----------------------------------------------------------------------------------------
59287      -- No MPA option is assigned.
59288 
59289 
59290 END IF;
59291 END IF;
59292 --
59293 
59294 --
59295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59296    trace
59297       (p_msg      => 'END of AcctLineType_125'
59298       ,p_level    => C_LEVEL_PROCEDURE
59299       ,p_module   => l_log_module);
59300 END IF;
59301 --
59302 EXCEPTION
59303   WHEN xla_exceptions_pkg.application_exception THEN
59304       RAISE;
59305   WHEN OTHERS THEN
59306        xla_exceptions_pkg.raise_message
59307            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_125');
59308 END AcctLineType_125;
59309 --
59310 
59311 ---------------------------------------
59312 --
59313 -- PRIVATE FUNCTION
59314 --         AcctLineType_126
59315 --
59316 ---------------------------------------
59317 PROCEDURE AcctLineType_126 (
59318   p_application_id        IN NUMBER
59319  ,p_event_id              IN NUMBER
59320  ,p_calculate_acctd_flag  IN VARCHAR2
59321  ,p_calculate_g_l_flag    IN VARCHAR2
59322  ,p_actual_flag           IN OUT VARCHAR2
59323  ,p_balance_type_code     OUT VARCHAR2
59324  ,p_gain_or_loss_ref      OUT VARCHAR2
59325  
59326 --Invoice Distribution Description
59327  , p_source_1            IN VARCHAR2
59328 --Invoice Distribution Ledger Amount
59329  , p_source_16            IN NUMBER
59330 --Invoice Distribution Account
59331  , p_source_25            IN NUMBER
59332 --Invoice Distribution Type
59333  , p_source_28            IN VARCHAR2
59334  , p_source_28_meaning    IN VARCHAR2
59335 --Accounting Reversal Indicator
59336  , p_source_58            IN VARCHAR2
59337 --Distribution Link Type
59338  , p_source_60            IN VARCHAR2
59342  , p_source_63            IN NUMBER
59339 --Allocation to Main Distribution Identifier
59340  , p_source_62            IN NUMBER
59341 --Invoice Identifier
59343 --Invoice Distribution Identifier
59344  , p_source_69            IN NUMBER
59345 --Payables Encumbrance Upgrade Credit Account
59346  , p_source_70            IN NUMBER
59347 --Payables Encumbrance Upgrade Credit Amount
59348  , p_source_71            IN NUMBER
59349 --Invoice Currency Code
59350  , p_source_72            IN VARCHAR2
59351 --Payables Encumbrance Upgrade Credit Base Amount
59352  , p_source_73            IN NUMBER
59353 --Payables Encumbrance Upgrade Debit Account
59354  , p_source_74            IN NUMBER
59355 --Payables Encumbrance Upgrade Debit Amount
59356  , p_source_75            IN NUMBER
59357 --Payables Encumbrance Upgrade Debit Base Amount
59358  , p_source_76            IN NUMBER
59359 --Payables Encumbrance Upgrade Option
59360  , p_source_77            IN VARCHAR2
59361 --Invoice Distribution Amount
59362  , p_source_78            IN NUMBER
59363 --Deferred Accounting End Date
59364  , p_source_82            IN DATE
59365 --Deferred Accounting Option
59366  , p_source_83            IN VARCHAR2
59367 --Deferred Accounting Start Date
59368  , p_source_84            IN DATE
59369 --Override Accounted Amount Indicator
59370  , p_source_85            IN VARCHAR2
59371  , p_source_85_meaning    IN VARCHAR2
59372 --Invoice Supplier Identifier
59373  , p_source_86            IN NUMBER
59374 --Invoice Supplier Site Identifier
59375  , p_source_87            IN NUMBER
59376 --Third Party Type
59377  , p_source_88            IN VARCHAR2
59378 --Parent Reversal Identifier
59379  , p_source_89            IN NUMBER
59380 --Invoice Distribution Tax Line Identifier
59381  , p_source_91            IN NUMBER
59382 --Invoice Distribution Tax Distribution Identifier from Tax
59383  , p_source_92            IN NUMBER
59384 --Invoice Distribution Summary Tax Line Identifier
59385  , p_source_93            IN NUMBER
59386 --Payables Upgrade Credit Encumbrance Type Identifier
59387  , p_source_94            IN NUMBER
59388 --Payables Upgrade Debit Encumbrance Type Identifier
59389  , p_source_95            IN NUMBER
59390 --Business Flow Accounts Payable Application Identifier
59391  , p_source_96            IN NUMBER
59392 --Business Flow Invoice Distribution Type
59393  , p_source_97            IN VARCHAR2
59394 --Business Flow Invoice Entity Code
59395  , p_source_98            IN VARCHAR2
59396 --Business Flow Invoice Distribution Identifier
59397  , p_source_99            IN NUMBER
59398 --Business Flow Invoice Identifier
59399  , p_source_100            IN NUMBER
59400 --Invoice Exchange Date
59401  , p_source_146            IN DATE
59402 --Invoice Exchange Rate
59403  , p_source_147            IN NUMBER
59404 --Invoice Exchange Rate Type
59405  , p_source_148            IN VARCHAR2
59406 )
59407 IS
59408 
59409 l_component_type              VARCHAR2(80);
59410 l_component_code              VARCHAR2(30);
59411 l_component_type_code         VARCHAR2(1);
59412 l_component_appl_id           INTEGER;
59413 l_amb_context_code            VARCHAR2(30);
59414 l_entity_code                 VARCHAR2(30);
59415 l_event_class_code            VARCHAR2(30);
59416 l_ae_header_id                NUMBER;
59417 l_event_type_code             VARCHAR2(30);
59418 l_line_definition_code        VARCHAR2(30);
59419 l_line_definition_owner_code  VARCHAR2(1);
59420 --
59421 -- adr variables
59422 l_segment                     VARCHAR2(30);
59423 l_ccid                        NUMBER;
59424 l_adr_transaction_coa_id      NUMBER;
59425 l_adr_accounting_coa_id       NUMBER;
59426 l_adr_flexfield_segment_code  VARCHAR2(30);
59427 l_adr_flex_value_set_id       NUMBER;
59428 l_adr_value_type_code         VARCHAR2(30);
59429 l_adr_value_combination_id    NUMBER;
59430 l_adr_value_segment_code      VARCHAR2(30);
59431 
59432 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59433 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59434 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59435 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59436 
59437 -- 4262811 Variables ------------------------------------------------------------------------------------------
59438 l_entered_amt_idx             NUMBER;
59439 l_accted_amt_idx              NUMBER;
59440 l_acc_rev_flag                VARCHAR2(1);
59441 l_accrual_line_num            NUMBER;
59442 l_tmp_amt                     NUMBER;
59443 l_acc_rev_natural_side_code   VARCHAR2(1);
59444 
59445 l_num_entries                 NUMBER;
59446 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59447 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59448 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59449 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59450 l_recog_line_1                NUMBER;
59451 l_recog_line_2                NUMBER;
59452 
59453 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59454 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59455 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59456 
59457 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59458 
59459 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59460 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59461 
59465 --
59462 ---------------------------------------------------------------------------------------------------------------
59463 
59464 
59466 -- bulk performance
59467 --
59468 l_balance_type_code           VARCHAR2(1);
59469 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59470 l_log_module                  VARCHAR2(240);
59471 
59472 --
59473 -- Upgrade strategy
59474 --
59475 l_actual_upg_option           VARCHAR2(1);
59476 l_enc_upg_option           VARCHAR2(1);
59477 
59478 --
59479 BEGIN
59480 --
59481 IF g_log_enabled THEN
59482       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
59483 END IF;
59484 --
59485 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59486 
59487       trace
59488          (p_msg      => 'BEGIN of AcctLineType_126'
59489          ,p_level    => C_LEVEL_PROCEDURE
59490          ,p_module   => l_log_module);
59491 
59492 END IF;
59493 --
59494 l_component_type             := 'AMB_JLT';
59495 l_component_code             := 'AP_FREIGHT_EXPENSE_DM';
59496 l_component_type_code        := 'S';
59497 l_component_appl_id          :=  200;
59498 l_amb_context_code           := 'DEFAULT';
59499 l_entity_code                := 'AP_INVOICES';
59500 l_event_class_code           := 'DEBIT MEMOS';
59501 l_event_type_code            := 'DEBIT MEMOS_ALL';
59502 l_line_definition_owner_code := 'S';
59503 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
59504 --
59505 l_balance_type_code          := 'A';
59506 l_segment                     := NULL;
59507 l_ccid                        := NULL;
59508 l_adr_transaction_coa_id      := NULL;
59509 l_adr_accounting_coa_id       := NULL;
59510 l_adr_flexfield_segment_code  := NULL;
59511 l_adr_flex_value_set_id       := NULL;
59512 l_adr_value_type_code         := NULL;
59513 l_adr_value_combination_id    := NULL;
59514 l_adr_value_segment_code      := NULL;
59515 
59516 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59517 l_bflow_class_code           := '';    -- 4219869 Business Flow
59518 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59519 l_budgetary_control_flag     := 'N';
59520 
59521 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59522 l_bflow_applied_to_amt       := NULL; -- 5132302
59523 l_entered_amt_idx            := NULL;          -- 4262811
59524 l_accted_amt_idx             := NULL;          -- 4262811
59525 l_acc_rev_flag               := NULL;          -- 4262811
59526 l_accrual_line_num           := NULL;          -- 4262811
59527 l_tmp_amt                    := NULL;          -- 4262811
59528 --
59529  
59530 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59531     l_balance_type_code <> 'B' THEN
59532 IF NVL(p_source_28,'
59533 ') =  'FREIGHT'
59534  THEN 
59535 
59536    --
59537    XLA_AE_LINES_PKG.SetNewLine;
59538 
59539    p_balance_type_code          := l_balance_type_code;
59540    -- set the flag so later we will know whether the gain loss line needs to be created
59541    
59542    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59543      p_actual_flag :='A';
59544    END IF;
59545 
59546    --
59547    -- bulk performance
59548    --
59549    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59550                                       p_header_num   => 0); -- 4262811
59551    --
59552    -- set accounting line options
59553    --
59554    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59555            p_natural_side_code          => 'D'
59556          , p_gain_or_loss_flag          => 'N'
59557          , p_gl_transfer_mode_code      => 'S'
59558          , p_acct_entry_type_code       => 'A'
59559          , p_switch_side_flag           => 'Y'
59560          , p_merge_duplicate_code       => 'A'
59561          );
59562    --
59563    l_acc_rev_natural_side_code := 'C';  -- 4262811
59564    -- 
59565    --
59566    -- set accounting line type info
59567    --
59568    xla_ae_lines_pkg.SetAcctLineType
59569       (p_component_type             => l_component_type
59570       ,p_event_type_code            => l_event_type_code
59571       ,p_line_definition_owner_code => l_line_definition_owner_code
59572       ,p_line_definition_code       => l_line_definition_code
59573       ,p_accounting_line_code       => l_component_code
59574       ,p_accounting_line_type_code  => l_component_type_code
59575       ,p_accounting_line_appl_id    => l_component_appl_id
59576       ,p_amb_context_code           => l_amb_context_code
59577       ,p_entity_code                => l_entity_code
59578       ,p_event_class_code           => l_event_class_code);
59579    --
59580    -- set accounting class
59581    --
59582    xla_ae_lines_pkg.SetAcctClass(
59583            p_accounting_class_code  => 'FREIGHT'
59584          , p_ae_header_id           => l_ae_header_id
59585          );
59586 
59587    --
59588    -- set rounding class
59589    --
59590    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59591                       'FREIGHT';
59592 
59593    --
59594    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59595    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59596    --
59597    -- bulk performance
59601    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59598    --
59599    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59600 
59602       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59603 
59604    -- 4955764
59605    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59606       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59607 
59608    -- 4458381 Public Sector Enh
59609    
59610    --
59611    -- set accounting attributes for the line type
59612    --
59613    l_entered_amt_idx := 23;
59614    l_accted_amt_idx  := 28;
59615    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
59616    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59617    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
59618    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59619    l_rec_acct_attrs.array_num_value(2)  := 
59620 xla_ae_sources_pkg.GetSystemSourceNum(
59621    p_source_code           => 'XLA_EVENT_APPL_ID'
59622  , p_source_type_code      => 'Y'
59623  , p_source_application_id =>  602
59624 );
59625    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59626    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
59627    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59628    l_rec_acct_attrs.array_char_value(4)  := 
59629 xla_ae_sources_pkg.GetSystemSourceChar(
59630    p_source_code           => 'XLA_ENTITY_CODE'
59631  , p_source_type_code      => 'Y'
59632  , p_source_application_id =>  602
59633 );
59634    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59635    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
59636    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59637    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
59638    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
59639    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
59640    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59641    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
59642    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
59643    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
59644    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
59645    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
59646    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59647    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
59648    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
59649    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
59650    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
59651    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
59652    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
59653    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
59654    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
59655    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
59656    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
59657    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
59658    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
59659    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
59660    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
59661    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
59662    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
59663    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
59664    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
59665    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
59666    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
59667    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
59668    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
59669    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
59670    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
59671    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
59672    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
59673    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
59674    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
59675    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
59676    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
59677    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
59678    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
59679    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
59680    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
59681    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
59682    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
59683    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
59684    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
59685    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
59686    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
59687    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
59688    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
59689    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
59693    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
59690    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
59691    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
59692    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
59694    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
59695    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
59696    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
59697    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
59698    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
59699    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
59700    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
59701    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
59702    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
59703    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
59704    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
59705    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
59706    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
59707    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
59708    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
59709    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
59710 
59711    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59712    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59713 
59714    ---------------------------------------------------------------------------------------------------------------
59715    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59716    ---------------------------------------------------------------------------------------------------------------
59717    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59718 
59719    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59720    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59721 
59722    IF xla_accounting_cache_pkg.GetValueChar
59723          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59724          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59725    AND l_bflow_method_code = 'PRIOR_ENTRY'
59726 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59727    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59728          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59729        )
59730    THEN
59731          xla_ae_lines_pkg.BflowUpgEntry
59732            (p_business_method_code    => l_bflow_method_code
59733            ,p_business_class_code     => l_bflow_class_code
59734            ,p_balance_type            => l_balance_type_code);
59735    ELSE
59736       NULL;
59737 -- No business flow processing for business flow method of NONE.
59738    END IF;
59739 
59740    --
59741    -- call analytical criteria
59742    --
59743    
59744    --
59745    -- call description
59746    --
59747    
59748 xla_ae_lines_pkg.SetLineDescription(
59749    p_ae_header_id => l_ae_header_id
59750   ,p_description  => Description_2 (
59751      p_application_id         => p_application_id
59752    , p_ae_header_id           => l_ae_header_id 
59753 , p_source_1 => p_source_1
59754    )
59755 );
59756 
59757 
59758    --
59759    -- call ADRs
59760    -- Bug 4922099
59761    --
59762    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59763         (NVL(l_actual_upg_option, 'N') = 'O') OR
59764         (NVL(l_enc_upg_option, 'N') = 'O')
59765       )
59766    THEN
59767    NULL;
59768    --
59769    --
59770    
59771   l_ccid := AcctDerRule_35(
59772            p_application_id           => p_application_id
59773          , p_ae_header_id             => l_ae_header_id 
59774 , p_source_25 => p_source_25
59775          , x_transaction_coa_id       => l_adr_transaction_coa_id
59776          , x_accounting_coa_id        => l_adr_accounting_coa_id
59777          , x_value_type_code          => l_adr_value_type_code
59778          , p_side                     => 'NA'
59779    );
59780 
59781    xla_ae_lines_pkg.set_ccid(
59782     p_code_combination_id          => l_ccid
59783   , p_value_type_code              => l_adr_value_type_code
59784   , p_transaction_coa_id           => l_adr_transaction_coa_id
59785   , p_accounting_coa_id            => l_adr_accounting_coa_id
59786   , p_adr_code                     => 'AP_INVOICE_DIST'
59787   , p_adr_type_code                => 'S'
59788   , p_component_type               => l_component_type
59789   , p_component_code               => l_component_code
59790   , p_component_type_code          => l_component_type_code
59791   , p_component_appl_id            => l_component_appl_id
59792   , p_amb_context_code             => l_amb_context_code
59793   , p_side                         => 'NA'
59794   );
59795 
59796 
59797    --
59798    --
59799    END IF;
59800    --
59801    -- Bug 4922099
59802    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59803           (NVL(l_enc_upg_option, 'N') = 'O')
59804         ) AND
59805         (l_bflow_method_code = 'PRIOR_ENTRY')
59806       )
59807    THEN
59808       IF
59809       --
59810       1 = 2
59814                                     (p_appli_s_name            => 'XLA'
59811       --
59812       THEN
59813       xla_accounting_err_pkg.build_message
59815                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59816                                     ,p_token_1                 => 'LINE_NUMBER'
59817                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59818                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59819                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59820                                                                              l_component_type
59821                                                                             ,l_component_code
59822                                                                             ,l_component_type_code
59823                                                                             ,l_component_appl_id
59824                                                                             ,l_amb_context_code
59825                                                                             ,l_entity_code
59826                                                                             ,l_event_class_code
59827                                                                            )
59828                                     ,p_token_3                 => 'OWNER'
59829                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59830                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59831                                                                           ,p_lookup_code    => l_component_type_code
59832                                                                          )
59833                                     ,p_token_4                 => 'PRODUCT_NAME'
59834                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59835                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59836                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59837                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59838                                     ,p_ae_header_id            =>  NULL
59839                                        );
59840 
59841         IF (C_LEVEL_ERROR>= g_log_level) THEN
59842                  trace
59843                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59844                       ,p_level    => C_LEVEL_ERROR
59845                       ,p_module   => l_log_module);
59846         END IF;
59847       END IF;
59848    END IF;
59849    --
59850    --
59851    ------------------------------------------------------------------------------------------------
59852    -- 4219869 Business Flow
59853    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59854    -- Prior Entry.  Currently, the following code is always generated.
59855    ------------------------------------------------------------------------------------------------
59856    XLA_AE_LINES_PKG.ValidateCurrentLine;
59857 
59858    ------------------------------------------------------------------------------------
59859    -- 4219869 Business Flow
59860    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59861    ------------------------------------------------------------------------------------
59862    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59863 
59864    ----------------------------------------------------------------------------------
59865    -- 4219869 Business Flow
59866    -- Update journal entry status -- Need to generate this within IF <condition>
59867    ----------------------------------------------------------------------------------
59868    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59869          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59870          ,p_balance_type_code => l_balance_type_code
59871          );
59872 
59873    -------------------------------------------------------------------------------------------
59874    -- 4262811 - Generate the Accrual Reversal lines
59875    -------------------------------------------------------------------------------------------
59876    BEGIN
59877       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59878                               (g_array_event(p_event_id).array_value_num('header_index'));
59879       IF l_acc_rev_flag IS NULL THEN
59880          l_acc_rev_flag := 'N';
59881       END IF;
59882    EXCEPTION
59883       WHEN OTHERS THEN
59884          l_acc_rev_flag := 'N';
59885    END;
59886    --
59887    IF (l_acc_rev_flag = 'Y') THEN
59888 
59889        -- 4645092  ------------------------------------------------------------------------------
59890        -- To allow MPA report to determine if it should generate report process
59891        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59892        ------------------------------------------------------------------------------------------
59893 
59894        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59895        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59896    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59897    -- call ADRs
59898    -- Bug 4922099
59899    --
59900    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59901         (NVL(l_actual_upg_option, 'N') = 'O') OR
59902         (NVL(l_enc_upg_option, 'N') = 'O')
59903       )
59907    --
59904    THEN
59905    NULL;
59906    --
59908    
59909   l_ccid := AcctDerRule_35(
59910            p_application_id           => p_application_id
59911          , p_ae_header_id             => l_ae_header_id 
59912 , p_source_25 => p_source_25
59913          , x_transaction_coa_id       => l_adr_transaction_coa_id
59914          , x_accounting_coa_id        => l_adr_accounting_coa_id
59915          , x_value_type_code          => l_adr_value_type_code
59916          , p_side                     => 'NA'
59917    );
59918 
59919    xla_ae_lines_pkg.set_ccid(
59920     p_code_combination_id          => l_ccid
59921   , p_value_type_code              => l_adr_value_type_code
59922   , p_transaction_coa_id           => l_adr_transaction_coa_id
59923   , p_accounting_coa_id            => l_adr_accounting_coa_id
59924   , p_adr_code                     => 'AP_INVOICE_DIST'
59925   , p_adr_type_code                => 'S'
59926   , p_component_type               => l_component_type
59927   , p_component_code               => l_component_code
59928   , p_component_type_code          => l_component_type_code
59929   , p_component_appl_id            => l_component_appl_id
59930   , p_amb_context_code             => l_amb_context_code
59931   , p_side                         => 'NA'
59932   );
59933 
59934 
59935    --
59936    --
59937    END IF;
59938 
59939        --
59940        -- Update the line information that should be overwritten
59941        --
59942        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59943                                          p_header_num   => 1);
59944        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59945 
59946        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59947 
59948        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59949           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59950        END IF;
59951 
59952       --
59953       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59954       --
59955       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59956           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59957       ELSE
59958           ---------------------------------------------------------------------------------------------------
59959           -- 4262811a Switch Sign
59960           ---------------------------------------------------------------------------------------------------
59961           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59962           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59963                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59964           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59965                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59966           -- 5132302
59967           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59968                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59969 
59970       END IF;
59971 
59972       -- 4955764
59973       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59974       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59975 
59976 
59977       XLA_AE_LINES_PKG.ValidateCurrentLine;
59978       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59979 
59980       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59981                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59982                ,p_balance_type_code => l_balance_type_code);
59983 
59984    END IF;
59985 
59986    -----------------------------------------------------------------------------------------
59987    -- 4262811 Multiperiod Accounting
59988    -----------------------------------------------------------------------------------------
59989      -- No MPA option is assigned.
59990 
59991 
59992 END IF;
59993 END IF;
59994 --
59995 
59996 --
59997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59998    trace
59999       (p_msg      => 'END of AcctLineType_126'
60000       ,p_level    => C_LEVEL_PROCEDURE
60001       ,p_module   => l_log_module);
60002 END IF;
60003 --
60004 EXCEPTION
60005   WHEN xla_exceptions_pkg.application_exception THEN
60006       RAISE;
60007   WHEN OTHERS THEN
60008        xla_exceptions_pkg.raise_message
60009            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_126');
60010 END AcctLineType_126;
60011 --
60012 
60013 ---------------------------------------
60014 --
60015 -- PRIVATE FUNCTION
60016 --         AcctLineType_127
60017 --
60018 ---------------------------------------
60019 PROCEDURE AcctLineType_127 (
60020   p_application_id        IN NUMBER
60021  ,p_event_id              IN NUMBER
60022  ,p_calculate_acctd_flag  IN VARCHAR2
60023  ,p_calculate_g_l_flag    IN VARCHAR2
60024  ,p_actual_flag           IN OUT VARCHAR2
60025  ,p_balance_type_code     OUT VARCHAR2
60029  , p_source_1            IN VARCHAR2
60026  ,p_gain_or_loss_ref      OUT VARCHAR2
60027  
60028 --Invoice Distribution Description
60030 --Invoice Distribution Ledger Amount
60031  , p_source_16            IN NUMBER
60032 --Invoice Distribution Account
60033  , p_source_25            IN NUMBER
60034 --Invoice Distribution Type
60035  , p_source_28            IN VARCHAR2
60036  , p_source_28_meaning    IN VARCHAR2
60037 --Accounting Reversal Indicator
60038  , p_source_58            IN VARCHAR2
60039 --Distribution Link Type
60040  , p_source_60            IN VARCHAR2
60041 --Allocation to Main Distribution Identifier
60042  , p_source_62            IN NUMBER
60043 --Invoice Identifier
60044  , p_source_63            IN NUMBER
60045 --Invoice Distribution Identifier
60046  , p_source_69            IN NUMBER
60047 --Payables Encumbrance Upgrade Credit Account
60048  , p_source_70            IN NUMBER
60049 --Payables Encumbrance Upgrade Credit Amount
60050  , p_source_71            IN NUMBER
60051 --Invoice Currency Code
60052  , p_source_72            IN VARCHAR2
60053 --Payables Encumbrance Upgrade Credit Base Amount
60054  , p_source_73            IN NUMBER
60055 --Payables Encumbrance Upgrade Debit Account
60056  , p_source_74            IN NUMBER
60057 --Payables Encumbrance Upgrade Debit Amount
60058  , p_source_75            IN NUMBER
60059 --Payables Encumbrance Upgrade Debit Base Amount
60060  , p_source_76            IN NUMBER
60061 --Payables Encumbrance Upgrade Option
60062  , p_source_77            IN VARCHAR2
60063 --Invoice Distribution Amount
60064  , p_source_78            IN NUMBER
60065 --Deferred Accounting End Date
60066  , p_source_82            IN DATE
60067 --Deferred Accounting Option
60068  , p_source_83            IN VARCHAR2
60069 --Deferred Accounting Start Date
60070  , p_source_84            IN DATE
60071 --Override Accounted Amount Indicator
60072  , p_source_85            IN VARCHAR2
60073  , p_source_85_meaning    IN VARCHAR2
60074 --Invoice Supplier Identifier
60075  , p_source_86            IN NUMBER
60076 --Invoice Supplier Site Identifier
60077  , p_source_87            IN NUMBER
60078 --Third Party Type
60079  , p_source_88            IN VARCHAR2
60080 --Parent Reversal Identifier
60081  , p_source_89            IN NUMBER
60082 --Invoice Distribution Statistical Amount
60083  , p_source_90            IN NUMBER
60084 --Invoice Distribution Tax Line Identifier
60085  , p_source_91            IN NUMBER
60086 --Invoice Distribution Tax Distribution Identifier from Tax
60087  , p_source_92            IN NUMBER
60088 --Invoice Distribution Summary Tax Line Identifier
60089  , p_source_93            IN NUMBER
60090 --Payables Upgrade Credit Encumbrance Type Identifier
60091  , p_source_94            IN NUMBER
60092 --Payables Upgrade Debit Encumbrance Type Identifier
60093  , p_source_95            IN NUMBER
60094 --Business Flow Accounts Payable Application Identifier
60095  , p_source_96            IN NUMBER
60096 --Business Flow Invoice Distribution Type
60097  , p_source_97            IN VARCHAR2
60098 --Business Flow Invoice Entity Code
60099  , p_source_98            IN VARCHAR2
60100 --Business Flow Invoice Distribution Identifier
60101  , p_source_99            IN NUMBER
60102 --Business Flow Invoice Identifier
60103  , p_source_100            IN NUMBER
60104 --Invoice Exchange Date
60105  , p_source_146            IN DATE
60106 --Invoice Exchange Rate
60107  , p_source_147            IN NUMBER
60108 --Invoice Exchange Rate Type
60109  , p_source_148            IN VARCHAR2
60110 )
60111 IS
60112 
60113 l_component_type              VARCHAR2(80);
60114 l_component_code              VARCHAR2(30);
60115 l_component_type_code         VARCHAR2(1);
60116 l_component_appl_id           INTEGER;
60117 l_amb_context_code            VARCHAR2(30);
60118 l_entity_code                 VARCHAR2(30);
60119 l_event_class_code            VARCHAR2(30);
60120 l_ae_header_id                NUMBER;
60121 l_event_type_code             VARCHAR2(30);
60122 l_line_definition_code        VARCHAR2(30);
60123 l_line_definition_owner_code  VARCHAR2(1);
60124 --
60125 -- adr variables
60126 l_segment                     VARCHAR2(30);
60127 l_ccid                        NUMBER;
60128 l_adr_transaction_coa_id      NUMBER;
60129 l_adr_accounting_coa_id       NUMBER;
60130 l_adr_flexfield_segment_code  VARCHAR2(30);
60131 l_adr_flex_value_set_id       NUMBER;
60132 l_adr_value_type_code         VARCHAR2(30);
60133 l_adr_value_combination_id    NUMBER;
60134 l_adr_value_segment_code      VARCHAR2(30);
60135 
60136 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60137 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60138 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60139 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60140 
60141 -- 4262811 Variables ------------------------------------------------------------------------------------------
60142 l_entered_amt_idx             NUMBER;
60143 l_accted_amt_idx              NUMBER;
60144 l_acc_rev_flag                VARCHAR2(1);
60145 l_accrual_line_num            NUMBER;
60146 l_tmp_amt                     NUMBER;
60147 l_acc_rev_natural_side_code   VARCHAR2(1);
60148 
60149 l_num_entries                 NUMBER;
60150 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60151 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60152 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60156 
60153 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60154 l_recog_line_1                NUMBER;
60155 l_recog_line_2                NUMBER;
60157 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60158 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60159 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60160 
60161 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60162 
60163 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60164 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60165 
60166 ---------------------------------------------------------------------------------------------------------------
60167 
60168 
60169 --
60170 -- bulk performance
60171 --
60172 l_balance_type_code           VARCHAR2(1);
60173 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60174 l_log_module                  VARCHAR2(240);
60175 
60176 --
60177 -- Upgrade strategy
60178 --
60179 l_actual_upg_option           VARCHAR2(1);
60180 l_enc_upg_option           VARCHAR2(1);
60181 
60182 --
60183 BEGIN
60184 --
60185 IF g_log_enabled THEN
60186       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
60187 END IF;
60188 --
60189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60190 
60191       trace
60192          (p_msg      => 'BEGIN of AcctLineType_127'
60193          ,p_level    => C_LEVEL_PROCEDURE
60194          ,p_module   => l_log_module);
60195 
60196 END IF;
60197 --
60198 l_component_type             := 'AMB_JLT';
60199 l_component_code             := 'AP_FREIGHT_EXPENSE_INV';
60200 l_component_type_code        := 'S';
60201 l_component_appl_id          :=  200;
60202 l_amb_context_code           := 'DEFAULT';
60203 l_entity_code                := 'AP_INVOICES';
60204 l_event_class_code           := 'INVOICES';
60205 l_event_type_code            := 'INVOICES_ALL';
60206 l_line_definition_owner_code := 'S';
60207 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
60208 --
60209 l_balance_type_code          := 'A';
60210 l_segment                     := NULL;
60211 l_ccid                        := NULL;
60212 l_adr_transaction_coa_id      := NULL;
60213 l_adr_accounting_coa_id       := NULL;
60214 l_adr_flexfield_segment_code  := NULL;
60215 l_adr_flex_value_set_id       := NULL;
60216 l_adr_value_type_code         := NULL;
60217 l_adr_value_combination_id    := NULL;
60218 l_adr_value_segment_code      := NULL;
60219 
60220 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60221 l_bflow_class_code           := '';    -- 4219869 Business Flow
60222 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60223 l_budgetary_control_flag     := 'N';
60224 
60225 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60226 l_bflow_applied_to_amt       := NULL; -- 5132302
60227 l_entered_amt_idx            := NULL;          -- 4262811
60228 l_accted_amt_idx             := NULL;          -- 4262811
60229 l_acc_rev_flag               := NULL;          -- 4262811
60230 l_accrual_line_num           := NULL;          -- 4262811
60231 l_tmp_amt                    := NULL;          -- 4262811
60232 --
60233  
60234 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60235     l_balance_type_code <> 'B' THEN
60236 IF NVL(p_source_28,'
60237 ') =  'FREIGHT'
60238  THEN 
60239 
60240    --
60241    XLA_AE_LINES_PKG.SetNewLine;
60242 
60243    p_balance_type_code          := l_balance_type_code;
60244    -- set the flag so later we will know whether the gain loss line needs to be created
60245    
60246    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60247      p_actual_flag :='A';
60248    END IF;
60249 
60250    --
60251    -- bulk performance
60252    --
60253    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60254                                       p_header_num   => 0); -- 4262811
60255    --
60256    -- set accounting line options
60257    --
60258    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60259            p_natural_side_code          => 'D'
60260          , p_gain_or_loss_flag          => 'N'
60261          , p_gl_transfer_mode_code      => 'S'
60262          , p_acct_entry_type_code       => 'A'
60263          , p_switch_side_flag           => 'Y'
60264          , p_merge_duplicate_code       => 'A'
60265          );
60266    --
60267    l_acc_rev_natural_side_code := 'C';  -- 4262811
60268    -- 
60269    --
60270    -- set accounting line type info
60271    --
60272    xla_ae_lines_pkg.SetAcctLineType
60273       (p_component_type             => l_component_type
60274       ,p_event_type_code            => l_event_type_code
60275       ,p_line_definition_owner_code => l_line_definition_owner_code
60276       ,p_line_definition_code       => l_line_definition_code
60277       ,p_accounting_line_code       => l_component_code
60278       ,p_accounting_line_type_code  => l_component_type_code
60279       ,p_accounting_line_appl_id    => l_component_appl_id
60280       ,p_amb_context_code           => l_amb_context_code
60281       ,p_entity_code                => l_entity_code
60282       ,p_event_class_code           => l_event_class_code);
60283    --
60287            p_accounting_class_code  => 'FREIGHT'
60284    -- set accounting class
60285    --
60286    xla_ae_lines_pkg.SetAcctClass(
60288          , p_ae_header_id           => l_ae_header_id
60289          );
60290 
60291    --
60292    -- set rounding class
60293    --
60294    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60295                       'FREIGHT';
60296 
60297    --
60298    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60299    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60300    --
60301    -- bulk performance
60302    --
60303    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60304 
60305    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60306       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60307 
60308    -- 4955764
60309    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60311 
60312    -- 4458381 Public Sector Enh
60313    
60314    --
60315    -- set accounting attributes for the line type
60316    --
60317    l_entered_amt_idx := 24;
60318    l_accted_amt_idx  := 29;
60319    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
60320    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60321    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
60322    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60323    l_rec_acct_attrs.array_num_value(2)  := 
60324 xla_ae_sources_pkg.GetSystemSourceNum(
60325    p_source_code           => 'XLA_EVENT_APPL_ID'
60326  , p_source_type_code      => 'Y'
60327  , p_source_application_id =>  602
60328 );
60329    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60330    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
60331    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60332    l_rec_acct_attrs.array_char_value(4)  := 
60333 xla_ae_sources_pkg.GetSystemSourceChar(
60334    p_source_code           => 'XLA_ENTITY_CODE'
60335  , p_source_type_code      => 'Y'
60336  , p_source_application_id =>  602
60337 );
60338    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60339    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
60340    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60341    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
60342    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
60343    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
60344    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
60345    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
60346    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60347    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
60348    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
60349    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
60350    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
60351    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
60352    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60353    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
60354    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
60355    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
60356    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
60357    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
60358    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
60359    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
60360    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
60361    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
60362    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
60363    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
60364    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
60365    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
60366    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
60367    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
60368    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
60369    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
60370    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
60371    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
60372    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
60373    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
60374    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
60375    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
60376    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
60377    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
60378    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
60379    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
60380    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
60381    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
60382    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
60386    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
60383    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
60384    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
60385    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
60387    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
60388    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
60389    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
60390    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
60391    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
60392    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
60393    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
60394    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
60395    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
60396    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
60397    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
60398    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
60399    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
60400    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
60401    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
60402    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
60403    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
60404    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
60405    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
60406    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
60407    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
60408    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
60409    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
60410    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
60411    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
60412    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
60413    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
60414    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
60415    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
60416    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
60417    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
60418 
60419    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60420    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60421 
60422    ---------------------------------------------------------------------------------------------------------------
60423    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60424    ---------------------------------------------------------------------------------------------------------------
60425    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60426 
60427    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60428    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60429 
60430    IF xla_accounting_cache_pkg.GetValueChar
60431          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60432          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60433    AND l_bflow_method_code = 'PRIOR_ENTRY'
60434 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60435    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60436          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60437        )
60438    THEN
60439          xla_ae_lines_pkg.BflowUpgEntry
60440            (p_business_method_code    => l_bflow_method_code
60441            ,p_business_class_code     => l_bflow_class_code
60442            ,p_balance_type            => l_balance_type_code);
60443    ELSE
60444       NULL;
60445 -- No business flow processing for business flow method of NONE.
60446    END IF;
60447 
60448    --
60449    -- call analytical criteria
60450    --
60451    
60452    --
60453    -- call description
60454    --
60455    
60456 xla_ae_lines_pkg.SetLineDescription(
60457    p_ae_header_id => l_ae_header_id
60458   ,p_description  => Description_2 (
60459      p_application_id         => p_application_id
60460    , p_ae_header_id           => l_ae_header_id 
60461 , p_source_1 => p_source_1
60462    )
60463 );
60464 
60465 
60466    --
60467    -- call ADRs
60468    -- Bug 4922099
60469    --
60470    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60471         (NVL(l_actual_upg_option, 'N') = 'O') OR
60472         (NVL(l_enc_upg_option, 'N') = 'O')
60473       )
60474    THEN
60475    NULL;
60476    --
60477    --
60478    
60479   l_ccid := AcctDerRule_35(
60480            p_application_id           => p_application_id
60481          , p_ae_header_id             => l_ae_header_id 
60482 , p_source_25 => p_source_25
60483          , x_transaction_coa_id       => l_adr_transaction_coa_id
60484          , x_accounting_coa_id        => l_adr_accounting_coa_id
60485          , x_value_type_code          => l_adr_value_type_code
60486          , p_side                     => 'NA'
60487    );
60488 
60489    xla_ae_lines_pkg.set_ccid(
60490     p_code_combination_id          => l_ccid
60491   , p_value_type_code              => l_adr_value_type_code
60495   , p_adr_type_code                => 'S'
60492   , p_transaction_coa_id           => l_adr_transaction_coa_id
60493   , p_accounting_coa_id            => l_adr_accounting_coa_id
60494   , p_adr_code                     => 'AP_INVOICE_DIST'
60496   , p_component_type               => l_component_type
60497   , p_component_code               => l_component_code
60498   , p_component_type_code          => l_component_type_code
60499   , p_component_appl_id            => l_component_appl_id
60500   , p_amb_context_code             => l_amb_context_code
60501   , p_side                         => 'NA'
60502   );
60503 
60504 
60505    --
60506    --
60507    END IF;
60508    --
60509    -- Bug 4922099
60510    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60511           (NVL(l_enc_upg_option, 'N') = 'O')
60512         ) AND
60513         (l_bflow_method_code = 'PRIOR_ENTRY')
60514       )
60515    THEN
60516       IF
60517       --
60518       1 = 2
60519       --
60520       THEN
60521       xla_accounting_err_pkg.build_message
60522                                     (p_appli_s_name            => 'XLA'
60523                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60524                                     ,p_token_1                 => 'LINE_NUMBER'
60525                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60526                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60527                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60528                                                                              l_component_type
60529                                                                             ,l_component_code
60530                                                                             ,l_component_type_code
60531                                                                             ,l_component_appl_id
60532                                                                             ,l_amb_context_code
60533                                                                             ,l_entity_code
60534                                                                             ,l_event_class_code
60535                                                                            )
60536                                     ,p_token_3                 => 'OWNER'
60537                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60538                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60539                                                                           ,p_lookup_code    => l_component_type_code
60540                                                                          )
60541                                     ,p_token_4                 => 'PRODUCT_NAME'
60542                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60543                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60544                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60545                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60546                                     ,p_ae_header_id            =>  NULL
60547                                        );
60548 
60549         IF (C_LEVEL_ERROR>= g_log_level) THEN
60550                  trace
60551                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60552                       ,p_level    => C_LEVEL_ERROR
60553                       ,p_module   => l_log_module);
60554         END IF;
60555       END IF;
60556    END IF;
60557    --
60558    --
60559    ------------------------------------------------------------------------------------------------
60560    -- 4219869 Business Flow
60561    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60562    -- Prior Entry.  Currently, the following code is always generated.
60563    ------------------------------------------------------------------------------------------------
60564    XLA_AE_LINES_PKG.ValidateCurrentLine;
60565 
60566    ------------------------------------------------------------------------------------
60567    -- 4219869 Business Flow
60568    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60569    ------------------------------------------------------------------------------------
60570    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60571 
60572    ----------------------------------------------------------------------------------
60573    -- 4219869 Business Flow
60574    -- Update journal entry status -- Need to generate this within IF <condition>
60575    ----------------------------------------------------------------------------------
60576    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60577          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60578          ,p_balance_type_code => l_balance_type_code
60579          );
60580 
60581    -------------------------------------------------------------------------------------------
60582    -- 4262811 - Generate the Accrual Reversal lines
60583    -------------------------------------------------------------------------------------------
60584    BEGIN
60585       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60586                               (g_array_event(p_event_id).array_value_num('header_index'));
60587       IF l_acc_rev_flag IS NULL THEN
60591       WHEN OTHERS THEN
60588          l_acc_rev_flag := 'N';
60589       END IF;
60590    EXCEPTION
60592          l_acc_rev_flag := 'N';
60593    END;
60594    --
60595    IF (l_acc_rev_flag = 'Y') THEN
60596 
60597        -- 4645092  ------------------------------------------------------------------------------
60598        -- To allow MPA report to determine if it should generate report process
60599        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60600        ------------------------------------------------------------------------------------------
60601 
60602        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60603        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60604    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60605    -- call ADRs
60606    -- Bug 4922099
60607    --
60608    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60609         (NVL(l_actual_upg_option, 'N') = 'O') OR
60610         (NVL(l_enc_upg_option, 'N') = 'O')
60611       )
60612    THEN
60613    NULL;
60614    --
60615    --
60616    
60617   l_ccid := AcctDerRule_35(
60618            p_application_id           => p_application_id
60619          , p_ae_header_id             => l_ae_header_id 
60620 , p_source_25 => p_source_25
60621          , x_transaction_coa_id       => l_adr_transaction_coa_id
60622          , x_accounting_coa_id        => l_adr_accounting_coa_id
60623          , x_value_type_code          => l_adr_value_type_code
60624          , p_side                     => 'NA'
60625    );
60626 
60627    xla_ae_lines_pkg.set_ccid(
60628     p_code_combination_id          => l_ccid
60629   , p_value_type_code              => l_adr_value_type_code
60630   , p_transaction_coa_id           => l_adr_transaction_coa_id
60631   , p_accounting_coa_id            => l_adr_accounting_coa_id
60632   , p_adr_code                     => 'AP_INVOICE_DIST'
60633   , p_adr_type_code                => 'S'
60634   , p_component_type               => l_component_type
60635   , p_component_code               => l_component_code
60636   , p_component_type_code          => l_component_type_code
60637   , p_component_appl_id            => l_component_appl_id
60638   , p_amb_context_code             => l_amb_context_code
60639   , p_side                         => 'NA'
60640   );
60641 
60642 
60643    --
60644    --
60645    END IF;
60646 
60647        --
60648        -- Update the line information that should be overwritten
60649        --
60650        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60651                                          p_header_num   => 1);
60652        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60653 
60654        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60655 
60656        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60657           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60658        END IF;
60659 
60660       --
60661       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60662       --
60663       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60664           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60665       ELSE
60666           ---------------------------------------------------------------------------------------------------
60667           -- 4262811a Switch Sign
60668           ---------------------------------------------------------------------------------------------------
60669           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60670           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60671                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60672           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60673                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60674           -- 5132302
60675           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60676                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60677 
60678       END IF;
60679 
60680       -- 4955764
60681       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60682       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60683 
60684 
60685       XLA_AE_LINES_PKG.ValidateCurrentLine;
60686       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60687 
60688       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60689                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60690                ,p_balance_type_code => l_balance_type_code);
60691 
60692    END IF;
60693 
60694    -----------------------------------------------------------------------------------------
60695    -- 4262811 Multiperiod Accounting
60696    -----------------------------------------------------------------------------------------
60697      -- No MPA option is assigned.
60698 
60699 
60700 END IF;
60701 END IF;
60702 --
60703 
60704 --
60705 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60709       ,p_module   => l_log_module);
60706    trace
60707       (p_msg      => 'END of AcctLineType_127'
60708       ,p_level    => C_LEVEL_PROCEDURE
60710 END IF;
60711 --
60712 EXCEPTION
60713   WHEN xla_exceptions_pkg.application_exception THEN
60714       RAISE;
60715   WHEN OTHERS THEN
60716        xla_exceptions_pkg.raise_message
60717            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_127');
60718 END AcctLineType_127;
60719 --
60720 
60721 ---------------------------------------
60722 --
60723 -- PRIVATE FUNCTION
60724 --         AcctLineType_128
60725 --
60726 ---------------------------------------
60727 PROCEDURE AcctLineType_128 (
60728   p_application_id        IN NUMBER
60729  ,p_event_id              IN NUMBER
60730  ,p_calculate_acctd_flag  IN VARCHAR2
60731  ,p_calculate_g_l_flag    IN VARCHAR2
60732  ,p_actual_flag           IN OUT VARCHAR2
60733  ,p_balance_type_code     OUT VARCHAR2
60734  ,p_gain_or_loss_ref      OUT VARCHAR2
60735  
60736 --Invoice Distribution Description
60737  , p_source_1            IN VARCHAR2
60738 --Invoice Distribution Ledger Amount
60739  , p_source_16            IN NUMBER
60740 --Invoice Distribution Account
60741  , p_source_25            IN NUMBER
60742 --Invoice Distribution Type
60743  , p_source_28            IN VARCHAR2
60744  , p_source_28_meaning    IN VARCHAR2
60745 --Accounting Reversal Indicator
60746  , p_source_58            IN VARCHAR2
60747 --Distribution Link Type
60748  , p_source_60            IN VARCHAR2
60749 --Allocation to Main Distribution Identifier
60750  , p_source_62            IN NUMBER
60751 --Invoice Identifier
60752  , p_source_63            IN NUMBER
60753 --Invoice Distribution Identifier
60754  , p_source_69            IN NUMBER
60755 --Payables Encumbrance Upgrade Credit Account
60756  , p_source_70            IN NUMBER
60757 --Payables Encumbrance Upgrade Credit Amount
60758  , p_source_71            IN NUMBER
60759 --Invoice Currency Code
60760  , p_source_72            IN VARCHAR2
60761 --Payables Encumbrance Upgrade Credit Base Amount
60762  , p_source_73            IN NUMBER
60763 --Payables Encumbrance Upgrade Debit Account
60764  , p_source_74            IN NUMBER
60765 --Payables Encumbrance Upgrade Debit Amount
60766  , p_source_75            IN NUMBER
60767 --Payables Encumbrance Upgrade Debit Base Amount
60768  , p_source_76            IN NUMBER
60769 --Payables Encumbrance Upgrade Option
60770  , p_source_77            IN VARCHAR2
60771 --Invoice Distribution Amount
60772  , p_source_78            IN NUMBER
60773 --Deferred Accounting End Date
60774  , p_source_82            IN DATE
60775 --Deferred Accounting Option
60776  , p_source_83            IN VARCHAR2
60777 --Deferred Accounting Start Date
60778  , p_source_84            IN DATE
60779 --Override Accounted Amount Indicator
60780  , p_source_85            IN VARCHAR2
60781  , p_source_85_meaning    IN VARCHAR2
60782 --Invoice Supplier Identifier
60783  , p_source_86            IN NUMBER
60784 --Invoice Supplier Site Identifier
60785  , p_source_87            IN NUMBER
60786 --Third Party Type
60787  , p_source_88            IN VARCHAR2
60788 --Parent Reversal Identifier
60789  , p_source_89            IN NUMBER
60790 --Invoice Distribution Statistical Amount
60791  , p_source_90            IN NUMBER
60792 --Invoice Distribution Tax Line Identifier
60793  , p_source_91            IN NUMBER
60794 --Invoice Distribution Tax Distribution Identifier from Tax
60795  , p_source_92            IN NUMBER
60796 --Invoice Distribution Summary Tax Line Identifier
60797  , p_source_93            IN NUMBER
60798 --Payables Upgrade Credit Encumbrance Type Identifier
60799  , p_source_94            IN NUMBER
60800 --Payables Upgrade Debit Encumbrance Type Identifier
60801  , p_source_95            IN NUMBER
60802 --Business Flow Accounts Payable Application Identifier
60803  , p_source_96            IN NUMBER
60804 --Business Flow Invoice Distribution Type
60805  , p_source_97            IN VARCHAR2
60806 --Business Flow Invoice Entity Code
60807  , p_source_98            IN VARCHAR2
60808 --Business Flow Invoice Distribution Identifier
60809  , p_source_99            IN NUMBER
60810 --Business Flow Invoice Identifier
60811  , p_source_100            IN NUMBER
60812 --Invoice Exchange Date
60813  , p_source_146            IN DATE
60814 --Invoice Exchange Rate
60815  , p_source_147            IN NUMBER
60816 --Invoice Exchange Rate Type
60817  , p_source_148            IN VARCHAR2
60818 )
60819 IS
60820 
60821 l_component_type              VARCHAR2(80);
60822 l_component_code              VARCHAR2(30);
60823 l_component_type_code         VARCHAR2(1);
60824 l_component_appl_id           INTEGER;
60825 l_amb_context_code            VARCHAR2(30);
60826 l_entity_code                 VARCHAR2(30);
60827 l_event_class_code            VARCHAR2(30);
60828 l_ae_header_id                NUMBER;
60829 l_event_type_code             VARCHAR2(30);
60830 l_line_definition_code        VARCHAR2(30);
60831 l_line_definition_owner_code  VARCHAR2(1);
60832 --
60833 -- adr variables
60834 l_segment                     VARCHAR2(30);
60835 l_ccid                        NUMBER;
60836 l_adr_transaction_coa_id      NUMBER;
60837 l_adr_accounting_coa_id       NUMBER;
60838 l_adr_flexfield_segment_code  VARCHAR2(30);
60839 l_adr_flex_value_set_id       NUMBER;
60840 l_adr_value_type_code         VARCHAR2(30);
60841 l_adr_value_combination_id    NUMBER;
60845 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60842 l_adr_value_segment_code      VARCHAR2(30);
60843 
60844 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60846 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60847 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60848 
60849 -- 4262811 Variables ------------------------------------------------------------------------------------------
60850 l_entered_amt_idx             NUMBER;
60851 l_accted_amt_idx              NUMBER;
60852 l_acc_rev_flag                VARCHAR2(1);
60853 l_accrual_line_num            NUMBER;
60854 l_tmp_amt                     NUMBER;
60855 l_acc_rev_natural_side_code   VARCHAR2(1);
60856 
60857 l_num_entries                 NUMBER;
60858 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60859 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60860 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60861 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60862 l_recog_line_1                NUMBER;
60863 l_recog_line_2                NUMBER;
60864 
60865 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60866 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60867 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60868 
60869 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60870 
60871 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60872 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60873 
60874 ---------------------------------------------------------------------------------------------------------------
60875 
60876 
60877 --
60878 -- bulk performance
60879 --
60880 l_balance_type_code           VARCHAR2(1);
60881 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60882 l_log_module                  VARCHAR2(240);
60883 
60884 --
60885 -- Upgrade strategy
60886 --
60887 l_actual_upg_option           VARCHAR2(1);
60888 l_enc_upg_option           VARCHAR2(1);
60889 
60890 --
60891 BEGIN
60892 --
60893 IF g_log_enabled THEN
60894       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
60895 END IF;
60896 --
60897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60898 
60899       trace
60900          (p_msg      => 'BEGIN of AcctLineType_128'
60901          ,p_level    => C_LEVEL_PROCEDURE
60902          ,p_module   => l_log_module);
60903 
60904 END IF;
60905 --
60906 l_component_type             := 'AMB_JLT';
60907 l_component_code             := 'AP_FREIGHT_EXPENSE_PREPAY';
60908 l_component_type_code        := 'S';
60909 l_component_appl_id          :=  200;
60910 l_amb_context_code           := 'DEFAULT';
60911 l_entity_code                := 'AP_INVOICES';
60912 l_event_class_code           := 'PREPAYMENTS';
60913 l_event_type_code            := 'PREPAYMENTS_ALL';
60914 l_line_definition_owner_code := 'S';
60915 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
60916 --
60917 l_balance_type_code          := 'A';
60918 l_segment                     := NULL;
60919 l_ccid                        := NULL;
60920 l_adr_transaction_coa_id      := NULL;
60921 l_adr_accounting_coa_id       := NULL;
60922 l_adr_flexfield_segment_code  := NULL;
60923 l_adr_flex_value_set_id       := NULL;
60924 l_adr_value_type_code         := NULL;
60925 l_adr_value_combination_id    := NULL;
60926 l_adr_value_segment_code      := NULL;
60927 
60928 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60929 l_bflow_class_code           := '';    -- 4219869 Business Flow
60930 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60931 l_budgetary_control_flag     := 'N';
60932 
60933 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60934 l_bflow_applied_to_amt       := NULL; -- 5132302
60935 l_entered_amt_idx            := NULL;          -- 4262811
60936 l_accted_amt_idx             := NULL;          -- 4262811
60937 l_acc_rev_flag               := NULL;          -- 4262811
60938 l_accrual_line_num           := NULL;          -- 4262811
60939 l_tmp_amt                    := NULL;          -- 4262811
60940 --
60941  
60942 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60943     l_balance_type_code <> 'B' THEN
60944 IF NVL(p_source_28,'
60945 ') =  'FREIGHT'
60946  THEN 
60947 
60948    --
60949    XLA_AE_LINES_PKG.SetNewLine;
60950 
60951    p_balance_type_code          := l_balance_type_code;
60952    -- set the flag so later we will know whether the gain loss line needs to be created
60953    
60954    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60955      p_actual_flag :='A';
60956    END IF;
60957 
60958    --
60959    -- bulk performance
60960    --
60961    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60962                                       p_header_num   => 0); -- 4262811
60963    --
60964    -- set accounting line options
60965    --
60966    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60967            p_natural_side_code          => 'D'
60968          , p_gain_or_loss_flag          => 'N'
60969          , p_gl_transfer_mode_code      => 'S'
60973          );
60970          , p_acct_entry_type_code       => 'A'
60971          , p_switch_side_flag           => 'Y'
60972          , p_merge_duplicate_code       => 'A'
60974    --
60975    l_acc_rev_natural_side_code := 'C';  -- 4262811
60976    -- 
60977    --
60978    -- set accounting line type info
60979    --
60980    xla_ae_lines_pkg.SetAcctLineType
60981       (p_component_type             => l_component_type
60982       ,p_event_type_code            => l_event_type_code
60983       ,p_line_definition_owner_code => l_line_definition_owner_code
60984       ,p_line_definition_code       => l_line_definition_code
60985       ,p_accounting_line_code       => l_component_code
60986       ,p_accounting_line_type_code  => l_component_type_code
60987       ,p_accounting_line_appl_id    => l_component_appl_id
60988       ,p_amb_context_code           => l_amb_context_code
60989       ,p_entity_code                => l_entity_code
60990       ,p_event_class_code           => l_event_class_code);
60991    --
60992    -- set accounting class
60993    --
60994    xla_ae_lines_pkg.SetAcctClass(
60995            p_accounting_class_code  => 'FREIGHT'
60996          , p_ae_header_id           => l_ae_header_id
60997          );
60998 
60999    --
61000    -- set rounding class
61001    --
61002    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61003                       'FREIGHT';
61004 
61005    --
61006    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61007    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61008    --
61009    -- bulk performance
61010    --
61011    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61012 
61013    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61014       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61015 
61016    -- 4955764
61017    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61018       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61019 
61020    -- 4458381 Public Sector Enh
61021    
61022    --
61023    -- set accounting attributes for the line type
61024    --
61025    l_entered_amt_idx := 23;
61026    l_accted_amt_idx  := 28;
61027    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
61028    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61029    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
61030    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
61031    l_rec_acct_attrs.array_num_value(2)  := 
61032 xla_ae_sources_pkg.GetSystemSourceNum(
61033    p_source_code           => 'XLA_EVENT_APPL_ID'
61034  , p_source_type_code      => 'Y'
61035  , p_source_application_id =>  602
61036 );
61037    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
61038    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
61039    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
61040    l_rec_acct_attrs.array_char_value(4)  := 
61041 xla_ae_sources_pkg.GetSystemSourceChar(
61042    p_source_code           => 'XLA_ENTITY_CODE'
61043  , p_source_type_code      => 'Y'
61044  , p_source_application_id =>  602
61045 );
61046    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
61047    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
61048    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
61049    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
61050    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
61051    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
61052    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61053    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
61054    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
61055    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
61056    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
61057    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
61058    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61059    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
61060    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
61061    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
61062    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
61063    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
61064    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
61065    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
61066    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
61067    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
61068    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
61069    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
61070    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
61071    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
61072    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
61073    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
61074    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
61075    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
61079    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
61076    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
61077    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
61078    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
61080    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
61081    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
61082    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
61083    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
61084    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
61085    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
61086    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
61087    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
61088    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
61089    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
61090    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
61091    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
61092    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
61093    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
61094    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
61095    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
61096    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
61097    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
61098    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
61099    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
61100    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
61101    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
61102    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
61103    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
61104    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
61105    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
61106    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
61107    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
61108    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
61109    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
61110    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
61111    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
61112    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
61113    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
61114    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
61115    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
61116    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
61117    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
61118    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
61119    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
61120    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
61121    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
61122    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
61123    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
61124 
61125    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61126    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61127 
61128    ---------------------------------------------------------------------------------------------------------------
61129    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61130    ---------------------------------------------------------------------------------------------------------------
61131    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61132 
61133    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61134    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61135 
61136    IF xla_accounting_cache_pkg.GetValueChar
61137          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61138          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61139    AND l_bflow_method_code = 'PRIOR_ENTRY'
61140 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61141    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61142          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61143        )
61144    THEN
61145          xla_ae_lines_pkg.BflowUpgEntry
61146            (p_business_method_code    => l_bflow_method_code
61147            ,p_business_class_code     => l_bflow_class_code
61148            ,p_balance_type            => l_balance_type_code);
61149    ELSE
61150       NULL;
61151 -- No business flow processing for business flow method of NONE.
61152    END IF;
61153 
61154    --
61155    -- call analytical criteria
61156    --
61157    
61158    --
61159    -- call description
61160    --
61161    
61162 xla_ae_lines_pkg.SetLineDescription(
61163    p_ae_header_id => l_ae_header_id
61164   ,p_description  => Description_2 (
61165      p_application_id         => p_application_id
61166    , p_ae_header_id           => l_ae_header_id 
61167 , p_source_1 => p_source_1
61168    )
61169 );
61170 
61171 
61172    --
61173    -- call ADRs
61174    -- Bug 4922099
61175    --
61176    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61180    THEN
61177         (NVL(l_actual_upg_option, 'N') = 'O') OR
61178         (NVL(l_enc_upg_option, 'N') = 'O')
61179       )
61181    NULL;
61182    --
61183    --
61184    
61185   l_ccid := AcctDerRule_35(
61186            p_application_id           => p_application_id
61187          , p_ae_header_id             => l_ae_header_id 
61188 , p_source_25 => p_source_25
61189          , x_transaction_coa_id       => l_adr_transaction_coa_id
61190          , x_accounting_coa_id        => l_adr_accounting_coa_id
61191          , x_value_type_code          => l_adr_value_type_code
61192          , p_side                     => 'NA'
61193    );
61194 
61195    xla_ae_lines_pkg.set_ccid(
61196     p_code_combination_id          => l_ccid
61197   , p_value_type_code              => l_adr_value_type_code
61198   , p_transaction_coa_id           => l_adr_transaction_coa_id
61199   , p_accounting_coa_id            => l_adr_accounting_coa_id
61200   , p_adr_code                     => 'AP_INVOICE_DIST'
61201   , p_adr_type_code                => 'S'
61202   , p_component_type               => l_component_type
61203   , p_component_code               => l_component_code
61204   , p_component_type_code          => l_component_type_code
61205   , p_component_appl_id            => l_component_appl_id
61206   , p_amb_context_code             => l_amb_context_code
61207   , p_side                         => 'NA'
61208   );
61209 
61210 
61211    --
61212    --
61213    END IF;
61214    --
61215    -- Bug 4922099
61216    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61217           (NVL(l_enc_upg_option, 'N') = 'O')
61218         ) AND
61219         (l_bflow_method_code = 'PRIOR_ENTRY')
61220       )
61221    THEN
61222       IF
61223       --
61224       1 = 2
61225       --
61226       THEN
61227       xla_accounting_err_pkg.build_message
61228                                     (p_appli_s_name            => 'XLA'
61229                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61230                                     ,p_token_1                 => 'LINE_NUMBER'
61231                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61232                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61233                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61234                                                                              l_component_type
61235                                                                             ,l_component_code
61236                                                                             ,l_component_type_code
61237                                                                             ,l_component_appl_id
61238                                                                             ,l_amb_context_code
61239                                                                             ,l_entity_code
61240                                                                             ,l_event_class_code
61241                                                                            )
61242                                     ,p_token_3                 => 'OWNER'
61243                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61244                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61245                                                                           ,p_lookup_code    => l_component_type_code
61246                                                                          )
61247                                     ,p_token_4                 => 'PRODUCT_NAME'
61248                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61249                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61250                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61251                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61252                                     ,p_ae_header_id            =>  NULL
61253                                        );
61254 
61255         IF (C_LEVEL_ERROR>= g_log_level) THEN
61256                  trace
61257                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61258                       ,p_level    => C_LEVEL_ERROR
61259                       ,p_module   => l_log_module);
61260         END IF;
61261       END IF;
61262    END IF;
61263    --
61264    --
61265    ------------------------------------------------------------------------------------------------
61266    -- 4219869 Business Flow
61267    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61268    -- Prior Entry.  Currently, the following code is always generated.
61269    ------------------------------------------------------------------------------------------------
61270    XLA_AE_LINES_PKG.ValidateCurrentLine;
61271 
61272    ------------------------------------------------------------------------------------
61273    -- 4219869 Business Flow
61274    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61275    ------------------------------------------------------------------------------------
61276    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61277 
61278    ----------------------------------------------------------------------------------
61279    -- 4219869 Business Flow
61283          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61280    -- Update journal entry status -- Need to generate this within IF <condition>
61281    ----------------------------------------------------------------------------------
61282    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61284          ,p_balance_type_code => l_balance_type_code
61285          );
61286 
61287    -------------------------------------------------------------------------------------------
61288    -- 4262811 - Generate the Accrual Reversal lines
61289    -------------------------------------------------------------------------------------------
61290    BEGIN
61291       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61292                               (g_array_event(p_event_id).array_value_num('header_index'));
61293       IF l_acc_rev_flag IS NULL THEN
61294          l_acc_rev_flag := 'N';
61295       END IF;
61296    EXCEPTION
61297       WHEN OTHERS THEN
61298          l_acc_rev_flag := 'N';
61299    END;
61300    --
61301    IF (l_acc_rev_flag = 'Y') THEN
61302 
61303        -- 4645092  ------------------------------------------------------------------------------
61304        -- To allow MPA report to determine if it should generate report process
61305        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61306        ------------------------------------------------------------------------------------------
61307 
61308        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61309        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61310    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61311    -- call ADRs
61312    -- Bug 4922099
61313    --
61314    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61315         (NVL(l_actual_upg_option, 'N') = 'O') OR
61316         (NVL(l_enc_upg_option, 'N') = 'O')
61317       )
61318    THEN
61319    NULL;
61320    --
61321    --
61322    
61323   l_ccid := AcctDerRule_35(
61324            p_application_id           => p_application_id
61325          , p_ae_header_id             => l_ae_header_id 
61326 , p_source_25 => p_source_25
61327          , x_transaction_coa_id       => l_adr_transaction_coa_id
61328          , x_accounting_coa_id        => l_adr_accounting_coa_id
61329          , x_value_type_code          => l_adr_value_type_code
61330          , p_side                     => 'NA'
61331    );
61332 
61333    xla_ae_lines_pkg.set_ccid(
61334     p_code_combination_id          => l_ccid
61335   , p_value_type_code              => l_adr_value_type_code
61336   , p_transaction_coa_id           => l_adr_transaction_coa_id
61337   , p_accounting_coa_id            => l_adr_accounting_coa_id
61338   , p_adr_code                     => 'AP_INVOICE_DIST'
61339   , p_adr_type_code                => 'S'
61340   , p_component_type               => l_component_type
61341   , p_component_code               => l_component_code
61342   , p_component_type_code          => l_component_type_code
61343   , p_component_appl_id            => l_component_appl_id
61344   , p_amb_context_code             => l_amb_context_code
61345   , p_side                         => 'NA'
61346   );
61347 
61348 
61349    --
61350    --
61351    END IF;
61352 
61353        --
61354        -- Update the line information that should be overwritten
61355        --
61356        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61357                                          p_header_num   => 1);
61358        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61359 
61360        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61361 
61362        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61363           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61364        END IF;
61365 
61366       --
61367       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61368       --
61369       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61370           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61371       ELSE
61372           ---------------------------------------------------------------------------------------------------
61373           -- 4262811a Switch Sign
61374           ---------------------------------------------------------------------------------------------------
61375           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61376           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61377                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61378           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61379                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61380           -- 5132302
61381           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61382                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61383 
61384       END IF;
61385 
61386       -- 4955764
61387       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61391       XLA_AE_LINES_PKG.ValidateCurrentLine;
61388       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61389 
61390 
61392       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61393 
61394       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61395                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61396                ,p_balance_type_code => l_balance_type_code);
61397 
61398    END IF;
61399 
61400    -----------------------------------------------------------------------------------------
61401    -- 4262811 Multiperiod Accounting
61402    -----------------------------------------------------------------------------------------
61403      -- No MPA option is assigned.
61404 
61405 
61406 END IF;
61407 END IF;
61408 --
61409 
61410 --
61411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61412    trace
61413       (p_msg      => 'END of AcctLineType_128'
61414       ,p_level    => C_LEVEL_PROCEDURE
61415       ,p_module   => l_log_module);
61416 END IF;
61417 --
61418 EXCEPTION
61419   WHEN xla_exceptions_pkg.application_exception THEN
61420       RAISE;
61421   WHEN OTHERS THEN
61422        xla_exceptions_pkg.raise_message
61423            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_128');
61424 END AcctLineType_128;
61425 --
61426 
61427 ---------------------------------------
61428 --
61429 -- PRIVATE FUNCTION
61430 --         AcctLineType_129
61431 --
61432 ---------------------------------------
61433 PROCEDURE AcctLineType_129 (
61434   p_application_id        IN NUMBER
61435  ,p_event_id              IN NUMBER
61436  ,p_calculate_acctd_flag  IN VARCHAR2
61437  ,p_calculate_g_l_flag    IN VARCHAR2
61438  ,p_actual_flag           IN OUT VARCHAR2
61439  ,p_balance_type_code     OUT VARCHAR2
61440  ,p_gain_or_loss_ref      OUT VARCHAR2
61441  
61442 --Payment Currency Code
61443  , p_source_8            IN VARCHAR2
61444 --Automatic Offsets Value
61445  , p_source_10            IN VARCHAR2
61446  , p_source_10_meaning    IN VARCHAR2
61447 --Bank Future Dated Payment Account
61448  , p_source_19            IN NUMBER
61449 --Future Dated Payment Account Source Option
61450  , p_source_20            IN VARCHAR2
61451  , p_source_20_meaning    IN VARCHAR2
61452 --Financials Options Future Dated Payment Account
61453  , p_source_21            IN NUMBER
61454 --Supplier Site Future Dated Payment Account
61455  , p_source_22            IN NUMBER
61456 --Invoice Distribution Account
61457  , p_source_25            IN NUMBER
61458 --When to Account for Payment Option
61459  , p_source_57            IN VARCHAR2
61460 --Accounting Reversal Indicator
61461  , p_source_58            IN VARCHAR2
61462 --Distribution Link Type
61463  , p_source_60            IN VARCHAR2
61464 --Override Accounted Amount Indicator
61465  , p_source_85            IN VARCHAR2
61466  , p_source_85_meaning    IN VARCHAR2
61467 --Third Party Type
61468  , p_source_88            IN VARCHAR2
61469 --Invoice Distribution Tax Line Identifier
61470  , p_source_91            IN NUMBER
61471 --Invoice Distribution Tax Distribution Identifier from Tax
61472  , p_source_92            IN NUMBER
61473 --Invoice Distribution Summary Tax Line Identifier
61474  , p_source_93            IN NUMBER
61475 --Business Flow Accounts Payable Application Identifier
61476  , p_source_96            IN NUMBER
61477 --Business Flow Invoice Distribution Type
61478  , p_source_97            IN VARCHAR2
61479 --Business Flow Invoice Entity Code
61480  , p_source_98            IN VARCHAR2
61481 --Business Flow Invoice Distribution Identifier
61482  , p_source_99            IN NUMBER
61483 --Business Flow Invoice Identifier
61484  , p_source_100            IN NUMBER
61485 --Payment Distribution Type
61486  , p_source_101            IN VARCHAR2
61487  , p_source_101_meaning    IN VARCHAR2
61488 --Payment Distribution Amount
61489  , p_source_102            IN NUMBER
61490 --Payment Distribution Identifier
61491  , p_source_107            IN NUMBER
61492 --Payment Supplier Identifier
61493  , p_source_113            IN NUMBER
61494 --Payment Supplier Site Identifier
61495  , p_source_114            IN NUMBER
61496 --Payment Distribution Reversed Identifier
61497  , p_source_115            IN NUMBER
61498 --Payment Maturity Date
61499  , p_source_117            IN DATE
61500 --Payment Distribution (Payment Rate) Ledger Amount
61501  , p_source_118            IN NUMBER
61502 --Payment Exchange Date
61503  , p_source_120            IN DATE
61504 --Payment Exchange Rate
61505  , p_source_121            IN NUMBER
61506 --Payment Exchange Rate Type
61507  , p_source_122            IN VARCHAR2
61508 --Payment Processing Type
61509  , p_source_126            IN VARCHAR2
61510 --Invoice Distribution Amount of the Payment Distribution
61511  , p_source_127            IN NUMBER
61512 )
61513 IS
61514 
61515 l_component_type              VARCHAR2(80);
61516 l_component_code              VARCHAR2(30);
61517 l_component_type_code         VARCHAR2(1);
61518 l_component_appl_id           INTEGER;
61519 l_amb_context_code            VARCHAR2(30);
61520 l_entity_code                 VARCHAR2(30);
61521 l_event_class_code            VARCHAR2(30);
61522 l_ae_header_id                NUMBER;
61523 l_event_type_code             VARCHAR2(30);
61524 l_line_definition_code        VARCHAR2(30);
61528 l_segment                     VARCHAR2(30);
61525 l_line_definition_owner_code  VARCHAR2(1);
61526 --
61527 -- adr variables
61529 l_ccid                        NUMBER;
61530 l_adr_transaction_coa_id      NUMBER;
61531 l_adr_accounting_coa_id       NUMBER;
61532 l_adr_flexfield_segment_code  VARCHAR2(30);
61533 l_adr_flex_value_set_id       NUMBER;
61534 l_adr_value_type_code         VARCHAR2(30);
61535 l_adr_value_combination_id    NUMBER;
61536 l_adr_value_segment_code      VARCHAR2(30);
61537 
61538 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61539 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61540 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61541 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61542 
61543 -- 4262811 Variables ------------------------------------------------------------------------------------------
61544 l_entered_amt_idx             NUMBER;
61545 l_accted_amt_idx              NUMBER;
61546 l_acc_rev_flag                VARCHAR2(1);
61547 l_accrual_line_num            NUMBER;
61548 l_tmp_amt                     NUMBER;
61549 l_acc_rev_natural_side_code   VARCHAR2(1);
61550 
61551 l_num_entries                 NUMBER;
61552 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61553 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61554 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61555 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61556 l_recog_line_1                NUMBER;
61557 l_recog_line_2                NUMBER;
61558 
61559 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61560 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61561 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61562 
61563 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61564 
61565 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61566 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61567 
61568 ---------------------------------------------------------------------------------------------------------------
61569 
61570 
61571 --
61572 -- bulk performance
61573 --
61574 l_balance_type_code           VARCHAR2(1);
61575 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61576 l_log_module                  VARCHAR2(240);
61577 
61578 --
61579 -- Upgrade strategy
61580 --
61581 l_actual_upg_option           VARCHAR2(1);
61582 l_enc_upg_option           VARCHAR2(1);
61583 
61584 --
61585 BEGIN
61586 --
61587 IF g_log_enabled THEN
61588       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
61589 END IF;
61590 --
61591 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61592 
61593       trace
61594          (p_msg      => 'BEGIN of AcctLineType_129'
61595          ,p_level    => C_LEVEL_PROCEDURE
61596          ,p_module   => l_log_module);
61597 
61598 END IF;
61599 --
61600 l_component_type             := 'AMB_JLT';
61601 l_component_code             := 'AP_FUTURE_DATED_PMT';
61602 l_component_type_code        := 'S';
61603 l_component_appl_id          :=  200;
61604 l_amb_context_code           := 'DEFAULT';
61605 l_entity_code                := 'AP_PAYMENTS';
61606 l_event_class_code           := 'PAYMENTS';
61607 l_event_type_code            := 'PAYMENTS_ALL';
61608 l_line_definition_owner_code := 'S';
61609 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
61610 --
61611 l_balance_type_code          := 'A';
61612 l_segment                     := NULL;
61613 l_ccid                        := NULL;
61614 l_adr_transaction_coa_id      := NULL;
61615 l_adr_accounting_coa_id       := NULL;
61616 l_adr_flexfield_segment_code  := NULL;
61617 l_adr_flex_value_set_id       := NULL;
61618 l_adr_value_type_code         := NULL;
61619 l_adr_value_combination_id    := NULL;
61620 l_adr_value_segment_code      := NULL;
61621 
61622 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61623 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
61624 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61625 l_budgetary_control_flag     := 'N';
61626 
61627 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61628 l_bflow_applied_to_amt       := NULL; -- 5132302
61629 l_entered_amt_idx            := NULL;          -- 4262811
61630 l_accted_amt_idx             := NULL;          -- 4262811
61631 l_acc_rev_flag               := NULL;          -- 4262811
61632 l_accrual_line_num           := NULL;          -- 4262811
61633 l_tmp_amt                    := NULL;          -- 4262811
61634 --
61635  
61636 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61637     l_balance_type_code <> 'B' THEN
61638 IF NVL(p_source_57,'
61639 ') <>  'CLEAR_CLEAR' AND 
61640 NVL(p_source_57,'
61641 ') <>  'ALWAYS_CLEAR' AND 
61642 NVL(p_source_101,'
61643 ') =  'CASH' AND 
61644 p_source_117 IS NOT NULL AND 
61645 NVL(p_source_126,'
61646 ') <>  'PAYMENTCARD'
61647  THEN 
61648 
61649    --
61650    XLA_AE_LINES_PKG.SetNewLine;
61651 
61652    p_balance_type_code          := l_balance_type_code;
61656      p_actual_flag :='A';
61653    -- set the flag so later we will know whether the gain loss line needs to be created
61654    
61655    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61657    END IF;
61658 
61659    --
61660    -- bulk performance
61661    --
61662    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61663                                       p_header_num   => 0); -- 4262811
61664    --
61665    -- set accounting line options
61666    --
61667    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61668            p_natural_side_code          => 'C'
61669          , p_gain_or_loss_flag          => 'N'
61670          , p_gl_transfer_mode_code      => 'S'
61671          , p_acct_entry_type_code       => 'A'
61672          , p_switch_side_flag           => 'Y'
61673          , p_merge_duplicate_code       => 'A'
61674          );
61675    --
61676    l_acc_rev_natural_side_code := 'D';  -- 4262811
61677    -- 
61678    --
61679    -- set accounting line type info
61680    --
61681    xla_ae_lines_pkg.SetAcctLineType
61682       (p_component_type             => l_component_type
61683       ,p_event_type_code            => l_event_type_code
61684       ,p_line_definition_owner_code => l_line_definition_owner_code
61685       ,p_line_definition_code       => l_line_definition_code
61686       ,p_accounting_line_code       => l_component_code
61687       ,p_accounting_line_type_code  => l_component_type_code
61688       ,p_accounting_line_appl_id    => l_component_appl_id
61689       ,p_amb_context_code           => l_amb_context_code
61690       ,p_entity_code                => l_entity_code
61691       ,p_event_class_code           => l_event_class_code);
61692    --
61693    -- set accounting class
61694    --
61695    xla_ae_lines_pkg.SetAcctClass(
61696            p_accounting_class_code  => 'FUTURE_DATED_PMT'
61697          , p_ae_header_id           => l_ae_header_id
61698          );
61699 
61700    --
61701    -- set rounding class
61702    --
61703    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61704                       'FUTURE_DATED_PMT';
61705 
61706    --
61707    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61708    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61709    --
61710    -- bulk performance
61711    --
61712    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61713 
61714    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61715       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61716 
61717    -- 4955764
61718    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61719       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61720 
61721    -- 4458381 Public Sector Enh
61722    
61723    --
61724    -- set accounting attributes for the line type
61725    --
61726    l_entered_amt_idx := 10;
61727    l_accted_amt_idx  := 15;
61728    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
61729    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61730    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
61731    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61732    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
61733    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61734    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
61735    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61736    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
61737    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61738    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
61739    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61740    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
61741    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61742    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
61743    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61744    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
61745    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61746    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
61747    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61748    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
61749    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61750    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
61751    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61752    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
61753    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61754    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
61755    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61756    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
61757    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61758    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
61759    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61760    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
61764    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
61761    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61762    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
61763    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61765    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61766    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
61767    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61768    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
61769    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61770    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
61771    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61772    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
61773    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61774    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
61775    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61776    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
61777 
61778    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61779    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61780 
61781    ---------------------------------------------------------------------------------------------------------------
61782    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61783    ---------------------------------------------------------------------------------------------------------------
61784    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61785 
61786    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61787    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61788 
61789    IF xla_accounting_cache_pkg.GetValueChar
61790          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61791          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61792    AND l_bflow_method_code = 'PRIOR_ENTRY'
61793 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61794    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61795          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61796        )
61797    THEN
61798          xla_ae_lines_pkg.BflowUpgEntry
61799            (p_business_method_code    => l_bflow_method_code
61800            ,p_business_class_code     => l_bflow_class_code
61801            ,p_balance_type            => l_balance_type_code);
61802    ELSE
61803       NULL;
61804 -- No business flow processing for business flow method of NONE.
61805    END IF;
61806 
61807    --
61808    -- call analytical criteria
61809    --
61810    
61811    --
61812    -- call description
61813    --
61814    -- No description or it is inherited.
61815    --
61816    -- call ADRs
61817    -- Bug 4922099
61818    --
61819    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61820         (NVL(l_actual_upg_option, 'N') = 'O') OR
61821         (NVL(l_enc_upg_option, 'N') = 'O')
61822       )
61823    THEN
61824    NULL;
61825    --
61826    --
61827    
61828   l_ccid := AcctDerRule_33(
61829            p_application_id           => p_application_id
61830          , p_ae_header_id             => l_ae_header_id 
61831 , p_source_10 => p_source_10
61832 , p_source_10_meaning => p_source_10_meaning
61833 , p_source_19 => p_source_19
61834 , p_source_20 => p_source_20
61835 , p_source_20_meaning => p_source_20_meaning
61836 , p_source_21 => p_source_21
61837 , p_source_22 => p_source_22
61838 , p_source_25 => p_source_25
61839          , x_transaction_coa_id       => l_adr_transaction_coa_id
61840          , x_accounting_coa_id        => l_adr_accounting_coa_id
61841          , x_value_type_code          => l_adr_value_type_code
61842          , p_side                     => 'NA'
61843    );
61844 
61845    xla_ae_lines_pkg.set_ccid(
61846     p_code_combination_id          => l_ccid
61847   , p_value_type_code              => l_adr_value_type_code
61848   , p_transaction_coa_id           => l_adr_transaction_coa_id
61849   , p_accounting_coa_id            => l_adr_accounting_coa_id
61850   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
61851   , p_adr_type_code                => 'S'
61852   , p_component_type               => l_component_type
61853   , p_component_code               => l_component_code
61854   , p_component_type_code          => l_component_type_code
61855   , p_component_appl_id            => l_component_appl_id
61856   , p_amb_context_code             => l_amb_context_code
61857   , p_side                         => 'NA'
61858   );
61859 
61860 
61861    l_segment := AcctDerRule_11(
61862            p_application_id           => p_application_id
61863          , p_ae_header_id             => l_ae_header_id 
61864 , p_source_10 => p_source_10
61865 , p_source_10_meaning => p_source_10_meaning
61866 , p_source_19 => p_source_19
61867 , p_source_20 => p_source_20
61868 , p_source_20_meaning => p_source_20_meaning
61869 , p_source_21 => p_source_21
61870 , p_source_22 => p_source_22
61871          , x_transaction_coa_id       => l_adr_transaction_coa_id
61872          , x_accounting_coa_id        => l_adr_accounting_coa_id
61873          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61874          , x_flex_value_set_id        => l_adr_flex_value_set_id
61878          , p_side                     => 'NA'
61875          , x_value_type_code          => l_adr_value_type_code
61876          , x_value_combination_id     => l_adr_value_combination_id
61877          , x_value_segment_code       => l_adr_value_segment_code
61879          , p_override_seg_flag        => 'Y'
61880    );
61881 
61882    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61883 
61884       xla_ae_lines_pkg.set_segment(
61885           p_to_segment_code         => 'GL_ACCOUNT'
61886         , p_segment_value           => l_segment
61887         , p_from_segment_code       => l_adr_value_segment_code
61888         , p_from_combination_id     => l_adr_value_combination_id
61889         , p_value_type_code         => l_adr_value_type_code
61890         , p_transaction_coa_id      => l_adr_transaction_coa_id
61891         , p_accounting_coa_id       => l_adr_accounting_coa_id
61892         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61893         , p_flex_value_set_id       => l_adr_flex_value_set_id
61894         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
61895         , p_adr_type_code           => 'S'
61896         , p_component_type          => l_component_type
61897         , p_component_code          => l_component_code
61898         , p_component_type_code     => l_component_type_code
61899         , p_component_appl_id       => l_component_appl_id
61900         , p_amb_context_code        => l_amb_context_code
61901         , p_entity_code             => 'AP_PAYMENTS'
61902         , p_event_class_code        => 'PAYMENTS'
61903         , p_side                    => 'NA'
61904         );
61905 
61906   END IF;
61907 
61908    l_segment := AcctDerRule_23(
61909            p_application_id           => p_application_id
61910          , p_ae_header_id             => l_ae_header_id 
61911 , p_source_10 => p_source_10
61912 , p_source_10_meaning => p_source_10_meaning
61913 , p_source_25 => p_source_25
61914          , x_transaction_coa_id       => l_adr_transaction_coa_id
61915          , x_accounting_coa_id        => l_adr_accounting_coa_id
61916          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61917          , x_flex_value_set_id        => l_adr_flex_value_set_id
61918          , x_value_type_code          => l_adr_value_type_code
61919          , x_value_combination_id     => l_adr_value_combination_id
61920          , x_value_segment_code       => l_adr_value_segment_code
61921          , p_side                     => 'NA'
61922          , p_override_seg_flag        => 'Y'
61923    );
61924 
61925    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61926 
61927       xla_ae_lines_pkg.set_segment(
61928           p_to_segment_code         => 'GL_BALANCING'
61929         , p_segment_value           => l_segment
61930         , p_from_segment_code       => l_adr_value_segment_code
61931         , p_from_combination_id     => l_adr_value_combination_id
61932         , p_value_type_code         => l_adr_value_type_code
61933         , p_transaction_coa_id      => l_adr_transaction_coa_id
61934         , p_accounting_coa_id       => l_adr_accounting_coa_id
61935         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61936         , p_flex_value_set_id       => l_adr_flex_value_set_id
61937         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61938         , p_adr_type_code           => 'S'
61939         , p_component_type          => l_component_type
61940         , p_component_code          => l_component_code
61941         , p_component_type_code     => l_component_type_code
61942         , p_component_appl_id       => l_component_appl_id
61943         , p_amb_context_code        => l_amb_context_code
61944         , p_entity_code             => 'AP_PAYMENTS'
61945         , p_event_class_code        => 'PAYMENTS'
61946         , p_side                    => 'NA'
61947         );
61948 
61949   END IF;
61950 
61951    --
61952    --
61953    END IF;
61954    --
61955    -- Bug 4922099
61956    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61957           (NVL(l_enc_upg_option, 'N') = 'O')
61958         ) AND
61959         (l_bflow_method_code = 'PRIOR_ENTRY')
61960       )
61961    THEN
61962       IF
61963       --
61964       1 = 2
61965       --
61966       THEN
61967       xla_accounting_err_pkg.build_message
61968                                     (p_appli_s_name            => 'XLA'
61969                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61970                                     ,p_token_1                 => 'LINE_NUMBER'
61971                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61972                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61973                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61974                                                                              l_component_type
61975                                                                             ,l_component_code
61976                                                                             ,l_component_type_code
61977                                                                             ,l_component_appl_id
61978                                                                             ,l_amb_context_code
61979                                                                             ,l_entity_code
61980                                                                             ,l_event_class_code
61984                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61981                                                                            )
61982                                     ,p_token_3                 => 'OWNER'
61983                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61985                                                                           ,p_lookup_code    => l_component_type_code
61986                                                                          )
61987                                     ,p_token_4                 => 'PRODUCT_NAME'
61988                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61989                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61990                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61991                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61992                                     ,p_ae_header_id            =>  NULL
61993                                        );
61994 
61995         IF (C_LEVEL_ERROR>= g_log_level) THEN
61996                  trace
61997                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61998                       ,p_level    => C_LEVEL_ERROR
61999                       ,p_module   => l_log_module);
62000         END IF;
62001       END IF;
62002    END IF;
62003    --
62004    --
62005    ------------------------------------------------------------------------------------------------
62006    -- 4219869 Business Flow
62007    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62008    -- Prior Entry.  Currently, the following code is always generated.
62009    ------------------------------------------------------------------------------------------------
62010    XLA_AE_LINES_PKG.ValidateCurrentLine;
62011 
62012    ------------------------------------------------------------------------------------
62013    -- 4219869 Business Flow
62014    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62015    ------------------------------------------------------------------------------------
62016    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62017 
62018    ----------------------------------------------------------------------------------
62019    -- 4219869 Business Flow
62020    -- Update journal entry status -- Need to generate this within IF <condition>
62021    ----------------------------------------------------------------------------------
62022    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62023          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62024          ,p_balance_type_code => l_balance_type_code
62025          );
62026 
62027    -------------------------------------------------------------------------------------------
62028    -- 4262811 - Generate the Accrual Reversal lines
62029    -------------------------------------------------------------------------------------------
62030    BEGIN
62031       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62032                               (g_array_event(p_event_id).array_value_num('header_index'));
62033       IF l_acc_rev_flag IS NULL THEN
62034          l_acc_rev_flag := 'N';
62035       END IF;
62036    EXCEPTION
62037       WHEN OTHERS THEN
62038          l_acc_rev_flag := 'N';
62039    END;
62040    --
62041    IF (l_acc_rev_flag = 'Y') THEN
62042 
62043        -- 4645092  ------------------------------------------------------------------------------
62044        -- To allow MPA report to determine if it should generate report process
62045        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62046        ------------------------------------------------------------------------------------------
62047 
62048        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62049        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62050    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62051    -- call ADRs
62052    -- Bug 4922099
62053    --
62054    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62055         (NVL(l_actual_upg_option, 'N') = 'O') OR
62056         (NVL(l_enc_upg_option, 'N') = 'O')
62057       )
62058    THEN
62059    NULL;
62060    --
62061    --
62062    
62063   l_ccid := AcctDerRule_33(
62064            p_application_id           => p_application_id
62065          , p_ae_header_id             => l_ae_header_id 
62066 , p_source_10 => p_source_10
62067 , p_source_10_meaning => p_source_10_meaning
62068 , p_source_19 => p_source_19
62069 , p_source_20 => p_source_20
62070 , p_source_20_meaning => p_source_20_meaning
62071 , p_source_21 => p_source_21
62072 , p_source_22 => p_source_22
62073 , p_source_25 => p_source_25
62074          , x_transaction_coa_id       => l_adr_transaction_coa_id
62075          , x_accounting_coa_id        => l_adr_accounting_coa_id
62076          , x_value_type_code          => l_adr_value_type_code
62077          , p_side                     => 'NA'
62078    );
62079 
62080    xla_ae_lines_pkg.set_ccid(
62081     p_code_combination_id          => l_ccid
62082   , p_value_type_code              => l_adr_value_type_code
62083   , p_transaction_coa_id           => l_adr_transaction_coa_id
62084   , p_accounting_coa_id            => l_adr_accounting_coa_id
62085   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
62086   , p_adr_type_code                => 'S'
62090   , p_component_appl_id            => l_component_appl_id
62087   , p_component_type               => l_component_type
62088   , p_component_code               => l_component_code
62089   , p_component_type_code          => l_component_type_code
62091   , p_amb_context_code             => l_amb_context_code
62092   , p_side                         => 'NA'
62093   );
62094 
62095 
62096    l_segment := AcctDerRule_11(
62097            p_application_id           => p_application_id
62098          , p_ae_header_id             => l_ae_header_id 
62099 , p_source_10 => p_source_10
62100 , p_source_10_meaning => p_source_10_meaning
62101 , p_source_19 => p_source_19
62102 , p_source_20 => p_source_20
62103 , p_source_20_meaning => p_source_20_meaning
62104 , p_source_21 => p_source_21
62105 , p_source_22 => p_source_22
62106          , x_transaction_coa_id       => l_adr_transaction_coa_id
62107          , x_accounting_coa_id        => l_adr_accounting_coa_id
62108          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62109          , x_flex_value_set_id        => l_adr_flex_value_set_id
62110          , x_value_type_code          => l_adr_value_type_code
62111          , x_value_combination_id     => l_adr_value_combination_id
62112          , x_value_segment_code       => l_adr_value_segment_code
62113          , p_side                     => 'NA'
62114          , p_override_seg_flag        => 'Y'
62115    );
62116 
62117    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62118 
62119       xla_ae_lines_pkg.set_segment(
62120           p_to_segment_code         => 'GL_ACCOUNT'
62121         , p_segment_value           => l_segment
62122         , p_from_segment_code       => l_adr_value_segment_code
62123         , p_from_combination_id     => l_adr_value_combination_id
62124         , p_value_type_code         => l_adr_value_type_code
62125         , p_transaction_coa_id      => l_adr_transaction_coa_id
62126         , p_accounting_coa_id       => l_adr_accounting_coa_id
62127         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62128         , p_flex_value_set_id       => l_adr_flex_value_set_id
62129         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
62130         , p_adr_type_code           => 'S'
62131         , p_component_type          => l_component_type
62132         , p_component_code          => l_component_code
62133         , p_component_type_code     => l_component_type_code
62134         , p_component_appl_id       => l_component_appl_id
62135         , p_amb_context_code        => l_amb_context_code
62136         , p_entity_code             => 'AP_PAYMENTS'
62137         , p_event_class_code        => 'PAYMENTS'
62138         , p_side                    => 'NA'
62139         );
62140 
62141   END IF;
62142 
62143    l_segment := AcctDerRule_23(
62144            p_application_id           => p_application_id
62145          , p_ae_header_id             => l_ae_header_id 
62146 , p_source_10 => p_source_10
62147 , p_source_10_meaning => p_source_10_meaning
62148 , p_source_25 => p_source_25
62149          , x_transaction_coa_id       => l_adr_transaction_coa_id
62150          , x_accounting_coa_id        => l_adr_accounting_coa_id
62151          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62152          , x_flex_value_set_id        => l_adr_flex_value_set_id
62153          , x_value_type_code          => l_adr_value_type_code
62154          , x_value_combination_id     => l_adr_value_combination_id
62155          , x_value_segment_code       => l_adr_value_segment_code
62156          , p_side                     => 'NA'
62157          , p_override_seg_flag        => 'Y'
62158    );
62159 
62160    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62161 
62162       xla_ae_lines_pkg.set_segment(
62163           p_to_segment_code         => 'GL_BALANCING'
62164         , p_segment_value           => l_segment
62165         , p_from_segment_code       => l_adr_value_segment_code
62166         , p_from_combination_id     => l_adr_value_combination_id
62167         , p_value_type_code         => l_adr_value_type_code
62168         , p_transaction_coa_id      => l_adr_transaction_coa_id
62169         , p_accounting_coa_id       => l_adr_accounting_coa_id
62170         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62171         , p_flex_value_set_id       => l_adr_flex_value_set_id
62172         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
62173         , p_adr_type_code           => 'S'
62174         , p_component_type          => l_component_type
62175         , p_component_code          => l_component_code
62176         , p_component_type_code     => l_component_type_code
62177         , p_component_appl_id       => l_component_appl_id
62178         , p_amb_context_code        => l_amb_context_code
62179         , p_entity_code             => 'AP_PAYMENTS'
62180         , p_event_class_code        => 'PAYMENTS'
62181         , p_side                    => 'NA'
62182         );
62183 
62184   END IF;
62185 
62186    --
62187    --
62188    END IF;
62189 
62190        --
62191        -- Update the line information that should be overwritten
62192        --
62193        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62194                                          p_header_num   => 1);
62195        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62196 
62197        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62201        END IF;
62198 
62199        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62200           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62202 
62203       --
62204       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62205       --
62206       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62207           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62208       ELSE
62209           ---------------------------------------------------------------------------------------------------
62210           -- 4262811a Switch Sign
62211           ---------------------------------------------------------------------------------------------------
62212           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62213           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62214                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62215           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62216                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62217           -- 5132302
62218           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62219                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62220 
62221       END IF;
62222 
62223       -- 4955764
62224       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62225       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62226 
62227 
62228       XLA_AE_LINES_PKG.ValidateCurrentLine;
62229       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62230 
62231       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62232                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62233                ,p_balance_type_code => l_balance_type_code);
62234 
62235    END IF;
62236 
62237    -----------------------------------------------------------------------------------------
62238    -- 4262811 Multiperiod Accounting
62239    -----------------------------------------------------------------------------------------
62240      -- No MPA option is assigned.
62241 
62242 
62243 END IF;
62244 END IF;
62245 --
62246 
62247 --
62248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62249    trace
62250       (p_msg      => 'END of AcctLineType_129'
62251       ,p_level    => C_LEVEL_PROCEDURE
62252       ,p_module   => l_log_module);
62253 END IF;
62254 --
62255 EXCEPTION
62256   WHEN xla_exceptions_pkg.application_exception THEN
62257       RAISE;
62258   WHEN OTHERS THEN
62259        xla_exceptions_pkg.raise_message
62260            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_129');
62261 END AcctLineType_129;
62262 --
62263 
62264 ---------------------------------------
62265 --
62266 -- PRIVATE FUNCTION
62267 --         AcctLineType_130
62268 --
62269 ---------------------------------------
62270 PROCEDURE AcctLineType_130 (
62271   p_application_id        IN NUMBER
62272  ,p_event_id              IN NUMBER
62273  ,p_calculate_acctd_flag  IN VARCHAR2
62274  ,p_calculate_g_l_flag    IN VARCHAR2
62275  ,p_actual_flag           IN OUT VARCHAR2
62276  ,p_balance_type_code     OUT VARCHAR2
62277  ,p_gain_or_loss_ref      OUT VARCHAR2
62278  
62279 --Payment Currency Code
62280  , p_source_8            IN VARCHAR2
62281 --Automatic Offsets Value
62282  , p_source_10            IN VARCHAR2
62283  , p_source_10_meaning    IN VARCHAR2
62284 --Bank Future Dated Payment Account
62285  , p_source_19            IN NUMBER
62286 --Future Dated Payment Account Source Option
62287  , p_source_20            IN VARCHAR2
62288  , p_source_20_meaning    IN VARCHAR2
62289 --Financials Options Future Dated Payment Account
62290  , p_source_21            IN NUMBER
62291 --Supplier Site Future Dated Payment Account
62292  , p_source_22            IN NUMBER
62293 --Invoice Distribution Account
62294  , p_source_25            IN NUMBER
62295 --When to Account for Payment Option
62296  , p_source_57            IN VARCHAR2
62297 --Accounting Reversal Indicator
62298  , p_source_58            IN VARCHAR2
62299 --Distribution Link Type
62300  , p_source_60            IN VARCHAR2
62301 --Override Accounted Amount Indicator
62302  , p_source_85            IN VARCHAR2
62303  , p_source_85_meaning    IN VARCHAR2
62304 --Third Party Type
62305  , p_source_88            IN VARCHAR2
62306 --Invoice Distribution Tax Line Identifier
62307  , p_source_91            IN NUMBER
62308 --Invoice Distribution Tax Distribution Identifier from Tax
62309  , p_source_92            IN NUMBER
62310 --Invoice Distribution Summary Tax Line Identifier
62311  , p_source_93            IN NUMBER
62312 --Business Flow Accounts Payable Application Identifier
62313  , p_source_96            IN NUMBER
62314 --Business Flow Invoice Distribution Type
62315  , p_source_97            IN VARCHAR2
62316 --Business Flow Invoice Entity Code
62317  , p_source_98            IN VARCHAR2
62318 --Business Flow Invoice Distribution Identifier
62322 --Payment Distribution Type
62319  , p_source_99            IN NUMBER
62320 --Business Flow Invoice Identifier
62321  , p_source_100            IN NUMBER
62323  , p_source_101            IN VARCHAR2
62324  , p_source_101_meaning    IN VARCHAR2
62325 --Payment Distribution Amount
62326  , p_source_102            IN NUMBER
62327 --Payment Distribution Identifier
62328  , p_source_107            IN NUMBER
62329 --Payment Supplier Identifier
62330  , p_source_113            IN NUMBER
62331 --Payment Supplier Site Identifier
62332  , p_source_114            IN NUMBER
62333 --Payment Distribution Reversed Identifier
62334  , p_source_115            IN NUMBER
62335 --Payment Maturity Date
62336  , p_source_117            IN DATE
62337 --Payment Distribution (Invoice Rate) Ledger Amount
62338  , p_source_119            IN NUMBER
62339 --Payment Exchange Date
62340  , p_source_120            IN DATE
62341 --Payment Exchange Rate
62342  , p_source_121            IN NUMBER
62343 --Payment Exchange Rate Type
62344  , p_source_122            IN VARCHAR2
62345 --Payment Processing Type
62346  , p_source_126            IN VARCHAR2
62347 --Invoice Distribution Amount of the Payment Distribution
62348  , p_source_127            IN NUMBER
62349 )
62350 IS
62351 
62352 l_component_type              VARCHAR2(80);
62353 l_component_code              VARCHAR2(30);
62354 l_component_type_code         VARCHAR2(1);
62355 l_component_appl_id           INTEGER;
62356 l_amb_context_code            VARCHAR2(30);
62357 l_entity_code                 VARCHAR2(30);
62358 l_event_class_code            VARCHAR2(30);
62359 l_ae_header_id                NUMBER;
62360 l_event_type_code             VARCHAR2(30);
62361 l_line_definition_code        VARCHAR2(30);
62362 l_line_definition_owner_code  VARCHAR2(1);
62363 --
62364 -- adr variables
62365 l_segment                     VARCHAR2(30);
62366 l_ccid                        NUMBER;
62367 l_adr_transaction_coa_id      NUMBER;
62368 l_adr_accounting_coa_id       NUMBER;
62369 l_adr_flexfield_segment_code  VARCHAR2(30);
62370 l_adr_flex_value_set_id       NUMBER;
62371 l_adr_value_type_code         VARCHAR2(30);
62372 l_adr_value_combination_id    NUMBER;
62373 l_adr_value_segment_code      VARCHAR2(30);
62374 
62375 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62376 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62377 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62378 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62379 
62380 -- 4262811 Variables ------------------------------------------------------------------------------------------
62381 l_entered_amt_idx             NUMBER;
62382 l_accted_amt_idx              NUMBER;
62383 l_acc_rev_flag                VARCHAR2(1);
62384 l_accrual_line_num            NUMBER;
62385 l_tmp_amt                     NUMBER;
62386 l_acc_rev_natural_side_code   VARCHAR2(1);
62387 
62388 l_num_entries                 NUMBER;
62389 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62390 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62391 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62392 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62393 l_recog_line_1                NUMBER;
62394 l_recog_line_2                NUMBER;
62395 
62396 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62397 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62398 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62399 
62400 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62401 
62402 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62403 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62404 
62405 ---------------------------------------------------------------------------------------------------------------
62406 
62407 
62408 --
62409 -- bulk performance
62410 --
62411 l_balance_type_code           VARCHAR2(1);
62412 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62413 l_log_module                  VARCHAR2(240);
62414 
62415 --
62416 -- Upgrade strategy
62417 --
62418 l_actual_upg_option           VARCHAR2(1);
62419 l_enc_upg_option           VARCHAR2(1);
62420 
62421 --
62422 BEGIN
62423 --
62424 IF g_log_enabled THEN
62425       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
62426 END IF;
62427 --
62428 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62429 
62430       trace
62431          (p_msg      => 'BEGIN of AcctLineType_130'
62432          ,p_level    => C_LEVEL_PROCEDURE
62433          ,p_module   => l_log_module);
62434 
62435 END IF;
62436 --
62437 l_component_type             := 'AMB_JLT';
62438 l_component_code             := 'AP_FUTURE_DATED_PMT_INVXRATE';
62439 l_component_type_code        := 'S';
62440 l_component_appl_id          :=  200;
62441 l_amb_context_code           := 'DEFAULT';
62442 l_entity_code                := 'AP_PAYMENTS';
62443 l_event_class_code           := 'PAYMENTS';
62444 l_event_type_code            := 'PAYMENTS_ALL';
62445 l_line_definition_owner_code := 'S';
62446 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
62447 --
62451 l_adr_transaction_coa_id      := NULL;
62448 l_balance_type_code          := 'A';
62449 l_segment                     := NULL;
62450 l_ccid                        := NULL;
62452 l_adr_accounting_coa_id       := NULL;
62453 l_adr_flexfield_segment_code  := NULL;
62454 l_adr_flex_value_set_id       := NULL;
62455 l_adr_value_type_code         := NULL;
62456 l_adr_value_combination_id    := NULL;
62457 l_adr_value_segment_code      := NULL;
62458 
62459 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62460 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
62461 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62462 l_budgetary_control_flag     := 'N';
62463 
62464 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62465 l_bflow_applied_to_amt       := NULL; -- 5132302
62466 l_entered_amt_idx            := NULL;          -- 4262811
62467 l_accted_amt_idx             := NULL;          -- 4262811
62468 l_acc_rev_flag               := NULL;          -- 4262811
62469 l_accrual_line_num           := NULL;          -- 4262811
62470 l_tmp_amt                    := NULL;          -- 4262811
62471 --
62472  
62473 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62474     l_balance_type_code <> 'B' THEN
62475 IF NVL(p_source_57,'
62476 ') =  'ALWAYS_CLEAR' AND 
62477 NVL(p_source_101,'
62478 ') =  'CASH' AND 
62479 p_source_117 IS NOT NULL AND 
62480 NVL(p_source_126,'
62481 ') <>  'PAYMENTCARD'
62482  THEN 
62483 
62484    --
62485    XLA_AE_LINES_PKG.SetNewLine;
62486 
62487    p_balance_type_code          := l_balance_type_code;
62488    -- set the flag so later we will know whether the gain loss line needs to be created
62489    
62490    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62491      p_actual_flag :='A';
62492    END IF;
62493 
62494    --
62495    -- bulk performance
62496    --
62497    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62498                                       p_header_num   => 0); -- 4262811
62499    --
62500    -- set accounting line options
62501    --
62502    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62503            p_natural_side_code          => 'C'
62504          , p_gain_or_loss_flag          => 'N'
62505          , p_gl_transfer_mode_code      => 'S'
62506          , p_acct_entry_type_code       => 'A'
62507          , p_switch_side_flag           => 'Y'
62508          , p_merge_duplicate_code       => 'A'
62509          );
62510    --
62511    l_acc_rev_natural_side_code := 'D';  -- 4262811
62512    -- 
62513    --
62514    -- set accounting line type info
62515    --
62516    xla_ae_lines_pkg.SetAcctLineType
62517       (p_component_type             => l_component_type
62518       ,p_event_type_code            => l_event_type_code
62519       ,p_line_definition_owner_code => l_line_definition_owner_code
62520       ,p_line_definition_code       => l_line_definition_code
62521       ,p_accounting_line_code       => l_component_code
62522       ,p_accounting_line_type_code  => l_component_type_code
62523       ,p_accounting_line_appl_id    => l_component_appl_id
62524       ,p_amb_context_code           => l_amb_context_code
62525       ,p_entity_code                => l_entity_code
62526       ,p_event_class_code           => l_event_class_code);
62527    --
62528    -- set accounting class
62529    --
62530    xla_ae_lines_pkg.SetAcctClass(
62531            p_accounting_class_code  => 'FUTURE_DATED_PMT'
62532          , p_ae_header_id           => l_ae_header_id
62533          );
62534 
62535    --
62536    -- set rounding class
62537    --
62538    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62539                       'FUTURE_DATED_PMT';
62540 
62541    --
62542    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62543    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62544    --
62545    -- bulk performance
62546    --
62547    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62548 
62549    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62550       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62551 
62552    -- 4955764
62553    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62554       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62555 
62556    -- 4458381 Public Sector Enh
62557    
62558    --
62559    -- set accounting attributes for the line type
62560    --
62561    l_entered_amt_idx := 10;
62562    l_accted_amt_idx  := 15;
62563    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
62564    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62565    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
62566    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
62567    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
62568    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
62569    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
62570    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62571    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
62572    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
62573    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
62577    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
62574    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
62575    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
62576    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62578    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
62579    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
62580    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
62581    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
62582    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
62583    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
62584    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
62585    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
62586    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
62587    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
62588    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
62589    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
62590    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
62591    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
62592    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
62593    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
62594    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
62595    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
62596    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
62597    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
62598    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
62599    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
62600    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
62601    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
62602    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
62603    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
62604    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
62605    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
62606    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
62607    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
62608    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
62609    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
62610    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
62611    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
62612 
62613    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62614    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62615 
62616    ---------------------------------------------------------------------------------------------------------------
62617    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62618    ---------------------------------------------------------------------------------------------------------------
62619    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62620 
62621    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62622    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62623 
62624    IF xla_accounting_cache_pkg.GetValueChar
62625          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62626          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62627    AND l_bflow_method_code = 'PRIOR_ENTRY'
62628 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62629    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62630          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62631        )
62632    THEN
62633          xla_ae_lines_pkg.BflowUpgEntry
62634            (p_business_method_code    => l_bflow_method_code
62635            ,p_business_class_code     => l_bflow_class_code
62636            ,p_balance_type            => l_balance_type_code);
62637    ELSE
62638       NULL;
62639 -- No business flow processing for business flow method of NONE.
62640    END IF;
62641 
62642    --
62643    -- call analytical criteria
62644    --
62645    
62646    --
62647    -- call description
62648    --
62649    -- No description or it is inherited.
62650    --
62651    -- call ADRs
62652    -- Bug 4922099
62653    --
62654    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62655         (NVL(l_actual_upg_option, 'N') = 'O') OR
62656         (NVL(l_enc_upg_option, 'N') = 'O')
62657       )
62658    THEN
62659    NULL;
62660    --
62661    --
62662    
62663   l_ccid := AcctDerRule_33(
62664            p_application_id           => p_application_id
62665          , p_ae_header_id             => l_ae_header_id 
62666 , p_source_10 => p_source_10
62667 , p_source_10_meaning => p_source_10_meaning
62668 , p_source_19 => p_source_19
62669 , p_source_20 => p_source_20
62670 , p_source_20_meaning => p_source_20_meaning
62671 , p_source_21 => p_source_21
62672 , p_source_22 => p_source_22
62673 , p_source_25 => p_source_25
62674          , x_transaction_coa_id       => l_adr_transaction_coa_id
62675          , x_accounting_coa_id        => l_adr_accounting_coa_id
62676          , x_value_type_code          => l_adr_value_type_code
62677          , p_side                     => 'NA'
62678    );
62679 
62683   , p_transaction_coa_id           => l_adr_transaction_coa_id
62680    xla_ae_lines_pkg.set_ccid(
62681     p_code_combination_id          => l_ccid
62682   , p_value_type_code              => l_adr_value_type_code
62684   , p_accounting_coa_id            => l_adr_accounting_coa_id
62685   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
62686   , p_adr_type_code                => 'S'
62687   , p_component_type               => l_component_type
62688   , p_component_code               => l_component_code
62689   , p_component_type_code          => l_component_type_code
62690   , p_component_appl_id            => l_component_appl_id
62691   , p_amb_context_code             => l_amb_context_code
62692   , p_side                         => 'NA'
62693   );
62694 
62695 
62696    l_segment := AcctDerRule_11(
62697            p_application_id           => p_application_id
62698          , p_ae_header_id             => l_ae_header_id 
62699 , p_source_10 => p_source_10
62700 , p_source_10_meaning => p_source_10_meaning
62701 , p_source_19 => p_source_19
62702 , p_source_20 => p_source_20
62703 , p_source_20_meaning => p_source_20_meaning
62704 , p_source_21 => p_source_21
62705 , p_source_22 => p_source_22
62706          , x_transaction_coa_id       => l_adr_transaction_coa_id
62707          , x_accounting_coa_id        => l_adr_accounting_coa_id
62708          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62709          , x_flex_value_set_id        => l_adr_flex_value_set_id
62710          , x_value_type_code          => l_adr_value_type_code
62711          , x_value_combination_id     => l_adr_value_combination_id
62712          , x_value_segment_code       => l_adr_value_segment_code
62713          , p_side                     => 'NA'
62714          , p_override_seg_flag        => 'Y'
62715    );
62716 
62717    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62718 
62719       xla_ae_lines_pkg.set_segment(
62720           p_to_segment_code         => 'GL_ACCOUNT'
62721         , p_segment_value           => l_segment
62722         , p_from_segment_code       => l_adr_value_segment_code
62723         , p_from_combination_id     => l_adr_value_combination_id
62724         , p_value_type_code         => l_adr_value_type_code
62725         , p_transaction_coa_id      => l_adr_transaction_coa_id
62726         , p_accounting_coa_id       => l_adr_accounting_coa_id
62727         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62728         , p_flex_value_set_id       => l_adr_flex_value_set_id
62729         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
62730         , p_adr_type_code           => 'S'
62731         , p_component_type          => l_component_type
62732         , p_component_code          => l_component_code
62733         , p_component_type_code     => l_component_type_code
62734         , p_component_appl_id       => l_component_appl_id
62735         , p_amb_context_code        => l_amb_context_code
62736         , p_entity_code             => 'AP_PAYMENTS'
62737         , p_event_class_code        => 'PAYMENTS'
62738         , p_side                    => 'NA'
62739         );
62740 
62741   END IF;
62742 
62743    l_segment := AcctDerRule_23(
62744            p_application_id           => p_application_id
62745          , p_ae_header_id             => l_ae_header_id 
62746 , p_source_10 => p_source_10
62747 , p_source_10_meaning => p_source_10_meaning
62748 , p_source_25 => p_source_25
62749          , x_transaction_coa_id       => l_adr_transaction_coa_id
62750          , x_accounting_coa_id        => l_adr_accounting_coa_id
62751          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62752          , x_flex_value_set_id        => l_adr_flex_value_set_id
62753          , x_value_type_code          => l_adr_value_type_code
62754          , x_value_combination_id     => l_adr_value_combination_id
62755          , x_value_segment_code       => l_adr_value_segment_code
62756          , p_side                     => 'NA'
62757          , p_override_seg_flag        => 'Y'
62758    );
62759 
62760    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62761 
62762       xla_ae_lines_pkg.set_segment(
62763           p_to_segment_code         => 'GL_BALANCING'
62764         , p_segment_value           => l_segment
62765         , p_from_segment_code       => l_adr_value_segment_code
62766         , p_from_combination_id     => l_adr_value_combination_id
62767         , p_value_type_code         => l_adr_value_type_code
62768         , p_transaction_coa_id      => l_adr_transaction_coa_id
62769         , p_accounting_coa_id       => l_adr_accounting_coa_id
62770         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62771         , p_flex_value_set_id       => l_adr_flex_value_set_id
62772         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
62773         , p_adr_type_code           => 'S'
62774         , p_component_type          => l_component_type
62775         , p_component_code          => l_component_code
62776         , p_component_type_code     => l_component_type_code
62777         , p_component_appl_id       => l_component_appl_id
62778         , p_amb_context_code        => l_amb_context_code
62779         , p_entity_code             => 'AP_PAYMENTS'
62780         , p_event_class_code        => 'PAYMENTS'
62781         , p_side                    => 'NA'
62782         );
62783 
62784   END IF;
62785 
62786    --
62787    --
62788    END IF;
62789    --
62790    -- Bug 4922099
62791    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62795       )
62792           (NVL(l_enc_upg_option, 'N') = 'O')
62793         ) AND
62794         (l_bflow_method_code = 'PRIOR_ENTRY')
62796    THEN
62797       IF
62798       --
62799       1 = 2
62800       --
62801       THEN
62802       xla_accounting_err_pkg.build_message
62803                                     (p_appli_s_name            => 'XLA'
62804                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62805                                     ,p_token_1                 => 'LINE_NUMBER'
62806                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62807                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62808                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62809                                                                              l_component_type
62810                                                                             ,l_component_code
62811                                                                             ,l_component_type_code
62812                                                                             ,l_component_appl_id
62813                                                                             ,l_amb_context_code
62814                                                                             ,l_entity_code
62815                                                                             ,l_event_class_code
62816                                                                            )
62817                                     ,p_token_3                 => 'OWNER'
62818                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62819                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62820                                                                           ,p_lookup_code    => l_component_type_code
62821                                                                          )
62822                                     ,p_token_4                 => 'PRODUCT_NAME'
62823                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62824                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62825                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62826                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62827                                     ,p_ae_header_id            =>  NULL
62828                                        );
62829 
62830         IF (C_LEVEL_ERROR>= g_log_level) THEN
62831                  trace
62832                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62833                       ,p_level    => C_LEVEL_ERROR
62834                       ,p_module   => l_log_module);
62835         END IF;
62836       END IF;
62837    END IF;
62838    --
62839    --
62840    ------------------------------------------------------------------------------------------------
62841    -- 4219869 Business Flow
62842    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62843    -- Prior Entry.  Currently, the following code is always generated.
62844    ------------------------------------------------------------------------------------------------
62845    XLA_AE_LINES_PKG.ValidateCurrentLine;
62846 
62847    ------------------------------------------------------------------------------------
62848    -- 4219869 Business Flow
62849    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62850    ------------------------------------------------------------------------------------
62851    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62852 
62853    ----------------------------------------------------------------------------------
62854    -- 4219869 Business Flow
62855    -- Update journal entry status -- Need to generate this within IF <condition>
62856    ----------------------------------------------------------------------------------
62857    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62858          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62859          ,p_balance_type_code => l_balance_type_code
62860          );
62861 
62862    -------------------------------------------------------------------------------------------
62863    -- 4262811 - Generate the Accrual Reversal lines
62864    -------------------------------------------------------------------------------------------
62865    BEGIN
62866       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62867                               (g_array_event(p_event_id).array_value_num('header_index'));
62868       IF l_acc_rev_flag IS NULL THEN
62869          l_acc_rev_flag := 'N';
62870       END IF;
62871    EXCEPTION
62872       WHEN OTHERS THEN
62873          l_acc_rev_flag := 'N';
62874    END;
62875    --
62876    IF (l_acc_rev_flag = 'Y') THEN
62877 
62878        -- 4645092  ------------------------------------------------------------------------------
62879        -- To allow MPA report to determine if it should generate report process
62880        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62881        ------------------------------------------------------------------------------------------
62882 
62883        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62887    -- Bug 4922099
62884        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62885    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62886    -- call ADRs
62888    --
62889    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62890         (NVL(l_actual_upg_option, 'N') = 'O') OR
62891         (NVL(l_enc_upg_option, 'N') = 'O')
62892       )
62893    THEN
62894    NULL;
62895    --
62896    --
62897    
62898   l_ccid := AcctDerRule_33(
62899            p_application_id           => p_application_id
62900          , p_ae_header_id             => l_ae_header_id 
62901 , p_source_10 => p_source_10
62902 , p_source_10_meaning => p_source_10_meaning
62903 , p_source_19 => p_source_19
62904 , p_source_20 => p_source_20
62905 , p_source_20_meaning => p_source_20_meaning
62906 , p_source_21 => p_source_21
62907 , p_source_22 => p_source_22
62908 , p_source_25 => p_source_25
62909          , x_transaction_coa_id       => l_adr_transaction_coa_id
62910          , x_accounting_coa_id        => l_adr_accounting_coa_id
62911          , x_value_type_code          => l_adr_value_type_code
62912          , p_side                     => 'NA'
62913    );
62914 
62915    xla_ae_lines_pkg.set_ccid(
62916     p_code_combination_id          => l_ccid
62917   , p_value_type_code              => l_adr_value_type_code
62918   , p_transaction_coa_id           => l_adr_transaction_coa_id
62919   , p_accounting_coa_id            => l_adr_accounting_coa_id
62920   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
62921   , p_adr_type_code                => 'S'
62922   , p_component_type               => l_component_type
62923   , p_component_code               => l_component_code
62924   , p_component_type_code          => l_component_type_code
62925   , p_component_appl_id            => l_component_appl_id
62926   , p_amb_context_code             => l_amb_context_code
62927   , p_side                         => 'NA'
62928   );
62929 
62930 
62931    l_segment := AcctDerRule_11(
62932            p_application_id           => p_application_id
62933          , p_ae_header_id             => l_ae_header_id 
62934 , p_source_10 => p_source_10
62935 , p_source_10_meaning => p_source_10_meaning
62936 , p_source_19 => p_source_19
62937 , p_source_20 => p_source_20
62938 , p_source_20_meaning => p_source_20_meaning
62939 , p_source_21 => p_source_21
62940 , p_source_22 => p_source_22
62941          , x_transaction_coa_id       => l_adr_transaction_coa_id
62942          , x_accounting_coa_id        => l_adr_accounting_coa_id
62943          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62944          , x_flex_value_set_id        => l_adr_flex_value_set_id
62945          , x_value_type_code          => l_adr_value_type_code
62946          , x_value_combination_id     => l_adr_value_combination_id
62947          , x_value_segment_code       => l_adr_value_segment_code
62948          , p_side                     => 'NA'
62949          , p_override_seg_flag        => 'Y'
62950    );
62951 
62952    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62953 
62954       xla_ae_lines_pkg.set_segment(
62955           p_to_segment_code         => 'GL_ACCOUNT'
62956         , p_segment_value           => l_segment
62957         , p_from_segment_code       => l_adr_value_segment_code
62958         , p_from_combination_id     => l_adr_value_combination_id
62959         , p_value_type_code         => l_adr_value_type_code
62960         , p_transaction_coa_id      => l_adr_transaction_coa_id
62961         , p_accounting_coa_id       => l_adr_accounting_coa_id
62962         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62963         , p_flex_value_set_id       => l_adr_flex_value_set_id
62964         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
62965         , p_adr_type_code           => 'S'
62966         , p_component_type          => l_component_type
62967         , p_component_code          => l_component_code
62968         , p_component_type_code     => l_component_type_code
62969         , p_component_appl_id       => l_component_appl_id
62970         , p_amb_context_code        => l_amb_context_code
62971         , p_entity_code             => 'AP_PAYMENTS'
62972         , p_event_class_code        => 'PAYMENTS'
62973         , p_side                    => 'NA'
62974         );
62975 
62976   END IF;
62977 
62978    l_segment := AcctDerRule_23(
62979            p_application_id           => p_application_id
62980          , p_ae_header_id             => l_ae_header_id 
62981 , p_source_10 => p_source_10
62982 , p_source_10_meaning => p_source_10_meaning
62983 , p_source_25 => p_source_25
62984          , x_transaction_coa_id       => l_adr_transaction_coa_id
62985          , x_accounting_coa_id        => l_adr_accounting_coa_id
62986          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62987          , x_flex_value_set_id        => l_adr_flex_value_set_id
62988          , x_value_type_code          => l_adr_value_type_code
62989          , x_value_combination_id     => l_adr_value_combination_id
62990          , x_value_segment_code       => l_adr_value_segment_code
62991          , p_side                     => 'NA'
62992          , p_override_seg_flag        => 'Y'
62993    );
62994 
62995    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62996 
62997       xla_ae_lines_pkg.set_segment(
62998           p_to_segment_code         => 'GL_BALANCING'
62999         , p_segment_value           => l_segment
63003         , p_transaction_coa_id      => l_adr_transaction_coa_id
63000         , p_from_segment_code       => l_adr_value_segment_code
63001         , p_from_combination_id     => l_adr_value_combination_id
63002         , p_value_type_code         => l_adr_value_type_code
63004         , p_accounting_coa_id       => l_adr_accounting_coa_id
63005         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63006         , p_flex_value_set_id       => l_adr_flex_value_set_id
63007         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
63008         , p_adr_type_code           => 'S'
63009         , p_component_type          => l_component_type
63010         , p_component_code          => l_component_code
63011         , p_component_type_code     => l_component_type_code
63012         , p_component_appl_id       => l_component_appl_id
63013         , p_amb_context_code        => l_amb_context_code
63014         , p_entity_code             => 'AP_PAYMENTS'
63015         , p_event_class_code        => 'PAYMENTS'
63016         , p_side                    => 'NA'
63017         );
63018 
63019   END IF;
63020 
63021    --
63022    --
63023    END IF;
63024 
63025        --
63026        -- Update the line information that should be overwritten
63027        --
63028        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63029                                          p_header_num   => 1);
63030        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63031 
63032        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63033 
63034        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63035           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63036        END IF;
63037 
63038       --
63039       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63040       --
63041       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63042           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63043       ELSE
63044           ---------------------------------------------------------------------------------------------------
63045           -- 4262811a Switch Sign
63046           ---------------------------------------------------------------------------------------------------
63047           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63048           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63049                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63050           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63051                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63052           -- 5132302
63053           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63054                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63055 
63056       END IF;
63057 
63058       -- 4955764
63059       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63060       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63061 
63062 
63063       XLA_AE_LINES_PKG.ValidateCurrentLine;
63064       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63065 
63066       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63067                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63068                ,p_balance_type_code => l_balance_type_code);
63069 
63070    END IF;
63071 
63072    -----------------------------------------------------------------------------------------
63073    -- 4262811 Multiperiod Accounting
63074    -----------------------------------------------------------------------------------------
63075      -- No MPA option is assigned.
63076 
63077 
63078 END IF;
63079 END IF;
63080 --
63081 
63082 --
63083 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63084    trace
63085       (p_msg      => 'END of AcctLineType_130'
63086       ,p_level    => C_LEVEL_PROCEDURE
63087       ,p_module   => l_log_module);
63088 END IF;
63089 --
63090 EXCEPTION
63091   WHEN xla_exceptions_pkg.application_exception THEN
63092       RAISE;
63093   WHEN OTHERS THEN
63094        xla_exceptions_pkg.raise_message
63095            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_130');
63096 END AcctLineType_130;
63097 --
63098 
63099 ---------------------------------------
63100 --
63101 -- PRIVATE FUNCTION
63102 --         AcctLineType_131
63103 --
63104 ---------------------------------------
63105 PROCEDURE AcctLineType_131 (
63106   p_application_id        IN NUMBER
63107  ,p_event_id              IN NUMBER
63108  ,p_calculate_acctd_flag  IN VARCHAR2
63109  ,p_calculate_g_l_flag    IN VARCHAR2
63110  ,p_actual_flag           IN OUT VARCHAR2
63111  ,p_balance_type_code     OUT VARCHAR2
63112  ,p_gain_or_loss_ref      OUT VARCHAR2
63113  
63114 --Payment Currency Code
63115  , p_source_8            IN VARCHAR2
63116 --When to Account for Payment Option
63117  , p_source_57            IN VARCHAR2
63121  , p_source_60            IN VARCHAR2
63118 --Accounting Reversal Indicator
63119  , p_source_58            IN VARCHAR2
63120 --Distribution Link Type
63122 --Override Accounted Amount Indicator
63123  , p_source_85            IN VARCHAR2
63124  , p_source_85_meaning    IN VARCHAR2
63125 --Third Party Type
63126  , p_source_88            IN VARCHAR2
63127 --Business Flow Accounts Payable Application Identifier
63128  , p_source_96            IN NUMBER
63129 --Payment Distribution Type
63130  , p_source_101            IN VARCHAR2
63131  , p_source_101_meaning    IN VARCHAR2
63132 --Payment Distribution Amount
63133  , p_source_102            IN NUMBER
63134 --Business Flow Payment Distribution Type
63135  , p_source_103            IN VARCHAR2
63136 --Business Flow Payment Entity Code
63137  , p_source_104            IN VARCHAR2
63138 --Business Flow Payment Distribution Identifier
63139  , p_source_105            IN NUMBER
63140 --Business Flow Payment Identifier
63141  , p_source_106            IN NUMBER
63142 --Payment Distribution Identifier
63143  , p_source_107            IN NUMBER
63144 --Payment Distribution Reversed Identifier
63145  , p_source_115            IN NUMBER
63146 --Payment Maturity Date
63147  , p_source_117            IN DATE
63148 --Payment Distribution (Payment Rate) Ledger Amount
63149  , p_source_118            IN NUMBER
63150 )
63151 IS
63152 
63153 l_component_type              VARCHAR2(80);
63154 l_component_code              VARCHAR2(30);
63155 l_component_type_code         VARCHAR2(1);
63156 l_component_appl_id           INTEGER;
63157 l_amb_context_code            VARCHAR2(30);
63158 l_entity_code                 VARCHAR2(30);
63159 l_event_class_code            VARCHAR2(30);
63160 l_ae_header_id                NUMBER;
63161 l_event_type_code             VARCHAR2(30);
63162 l_line_definition_code        VARCHAR2(30);
63163 l_line_definition_owner_code  VARCHAR2(1);
63164 --
63165 -- adr variables
63166 l_segment                     VARCHAR2(30);
63167 l_ccid                        NUMBER;
63168 l_adr_transaction_coa_id      NUMBER;
63169 l_adr_accounting_coa_id       NUMBER;
63170 l_adr_flexfield_segment_code  VARCHAR2(30);
63171 l_adr_flex_value_set_id       NUMBER;
63172 l_adr_value_type_code         VARCHAR2(30);
63173 l_adr_value_combination_id    NUMBER;
63174 l_adr_value_segment_code      VARCHAR2(30);
63175 
63176 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63177 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63178 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63179 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63180 
63181 -- 4262811 Variables ------------------------------------------------------------------------------------------
63182 l_entered_amt_idx             NUMBER;
63183 l_accted_amt_idx              NUMBER;
63184 l_acc_rev_flag                VARCHAR2(1);
63185 l_accrual_line_num            NUMBER;
63186 l_tmp_amt                     NUMBER;
63187 l_acc_rev_natural_side_code   VARCHAR2(1);
63188 
63189 l_num_entries                 NUMBER;
63190 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63191 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63192 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63193 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63194 l_recog_line_1                NUMBER;
63195 l_recog_line_2                NUMBER;
63196 
63197 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63198 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63199 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63200 
63201 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63202 
63203 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63204 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63205 
63206 ---------------------------------------------------------------------------------------------------------------
63207 
63208 
63209 --
63210 -- bulk performance
63211 --
63212 l_balance_type_code           VARCHAR2(1);
63213 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63214 l_log_module                  VARCHAR2(240);
63215 
63216 --
63217 -- Upgrade strategy
63218 --
63219 l_actual_upg_option           VARCHAR2(1);
63220 l_enc_upg_option           VARCHAR2(1);
63221 
63222 --
63223 BEGIN
63224 --
63225 IF g_log_enabled THEN
63226       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
63227 END IF;
63228 --
63229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63230 
63231       trace
63232          (p_msg      => 'BEGIN of AcctLineType_131'
63233          ,p_level    => C_LEVEL_PROCEDURE
63234          ,p_module   => l_log_module);
63235 
63236 END IF;
63237 --
63238 l_component_type             := 'AMB_JLT';
63239 l_component_code             := 'AP_FUTURE_DATED_PMT_MAT';
63240 l_component_type_code        := 'S';
63241 l_component_appl_id          :=  200;
63242 l_amb_context_code           := 'DEFAULT';
63243 l_entity_code                := 'AP_PAYMENTS';
63244 l_event_class_code           := 'FUTURE DATED PAYMENTS';
63245 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
63246 l_line_definition_owner_code := 'S';
63247 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
63248 --
63252 l_adr_transaction_coa_id      := NULL;
63249 l_balance_type_code          := 'A';
63250 l_segment                     := NULL;
63251 l_ccid                        := NULL;
63253 l_adr_accounting_coa_id       := NULL;
63254 l_adr_flexfield_segment_code  := NULL;
63255 l_adr_flex_value_set_id       := NULL;
63256 l_adr_value_type_code         := NULL;
63257 l_adr_value_combination_id    := NULL;
63258 l_adr_value_segment_code      := NULL;
63259 
63260 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
63261 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
63262 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63263 l_budgetary_control_flag     := 'N';
63264 
63265 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63266 l_bflow_applied_to_amt       := NULL; -- 5132302
63267 l_entered_amt_idx            := NULL;          -- 4262811
63268 l_accted_amt_idx             := NULL;          -- 4262811
63269 l_acc_rev_flag               := NULL;          -- 4262811
63270 l_accrual_line_num           := NULL;          -- 4262811
63271 l_tmp_amt                    := NULL;          -- 4262811
63272 --
63273  
63274 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63275     l_balance_type_code <> 'B' THEN
63276 IF NVL(p_source_57,'
63277 ') <>  'CLEAR_CLEAR' AND 
63278 p_source_117 IS NOT NULL AND 
63279 (NVL(p_source_101,'
63280 ') =  'CASH' OR 
63281 NVL(p_source_101,'
63282 ') =  'ROUNDING')
63283  THEN 
63284 
63285    --
63286    XLA_AE_LINES_PKG.SetNewLine;
63287 
63288    p_balance_type_code          := l_balance_type_code;
63289    -- set the flag so later we will know whether the gain loss line needs to be created
63290    
63291    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63292      p_actual_flag :='A';
63293    END IF;
63294 
63295    --
63296    -- bulk performance
63297    --
63298    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63299                                       p_header_num   => 0); -- 4262811
63300    --
63301    -- set accounting line options
63302    --
63303    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63304            p_natural_side_code          => 'D'
63305          , p_gain_or_loss_flag          => 'N'
63306          , p_gl_transfer_mode_code      => 'S'
63307          , p_acct_entry_type_code       => 'A'
63308          , p_switch_side_flag           => 'Y'
63309          , p_merge_duplicate_code       => 'A'
63310          );
63311    --
63312    l_acc_rev_natural_side_code := 'C';  -- 4262811
63313    -- 
63314    --
63315    -- set accounting line type info
63316    --
63317    xla_ae_lines_pkg.SetAcctLineType
63318       (p_component_type             => l_component_type
63319       ,p_event_type_code            => l_event_type_code
63320       ,p_line_definition_owner_code => l_line_definition_owner_code
63321       ,p_line_definition_code       => l_line_definition_code
63322       ,p_accounting_line_code       => l_component_code
63323       ,p_accounting_line_type_code  => l_component_type_code
63324       ,p_accounting_line_appl_id    => l_component_appl_id
63325       ,p_amb_context_code           => l_amb_context_code
63326       ,p_entity_code                => l_entity_code
63327       ,p_event_class_code           => l_event_class_code);
63328    --
63329    -- set accounting class
63330    --
63331    xla_ae_lines_pkg.SetAcctClass(
63332            p_accounting_class_code  => 'FUTURE_DATED_PMT'
63333          , p_ae_header_id           => l_ae_header_id
63334          );
63335 
63336    --
63337    -- set rounding class
63338    --
63339    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63340                       'FUTURE_DATED_PMT';
63341 
63342    --
63343    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63344    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63345    --
63346    -- bulk performance
63347    --
63348    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63349 
63350    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63351       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63352 
63353    -- 4955764
63354    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63355       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63356 
63357    -- 4458381 Public Sector Enh
63358    
63359    --
63360    -- set accounting attributes for the line type
63361    --
63362    l_entered_amt_idx := 9;
63363    l_accted_amt_idx  := 11;
63364    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63365    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63366    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
63367    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
63368    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
63369    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63370    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
63371    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
63372    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
63373    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
63377    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
63374    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
63375    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63376    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
63378    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
63379    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
63380    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
63381    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
63382    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
63383    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
63384    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
63385    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
63386    l_rec_acct_attrs.array_num_value(11)  := p_source_118;
63387    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
63388    l_rec_acct_attrs.array_char_value(12)  := p_source_85;
63389    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
63390    l_rec_acct_attrs.array_char_value(13)  := p_source_88;
63391    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
63392    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_115);
63393    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
63394    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
63395 
63396    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63397    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63398 
63399    ---------------------------------------------------------------------------------------------------------------
63400    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63401    ---------------------------------------------------------------------------------------------------------------
63402    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63403 
63404    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63405    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63406 
63407    IF xla_accounting_cache_pkg.GetValueChar
63408          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63409          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63410    AND l_bflow_method_code = 'PRIOR_ENTRY'
63411 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63412    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63413          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63414        )
63415    THEN
63416          xla_ae_lines_pkg.BflowUpgEntry
63417            (p_business_method_code    => l_bflow_method_code
63418            ,p_business_class_code     => l_bflow_class_code
63419            ,p_balance_type            => l_balance_type_code);
63420    ELSE
63421       NULL;
63422 XLA_AE_LINES_PKG.business_flow_validation(
63423                                 p_business_method_code     => l_bflow_method_code
63424                                ,p_business_class_code      => l_bflow_class_code
63425                                ,p_inherit_description_flag => l_inherit_desc_flag);
63426    END IF;
63427 
63428    --
63429    -- call analytical criteria
63430    --
63431    -- Inherited Analytical Criteria for business flow method of Prior Entry.
63432    --
63433    -- call description
63434    --
63435    -- No description or it is inherited.
63436    --
63437    -- call ADRs
63438    -- Bug 4922099
63439    --
63440    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63441         (NVL(l_actual_upg_option, 'N') = 'O') OR
63442         (NVL(l_enc_upg_option, 'N') = 'O')
63443       )
63444    THEN
63445    NULL;
63446    --
63447    --
63448    
63449    --
63450    --
63451    END IF;
63452    --
63453    -- Bug 4922099
63454    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63455           (NVL(l_enc_upg_option, 'N') = 'O')
63456         ) AND
63457         (l_bflow_method_code = 'PRIOR_ENTRY')
63458       )
63459    THEN
63460       IF
63461       --
63462       1 = 1
63463       --
63464       THEN
63465       xla_accounting_err_pkg.build_message
63466                                     (p_appli_s_name            => 'XLA'
63467                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63468                                     ,p_token_1                 => 'LINE_NUMBER'
63469                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63470                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63471                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63472                                                                              l_component_type
63473                                                                             ,l_component_code
63474                                                                             ,l_component_type_code
63475                                                                             ,l_component_appl_id
63476                                                                             ,l_amb_context_code
63477                                                                             ,l_entity_code
63481                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63478                                                                             ,l_event_class_code
63479                                                                            )
63480                                     ,p_token_3                 => 'OWNER'
63482                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63483                                                                           ,p_lookup_code    => l_component_type_code
63484                                                                          )
63485                                     ,p_token_4                 => 'PRODUCT_NAME'
63486                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63487                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63488                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63489                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63490                                     ,p_ae_header_id            =>  NULL
63491                                        );
63492 
63493         IF (C_LEVEL_ERROR>= g_log_level) THEN
63494                  trace
63495                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63496                       ,p_level    => C_LEVEL_ERROR
63497                       ,p_module   => l_log_module);
63498         END IF;
63499       END IF;
63500    END IF;
63501    --
63502    --
63503    ------------------------------------------------------------------------------------------------
63504    -- 4219869 Business Flow
63505    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63506    -- Prior Entry.  Currently, the following code is always generated.
63507    ------------------------------------------------------------------------------------------------
63508    -- No ValidateCurrentLine for business flow method of Prior Entry
63509 
63510    ------------------------------------------------------------------------------------
63511    -- 4219869 Business Flow
63512    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63513    ------------------------------------------------------------------------------------
63514    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63515 
63516    ----------------------------------------------------------------------------------
63517    -- 4219869 Business Flow
63518    -- Update journal entry status -- Need to generate this within IF <condition>
63519    ----------------------------------------------------------------------------------
63520    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63521          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63522          ,p_balance_type_code => l_balance_type_code
63523          );
63524 
63525    -------------------------------------------------------------------------------------------
63526    -- 4262811 - Generate the Accrual Reversal lines
63527    -------------------------------------------------------------------------------------------
63528    BEGIN
63529       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63530                               (g_array_event(p_event_id).array_value_num('header_index'));
63531       IF l_acc_rev_flag IS NULL THEN
63532          l_acc_rev_flag := 'N';
63533       END IF;
63534    EXCEPTION
63535       WHEN OTHERS THEN
63536          l_acc_rev_flag := 'N';
63537    END;
63538    --
63539    IF (l_acc_rev_flag = 'Y') THEN
63540 
63541        -- 4645092  ------------------------------------------------------------------------------
63542        -- To allow MPA report to determine if it should generate report process
63543        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63544        ------------------------------------------------------------------------------------------
63545 
63546        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63547        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63548    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63549    -- call ADRs
63550    -- Bug 4922099
63551    --
63552    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63553         (NVL(l_actual_upg_option, 'N') = 'O') OR
63554         (NVL(l_enc_upg_option, 'N') = 'O')
63555       )
63556    THEN
63557    NULL;
63558    --
63559    --
63560    
63561    --
63562    --
63563    END IF;
63564 
63565        --
63566        -- Update the line information that should be overwritten
63567        --
63568        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63569                                          p_header_num   => 1);
63570        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63571 
63572        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63573 
63574        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63575           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63576        END IF;
63577 
63578       --
63579       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63580       --
63581       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63585           -- 4262811a Switch Sign
63582           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63583       ELSE
63584           ---------------------------------------------------------------------------------------------------
63586           ---------------------------------------------------------------------------------------------------
63587           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63588           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63589                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63590           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63591                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63592           -- 5132302
63593           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63594                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63595 
63596       END IF;
63597 
63598       -- 4955764
63599       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63600       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63601 
63602 
63603       XLA_AE_LINES_PKG.ValidateCurrentLine;
63604       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63605 
63606       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63607                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63608                ,p_balance_type_code => l_balance_type_code);
63609 
63610    END IF;
63611 
63612    -----------------------------------------------------------------------------------------
63613    -- 4262811 Multiperiod Accounting
63614    -----------------------------------------------------------------------------------------
63615      -- No MPA option is assigned.
63616 
63617 
63618 END IF;
63619 END IF;
63620 --
63621 
63622 --
63623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63624    trace
63625       (p_msg      => 'END of AcctLineType_131'
63626       ,p_level    => C_LEVEL_PROCEDURE
63627       ,p_module   => l_log_module);
63628 END IF;
63629 --
63630 EXCEPTION
63631   WHEN xla_exceptions_pkg.application_exception THEN
63632       RAISE;
63633   WHEN OTHERS THEN
63634        xla_exceptions_pkg.raise_message
63635            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_131');
63636 END AcctLineType_131;
63637 --
63638 
63639 ---------------------------------------
63640 --
63641 -- PRIVATE FUNCTION
63642 --         AcctLineType_132
63643 --
63644 ---------------------------------------
63645 PROCEDURE AcctLineType_132 (
63646   p_application_id        IN NUMBER
63647  ,p_event_id              IN NUMBER
63648  ,p_calculate_acctd_flag  IN VARCHAR2
63649  ,p_calculate_g_l_flag    IN VARCHAR2
63650  ,p_actual_flag           IN OUT VARCHAR2
63651  ,p_balance_type_code     OUT VARCHAR2
63652  ,p_gain_or_loss_ref      OUT VARCHAR2
63653  
63654 --Payment Currency Code
63655  , p_source_8            IN VARCHAR2
63656 --Automatic Offsets Value
63657  , p_source_10            IN VARCHAR2
63658  , p_source_10_meaning    IN VARCHAR2
63659 --Invoice Distribution Account
63660  , p_source_25            IN NUMBER
63661 --Payables Options Rounding Account
63662  , p_source_45            IN NUMBER
63663 --When to Account for Payment Option
63664  , p_source_57            IN VARCHAR2
63665 --Accounting Reversal Indicator
63666  , p_source_58            IN VARCHAR2
63667 --Distribution Link Type
63668  , p_source_60            IN VARCHAR2
63669 --Override Accounted Amount Indicator
63670  , p_source_85            IN VARCHAR2
63671  , p_source_85_meaning    IN VARCHAR2
63672 --Third Party Type
63673  , p_source_88            IN VARCHAR2
63674 --Business Flow Accounts Payable Application Identifier
63675  , p_source_96            IN NUMBER
63676 --Payment Distribution Type
63677  , p_source_101            IN VARCHAR2
63678  , p_source_101_meaning    IN VARCHAR2
63679 --Payment Distribution Amount
63680  , p_source_102            IN NUMBER
63681 --Business Flow Payment Distribution Type
63682  , p_source_103            IN VARCHAR2
63683 --Business Flow Payment Entity Code
63684  , p_source_104            IN VARCHAR2
63685 --Business Flow Payment Distribution Identifier
63686  , p_source_105            IN NUMBER
63687 --Business Flow Payment Identifier
63688  , p_source_106            IN NUMBER
63689 --Payment Distribution Identifier
63690  , p_source_107            IN NUMBER
63691 --Payment Supplier Identifier
63692  , p_source_113            IN NUMBER
63693 --Payment Supplier Site Identifier
63694  , p_source_114            IN NUMBER
63695 --Payment Distribution Reversed Identifier
63696  , p_source_115            IN NUMBER
63697 --Payment Distribution (Payment Rate) Ledger Amount
63698  , p_source_118            IN NUMBER
63699 --Payment Exchange Date
63700  , p_source_120            IN DATE
63701 --Payment Exchange Rate
63702  , p_source_121            IN NUMBER
63703 --Payment Exchange Rate Type
63704  , p_source_122            IN VARCHAR2
63705 )
63706 IS
63707 
63708 l_component_type              VARCHAR2(80);
63712 l_amb_context_code            VARCHAR2(30);
63709 l_component_code              VARCHAR2(30);
63710 l_component_type_code         VARCHAR2(1);
63711 l_component_appl_id           INTEGER;
63713 l_entity_code                 VARCHAR2(30);
63714 l_event_class_code            VARCHAR2(30);
63715 l_ae_header_id                NUMBER;
63716 l_event_type_code             VARCHAR2(30);
63717 l_line_definition_code        VARCHAR2(30);
63718 l_line_definition_owner_code  VARCHAR2(1);
63719 --
63720 -- adr variables
63721 l_segment                     VARCHAR2(30);
63722 l_ccid                        NUMBER;
63723 l_adr_transaction_coa_id      NUMBER;
63724 l_adr_accounting_coa_id       NUMBER;
63725 l_adr_flexfield_segment_code  VARCHAR2(30);
63726 l_adr_flex_value_set_id       NUMBER;
63727 l_adr_value_type_code         VARCHAR2(30);
63728 l_adr_value_combination_id    NUMBER;
63729 l_adr_value_segment_code      VARCHAR2(30);
63730 
63731 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63732 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63733 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63734 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63735 
63736 -- 4262811 Variables ------------------------------------------------------------------------------------------
63737 l_entered_amt_idx             NUMBER;
63738 l_accted_amt_idx              NUMBER;
63739 l_acc_rev_flag                VARCHAR2(1);
63740 l_accrual_line_num            NUMBER;
63741 l_tmp_amt                     NUMBER;
63742 l_acc_rev_natural_side_code   VARCHAR2(1);
63743 
63744 l_num_entries                 NUMBER;
63745 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63746 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63747 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63748 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63749 l_recog_line_1                NUMBER;
63750 l_recog_line_2                NUMBER;
63751 
63752 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63753 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63754 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63755 
63756 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63757 
63758 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63759 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63760 
63761 ---------------------------------------------------------------------------------------------------------------
63762 
63763 
63764 --
63765 -- bulk performance
63766 --
63767 l_balance_type_code           VARCHAR2(1);
63768 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63769 l_log_module                  VARCHAR2(240);
63770 
63771 --
63772 -- Upgrade strategy
63773 --
63774 l_actual_upg_option           VARCHAR2(1);
63775 l_enc_upg_option           VARCHAR2(1);
63776 
63777 --
63778 BEGIN
63779 --
63780 IF g_log_enabled THEN
63781       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
63782 END IF;
63783 --
63784 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63785 
63786       trace
63787          (p_msg      => 'BEGIN of AcctLineType_132'
63788          ,p_level    => C_LEVEL_PROCEDURE
63789          ,p_module   => l_log_module);
63790 
63791 END IF;
63792 --
63793 l_component_type             := 'AMB_JLT';
63794 l_component_code             := 'AP_FUTURE_PMT_ROUNDING_MAT';
63795 l_component_type_code        := 'S';
63796 l_component_appl_id          :=  200;
63797 l_amb_context_code           := 'DEFAULT';
63798 l_entity_code                := 'AP_PAYMENTS';
63799 l_event_class_code           := 'FUTURE DATED PAYMENTS';
63800 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
63801 l_line_definition_owner_code := 'S';
63802 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
63803 --
63804 l_balance_type_code          := 'A';
63805 l_segment                     := NULL;
63806 l_ccid                        := NULL;
63807 l_adr_transaction_coa_id      := NULL;
63808 l_adr_accounting_coa_id       := NULL;
63809 l_adr_flexfield_segment_code  := NULL;
63810 l_adr_flex_value_set_id       := NULL;
63811 l_adr_value_type_code         := NULL;
63812 l_adr_value_combination_id    := NULL;
63813 l_adr_value_segment_code      := NULL;
63814 
63815 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
63816 l_bflow_class_code           := '';    -- 4219869 Business Flow
63817 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63818 l_budgetary_control_flag     := 'N';
63819 
63820 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63821 l_bflow_applied_to_amt       := NULL; -- 5132302
63822 l_entered_amt_idx            := NULL;          -- 4262811
63823 l_accted_amt_idx             := NULL;          -- 4262811
63824 l_acc_rev_flag               := NULL;          -- 4262811
63825 l_accrual_line_num           := NULL;          -- 4262811
63826 l_tmp_amt                    := NULL;          -- 4262811
63827 --
63828  
63829 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63830     l_balance_type_code <> 'B' THEN
63831 IF NVL(p_source_57,'
63832 ') <>  'CLEAR_CLEAR' AND 
63836 
63833 NVL(p_source_101,'
63834 ') =  'FUTURE PAYMENT ROUNDING'
63835  THEN 
63837    --
63838    XLA_AE_LINES_PKG.SetNewLine;
63839 
63840    p_balance_type_code          := l_balance_type_code;
63841    -- set the flag so later we will know whether the gain loss line needs to be created
63842    
63843    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
63844      p_actual_flag :='A';
63845    END IF;
63846 
63847    --
63848    -- bulk performance
63849    --
63850    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63851                                       p_header_num   => 0); -- 4262811
63852    --
63853    -- set accounting line options
63854    --
63855    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63856            p_natural_side_code          => 'D'
63857          , p_gain_or_loss_flag          => 'N'
63858          , p_gl_transfer_mode_code      => 'S'
63859          , p_acct_entry_type_code       => 'A'
63860          , p_switch_side_flag           => 'Y'
63861          , p_merge_duplicate_code       => 'A'
63862          );
63863    --
63864    l_acc_rev_natural_side_code := 'C';  -- 4262811
63865    -- 
63866    --
63867    -- set accounting line type info
63868    --
63869    xla_ae_lines_pkg.SetAcctLineType
63870       (p_component_type             => l_component_type
63871       ,p_event_type_code            => l_event_type_code
63872       ,p_line_definition_owner_code => l_line_definition_owner_code
63873       ,p_line_definition_code       => l_line_definition_code
63874       ,p_accounting_line_code       => l_component_code
63875       ,p_accounting_line_type_code  => l_component_type_code
63876       ,p_accounting_line_appl_id    => l_component_appl_id
63877       ,p_amb_context_code           => l_amb_context_code
63878       ,p_entity_code                => l_entity_code
63879       ,p_event_class_code           => l_event_class_code);
63880    --
63881    -- set accounting class
63882    --
63883    xla_ae_lines_pkg.SetAcctClass(
63884            p_accounting_class_code  => 'ROUNDING'
63885          , p_ae_header_id           => l_ae_header_id
63886          );
63887 
63888    --
63889    -- set rounding class
63890    --
63891    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63892                       'ROUNDING';
63893 
63894    --
63895    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63896    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63897    --
63898    -- bulk performance
63899    --
63900    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63901 
63902    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63903       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63904 
63905    -- 4955764
63906    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63907       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63908 
63909    -- 4458381 Public Sector Enh
63910    
63911    --
63912    -- set accounting attributes for the line type
63913    --
63914    l_entered_amt_idx := 9;
63915    l_accted_amt_idx  := 14;
63916    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63917    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63918    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
63919    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
63920    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
63921    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63922    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
63923    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
63924    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
63925    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
63926    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
63927    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63928    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
63929    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
63930    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
63931    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
63932    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
63933    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
63934    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
63935    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
63936    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
63937    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
63938    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
63939    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
63940    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
63941    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
63942    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
63943    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
63944    l_rec_acct_attrs.array_num_value(14)  := p_source_118;
63945    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
63946    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
63950    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
63947    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
63948    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
63949    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
63951    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
63952    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
63953    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
63954    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
63955    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
63956    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
63957 
63958    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63959    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63960 
63961    ---------------------------------------------------------------------------------------------------------------
63962    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63963    ---------------------------------------------------------------------------------------------------------------
63964    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63965 
63966    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63967    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63968 
63969    IF xla_accounting_cache_pkg.GetValueChar
63970          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63971          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63972    AND l_bflow_method_code = 'PRIOR_ENTRY'
63973 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63974    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63975          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63976        )
63977    THEN
63978          xla_ae_lines_pkg.BflowUpgEntry
63979            (p_business_method_code    => l_bflow_method_code
63980            ,p_business_class_code     => l_bflow_class_code
63981            ,p_balance_type            => l_balance_type_code);
63982    ELSE
63983       NULL;
63984 -- No business flow processing for business flow method of NONE.
63985    END IF;
63986 
63987    --
63988    -- call analytical criteria
63989    --
63990    
63991    --
63992    -- call description
63993    --
63994    -- No description or it is inherited.
63995    --
63996    -- call ADRs
63997    -- Bug 4922099
63998    --
63999    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64000         (NVL(l_actual_upg_option, 'N') = 'O') OR
64001         (NVL(l_enc_upg_option, 'N') = 'O')
64002       )
64003    THEN
64004    NULL;
64005    --
64006    --
64007    
64008   l_ccid := AcctDerRule_43(
64009            p_application_id           => p_application_id
64010          , p_ae_header_id             => l_ae_header_id 
64011 , p_source_10 => p_source_10
64012 , p_source_10_meaning => p_source_10_meaning
64013 , p_source_25 => p_source_25
64014 , p_source_45 => p_source_45
64015          , x_transaction_coa_id       => l_adr_transaction_coa_id
64016          , x_accounting_coa_id        => l_adr_accounting_coa_id
64017          , x_value_type_code          => l_adr_value_type_code
64018          , p_side                     => 'NA'
64019    );
64020 
64021    xla_ae_lines_pkg.set_ccid(
64022     p_code_combination_id          => l_ccid
64023   , p_value_type_code              => l_adr_value_type_code
64024   , p_transaction_coa_id           => l_adr_transaction_coa_id
64025   , p_accounting_coa_id            => l_adr_accounting_coa_id
64026   , p_adr_code                     => 'AP_ROUNDING'
64027   , p_adr_type_code                => 'S'
64028   , p_component_type               => l_component_type
64029   , p_component_code               => l_component_code
64030   , p_component_type_code          => l_component_type_code
64031   , p_component_appl_id            => l_component_appl_id
64032   , p_amb_context_code             => l_amb_context_code
64033   , p_side                         => 'NA'
64034   );
64035 
64036 
64037    --
64038    --
64039    END IF;
64040    --
64041    -- Bug 4922099
64042    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64043           (NVL(l_enc_upg_option, 'N') = 'O')
64044         ) AND
64045         (l_bflow_method_code = 'PRIOR_ENTRY')
64046       )
64047    THEN
64048       IF
64049       --
64050       1 = 2
64051       --
64052       THEN
64053       xla_accounting_err_pkg.build_message
64054                                     (p_appli_s_name            => 'XLA'
64055                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64056                                     ,p_token_1                 => 'LINE_NUMBER'
64057                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64058                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64059                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64060                                                                              l_component_type
64061                                                                             ,l_component_code
64062                                                                             ,l_component_type_code
64066                                                                             ,l_event_class_code
64063                                                                             ,l_component_appl_id
64064                                                                             ,l_amb_context_code
64065                                                                             ,l_entity_code
64067                                                                            )
64068                                     ,p_token_3                 => 'OWNER'
64069                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64070                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64071                                                                           ,p_lookup_code    => l_component_type_code
64072                                                                          )
64073                                     ,p_token_4                 => 'PRODUCT_NAME'
64074                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64075                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64076                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64077                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64078                                     ,p_ae_header_id            =>  NULL
64079                                        );
64080 
64081         IF (C_LEVEL_ERROR>= g_log_level) THEN
64082                  trace
64083                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64084                       ,p_level    => C_LEVEL_ERROR
64085                       ,p_module   => l_log_module);
64086         END IF;
64087       END IF;
64088    END IF;
64089    --
64090    --
64091    ------------------------------------------------------------------------------------------------
64092    -- 4219869 Business Flow
64093    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64094    -- Prior Entry.  Currently, the following code is always generated.
64095    ------------------------------------------------------------------------------------------------
64096    XLA_AE_LINES_PKG.ValidateCurrentLine;
64097 
64098    ------------------------------------------------------------------------------------
64099    -- 4219869 Business Flow
64100    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64101    ------------------------------------------------------------------------------------
64102    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64103 
64104    ----------------------------------------------------------------------------------
64105    -- 4219869 Business Flow
64106    -- Update journal entry status -- Need to generate this within IF <condition>
64107    ----------------------------------------------------------------------------------
64108    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64109          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64110          ,p_balance_type_code => l_balance_type_code
64111          );
64112 
64113    -------------------------------------------------------------------------------------------
64114    -- 4262811 - Generate the Accrual Reversal lines
64115    -------------------------------------------------------------------------------------------
64116    BEGIN
64117       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64118                               (g_array_event(p_event_id).array_value_num('header_index'));
64119       IF l_acc_rev_flag IS NULL THEN
64120          l_acc_rev_flag := 'N';
64121       END IF;
64122    EXCEPTION
64123       WHEN OTHERS THEN
64124          l_acc_rev_flag := 'N';
64125    END;
64126    --
64127    IF (l_acc_rev_flag = 'Y') THEN
64128 
64129        -- 4645092  ------------------------------------------------------------------------------
64130        -- To allow MPA report to determine if it should generate report process
64131        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64132        ------------------------------------------------------------------------------------------
64133 
64134        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64135        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64136    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64137    -- call ADRs
64138    -- Bug 4922099
64139    --
64140    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64141         (NVL(l_actual_upg_option, 'N') = 'O') OR
64142         (NVL(l_enc_upg_option, 'N') = 'O')
64143       )
64144    THEN
64145    NULL;
64146    --
64147    --
64148    
64149   l_ccid := AcctDerRule_43(
64150            p_application_id           => p_application_id
64151          , p_ae_header_id             => l_ae_header_id 
64152 , p_source_10 => p_source_10
64153 , p_source_10_meaning => p_source_10_meaning
64154 , p_source_25 => p_source_25
64155 , p_source_45 => p_source_45
64156          , x_transaction_coa_id       => l_adr_transaction_coa_id
64157          , x_accounting_coa_id        => l_adr_accounting_coa_id
64158          , x_value_type_code          => l_adr_value_type_code
64159          , p_side                     => 'NA'
64160    );
64161 
64162    xla_ae_lines_pkg.set_ccid(
64163     p_code_combination_id          => l_ccid
64167   , p_adr_code                     => 'AP_ROUNDING'
64164   , p_value_type_code              => l_adr_value_type_code
64165   , p_transaction_coa_id           => l_adr_transaction_coa_id
64166   , p_accounting_coa_id            => l_adr_accounting_coa_id
64168   , p_adr_type_code                => 'S'
64169   , p_component_type               => l_component_type
64170   , p_component_code               => l_component_code
64171   , p_component_type_code          => l_component_type_code
64172   , p_component_appl_id            => l_component_appl_id
64173   , p_amb_context_code             => l_amb_context_code
64174   , p_side                         => 'NA'
64175   );
64176 
64177 
64178    --
64179    --
64180    END IF;
64181 
64182        --
64183        -- Update the line information that should be overwritten
64184        --
64185        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64186                                          p_header_num   => 1);
64187        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64188 
64189        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64190 
64191        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64192           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64193        END IF;
64194 
64195       --
64196       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64197       --
64198       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64199           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64200       ELSE
64201           ---------------------------------------------------------------------------------------------------
64202           -- 4262811a Switch Sign
64203           ---------------------------------------------------------------------------------------------------
64204           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64205           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64206                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64207           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64208                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64209           -- 5132302
64210           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64211                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64212 
64213       END IF;
64214 
64215       -- 4955764
64216       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64217       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64218 
64219 
64220       XLA_AE_LINES_PKG.ValidateCurrentLine;
64221       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64222 
64223       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64224                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64225                ,p_balance_type_code => l_balance_type_code);
64226 
64227    END IF;
64228 
64229    -----------------------------------------------------------------------------------------
64230    -- 4262811 Multiperiod Accounting
64231    -----------------------------------------------------------------------------------------
64232      -- No MPA option is assigned.
64233 
64234 
64235 END IF;
64236 END IF;
64237 --
64238 
64239 --
64240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64241    trace
64242       (p_msg      => 'END of AcctLineType_132'
64243       ,p_level    => C_LEVEL_PROCEDURE
64244       ,p_module   => l_log_module);
64245 END IF;
64246 --
64247 EXCEPTION
64248   WHEN xla_exceptions_pkg.application_exception THEN
64249       RAISE;
64250   WHEN OTHERS THEN
64251        xla_exceptions_pkg.raise_message
64252            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_132');
64253 END AcctLineType_132;
64254 --
64255 
64256 ---------------------------------------
64257 --
64258 -- PRIVATE FUNCTION
64259 --         AcctLineType_133
64260 --
64261 ---------------------------------------
64262 PROCEDURE AcctLineType_133 (
64263   p_application_id        IN NUMBER
64264  ,p_event_id              IN NUMBER
64265  ,p_calculate_acctd_flag  IN VARCHAR2
64266  ,p_calculate_g_l_flag    IN VARCHAR2
64267  ,p_actual_flag           IN OUT VARCHAR2
64268  ,p_balance_type_code     OUT VARCHAR2
64269  ,p_gain_or_loss_ref      OUT VARCHAR2
64270  
64271 --Payment Currency Code
64272  , p_source_8            IN VARCHAR2
64273 --Automatic Offsets Value
64274  , p_source_10            IN VARCHAR2
64275  , p_source_10_meaning    IN VARCHAR2
64276 --Invoice Distribution Account
64277  , p_source_25            IN NUMBER
64278 --Internal Realized Gain Account
64279  , p_source_31            IN NUMBER
64280 --Bank Gain Account
64281  , p_source_32            IN NUMBER
64282 --When to Account for Payment Option
64283  , p_source_57            IN VARCHAR2
64284 --Accounting Reversal Indicator
64285  , p_source_58            IN VARCHAR2
64286 --Distribution Link Type
64287  , p_source_60            IN VARCHAR2
64291 --Third Party Type
64288 --Override Accounted Amount Indicator
64289  , p_source_85            IN VARCHAR2
64290  , p_source_85_meaning    IN VARCHAR2
64292  , p_source_88            IN VARCHAR2
64293 --Invoice Distribution Tax Line Identifier
64294  , p_source_91            IN NUMBER
64295 --Invoice Distribution Summary Tax Line Identifier
64296  , p_source_93            IN NUMBER
64297 --Business Flow Accounts Payable Application Identifier
64298  , p_source_96            IN NUMBER
64299 --Payment Distribution Type
64300  , p_source_101            IN VARCHAR2
64301  , p_source_101_meaning    IN VARCHAR2
64302 --Payment Distribution Amount
64303  , p_source_102            IN NUMBER
64304 --Business Flow Payment Distribution Type
64305  , p_source_103            IN VARCHAR2
64306 --Business Flow Payment Entity Code
64307  , p_source_104            IN VARCHAR2
64308 --Business Flow Payment Distribution Identifier
64309  , p_source_105            IN NUMBER
64310 --Business Flow Payment Identifier
64311  , p_source_106            IN NUMBER
64312 --Payment Distribution Identifier
64313  , p_source_107            IN NUMBER
64314 --Cleared Exchange Date
64315  , p_source_109            IN DATE
64316 --Cleared Exchange Rate
64317  , p_source_110            IN NUMBER
64318 --Cleared Exchange Rate Type
64319  , p_source_111            IN VARCHAR2
64320 --Payment Supplier Identifier
64321  , p_source_113            IN NUMBER
64322 --Payment Supplier Site Identifier
64323  , p_source_114            IN NUMBER
64324 --Payment Distribution Reversed Identifier
64325  , p_source_115            IN NUMBER
64326 --Gain or Loss Indicator between Invoice and Clearing
64327  , p_source_154            IN VARCHAR2
64328 --Invoice/Clearing Ledger Amount Difference
64329  , p_source_155            IN NUMBER
64330 )
64331 IS
64332 
64333 l_component_type              VARCHAR2(80);
64334 l_component_code              VARCHAR2(30);
64335 l_component_type_code         VARCHAR2(1);
64336 l_component_appl_id           INTEGER;
64337 l_amb_context_code            VARCHAR2(30);
64338 l_entity_code                 VARCHAR2(30);
64339 l_event_class_code            VARCHAR2(30);
64340 l_ae_header_id                NUMBER;
64341 l_event_type_code             VARCHAR2(30);
64342 l_line_definition_code        VARCHAR2(30);
64343 l_line_definition_owner_code  VARCHAR2(1);
64344 --
64345 -- adr variables
64346 l_segment                     VARCHAR2(30);
64347 l_ccid                        NUMBER;
64348 l_adr_transaction_coa_id      NUMBER;
64349 l_adr_accounting_coa_id       NUMBER;
64350 l_adr_flexfield_segment_code  VARCHAR2(30);
64351 l_adr_flex_value_set_id       NUMBER;
64352 l_adr_value_type_code         VARCHAR2(30);
64353 l_adr_value_combination_id    NUMBER;
64354 l_adr_value_segment_code      VARCHAR2(30);
64355 
64356 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64357 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64358 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64359 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64360 
64361 -- 4262811 Variables ------------------------------------------------------------------------------------------
64362 l_entered_amt_idx             NUMBER;
64363 l_accted_amt_idx              NUMBER;
64364 l_acc_rev_flag                VARCHAR2(1);
64365 l_accrual_line_num            NUMBER;
64366 l_tmp_amt                     NUMBER;
64367 l_acc_rev_natural_side_code   VARCHAR2(1);
64368 
64369 l_num_entries                 NUMBER;
64370 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64371 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64372 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64373 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64374 l_recog_line_1                NUMBER;
64375 l_recog_line_2                NUMBER;
64376 
64377 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64378 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64379 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64380 
64381 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64382 
64383 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64384 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64385 
64386 ---------------------------------------------------------------------------------------------------------------
64387 
64388 
64389 --
64390 -- bulk performance
64391 --
64392 l_balance_type_code           VARCHAR2(1);
64393 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64394 l_log_module                  VARCHAR2(240);
64395 
64396 --
64397 -- Upgrade strategy
64398 --
64399 l_actual_upg_option           VARCHAR2(1);
64400 l_enc_upg_option           VARCHAR2(1);
64401 
64402 --
64403 BEGIN
64404 --
64405 IF g_log_enabled THEN
64406       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
64407 END IF;
64408 --
64409 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64410 
64411       trace
64412          (p_msg      => 'BEGIN of AcctLineType_133'
64413          ,p_level    => C_LEVEL_PROCEDURE
64414          ,p_module   => l_log_module);
64415 
64416 END IF;
64417 --
64421 l_component_appl_id          :=  200;
64418 l_component_type             := 'AMB_JLT';
64419 l_component_code             := 'AP_GAIN_INV_CLEAR_BY_PMT_CLEAR';
64420 l_component_type_code        := 'S';
64422 l_amb_context_code           := 'DEFAULT';
64423 l_entity_code                := 'AP_PAYMENTS';
64424 l_event_class_code           := 'RECONCILED PAYMENTS';
64425 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
64426 l_line_definition_owner_code := 'S';
64427 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
64428 --
64429 l_balance_type_code          := 'A';
64430 l_segment                     := NULL;
64431 l_ccid                        := NULL;
64432 l_adr_transaction_coa_id      := NULL;
64433 l_adr_accounting_coa_id       := NULL;
64434 l_adr_flexfield_segment_code  := NULL;
64435 l_adr_flex_value_set_id       := NULL;
64436 l_adr_value_type_code         := NULL;
64437 l_adr_value_combination_id    := NULL;
64438 l_adr_value_segment_code      := NULL;
64439 
64440 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
64441 l_bflow_class_code           := '';    -- 4219869 Business Flow
64442 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64443 l_budgetary_control_flag     := 'N';
64444 
64445 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64446 l_bflow_applied_to_amt       := NULL; -- 5132302
64447 l_entered_amt_idx            := NULL;          -- 4262811
64448 l_accted_amt_idx             := NULL;          -- 4262811
64449 l_acc_rev_flag               := NULL;          -- 4262811
64450 l_accrual_line_num           := NULL;          -- 4262811
64451 l_tmp_amt                    := NULL;          -- 4262811
64452 --
64453 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
64454             (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
64455                return;
64456   END IF;
64457   
64458 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64459     l_balance_type_code <> 'B' THEN
64460 IF (NVL(p_source_57,'
64461 ') =  'CLEAR_CLEAR' OR 
64462 NVL(p_source_57,'
64463 ') =  'ALWAYS_CLEAR') AND 
64464 NVL(p_source_101,'
64465 ') <>  'EXCHANGE RATE VARIANCE' AND 
64466 NVL(p_source_101,'
64467 ') <>  'BANK CHARGE' AND 
64468 NVL(p_source_101,'
64469 ') <>  'BANK ERROR' AND 
64470 NVL(p_source_101,'
64471 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
64472 NVL(p_source_154,'
64473 ') =  'GAIN' AND 
64474 NVL(p_source_101,'
64475 ') <>  'AWT'
64476  THEN 
64477 
64478    --
64479    XLA_AE_LINES_PKG.SetNewLine;
64480 
64481    p_balance_type_code          := l_balance_type_code;
64482    -- set the flag so later we will know whether the gain loss line needs to be created
64483    
64484    IF(l_balance_type_code = 'A' ) THEN
64485      p_actual_flag :='G';
64486    END IF;
64487 
64488    --
64489    -- bulk performance
64490    --
64491    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64492                                       p_header_num   => 0); -- 4262811
64493    --
64494    -- set accounting line options
64495    --
64496    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64497            p_natural_side_code          => 'C'
64498          , p_gain_or_loss_flag          => 'Y'
64499          , p_gl_transfer_mode_code      => 'S'
64500          , p_acct_entry_type_code       => 'A'
64501          , p_switch_side_flag           => 'Y'
64502          , p_merge_duplicate_code       => 'A'
64503          );
64504    --
64505    l_acc_rev_natural_side_code := 'D';  -- 4262811
64506    -- 
64507    --
64508    -- set accounting line type info
64509    --
64510    xla_ae_lines_pkg.SetAcctLineType
64511       (p_component_type             => l_component_type
64512       ,p_event_type_code            => l_event_type_code
64513       ,p_line_definition_owner_code => l_line_definition_owner_code
64514       ,p_line_definition_code       => l_line_definition_code
64515       ,p_accounting_line_code       => l_component_code
64516       ,p_accounting_line_type_code  => l_component_type_code
64517       ,p_accounting_line_appl_id    => l_component_appl_id
64518       ,p_amb_context_code           => l_amb_context_code
64519       ,p_entity_code                => l_entity_code
64520       ,p_event_class_code           => l_event_class_code);
64521    --
64522    -- set accounting class
64523    --
64524    xla_ae_lines_pkg.SetAcctClass(
64525            p_accounting_class_code  => 'GAIN'
64526          , p_ae_header_id           => l_ae_header_id
64527          );
64528 
64529    --
64530    -- set rounding class
64531    --
64532    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64533                       'GAIN';
64534 
64535    --
64536    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64537    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64538    --
64539    -- bulk performance
64540    --
64541    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64542 
64543    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64547    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64544       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64545 
64546    -- 4955764
64548       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64549 
64550    -- 4458381 Public Sector Enh
64551    
64552    --
64553    -- set accounting attributes for the line type
64554    --
64555    l_entered_amt_idx := 10;
64556    l_accted_amt_idx  := 15;
64557    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
64558    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64559    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
64560    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
64561    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
64562    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
64563    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
64564    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64565    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
64566    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
64567    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
64568    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
64569    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
64570    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64571    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
64572    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
64573    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
64574    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
64575    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
64576    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
64577    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
64578    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
64579    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
64580    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
64581    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
64582    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
64583    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
64584    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
64585    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
64586    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
64587    l_rec_acct_attrs.array_num_value(15)  := p_source_155;
64588    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
64589    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
64590    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
64591    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
64592    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
64593    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
64594    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
64595    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
64596    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
64597    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
64598    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
64599    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
64600    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
64601    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
64602    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
64603    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
64604    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
64605    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
64606 
64607    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64608    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64609 
64610    ---------------------------------------------------------------------------------------------------------------
64611    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64612    ---------------------------------------------------------------------------------------------------------------
64613    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64614 
64615    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64616    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64617 
64618    IF xla_accounting_cache_pkg.GetValueChar
64619          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64620          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64621    AND l_bflow_method_code = 'PRIOR_ENTRY'
64622 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64623    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64624          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64625        )
64626    THEN
64627          xla_ae_lines_pkg.BflowUpgEntry
64628            (p_business_method_code    => l_bflow_method_code
64629            ,p_business_class_code     => l_bflow_class_code
64630            ,p_balance_type            => l_balance_type_code);
64631    ELSE
64632       NULL;
64633 -- No business flow processing for business flow method of NONE.
64634    END IF;
64635 
64636    --
64640    --
64637    -- call analytical criteria
64638    --
64639    
64641    -- call description
64642    --
64643    -- No description or it is inherited.
64644    --
64645    -- call ADRs
64646    -- Bug 4922099
64647    --
64648    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64649         (NVL(l_actual_upg_option, 'N') = 'O') OR
64650         (NVL(l_enc_upg_option, 'N') = 'O')
64651       )
64652    THEN
64653    NULL;
64654    --
64655    --
64656    
64657   l_ccid := AcctDerRule_40(
64658            p_application_id           => p_application_id
64659          , p_ae_header_id             => l_ae_header_id 
64660 , p_source_10 => p_source_10
64661 , p_source_10_meaning => p_source_10_meaning
64662 , p_source_25 => p_source_25
64663 , p_source_31 => p_source_31
64664 , p_source_32 => p_source_32
64665          , x_transaction_coa_id       => l_adr_transaction_coa_id
64666          , x_accounting_coa_id        => l_adr_accounting_coa_id
64667          , x_value_type_code          => l_adr_value_type_code
64668          , p_side                     => 'NA'
64669    );
64670 
64671    xla_ae_lines_pkg.set_ccid(
64672     p_code_combination_id          => l_ccid
64673   , p_value_type_code              => l_adr_value_type_code
64674   , p_transaction_coa_id           => l_adr_transaction_coa_id
64675   , p_accounting_coa_id            => l_adr_accounting_coa_id
64676   , p_adr_code                     => 'AP_REAL_GAIN'
64677   , p_adr_type_code                => 'S'
64678   , p_component_type               => l_component_type
64679   , p_component_code               => l_component_code
64680   , p_component_type_code          => l_component_type_code
64681   , p_component_appl_id            => l_component_appl_id
64682   , p_amb_context_code             => l_amb_context_code
64683   , p_side                         => 'NA'
64684   );
64685 
64686 
64687    l_segment := AcctDerRule_23(
64688            p_application_id           => p_application_id
64689          , p_ae_header_id             => l_ae_header_id 
64690 , p_source_10 => p_source_10
64691 , p_source_10_meaning => p_source_10_meaning
64692 , p_source_25 => p_source_25
64693          , x_transaction_coa_id       => l_adr_transaction_coa_id
64694          , x_accounting_coa_id        => l_adr_accounting_coa_id
64695          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64696          , x_flex_value_set_id        => l_adr_flex_value_set_id
64697          , x_value_type_code          => l_adr_value_type_code
64698          , x_value_combination_id     => l_adr_value_combination_id
64699          , x_value_segment_code       => l_adr_value_segment_code
64700          , p_side                     => 'NA'
64701          , p_override_seg_flag        => 'Y'
64702    );
64703 
64704    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64705 
64706       xla_ae_lines_pkg.set_segment(
64707           p_to_segment_code         => 'GL_BALANCING'
64708         , p_segment_value           => l_segment
64709         , p_from_segment_code       => l_adr_value_segment_code
64710         , p_from_combination_id     => l_adr_value_combination_id
64711         , p_value_type_code         => l_adr_value_type_code
64712         , p_transaction_coa_id      => l_adr_transaction_coa_id
64713         , p_accounting_coa_id       => l_adr_accounting_coa_id
64714         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64715         , p_flex_value_set_id       => l_adr_flex_value_set_id
64716         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
64717         , p_adr_type_code           => 'S'
64718         , p_component_type          => l_component_type
64719         , p_component_code          => l_component_code
64720         , p_component_type_code     => l_component_type_code
64721         , p_component_appl_id       => l_component_appl_id
64722         , p_amb_context_code        => l_amb_context_code
64723         , p_entity_code             => 'AP_PAYMENTS'
64724         , p_event_class_code        => 'RECONCILED PAYMENTS'
64725         , p_side                    => 'NA'
64726         );
64727 
64728   END IF;
64729 
64730    l_segment := AcctDerRule_17(
64731            p_application_id           => p_application_id
64732          , p_ae_header_id             => l_ae_header_id 
64733 , p_source_10 => p_source_10
64734 , p_source_10_meaning => p_source_10_meaning
64735 , p_source_31 => p_source_31
64736 , p_source_32 => p_source_32
64737          , x_transaction_coa_id       => l_adr_transaction_coa_id
64738          , x_accounting_coa_id        => l_adr_accounting_coa_id
64739          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64740          , x_flex_value_set_id        => l_adr_flex_value_set_id
64741          , x_value_type_code          => l_adr_value_type_code
64742          , x_value_combination_id     => l_adr_value_combination_id
64743          , x_value_segment_code       => l_adr_value_segment_code
64744          , p_side                     => 'NA'
64745          , p_override_seg_flag        => 'Y'
64746    );
64747 
64748    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64749 
64750       xla_ae_lines_pkg.set_segment(
64751           p_to_segment_code         => 'GL_ACCOUNT'
64752         , p_segment_value           => l_segment
64753         , p_from_segment_code       => l_adr_value_segment_code
64754         , p_from_combination_id     => l_adr_value_combination_id
64755         , p_value_type_code         => l_adr_value_type_code
64756         , p_transaction_coa_id      => l_adr_transaction_coa_id
64760         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
64757         , p_accounting_coa_id       => l_adr_accounting_coa_id
64758         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64759         , p_flex_value_set_id       => l_adr_flex_value_set_id
64761         , p_adr_type_code           => 'S'
64762         , p_component_type          => l_component_type
64763         , p_component_code          => l_component_code
64764         , p_component_type_code     => l_component_type_code
64765         , p_component_appl_id       => l_component_appl_id
64766         , p_amb_context_code        => l_amb_context_code
64767         , p_entity_code             => 'AP_PAYMENTS'
64768         , p_event_class_code        => 'RECONCILED PAYMENTS'
64769         , p_side                    => 'NA'
64770         );
64771 
64772   END IF;
64773 
64774    --
64775    --
64776    END IF;
64777    --
64778    -- Bug 4922099
64779    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64780           (NVL(l_enc_upg_option, 'N') = 'O')
64781         ) AND
64782         (l_bflow_method_code = 'PRIOR_ENTRY')
64783       )
64784    THEN
64785       IF
64786       --
64787       1 = 2
64788       --
64789       THEN
64790       xla_accounting_err_pkg.build_message
64791                                     (p_appli_s_name            => 'XLA'
64792                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64793                                     ,p_token_1                 => 'LINE_NUMBER'
64794                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64795                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64796                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64797                                                                              l_component_type
64798                                                                             ,l_component_code
64799                                                                             ,l_component_type_code
64800                                                                             ,l_component_appl_id
64801                                                                             ,l_amb_context_code
64802                                                                             ,l_entity_code
64803                                                                             ,l_event_class_code
64804                                                                            )
64805                                     ,p_token_3                 => 'OWNER'
64806                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64807                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64808                                                                           ,p_lookup_code    => l_component_type_code
64809                                                                          )
64810                                     ,p_token_4                 => 'PRODUCT_NAME'
64811                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64812                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64813                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64814                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64815                                     ,p_ae_header_id            =>  NULL
64816                                        );
64817 
64818         IF (C_LEVEL_ERROR>= g_log_level) THEN
64819                  trace
64820                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64821                       ,p_level    => C_LEVEL_ERROR
64822                       ,p_module   => l_log_module);
64823         END IF;
64824       END IF;
64825    END IF;
64826    --
64827    --
64828    ------------------------------------------------------------------------------------------------
64829    -- 4219869 Business Flow
64830    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64831    -- Prior Entry.  Currently, the following code is always generated.
64832    ------------------------------------------------------------------------------------------------
64833    XLA_AE_LINES_PKG.ValidateCurrentLine;
64834 
64835    ------------------------------------------------------------------------------------
64836    -- 4219869 Business Flow
64837    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64838    ------------------------------------------------------------------------------------
64839    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64840 
64841    ----------------------------------------------------------------------------------
64842    -- 4219869 Business Flow
64843    -- Update journal entry status -- Need to generate this within IF <condition>
64844    ----------------------------------------------------------------------------------
64845    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64846          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64847          ,p_balance_type_code => l_balance_type_code
64848          );
64849 
64850    -------------------------------------------------------------------------------------------
64851    -- 4262811 - Generate the Accrual Reversal lines
64855                               (g_array_event(p_event_id).array_value_num('header_index'));
64852    -------------------------------------------------------------------------------------------
64853    BEGIN
64854       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64856       IF l_acc_rev_flag IS NULL THEN
64857          l_acc_rev_flag := 'N';
64858       END IF;
64859    EXCEPTION
64860       WHEN OTHERS THEN
64861          l_acc_rev_flag := 'N';
64862    END;
64863    --
64864    IF (l_acc_rev_flag = 'Y') THEN
64865 
64866        -- 4645092  ------------------------------------------------------------------------------
64867        -- To allow MPA report to determine if it should generate report process
64868        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64869        ------------------------------------------------------------------------------------------
64870 
64871        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64872        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64873    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64874    -- call ADRs
64875    -- Bug 4922099
64876    --
64877    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64878         (NVL(l_actual_upg_option, 'N') = 'O') OR
64879         (NVL(l_enc_upg_option, 'N') = 'O')
64880       )
64881    THEN
64882    NULL;
64883    --
64884    --
64885    
64886   l_ccid := AcctDerRule_40(
64887            p_application_id           => p_application_id
64888          , p_ae_header_id             => l_ae_header_id 
64889 , p_source_10 => p_source_10
64890 , p_source_10_meaning => p_source_10_meaning
64891 , p_source_25 => p_source_25
64892 , p_source_31 => p_source_31
64893 , p_source_32 => p_source_32
64894          , x_transaction_coa_id       => l_adr_transaction_coa_id
64895          , x_accounting_coa_id        => l_adr_accounting_coa_id
64896          , x_value_type_code          => l_adr_value_type_code
64897          , p_side                     => 'NA'
64898    );
64899 
64900    xla_ae_lines_pkg.set_ccid(
64901     p_code_combination_id          => l_ccid
64902   , p_value_type_code              => l_adr_value_type_code
64903   , p_transaction_coa_id           => l_adr_transaction_coa_id
64904   , p_accounting_coa_id            => l_adr_accounting_coa_id
64905   , p_adr_code                     => 'AP_REAL_GAIN'
64906   , p_adr_type_code                => 'S'
64907   , p_component_type               => l_component_type
64908   , p_component_code               => l_component_code
64909   , p_component_type_code          => l_component_type_code
64910   , p_component_appl_id            => l_component_appl_id
64911   , p_amb_context_code             => l_amb_context_code
64912   , p_side                         => 'NA'
64913   );
64914 
64915 
64916    l_segment := AcctDerRule_23(
64917            p_application_id           => p_application_id
64918          , p_ae_header_id             => l_ae_header_id 
64919 , p_source_10 => p_source_10
64920 , p_source_10_meaning => p_source_10_meaning
64921 , p_source_25 => p_source_25
64922          , x_transaction_coa_id       => l_adr_transaction_coa_id
64923          , x_accounting_coa_id        => l_adr_accounting_coa_id
64924          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64925          , x_flex_value_set_id        => l_adr_flex_value_set_id
64926          , x_value_type_code          => l_adr_value_type_code
64927          , x_value_combination_id     => l_adr_value_combination_id
64928          , x_value_segment_code       => l_adr_value_segment_code
64929          , p_side                     => 'NA'
64930          , p_override_seg_flag        => 'Y'
64931    );
64932 
64933    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64934 
64935       xla_ae_lines_pkg.set_segment(
64936           p_to_segment_code         => 'GL_BALANCING'
64937         , p_segment_value           => l_segment
64938         , p_from_segment_code       => l_adr_value_segment_code
64939         , p_from_combination_id     => l_adr_value_combination_id
64940         , p_value_type_code         => l_adr_value_type_code
64941         , p_transaction_coa_id      => l_adr_transaction_coa_id
64942         , p_accounting_coa_id       => l_adr_accounting_coa_id
64943         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64944         , p_flex_value_set_id       => l_adr_flex_value_set_id
64945         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
64946         , p_adr_type_code           => 'S'
64947         , p_component_type          => l_component_type
64948         , p_component_code          => l_component_code
64949         , p_component_type_code     => l_component_type_code
64950         , p_component_appl_id       => l_component_appl_id
64951         , p_amb_context_code        => l_amb_context_code
64952         , p_entity_code             => 'AP_PAYMENTS'
64953         , p_event_class_code        => 'RECONCILED PAYMENTS'
64954         , p_side                    => 'NA'
64955         );
64956 
64957   END IF;
64958 
64959    l_segment := AcctDerRule_17(
64960            p_application_id           => p_application_id
64961          , p_ae_header_id             => l_ae_header_id 
64962 , p_source_10 => p_source_10
64963 , p_source_10_meaning => p_source_10_meaning
64964 , p_source_31 => p_source_31
64965 , p_source_32 => p_source_32
64966          , x_transaction_coa_id       => l_adr_transaction_coa_id
64967          , x_accounting_coa_id        => l_adr_accounting_coa_id
64971          , x_value_combination_id     => l_adr_value_combination_id
64968          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64969          , x_flex_value_set_id        => l_adr_flex_value_set_id
64970          , x_value_type_code          => l_adr_value_type_code
64972          , x_value_segment_code       => l_adr_value_segment_code
64973          , p_side                     => 'NA'
64974          , p_override_seg_flag        => 'Y'
64975    );
64976 
64977    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64978 
64979       xla_ae_lines_pkg.set_segment(
64980           p_to_segment_code         => 'GL_ACCOUNT'
64981         , p_segment_value           => l_segment
64982         , p_from_segment_code       => l_adr_value_segment_code
64983         , p_from_combination_id     => l_adr_value_combination_id
64984         , p_value_type_code         => l_adr_value_type_code
64985         , p_transaction_coa_id      => l_adr_transaction_coa_id
64986         , p_accounting_coa_id       => l_adr_accounting_coa_id
64987         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64988         , p_flex_value_set_id       => l_adr_flex_value_set_id
64989         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
64990         , p_adr_type_code           => 'S'
64991         , p_component_type          => l_component_type
64992         , p_component_code          => l_component_code
64993         , p_component_type_code     => l_component_type_code
64994         , p_component_appl_id       => l_component_appl_id
64995         , p_amb_context_code        => l_amb_context_code
64996         , p_entity_code             => 'AP_PAYMENTS'
64997         , p_event_class_code        => 'RECONCILED PAYMENTS'
64998         , p_side                    => 'NA'
64999         );
65000 
65001   END IF;
65002 
65003    --
65004    --
65005    END IF;
65006 
65007        --
65008        -- Update the line information that should be overwritten
65009        --
65010        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65011                                          p_header_num   => 1);
65012        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65013 
65014        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65015 
65016        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65017           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65018        END IF;
65019 
65020       --
65021       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65022       --
65023       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65024           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65025       ELSE
65026           ---------------------------------------------------------------------------------------------------
65027           -- 4262811a Switch Sign
65028           ---------------------------------------------------------------------------------------------------
65029           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65030           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65031                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65032           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65033                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65034           -- 5132302
65035           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65036                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65037 
65038       END IF;
65039 
65040       -- 4955764
65041       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65042       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65043 
65044 
65045       XLA_AE_LINES_PKG.ValidateCurrentLine;
65046       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65047 
65048       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65049                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65050                ,p_balance_type_code => l_balance_type_code);
65051 
65052    END IF;
65053 
65054    -----------------------------------------------------------------------------------------
65055    -- 4262811 Multiperiod Accounting
65056    -----------------------------------------------------------------------------------------
65057      -- No MPA option is assigned.
65058 
65059 
65060 END IF;
65061 END IF;
65062 --
65063 
65064 --
65065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65066    trace
65067       (p_msg      => 'END of AcctLineType_133'
65068       ,p_level    => C_LEVEL_PROCEDURE
65069       ,p_module   => l_log_module);
65070 END IF;
65071 --
65072 EXCEPTION
65073   WHEN xla_exceptions_pkg.application_exception THEN
65074       RAISE;
65075   WHEN OTHERS THEN
65076        xla_exceptions_pkg.raise_message
65077            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_133');
65078 END AcctLineType_133;
65079 --
65083 -- PRIVATE FUNCTION
65080 
65081 ---------------------------------------
65082 --
65084 --         AcctLineType_134
65085 --
65086 ---------------------------------------
65087 PROCEDURE AcctLineType_134 (
65088   p_application_id        IN NUMBER
65089  ,p_event_id              IN NUMBER
65090  ,p_calculate_acctd_flag  IN VARCHAR2
65091  ,p_calculate_g_l_flag    IN VARCHAR2
65092  ,p_actual_flag           IN OUT VARCHAR2
65093  ,p_balance_type_code     OUT VARCHAR2
65094  ,p_gain_or_loss_ref      OUT VARCHAR2
65095  
65096 --Automatic Offsets Value
65097  , p_source_10            IN VARCHAR2
65098  , p_source_10_meaning    IN VARCHAR2
65099 --Invoice Distribution Account
65100  , p_source_25            IN NUMBER
65101 --Internal Realized Gain Account
65102  , p_source_31            IN NUMBER
65103 --Bank Gain Account
65104  , p_source_32            IN NUMBER
65105 --Internal Realized Loss Account
65106  , p_source_33            IN NUMBER
65107 --Bank Loss Account
65108  , p_source_34            IN NUMBER
65109 --When to Account for Payment Option
65110  , p_source_57            IN VARCHAR2
65111 --Accounting Reversal Indicator
65112  , p_source_58            IN VARCHAR2
65113 --Distribution Link Type
65114  , p_source_60            IN VARCHAR2
65115 --Override Accounted Amount Indicator
65116  , p_source_85            IN VARCHAR2
65117  , p_source_85_meaning    IN VARCHAR2
65118 --Third Party Type
65119  , p_source_88            IN VARCHAR2
65120 --Invoice Distribution Tax Line Identifier
65121  , p_source_91            IN NUMBER
65122 --Invoice Distribution Summary Tax Line Identifier
65123  , p_source_93            IN NUMBER
65124 --Business Flow Accounts Payable Application Identifier
65125  , p_source_96            IN NUMBER
65126 --Payment Distribution Type
65127  , p_source_101            IN VARCHAR2
65128  , p_source_101_meaning    IN VARCHAR2
65129 --Payment Distribution Amount
65130  , p_source_102            IN NUMBER
65131 --Business Flow Payment Distribution Type
65132  , p_source_103            IN VARCHAR2
65133 --Business Flow Payment Entity Code
65134  , p_source_104            IN VARCHAR2
65135 --Business Flow Payment Distribution Identifier
65136  , p_source_105            IN NUMBER
65137 --Business Flow Payment Identifier
65138  , p_source_106            IN NUMBER
65139 --Payment Distribution Identifier
65140  , p_source_107            IN NUMBER
65141 --Payment Supplier Identifier
65142  , p_source_113            IN NUMBER
65143 --Payment Supplier Site Identifier
65144  , p_source_114            IN NUMBER
65145 --Payment Distribution Reversed Identifier
65146  , p_source_115            IN NUMBER
65147 --Payment Maturity Date
65148  , p_source_117            IN DATE
65149 --Invoice/Clearing Ledger Amount Difference
65150  , p_source_155            IN NUMBER
65151 )
65152 IS
65153 
65154 l_component_type              VARCHAR2(80);
65155 l_component_code              VARCHAR2(30);
65156 l_component_type_code         VARCHAR2(1);
65157 l_component_appl_id           INTEGER;
65158 l_amb_context_code            VARCHAR2(30);
65159 l_entity_code                 VARCHAR2(30);
65160 l_event_class_code            VARCHAR2(30);
65161 l_ae_header_id                NUMBER;
65162 l_event_type_code             VARCHAR2(30);
65163 l_line_definition_code        VARCHAR2(30);
65164 l_line_definition_owner_code  VARCHAR2(1);
65165 --
65166 -- adr variables
65167 l_segment                     VARCHAR2(30);
65168 l_ccid                        NUMBER;
65169 l_adr_transaction_coa_id      NUMBER;
65170 l_adr_accounting_coa_id       NUMBER;
65171 l_adr_flexfield_segment_code  VARCHAR2(30);
65172 l_adr_flex_value_set_id       NUMBER;
65173 l_adr_value_type_code         VARCHAR2(30);
65174 l_adr_value_combination_id    NUMBER;
65175 l_adr_value_segment_code      VARCHAR2(30);
65176 
65177 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65178 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65179 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65180 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65181 
65182 -- 4262811 Variables ------------------------------------------------------------------------------------------
65183 l_entered_amt_idx             NUMBER;
65184 l_accted_amt_idx              NUMBER;
65185 l_acc_rev_flag                VARCHAR2(1);
65186 l_accrual_line_num            NUMBER;
65187 l_tmp_amt                     NUMBER;
65188 l_acc_rev_natural_side_code   VARCHAR2(1);
65189 
65190 l_num_entries                 NUMBER;
65191 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65192 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65193 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65194 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65195 l_recog_line_1                NUMBER;
65196 l_recog_line_2                NUMBER;
65197 
65198 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65199 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65200 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65201 
65202 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65203 
65204 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65208 
65205 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65206 
65207 ---------------------------------------------------------------------------------------------------------------
65209 
65210 --
65211 -- bulk performance
65212 --
65213 l_balance_type_code           VARCHAR2(1);
65214 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65215 l_log_module                  VARCHAR2(240);
65216 
65217 --
65218 -- Upgrade strategy
65219 --
65220 l_actual_upg_option           VARCHAR2(1);
65221 l_enc_upg_option           VARCHAR2(1);
65222 
65223 --
65224 BEGIN
65225 --
65226 IF g_log_enabled THEN
65227       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
65228 END IF;
65229 --
65230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65231 
65232       trace
65233          (p_msg      => 'BEGIN of AcctLineType_134'
65234          ,p_level    => C_LEVEL_PROCEDURE
65235          ,p_module   => l_log_module);
65236 
65237 END IF;
65238 --
65239 l_component_type             := 'AMB_JLT';
65240 l_component_code             := 'AP_GAIN_LOSS_PAY_CLEAR';
65241 l_component_type_code        := 'S';
65242 l_component_appl_id          :=  200;
65243 l_amb_context_code           := 'DEFAULT';
65244 l_entity_code                := 'AP_PAYMENTS';
65245 l_event_class_code           := 'RECONCILED PAYMENTS';
65246 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
65247 l_line_definition_owner_code := 'S';
65248 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
65249 --
65250 l_balance_type_code          := 'A';
65251 l_segment                     := NULL;
65252 l_ccid                        := NULL;
65253 l_adr_transaction_coa_id      := NULL;
65254 l_adr_accounting_coa_id       := NULL;
65255 l_adr_flexfield_segment_code  := NULL;
65256 l_adr_flex_value_set_id       := NULL;
65257 l_adr_value_type_code         := NULL;
65258 l_adr_value_combination_id    := NULL;
65259 l_adr_value_segment_code      := NULL;
65260 
65261 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65262 l_bflow_class_code           := '';    -- 4219869 Business Flow
65263 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65264 l_budgetary_control_flag     := 'N';
65265 
65266 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65267 l_bflow_applied_to_amt       := NULL; -- 5132302
65268 l_entered_amt_idx            := NULL;          -- 4262811
65269 l_accted_amt_idx             := NULL;          -- 4262811
65270 l_acc_rev_flag               := NULL;          -- 4262811
65271 l_accrual_line_num           := NULL;          -- 4262811
65272 l_tmp_amt                    := NULL;          -- 4262811
65273 --
65274 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
65275             (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
65276                return;
65277   END IF;
65278   
65279 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65280     l_balance_type_code <> 'B' THEN
65281 IF (NVL(p_source_57,'
65282 ') =  'CLEAR_CLEAR' OR 
65283 NVL(p_source_57,'
65284 ') =  'ALWAYS_CLEAR' OR 
65285 NVL(p_source_57,'
65286 ') =  'ALWAYS_ALWAYS') AND 
65287 p_source_117 IS NULL AND 
65288 NVL(p_source_101,'
65289 ') <>  'EXCHANGE RATE VARIANCE' AND 
65290 NVL(p_source_101,'
65291 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
65292 NVL(p_source_101,'
65293 ') <>  'BANK CHARGE' AND 
65294 NVL(p_source_101,'
65295 ') <>  'BANK ERROR'
65296  THEN 
65297 
65298    --
65299    XLA_AE_LINES_PKG.SetNewLine;
65300 
65301    p_balance_type_code          := l_balance_type_code;
65302    -- set the flag so later we will know whether the gain loss line needs to be created
65303    
65304    IF(l_balance_type_code = 'A' ) THEN
65305      p_actual_flag :='G';
65306    END IF;
65307 
65308    --
65309    -- bulk performance
65310    --
65311    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65312                                       p_header_num   => 0); -- 4262811
65313    --
65314    -- set accounting line options
65315    --
65316    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65317            p_natural_side_code          => 'G'
65318          , p_gain_or_loss_flag          => 'N'
65319          , p_gl_transfer_mode_code      => 'S'
65320          , p_acct_entry_type_code       => 'A'
65321          , p_switch_side_flag           => ''
65322          , p_merge_duplicate_code       => 'A'
65323          );
65324    --
65325    l_acc_rev_natural_side_code := 'C';  -- 4262811
65326    -- 
65327    --
65328    -- set accounting line type info
65329    --
65330    xla_ae_lines_pkg.SetAcctLineType
65331       (p_component_type             => l_component_type
65332       ,p_event_type_code            => l_event_type_code
65333       ,p_line_definition_owner_code => l_line_definition_owner_code
65334       ,p_line_definition_code       => l_line_definition_code
65335       ,p_accounting_line_code       => l_component_code
65336       ,p_accounting_line_type_code  => l_component_type_code
65337       ,p_accounting_line_appl_id    => l_component_appl_id
65338       ,p_amb_context_code           => l_amb_context_code
65342    -- set accounting class
65339       ,p_entity_code                => l_entity_code
65340       ,p_event_class_code           => l_event_class_code);
65341    --
65343    --
65344    xla_ae_lines_pkg.SetAcctClass(
65345            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
65346          , p_ae_header_id           => l_ae_header_id
65347          );
65348 
65349    --
65350    -- set rounding class
65351    --
65352    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65353                       'EXCHANGE_GAIN_LOSS';
65354 
65355    --
65356    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65357    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65358    --
65359    -- bulk performance
65360    --
65361    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65362 
65363    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65364       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65365 
65366    -- 4955764
65367    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65368       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65369 
65370    -- 4458381 Public Sector Enh
65371    
65372    --
65373    -- set accounting attributes for the line type
65374    --
65375    l_entered_amt_idx := NULL;
65376    l_accted_amt_idx  := 10;
65377    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
65378    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65379    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
65380    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
65381    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
65382    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
65383    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
65384    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65385    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
65386    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
65387    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
65388    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
65389    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
65390    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65391    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
65392    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
65393    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
65394    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
65395    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
65396    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
65397    l_rec_acct_attrs.array_num_value(10)  := p_source_155;
65398    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
65399    l_rec_acct_attrs.array_char_value(11)  := p_source_85;
65400    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
65401    l_rec_acct_attrs.array_num_value(12)  := p_source_113;
65402    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
65403    l_rec_acct_attrs.array_num_value(13)  := p_source_114;
65404    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
65405    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
65406    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
65407    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
65408    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
65409    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
65410    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
65411    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
65412    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
65413    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
65414    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
65415    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
65416 
65417    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65418    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65419 
65420    ---------------------------------------------------------------------------------------------------------------
65421    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65422    ---------------------------------------------------------------------------------------------------------------
65423    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65424 
65425    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65426    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65427 
65428    IF xla_accounting_cache_pkg.GetValueChar
65429          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65430          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65431    AND l_bflow_method_code = 'PRIOR_ENTRY'
65432 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65433    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65434          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65435        )
65436    THEN
65437          xla_ae_lines_pkg.BflowUpgEntry
65441    ELSE
65438            (p_business_method_code    => l_bflow_method_code
65439            ,p_business_class_code     => l_bflow_class_code
65440            ,p_balance_type            => l_balance_type_code);
65442       NULL;
65443 -- No business flow processing for business flow method of NONE.
65444    END IF;
65445 
65446    --
65447    -- call analytical criteria
65448    --
65449    
65450    --
65451    -- call description
65452    --
65453    -- No description or it is inherited.
65454    --
65455    -- call ADRs
65456    -- Bug 4922099
65457    --
65458    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65459         (NVL(l_actual_upg_option, 'N') = 'O') OR
65460         (NVL(l_enc_upg_option, 'N') = 'O')
65461       )
65462    THEN
65463    NULL;
65464    --
65465    --
65466    
65467   l_ccid := AcctDerRule_40(
65468            p_application_id           => p_application_id
65469          , p_ae_header_id             => l_ae_header_id 
65470 , p_source_10 => p_source_10
65471 , p_source_10_meaning => p_source_10_meaning
65472 , p_source_25 => p_source_25
65473 , p_source_31 => p_source_31
65474 , p_source_32 => p_source_32
65475          , x_transaction_coa_id       => l_adr_transaction_coa_id
65476          , x_accounting_coa_id        => l_adr_accounting_coa_id
65477          , x_value_type_code          => l_adr_value_type_code
65478          , p_side                     => 'CREDIT'
65479    );
65480 
65481    xla_ae_lines_pkg.set_ccid(
65482     p_code_combination_id          => l_ccid
65483   , p_value_type_code              => l_adr_value_type_code
65484   , p_transaction_coa_id           => l_adr_transaction_coa_id
65485   , p_accounting_coa_id            => l_adr_accounting_coa_id
65486   , p_adr_code                     => 'AP_REAL_GAIN'
65487   , p_adr_type_code                => 'S'
65488   , p_component_type               => l_component_type
65489   , p_component_code               => l_component_code
65490   , p_component_type_code          => l_component_type_code
65491   , p_component_appl_id            => l_component_appl_id
65492   , p_amb_context_code             => l_amb_context_code
65493   , p_side                         => 'CREDIT'
65494   );
65495 
65496 
65497   l_ccid := AcctDerRule_41(
65498            p_application_id           => p_application_id
65499          , p_ae_header_id             => l_ae_header_id 
65500 , p_source_10 => p_source_10
65501 , p_source_10_meaning => p_source_10_meaning
65502 , p_source_25 => p_source_25
65503 , p_source_33 => p_source_33
65504 , p_source_34 => p_source_34
65505          , x_transaction_coa_id       => l_adr_transaction_coa_id
65506          , x_accounting_coa_id        => l_adr_accounting_coa_id
65507          , x_value_type_code          => l_adr_value_type_code
65508          , p_side                     => 'DEBIT'
65509    );
65510 
65511    xla_ae_lines_pkg.set_ccid(
65512     p_code_combination_id          => l_ccid
65513   , p_value_type_code              => l_adr_value_type_code
65514   , p_transaction_coa_id           => l_adr_transaction_coa_id
65515   , p_accounting_coa_id            => l_adr_accounting_coa_id
65516   , p_adr_code                     => 'AP_REAL_LOSS'
65517   , p_adr_type_code                => 'S'
65518   , p_component_type               => l_component_type
65519   , p_component_code               => l_component_code
65520   , p_component_type_code          => l_component_type_code
65521   , p_component_appl_id            => l_component_appl_id
65522   , p_amb_context_code             => l_amb_context_code
65523   , p_side                         => 'DEBIT'
65524   );
65525 
65526 
65527    l_segment := AcctDerRule_23(
65528            p_application_id           => p_application_id
65529          , p_ae_header_id             => l_ae_header_id 
65530 , p_source_10 => p_source_10
65531 , p_source_10_meaning => p_source_10_meaning
65532 , p_source_25 => p_source_25
65533          , x_transaction_coa_id       => l_adr_transaction_coa_id
65534          , x_accounting_coa_id        => l_adr_accounting_coa_id
65535          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65536          , x_flex_value_set_id        => l_adr_flex_value_set_id
65537          , x_value_type_code          => l_adr_value_type_code
65538          , x_value_combination_id     => l_adr_value_combination_id
65539          , x_value_segment_code       => l_adr_value_segment_code
65540          , p_side                     => 'ALL'
65541          , p_override_seg_flag        => 'Y'
65542    );
65543 
65544    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65545 
65546       xla_ae_lines_pkg.set_segment(
65547           p_to_segment_code         => 'GL_BALANCING'
65548         , p_segment_value           => l_segment
65549         , p_from_segment_code       => l_adr_value_segment_code
65550         , p_from_combination_id     => l_adr_value_combination_id
65551         , p_value_type_code         => l_adr_value_type_code
65552         , p_transaction_coa_id      => l_adr_transaction_coa_id
65553         , p_accounting_coa_id       => l_adr_accounting_coa_id
65554         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65555         , p_flex_value_set_id       => l_adr_flex_value_set_id
65556         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
65557         , p_adr_type_code           => 'S'
65558         , p_component_type          => l_component_type
65559         , p_component_code          => l_component_code
65560         , p_component_type_code     => l_component_type_code
65564         , p_event_class_code        => 'RECONCILED PAYMENTS'
65561         , p_component_appl_id       => l_component_appl_id
65562         , p_amb_context_code        => l_amb_context_code
65563         , p_entity_code             => 'AP_PAYMENTS'
65565         , p_side                    => 'ALL'
65566         );
65567 
65568   END IF;
65569 
65570    l_segment := AcctDerRule_17(
65571            p_application_id           => p_application_id
65572          , p_ae_header_id             => l_ae_header_id 
65573 , p_source_10 => p_source_10
65574 , p_source_10_meaning => p_source_10_meaning
65575 , p_source_31 => p_source_31
65576 , p_source_32 => p_source_32
65577          , x_transaction_coa_id       => l_adr_transaction_coa_id
65578          , x_accounting_coa_id        => l_adr_accounting_coa_id
65579          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65580          , x_flex_value_set_id        => l_adr_flex_value_set_id
65581          , x_value_type_code          => l_adr_value_type_code
65582          , x_value_combination_id     => l_adr_value_combination_id
65583          , x_value_segment_code       => l_adr_value_segment_code
65584          , p_side                     => 'CREDIT'
65585          , p_override_seg_flag        => 'Y'
65586    );
65587 
65588    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65589 
65590       xla_ae_lines_pkg.set_segment(
65591           p_to_segment_code         => 'GL_ACCOUNT'
65592         , p_segment_value           => l_segment
65593         , p_from_segment_code       => l_adr_value_segment_code
65594         , p_from_combination_id     => l_adr_value_combination_id
65595         , p_value_type_code         => l_adr_value_type_code
65596         , p_transaction_coa_id      => l_adr_transaction_coa_id
65597         , p_accounting_coa_id       => l_adr_accounting_coa_id
65598         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65599         , p_flex_value_set_id       => l_adr_flex_value_set_id
65600         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
65601         , p_adr_type_code           => 'S'
65602         , p_component_type          => l_component_type
65603         , p_component_code          => l_component_code
65604         , p_component_type_code     => l_component_type_code
65605         , p_component_appl_id       => l_component_appl_id
65606         , p_amb_context_code        => l_amb_context_code
65607         , p_entity_code             => 'AP_PAYMENTS'
65608         , p_event_class_code        => 'RECONCILED PAYMENTS'
65609         , p_side                    => 'CREDIT'
65610         );
65611 
65612   END IF;
65613 
65614    l_segment := AcctDerRule_18(
65615            p_application_id           => p_application_id
65616          , p_ae_header_id             => l_ae_header_id 
65617 , p_source_10 => p_source_10
65618 , p_source_10_meaning => p_source_10_meaning
65619 , p_source_33 => p_source_33
65620 , p_source_34 => p_source_34
65621          , x_transaction_coa_id       => l_adr_transaction_coa_id
65622          , x_accounting_coa_id        => l_adr_accounting_coa_id
65623          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65624          , x_flex_value_set_id        => l_adr_flex_value_set_id
65625          , x_value_type_code          => l_adr_value_type_code
65626          , x_value_combination_id     => l_adr_value_combination_id
65627          , x_value_segment_code       => l_adr_value_segment_code
65628          , p_side                     => 'DEBIT'
65629          , p_override_seg_flag        => 'Y'
65630    );
65631 
65632    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65633 
65634       xla_ae_lines_pkg.set_segment(
65635           p_to_segment_code         => 'GL_ACCOUNT'
65636         , p_segment_value           => l_segment
65637         , p_from_segment_code       => l_adr_value_segment_code
65638         , p_from_combination_id     => l_adr_value_combination_id
65639         , p_value_type_code         => l_adr_value_type_code
65640         , p_transaction_coa_id      => l_adr_transaction_coa_id
65641         , p_accounting_coa_id       => l_adr_accounting_coa_id
65642         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65643         , p_flex_value_set_id       => l_adr_flex_value_set_id
65644         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
65645         , p_adr_type_code           => 'S'
65646         , p_component_type          => l_component_type
65647         , p_component_code          => l_component_code
65648         , p_component_type_code     => l_component_type_code
65649         , p_component_appl_id       => l_component_appl_id
65650         , p_amb_context_code        => l_amb_context_code
65651         , p_entity_code             => 'AP_PAYMENTS'
65652         , p_event_class_code        => 'RECONCILED PAYMENTS'
65653         , p_side                    => 'DEBIT'
65654         );
65655 
65656   END IF;
65657 
65658    --
65659    --
65660    END IF;
65661    --
65662    -- Bug 4922099
65663    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65664           (NVL(l_enc_upg_option, 'N') = 'O')
65665         ) AND
65666         (l_bflow_method_code = 'PRIOR_ENTRY')
65667       )
65668    THEN
65669       IF
65670       --
65671       1 = 2
65672       --
65673       THEN
65674       xla_accounting_err_pkg.build_message
65675                                     (p_appli_s_name            => 'XLA'
65676                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65680                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65677                                     ,p_token_1                 => 'LINE_NUMBER'
65678                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65679                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65681                                                                              l_component_type
65682                                                                             ,l_component_code
65683                                                                             ,l_component_type_code
65684                                                                             ,l_component_appl_id
65685                                                                             ,l_amb_context_code
65686                                                                             ,l_entity_code
65687                                                                             ,l_event_class_code
65688                                                                            )
65689                                     ,p_token_3                 => 'OWNER'
65690                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65691                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65692                                                                           ,p_lookup_code    => l_component_type_code
65693                                                                          )
65694                                     ,p_token_4                 => 'PRODUCT_NAME'
65695                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65696                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65697                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65698                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65699                                     ,p_ae_header_id            =>  NULL
65700                                        );
65701 
65702         IF (C_LEVEL_ERROR>= g_log_level) THEN
65703                  trace
65704                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65705                       ,p_level    => C_LEVEL_ERROR
65706                       ,p_module   => l_log_module);
65707         END IF;
65708       END IF;
65709    END IF;
65710    --
65711    --
65712    ------------------------------------------------------------------------------------------------
65713    -- 4219869 Business Flow
65714    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65715    -- Prior Entry.  Currently, the following code is always generated.
65716    ------------------------------------------------------------------------------------------------
65717    XLA_AE_LINES_PKG.ValidateCurrentLine;
65718 
65719    ------------------------------------------------------------------------------------
65720    -- 4219869 Business Flow
65721    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65722    ------------------------------------------------------------------------------------
65723    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65724 
65725    ----------------------------------------------------------------------------------
65726    -- 4219869 Business Flow
65727    -- Update journal entry status -- Need to generate this within IF <condition>
65728    ----------------------------------------------------------------------------------
65729    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65730          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65731          ,p_balance_type_code => l_balance_type_code
65732          );
65733 
65734    -------------------------------------------------------------------------------------------
65735    -- 4262811 - Generate the Accrual Reversal lines
65736    -------------------------------------------------------------------------------------------
65737    BEGIN
65738       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65739                               (g_array_event(p_event_id).array_value_num('header_index'));
65740       IF l_acc_rev_flag IS NULL THEN
65741          l_acc_rev_flag := 'N';
65742       END IF;
65743    EXCEPTION
65744       WHEN OTHERS THEN
65745          l_acc_rev_flag := 'N';
65746    END;
65747    --
65748    IF (l_acc_rev_flag = 'Y') THEN
65749 
65750        -- 4645092  ------------------------------------------------------------------------------
65751        -- To allow MPA report to determine if it should generate report process
65752        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65753        ------------------------------------------------------------------------------------------
65754 
65755        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65756        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65757    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65758    -- call ADRs
65759    -- Bug 4922099
65760    --
65761    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65762         (NVL(l_actual_upg_option, 'N') = 'O') OR
65763         (NVL(l_enc_upg_option, 'N') = 'O')
65764       )
65765    THEN
65766    NULL;
65767    --
65768    --
65772          , p_ae_header_id             => l_ae_header_id 
65769    
65770   l_ccid := AcctDerRule_40(
65771            p_application_id           => p_application_id
65773 , p_source_10 => p_source_10
65774 , p_source_10_meaning => p_source_10_meaning
65775 , p_source_25 => p_source_25
65776 , p_source_31 => p_source_31
65777 , p_source_32 => p_source_32
65778          , x_transaction_coa_id       => l_adr_transaction_coa_id
65779          , x_accounting_coa_id        => l_adr_accounting_coa_id
65780          , x_value_type_code          => l_adr_value_type_code
65781          , p_side                     => 'CREDIT'
65782    );
65783 
65784    xla_ae_lines_pkg.set_ccid(
65785     p_code_combination_id          => l_ccid
65786   , p_value_type_code              => l_adr_value_type_code
65787   , p_transaction_coa_id           => l_adr_transaction_coa_id
65788   , p_accounting_coa_id            => l_adr_accounting_coa_id
65789   , p_adr_code                     => 'AP_REAL_GAIN'
65790   , p_adr_type_code                => 'S'
65791   , p_component_type               => l_component_type
65792   , p_component_code               => l_component_code
65793   , p_component_type_code          => l_component_type_code
65794   , p_component_appl_id            => l_component_appl_id
65795   , p_amb_context_code             => l_amb_context_code
65796   , p_side                         => 'CREDIT'
65797   );
65798 
65799 
65800   l_ccid := AcctDerRule_41(
65801            p_application_id           => p_application_id
65802          , p_ae_header_id             => l_ae_header_id 
65803 , p_source_10 => p_source_10
65804 , p_source_10_meaning => p_source_10_meaning
65805 , p_source_25 => p_source_25
65806 , p_source_33 => p_source_33
65807 , p_source_34 => p_source_34
65808          , x_transaction_coa_id       => l_adr_transaction_coa_id
65809          , x_accounting_coa_id        => l_adr_accounting_coa_id
65810          , x_value_type_code          => l_adr_value_type_code
65811          , p_side                     => 'DEBIT'
65812    );
65813 
65814    xla_ae_lines_pkg.set_ccid(
65815     p_code_combination_id          => l_ccid
65816   , p_value_type_code              => l_adr_value_type_code
65817   , p_transaction_coa_id           => l_adr_transaction_coa_id
65818   , p_accounting_coa_id            => l_adr_accounting_coa_id
65819   , p_adr_code                     => 'AP_REAL_LOSS'
65820   , p_adr_type_code                => 'S'
65821   , p_component_type               => l_component_type
65822   , p_component_code               => l_component_code
65823   , p_component_type_code          => l_component_type_code
65824   , p_component_appl_id            => l_component_appl_id
65825   , p_amb_context_code             => l_amb_context_code
65826   , p_side                         => 'DEBIT'
65827   );
65828 
65829 
65830    l_segment := AcctDerRule_23(
65831            p_application_id           => p_application_id
65832          , p_ae_header_id             => l_ae_header_id 
65833 , p_source_10 => p_source_10
65834 , p_source_10_meaning => p_source_10_meaning
65835 , p_source_25 => p_source_25
65836          , x_transaction_coa_id       => l_adr_transaction_coa_id
65837          , x_accounting_coa_id        => l_adr_accounting_coa_id
65838          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65839          , x_flex_value_set_id        => l_adr_flex_value_set_id
65840          , x_value_type_code          => l_adr_value_type_code
65841          , x_value_combination_id     => l_adr_value_combination_id
65842          , x_value_segment_code       => l_adr_value_segment_code
65843          , p_side                     => 'ALL'
65844          , p_override_seg_flag        => 'Y'
65845    );
65846 
65847    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65848 
65849       xla_ae_lines_pkg.set_segment(
65850           p_to_segment_code         => 'GL_BALANCING'
65851         , p_segment_value           => l_segment
65852         , p_from_segment_code       => l_adr_value_segment_code
65853         , p_from_combination_id     => l_adr_value_combination_id
65854         , p_value_type_code         => l_adr_value_type_code
65855         , p_transaction_coa_id      => l_adr_transaction_coa_id
65856         , p_accounting_coa_id       => l_adr_accounting_coa_id
65857         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65858         , p_flex_value_set_id       => l_adr_flex_value_set_id
65859         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
65860         , p_adr_type_code           => 'S'
65861         , p_component_type          => l_component_type
65862         , p_component_code          => l_component_code
65863         , p_component_type_code     => l_component_type_code
65864         , p_component_appl_id       => l_component_appl_id
65865         , p_amb_context_code        => l_amb_context_code
65866         , p_entity_code             => 'AP_PAYMENTS'
65867         , p_event_class_code        => 'RECONCILED PAYMENTS'
65868         , p_side                    => 'ALL'
65869         );
65870 
65871   END IF;
65872 
65873    l_segment := AcctDerRule_17(
65874            p_application_id           => p_application_id
65875          , p_ae_header_id             => l_ae_header_id 
65876 , p_source_10 => p_source_10
65877 , p_source_10_meaning => p_source_10_meaning
65878 , p_source_31 => p_source_31
65879 , p_source_32 => p_source_32
65880          , x_transaction_coa_id       => l_adr_transaction_coa_id
65884          , x_value_type_code          => l_adr_value_type_code
65881          , x_accounting_coa_id        => l_adr_accounting_coa_id
65882          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65883          , x_flex_value_set_id        => l_adr_flex_value_set_id
65885          , x_value_combination_id     => l_adr_value_combination_id
65886          , x_value_segment_code       => l_adr_value_segment_code
65887          , p_side                     => 'CREDIT'
65888          , p_override_seg_flag        => 'Y'
65889    );
65890 
65891    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65892 
65893       xla_ae_lines_pkg.set_segment(
65894           p_to_segment_code         => 'GL_ACCOUNT'
65895         , p_segment_value           => l_segment
65896         , p_from_segment_code       => l_adr_value_segment_code
65897         , p_from_combination_id     => l_adr_value_combination_id
65898         , p_value_type_code         => l_adr_value_type_code
65899         , p_transaction_coa_id      => l_adr_transaction_coa_id
65900         , p_accounting_coa_id       => l_adr_accounting_coa_id
65901         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65902         , p_flex_value_set_id       => l_adr_flex_value_set_id
65903         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
65904         , p_adr_type_code           => 'S'
65905         , p_component_type          => l_component_type
65906         , p_component_code          => l_component_code
65907         , p_component_type_code     => l_component_type_code
65908         , p_component_appl_id       => l_component_appl_id
65909         , p_amb_context_code        => l_amb_context_code
65910         , p_entity_code             => 'AP_PAYMENTS'
65911         , p_event_class_code        => 'RECONCILED PAYMENTS'
65912         , p_side                    => 'CREDIT'
65913         );
65914 
65915   END IF;
65916 
65917    l_segment := AcctDerRule_18(
65918            p_application_id           => p_application_id
65919          , p_ae_header_id             => l_ae_header_id 
65920 , p_source_10 => p_source_10
65921 , p_source_10_meaning => p_source_10_meaning
65922 , p_source_33 => p_source_33
65923 , p_source_34 => p_source_34
65924          , x_transaction_coa_id       => l_adr_transaction_coa_id
65925          , x_accounting_coa_id        => l_adr_accounting_coa_id
65926          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65927          , x_flex_value_set_id        => l_adr_flex_value_set_id
65928          , x_value_type_code          => l_adr_value_type_code
65929          , x_value_combination_id     => l_adr_value_combination_id
65930          , x_value_segment_code       => l_adr_value_segment_code
65931          , p_side                     => 'DEBIT'
65932          , p_override_seg_flag        => 'Y'
65933    );
65934 
65935    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65936 
65937       xla_ae_lines_pkg.set_segment(
65938           p_to_segment_code         => 'GL_ACCOUNT'
65939         , p_segment_value           => l_segment
65940         , p_from_segment_code       => l_adr_value_segment_code
65941         , p_from_combination_id     => l_adr_value_combination_id
65942         , p_value_type_code         => l_adr_value_type_code
65943         , p_transaction_coa_id      => l_adr_transaction_coa_id
65944         , p_accounting_coa_id       => l_adr_accounting_coa_id
65945         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65946         , p_flex_value_set_id       => l_adr_flex_value_set_id
65947         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
65948         , p_adr_type_code           => 'S'
65949         , p_component_type          => l_component_type
65950         , p_component_code          => l_component_code
65951         , p_component_type_code     => l_component_type_code
65952         , p_component_appl_id       => l_component_appl_id
65953         , p_amb_context_code        => l_amb_context_code
65954         , p_entity_code             => 'AP_PAYMENTS'
65955         , p_event_class_code        => 'RECONCILED PAYMENTS'
65956         , p_side                    => 'DEBIT'
65957         );
65958 
65959   END IF;
65960 
65961    --
65962    --
65963    END IF;
65964 
65965        --
65966        -- Update the line information that should be overwritten
65967        --
65968        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65969                                          p_header_num   => 1);
65970        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65971 
65972        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65973 
65974        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65975           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65976        END IF;
65977 
65978       --
65979       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65980       --
65981       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65982           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65983       ELSE
65984           ---------------------------------------------------------------------------------------------------
65985           -- 4262811a Switch Sign
65986           ---------------------------------------------------------------------------------------------------
65990           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65987           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65988           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65989                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65991                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65992           -- 5132302
65993           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65994                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65995 
65996       END IF;
65997 
65998       -- 4955764
65999       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66000       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66001 
66002 
66003       XLA_AE_LINES_PKG.ValidateCurrentLine;
66004       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66005 
66006       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66007                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66008                ,p_balance_type_code => l_balance_type_code);
66009 
66010    END IF;
66011 
66012    -----------------------------------------------------------------------------------------
66013    -- 4262811 Multiperiod Accounting
66014    -----------------------------------------------------------------------------------------
66015      -- No MPA option is assigned.
66016 
66017 
66018 END IF;
66019 END IF;
66020 --
66021 
66022 --
66023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66024    trace
66025       (p_msg      => 'END of AcctLineType_134'
66026       ,p_level    => C_LEVEL_PROCEDURE
66027       ,p_module   => l_log_module);
66028 END IF;
66029 --
66030 EXCEPTION
66031   WHEN xla_exceptions_pkg.application_exception THEN
66032       RAISE;
66033   WHEN OTHERS THEN
66034        xla_exceptions_pkg.raise_message
66035            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_134');
66036 END AcctLineType_134;
66037 --
66038 
66039 ---------------------------------------
66040 --
66041 -- PRIVATE FUNCTION
66042 --         AcctLineType_135
66043 --
66044 ---------------------------------------
66045 PROCEDURE AcctLineType_135 (
66046   p_application_id        IN NUMBER
66047  ,p_event_id              IN NUMBER
66048  ,p_calculate_acctd_flag  IN VARCHAR2
66049  ,p_calculate_g_l_flag    IN VARCHAR2
66050  ,p_actual_flag           IN OUT VARCHAR2
66051  ,p_balance_type_code     OUT VARCHAR2
66052  ,p_gain_or_loss_ref      OUT VARCHAR2
66053  
66054 --Automatic Offsets Value
66055  , p_source_10            IN VARCHAR2
66056  , p_source_10_meaning    IN VARCHAR2
66057 --Invoice Distribution Account
66058  , p_source_25            IN NUMBER
66059 --Internal Realized Gain Account
66060  , p_source_31            IN NUMBER
66061 --Bank Gain Account
66062  , p_source_32            IN NUMBER
66063 --Internal Realized Loss Account
66064  , p_source_33            IN NUMBER
66065 --Bank Loss Account
66066  , p_source_34            IN NUMBER
66067 --When to Account for Payment Option
66068  , p_source_57            IN VARCHAR2
66069 --Accounting Reversal Indicator
66070  , p_source_58            IN VARCHAR2
66071 --Distribution Link Type
66072  , p_source_60            IN VARCHAR2
66073 --Override Accounted Amount Indicator
66074  , p_source_85            IN VARCHAR2
66075  , p_source_85_meaning    IN VARCHAR2
66076 --Third Party Type
66077  , p_source_88            IN VARCHAR2
66078 --Invoice Distribution Tax Line Identifier
66079  , p_source_91            IN NUMBER
66080 --Invoice Distribution Tax Distribution Identifier from Tax
66081  , p_source_92            IN NUMBER
66082 --Invoice Distribution Summary Tax Line Identifier
66083  , p_source_93            IN NUMBER
66084 --Business Flow Accounts Payable Application Identifier
66085  , p_source_96            IN NUMBER
66086 --Business Flow Invoice Distribution Type
66087  , p_source_97            IN VARCHAR2
66088 --Business Flow Invoice Entity Code
66089  , p_source_98            IN VARCHAR2
66090 --Business Flow Invoice Distribution Identifier
66091  , p_source_99            IN NUMBER
66092 --Business Flow Invoice Identifier
66093  , p_source_100            IN NUMBER
66094 --Payment Distribution Type
66095  , p_source_101            IN VARCHAR2
66096  , p_source_101_meaning    IN VARCHAR2
66097 --Payment Distribution Identifier
66098  , p_source_107            IN NUMBER
66099 --Payment Supplier Identifier
66100  , p_source_113            IN NUMBER
66101 --Payment Supplier Site Identifier
66102  , p_source_114            IN NUMBER
66103 --Payment Distribution Reversed Identifier
66104  , p_source_115            IN NUMBER
66105 --Payment Type
66106  , p_source_125            IN VARCHAR2
66107  , p_source_125_meaning    IN VARCHAR2
66108 --Invoice Distribution Amount of the Payment Distribution
66109  , p_source_127            IN NUMBER
66110 --Invoice/Payment Ledger Amount Difference
66111  , p_source_156            IN NUMBER
66112 )
66113 IS
66114 
66115 l_component_type              VARCHAR2(80);
66116 l_component_code              VARCHAR2(30);
66117 l_component_type_code         VARCHAR2(1);
66118 l_component_appl_id           INTEGER;
66122 l_ae_header_id                NUMBER;
66119 l_amb_context_code            VARCHAR2(30);
66120 l_entity_code                 VARCHAR2(30);
66121 l_event_class_code            VARCHAR2(30);
66123 l_event_type_code             VARCHAR2(30);
66124 l_line_definition_code        VARCHAR2(30);
66125 l_line_definition_owner_code  VARCHAR2(1);
66126 --
66127 -- adr variables
66128 l_segment                     VARCHAR2(30);
66129 l_ccid                        NUMBER;
66130 l_adr_transaction_coa_id      NUMBER;
66131 l_adr_accounting_coa_id       NUMBER;
66132 l_adr_flexfield_segment_code  VARCHAR2(30);
66133 l_adr_flex_value_set_id       NUMBER;
66134 l_adr_value_type_code         VARCHAR2(30);
66135 l_adr_value_combination_id    NUMBER;
66136 l_adr_value_segment_code      VARCHAR2(30);
66137 
66138 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66139 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66140 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66141 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66142 
66143 -- 4262811 Variables ------------------------------------------------------------------------------------------
66144 l_entered_amt_idx             NUMBER;
66145 l_accted_amt_idx              NUMBER;
66146 l_acc_rev_flag                VARCHAR2(1);
66147 l_accrual_line_num            NUMBER;
66148 l_tmp_amt                     NUMBER;
66149 l_acc_rev_natural_side_code   VARCHAR2(1);
66150 
66151 l_num_entries                 NUMBER;
66152 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66153 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66154 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66155 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66156 l_recog_line_1                NUMBER;
66157 l_recog_line_2                NUMBER;
66158 
66159 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66160 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66161 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66162 
66163 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66164 
66165 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66166 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66167 
66168 ---------------------------------------------------------------------------------------------------------------
66169 
66170 
66171 --
66172 -- bulk performance
66173 --
66174 l_balance_type_code           VARCHAR2(1);
66175 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66176 l_log_module                  VARCHAR2(240);
66177 
66178 --
66179 -- Upgrade strategy
66180 --
66181 l_actual_upg_option           VARCHAR2(1);
66182 l_enc_upg_option           VARCHAR2(1);
66183 
66184 --
66185 BEGIN
66186 --
66187 IF g_log_enabled THEN
66188       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
66189 END IF;
66190 --
66191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66192 
66193       trace
66194          (p_msg      => 'BEGIN of AcctLineType_135'
66195          ,p_level    => C_LEVEL_PROCEDURE
66196          ,p_module   => l_log_module);
66197 
66198 END IF;
66199 --
66200 l_component_type             := 'AMB_JLT';
66201 l_component_code             := 'AP_GAIN_LOSS_PMT';
66202 l_component_type_code        := 'S';
66203 l_component_appl_id          :=  200;
66204 l_amb_context_code           := 'DEFAULT';
66205 l_entity_code                := 'AP_PAYMENTS';
66206 l_event_class_code           := 'PAYMENTS';
66207 l_event_type_code            := 'PAYMENTS_ALL';
66208 l_line_definition_owner_code := 'S';
66209 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
66210 --
66211 l_balance_type_code          := 'A';
66212 l_segment                     := NULL;
66213 l_ccid                        := NULL;
66214 l_adr_transaction_coa_id      := NULL;
66215 l_adr_accounting_coa_id       := NULL;
66216 l_adr_flexfield_segment_code  := NULL;
66217 l_adr_flex_value_set_id       := NULL;
66218 l_adr_value_type_code         := NULL;
66219 l_adr_value_combination_id    := NULL;
66220 l_adr_value_segment_code      := NULL;
66221 
66222 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
66223 l_bflow_class_code           := '';    -- 4219869 Business Flow
66224 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66225 l_budgetary_control_flag     := 'N';
66226 
66227 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66228 l_bflow_applied_to_amt       := NULL; -- 5132302
66229 l_entered_amt_idx            := NULL;          -- 4262811
66230 l_accted_amt_idx             := NULL;          -- 4262811
66231 l_acc_rev_flag               := NULL;          -- 4262811
66232 l_accrual_line_num           := NULL;          -- 4262811
66233 l_tmp_amt                    := NULL;          -- 4262811
66234 --
66235 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66236             (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
66237                return;
66238   END IF;
66239   
66240 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66244 NVL(p_source_57,'
66241     l_balance_type_code <> 'B' THEN
66242 IF (NVL(p_source_57,'
66243 ') <>  'CLEAR_CLEAR' AND 
66245 ') <>  'ALWAYS_CLEAR') AND 
66246 NVL(p_source_101,'
66247 ') <>  'EXCHANGE RATE VARIANCE' AND 
66248 NVL(p_source_101,'
66249 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
66250 NVL(p_source_101,'
66251 ') <>  'BANK CHARGE' AND 
66252 NVL(p_source_101,'
66253 ') <>  'BANK ERROR' AND 
66254 NVL(p_source_125,'
66255 ') <>  'R'
66256  THEN 
66257 
66258    --
66259    XLA_AE_LINES_PKG.SetNewLine;
66260 
66261    p_balance_type_code          := l_balance_type_code;
66262    -- set the flag so later we will know whether the gain loss line needs to be created
66263    
66264    IF(l_balance_type_code = 'A' ) THEN
66265      p_actual_flag :='G';
66266    END IF;
66267 
66268    --
66269    -- bulk performance
66270    --
66271    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66272                                       p_header_num   => 0); -- 4262811
66273    --
66274    -- set accounting line options
66275    --
66276    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66277            p_natural_side_code          => 'G'
66278          , p_gain_or_loss_flag          => 'N'
66279          , p_gl_transfer_mode_code      => 'S'
66280          , p_acct_entry_type_code       => 'A'
66281          , p_switch_side_flag           => ''
66282          , p_merge_duplicate_code       => 'A'
66283          );
66284    --
66285    l_acc_rev_natural_side_code := 'C';  -- 4262811
66286    -- 
66287    --
66288    -- set accounting line type info
66289    --
66290    xla_ae_lines_pkg.SetAcctLineType
66291       (p_component_type             => l_component_type
66292       ,p_event_type_code            => l_event_type_code
66293       ,p_line_definition_owner_code => l_line_definition_owner_code
66294       ,p_line_definition_code       => l_line_definition_code
66295       ,p_accounting_line_code       => l_component_code
66296       ,p_accounting_line_type_code  => l_component_type_code
66297       ,p_accounting_line_appl_id    => l_component_appl_id
66298       ,p_amb_context_code           => l_amb_context_code
66299       ,p_entity_code                => l_entity_code
66300       ,p_event_class_code           => l_event_class_code);
66301    --
66302    -- set accounting class
66303    --
66304    xla_ae_lines_pkg.SetAcctClass(
66305            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
66306          , p_ae_header_id           => l_ae_header_id
66307          );
66308 
66309    --
66310    -- set rounding class
66311    --
66312    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66313                       'EXCHANGE_GAIN_LOSS';
66314 
66315    --
66316    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66317    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66318    --
66319    -- bulk performance
66320    --
66321    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66322 
66323    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66324       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66325 
66326    -- 4955764
66327    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66328       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66329 
66330    -- 4458381 Public Sector Enh
66331    
66332    --
66333    -- set accounting attributes for the line type
66334    --
66335    l_entered_amt_idx := NULL;
66336    l_accted_amt_idx  := 10;
66337    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
66338    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66339    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
66340    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
66341    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
66342    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
66343    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
66344    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66345    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
66346    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
66347    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
66348    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
66349    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
66350    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66351    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
66352    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
66353    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
66354    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
66355    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
66356    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
66357    l_rec_acct_attrs.array_num_value(10)  := p_source_156;
66358    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
66359    l_rec_acct_attrs.array_char_value(11)  := p_source_85;
66360    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
66361    l_rec_acct_attrs.array_num_value(12)  := p_source_113;
66362    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
66366    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
66363    l_rec_acct_attrs.array_num_value(13)  := p_source_114;
66364    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
66365    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
66367    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
66368    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
66369    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
66370    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
66371    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
66372    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
66373    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
66374    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
66375    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
66376 
66377    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66378    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66379 
66380    ---------------------------------------------------------------------------------------------------------------
66381    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66382    ---------------------------------------------------------------------------------------------------------------
66383    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66384 
66385    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66386    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66387 
66388    IF xla_accounting_cache_pkg.GetValueChar
66389          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66390          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66391    AND l_bflow_method_code = 'PRIOR_ENTRY'
66392 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66393    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66394          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66395        )
66396    THEN
66397          xla_ae_lines_pkg.BflowUpgEntry
66398            (p_business_method_code    => l_bflow_method_code
66399            ,p_business_class_code     => l_bflow_class_code
66400            ,p_balance_type            => l_balance_type_code);
66401    ELSE
66402       NULL;
66403 -- No business flow processing for business flow method of NONE.
66404    END IF;
66405 
66406    --
66407    -- call analytical criteria
66408    --
66409    
66410    --
66411    -- call description
66412    --
66413    -- No description or it is inherited.
66414    --
66415    -- call ADRs
66416    -- Bug 4922099
66417    --
66418    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66419         (NVL(l_actual_upg_option, 'N') = 'O') OR
66420         (NVL(l_enc_upg_option, 'N') = 'O')
66421       )
66422    THEN
66423    NULL;
66424    --
66425    --
66426    
66427   l_ccid := AcctDerRule_40(
66428            p_application_id           => p_application_id
66429          , p_ae_header_id             => l_ae_header_id 
66430 , p_source_10 => p_source_10
66431 , p_source_10_meaning => p_source_10_meaning
66432 , p_source_25 => p_source_25
66433 , p_source_31 => p_source_31
66434 , p_source_32 => p_source_32
66435          , x_transaction_coa_id       => l_adr_transaction_coa_id
66436          , x_accounting_coa_id        => l_adr_accounting_coa_id
66437          , x_value_type_code          => l_adr_value_type_code
66438          , p_side                     => 'CREDIT'
66439    );
66440 
66441    xla_ae_lines_pkg.set_ccid(
66442     p_code_combination_id          => l_ccid
66443   , p_value_type_code              => l_adr_value_type_code
66444   , p_transaction_coa_id           => l_adr_transaction_coa_id
66445   , p_accounting_coa_id            => l_adr_accounting_coa_id
66446   , p_adr_code                     => 'AP_REAL_GAIN'
66447   , p_adr_type_code                => 'S'
66448   , p_component_type               => l_component_type
66449   , p_component_code               => l_component_code
66450   , p_component_type_code          => l_component_type_code
66451   , p_component_appl_id            => l_component_appl_id
66452   , p_amb_context_code             => l_amb_context_code
66453   , p_side                         => 'CREDIT'
66454   );
66455 
66456 
66457   l_ccid := AcctDerRule_41(
66458            p_application_id           => p_application_id
66459          , p_ae_header_id             => l_ae_header_id 
66460 , p_source_10 => p_source_10
66461 , p_source_10_meaning => p_source_10_meaning
66462 , p_source_25 => p_source_25
66463 , p_source_33 => p_source_33
66464 , p_source_34 => p_source_34
66465          , x_transaction_coa_id       => l_adr_transaction_coa_id
66466          , x_accounting_coa_id        => l_adr_accounting_coa_id
66467          , x_value_type_code          => l_adr_value_type_code
66468          , p_side                     => 'DEBIT'
66469    );
66470 
66471    xla_ae_lines_pkg.set_ccid(
66472     p_code_combination_id          => l_ccid
66473   , p_value_type_code              => l_adr_value_type_code
66474   , p_transaction_coa_id           => l_adr_transaction_coa_id
66475   , p_accounting_coa_id            => l_adr_accounting_coa_id
66479   , p_component_code               => l_component_code
66476   , p_adr_code                     => 'AP_REAL_LOSS'
66477   , p_adr_type_code                => 'S'
66478   , p_component_type               => l_component_type
66480   , p_component_type_code          => l_component_type_code
66481   , p_component_appl_id            => l_component_appl_id
66482   , p_amb_context_code             => l_amb_context_code
66483   , p_side                         => 'DEBIT'
66484   );
66485 
66486 
66487    l_segment := AcctDerRule_23(
66488            p_application_id           => p_application_id
66489          , p_ae_header_id             => l_ae_header_id 
66490 , p_source_10 => p_source_10
66491 , p_source_10_meaning => p_source_10_meaning
66492 , p_source_25 => p_source_25
66493          , x_transaction_coa_id       => l_adr_transaction_coa_id
66494          , x_accounting_coa_id        => l_adr_accounting_coa_id
66495          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66496          , x_flex_value_set_id        => l_adr_flex_value_set_id
66497          , x_value_type_code          => l_adr_value_type_code
66498          , x_value_combination_id     => l_adr_value_combination_id
66499          , x_value_segment_code       => l_adr_value_segment_code
66500          , p_side                     => 'ALL'
66501          , p_override_seg_flag        => 'Y'
66502    );
66503 
66504    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66505 
66506       xla_ae_lines_pkg.set_segment(
66507           p_to_segment_code         => 'GL_BALANCING'
66508         , p_segment_value           => l_segment
66509         , p_from_segment_code       => l_adr_value_segment_code
66510         , p_from_combination_id     => l_adr_value_combination_id
66511         , p_value_type_code         => l_adr_value_type_code
66512         , p_transaction_coa_id      => l_adr_transaction_coa_id
66513         , p_accounting_coa_id       => l_adr_accounting_coa_id
66514         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66515         , p_flex_value_set_id       => l_adr_flex_value_set_id
66516         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66517         , p_adr_type_code           => 'S'
66518         , p_component_type          => l_component_type
66519         , p_component_code          => l_component_code
66520         , p_component_type_code     => l_component_type_code
66521         , p_component_appl_id       => l_component_appl_id
66522         , p_amb_context_code        => l_amb_context_code
66523         , p_entity_code             => 'AP_PAYMENTS'
66524         , p_event_class_code        => 'PAYMENTS'
66525         , p_side                    => 'ALL'
66526         );
66527 
66528   END IF;
66529 
66530    l_segment := AcctDerRule_17(
66531            p_application_id           => p_application_id
66532          , p_ae_header_id             => l_ae_header_id 
66533 , p_source_10 => p_source_10
66534 , p_source_10_meaning => p_source_10_meaning
66535 , p_source_31 => p_source_31
66536 , p_source_32 => p_source_32
66537          , x_transaction_coa_id       => l_adr_transaction_coa_id
66538          , x_accounting_coa_id        => l_adr_accounting_coa_id
66539          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66540          , x_flex_value_set_id        => l_adr_flex_value_set_id
66541          , x_value_type_code          => l_adr_value_type_code
66542          , x_value_combination_id     => l_adr_value_combination_id
66543          , x_value_segment_code       => l_adr_value_segment_code
66544          , p_side                     => 'CREDIT'
66545          , p_override_seg_flag        => 'Y'
66546    );
66547 
66548    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66549 
66550       xla_ae_lines_pkg.set_segment(
66551           p_to_segment_code         => 'GL_ACCOUNT'
66552         , p_segment_value           => l_segment
66553         , p_from_segment_code       => l_adr_value_segment_code
66554         , p_from_combination_id     => l_adr_value_combination_id
66555         , p_value_type_code         => l_adr_value_type_code
66556         , p_transaction_coa_id      => l_adr_transaction_coa_id
66557         , p_accounting_coa_id       => l_adr_accounting_coa_id
66558         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66559         , p_flex_value_set_id       => l_adr_flex_value_set_id
66560         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
66561         , p_adr_type_code           => 'S'
66562         , p_component_type          => l_component_type
66563         , p_component_code          => l_component_code
66564         , p_component_type_code     => l_component_type_code
66565         , p_component_appl_id       => l_component_appl_id
66566         , p_amb_context_code        => l_amb_context_code
66567         , p_entity_code             => 'AP_PAYMENTS'
66568         , p_event_class_code        => 'PAYMENTS'
66569         , p_side                    => 'CREDIT'
66570         );
66571 
66572   END IF;
66573 
66574    l_segment := AcctDerRule_18(
66575            p_application_id           => p_application_id
66576          , p_ae_header_id             => l_ae_header_id 
66577 , p_source_10 => p_source_10
66578 , p_source_10_meaning => p_source_10_meaning
66579 , p_source_33 => p_source_33
66580 , p_source_34 => p_source_34
66581          , x_transaction_coa_id       => l_adr_transaction_coa_id
66582          , x_accounting_coa_id        => l_adr_accounting_coa_id
66586          , x_value_combination_id     => l_adr_value_combination_id
66583          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66584          , x_flex_value_set_id        => l_adr_flex_value_set_id
66585          , x_value_type_code          => l_adr_value_type_code
66587          , x_value_segment_code       => l_adr_value_segment_code
66588          , p_side                     => 'DEBIT'
66589          , p_override_seg_flag        => 'Y'
66590    );
66591 
66592    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66593 
66594       xla_ae_lines_pkg.set_segment(
66595           p_to_segment_code         => 'GL_ACCOUNT'
66596         , p_segment_value           => l_segment
66597         , p_from_segment_code       => l_adr_value_segment_code
66598         , p_from_combination_id     => l_adr_value_combination_id
66599         , p_value_type_code         => l_adr_value_type_code
66600         , p_transaction_coa_id      => l_adr_transaction_coa_id
66601         , p_accounting_coa_id       => l_adr_accounting_coa_id
66602         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66603         , p_flex_value_set_id       => l_adr_flex_value_set_id
66604         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
66605         , p_adr_type_code           => 'S'
66606         , p_component_type          => l_component_type
66607         , p_component_code          => l_component_code
66608         , p_component_type_code     => l_component_type_code
66609         , p_component_appl_id       => l_component_appl_id
66610         , p_amb_context_code        => l_amb_context_code
66611         , p_entity_code             => 'AP_PAYMENTS'
66612         , p_event_class_code        => 'PAYMENTS'
66613         , p_side                    => 'DEBIT'
66614         );
66615 
66616   END IF;
66617 
66618    --
66619    --
66620    END IF;
66621    --
66622    -- Bug 4922099
66623    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66624           (NVL(l_enc_upg_option, 'N') = 'O')
66625         ) AND
66626         (l_bflow_method_code = 'PRIOR_ENTRY')
66627       )
66628    THEN
66629       IF
66630       --
66631       1 = 2
66632       --
66633       THEN
66634       xla_accounting_err_pkg.build_message
66635                                     (p_appli_s_name            => 'XLA'
66636                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66637                                     ,p_token_1                 => 'LINE_NUMBER'
66638                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66639                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66640                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66641                                                                              l_component_type
66642                                                                             ,l_component_code
66643                                                                             ,l_component_type_code
66644                                                                             ,l_component_appl_id
66645                                                                             ,l_amb_context_code
66646                                                                             ,l_entity_code
66647                                                                             ,l_event_class_code
66648                                                                            )
66649                                     ,p_token_3                 => 'OWNER'
66650                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66651                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66652                                                                           ,p_lookup_code    => l_component_type_code
66653                                                                          )
66654                                     ,p_token_4                 => 'PRODUCT_NAME'
66655                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66656                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66657                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66658                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66659                                     ,p_ae_header_id            =>  NULL
66660                                        );
66661 
66662         IF (C_LEVEL_ERROR>= g_log_level) THEN
66663                  trace
66664                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66665                       ,p_level    => C_LEVEL_ERROR
66666                       ,p_module   => l_log_module);
66667         END IF;
66668       END IF;
66669    END IF;
66670    --
66671    --
66672    ------------------------------------------------------------------------------------------------
66673    -- 4219869 Business Flow
66674    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66675    -- Prior Entry.  Currently, the following code is always generated.
66676    ------------------------------------------------------------------------------------------------
66677    XLA_AE_LINES_PKG.ValidateCurrentLine;
66678 
66682    ------------------------------------------------------------------------------------
66679    ------------------------------------------------------------------------------------
66680    -- 4219869 Business Flow
66681    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66683    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66684 
66685    ----------------------------------------------------------------------------------
66686    -- 4219869 Business Flow
66687    -- Update journal entry status -- Need to generate this within IF <condition>
66688    ----------------------------------------------------------------------------------
66689    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66690          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66691          ,p_balance_type_code => l_balance_type_code
66692          );
66693 
66694    -------------------------------------------------------------------------------------------
66695    -- 4262811 - Generate the Accrual Reversal lines
66696    -------------------------------------------------------------------------------------------
66697    BEGIN
66698       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66699                               (g_array_event(p_event_id).array_value_num('header_index'));
66700       IF l_acc_rev_flag IS NULL THEN
66701          l_acc_rev_flag := 'N';
66702       END IF;
66703    EXCEPTION
66704       WHEN OTHERS THEN
66705          l_acc_rev_flag := 'N';
66706    END;
66707    --
66708    IF (l_acc_rev_flag = 'Y') THEN
66709 
66710        -- 4645092  ------------------------------------------------------------------------------
66711        -- To allow MPA report to determine if it should generate report process
66712        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66713        ------------------------------------------------------------------------------------------
66714 
66715        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66716        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66717    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66718    -- call ADRs
66719    -- Bug 4922099
66720    --
66721    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66722         (NVL(l_actual_upg_option, 'N') = 'O') OR
66723         (NVL(l_enc_upg_option, 'N') = 'O')
66724       )
66725    THEN
66726    NULL;
66727    --
66728    --
66729    
66730   l_ccid := AcctDerRule_40(
66731            p_application_id           => p_application_id
66732          , p_ae_header_id             => l_ae_header_id 
66733 , p_source_10 => p_source_10
66734 , p_source_10_meaning => p_source_10_meaning
66735 , p_source_25 => p_source_25
66736 , p_source_31 => p_source_31
66737 , p_source_32 => p_source_32
66738          , x_transaction_coa_id       => l_adr_transaction_coa_id
66739          , x_accounting_coa_id        => l_adr_accounting_coa_id
66740          , x_value_type_code          => l_adr_value_type_code
66741          , p_side                     => 'CREDIT'
66742    );
66743 
66744    xla_ae_lines_pkg.set_ccid(
66745     p_code_combination_id          => l_ccid
66746   , p_value_type_code              => l_adr_value_type_code
66747   , p_transaction_coa_id           => l_adr_transaction_coa_id
66748   , p_accounting_coa_id            => l_adr_accounting_coa_id
66749   , p_adr_code                     => 'AP_REAL_GAIN'
66750   , p_adr_type_code                => 'S'
66751   , p_component_type               => l_component_type
66752   , p_component_code               => l_component_code
66753   , p_component_type_code          => l_component_type_code
66754   , p_component_appl_id            => l_component_appl_id
66755   , p_amb_context_code             => l_amb_context_code
66756   , p_side                         => 'CREDIT'
66757   );
66758 
66759 
66760   l_ccid := AcctDerRule_41(
66761            p_application_id           => p_application_id
66762          , p_ae_header_id             => l_ae_header_id 
66763 , p_source_10 => p_source_10
66764 , p_source_10_meaning => p_source_10_meaning
66765 , p_source_25 => p_source_25
66766 , p_source_33 => p_source_33
66767 , p_source_34 => p_source_34
66768          , x_transaction_coa_id       => l_adr_transaction_coa_id
66769          , x_accounting_coa_id        => l_adr_accounting_coa_id
66770          , x_value_type_code          => l_adr_value_type_code
66771          , p_side                     => 'DEBIT'
66772    );
66773 
66774    xla_ae_lines_pkg.set_ccid(
66775     p_code_combination_id          => l_ccid
66776   , p_value_type_code              => l_adr_value_type_code
66777   , p_transaction_coa_id           => l_adr_transaction_coa_id
66778   , p_accounting_coa_id            => l_adr_accounting_coa_id
66779   , p_adr_code                     => 'AP_REAL_LOSS'
66780   , p_adr_type_code                => 'S'
66781   , p_component_type               => l_component_type
66782   , p_component_code               => l_component_code
66783   , p_component_type_code          => l_component_type_code
66784   , p_component_appl_id            => l_component_appl_id
66785   , p_amb_context_code             => l_amb_context_code
66786   , p_side                         => 'DEBIT'
66787   );
66788 
66789 
66790    l_segment := AcctDerRule_23(
66791            p_application_id           => p_application_id
66792          , p_ae_header_id             => l_ae_header_id 
66793 , p_source_10 => p_source_10
66794 , p_source_10_meaning => p_source_10_meaning
66795 , p_source_25 => p_source_25
66799          , x_flex_value_set_id        => l_adr_flex_value_set_id
66796          , x_transaction_coa_id       => l_adr_transaction_coa_id
66797          , x_accounting_coa_id        => l_adr_accounting_coa_id
66798          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66800          , x_value_type_code          => l_adr_value_type_code
66801          , x_value_combination_id     => l_adr_value_combination_id
66802          , x_value_segment_code       => l_adr_value_segment_code
66803          , p_side                     => 'ALL'
66804          , p_override_seg_flag        => 'Y'
66805    );
66806 
66807    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66808 
66809       xla_ae_lines_pkg.set_segment(
66810           p_to_segment_code         => 'GL_BALANCING'
66811         , p_segment_value           => l_segment
66812         , p_from_segment_code       => l_adr_value_segment_code
66813         , p_from_combination_id     => l_adr_value_combination_id
66814         , p_value_type_code         => l_adr_value_type_code
66815         , p_transaction_coa_id      => l_adr_transaction_coa_id
66816         , p_accounting_coa_id       => l_adr_accounting_coa_id
66817         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66818         , p_flex_value_set_id       => l_adr_flex_value_set_id
66819         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66820         , p_adr_type_code           => 'S'
66821         , p_component_type          => l_component_type
66822         , p_component_code          => l_component_code
66823         , p_component_type_code     => l_component_type_code
66824         , p_component_appl_id       => l_component_appl_id
66825         , p_amb_context_code        => l_amb_context_code
66826         , p_entity_code             => 'AP_PAYMENTS'
66827         , p_event_class_code        => 'PAYMENTS'
66828         , p_side                    => 'ALL'
66829         );
66830 
66831   END IF;
66832 
66833    l_segment := AcctDerRule_17(
66834            p_application_id           => p_application_id
66835          , p_ae_header_id             => l_ae_header_id 
66836 , p_source_10 => p_source_10
66837 , p_source_10_meaning => p_source_10_meaning
66838 , p_source_31 => p_source_31
66839 , p_source_32 => p_source_32
66840          , x_transaction_coa_id       => l_adr_transaction_coa_id
66841          , x_accounting_coa_id        => l_adr_accounting_coa_id
66842          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66843          , x_flex_value_set_id        => l_adr_flex_value_set_id
66844          , x_value_type_code          => l_adr_value_type_code
66845          , x_value_combination_id     => l_adr_value_combination_id
66846          , x_value_segment_code       => l_adr_value_segment_code
66847          , p_side                     => 'CREDIT'
66848          , p_override_seg_flag        => 'Y'
66849    );
66850 
66851    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66852 
66853       xla_ae_lines_pkg.set_segment(
66854           p_to_segment_code         => 'GL_ACCOUNT'
66855         , p_segment_value           => l_segment
66856         , p_from_segment_code       => l_adr_value_segment_code
66857         , p_from_combination_id     => l_adr_value_combination_id
66858         , p_value_type_code         => l_adr_value_type_code
66859         , p_transaction_coa_id      => l_adr_transaction_coa_id
66860         , p_accounting_coa_id       => l_adr_accounting_coa_id
66861         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66862         , p_flex_value_set_id       => l_adr_flex_value_set_id
66863         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
66864         , p_adr_type_code           => 'S'
66865         , p_component_type          => l_component_type
66866         , p_component_code          => l_component_code
66867         , p_component_type_code     => l_component_type_code
66868         , p_component_appl_id       => l_component_appl_id
66869         , p_amb_context_code        => l_amb_context_code
66870         , p_entity_code             => 'AP_PAYMENTS'
66871         , p_event_class_code        => 'PAYMENTS'
66872         , p_side                    => 'CREDIT'
66873         );
66874 
66875   END IF;
66876 
66877    l_segment := AcctDerRule_18(
66878            p_application_id           => p_application_id
66879          , p_ae_header_id             => l_ae_header_id 
66880 , p_source_10 => p_source_10
66881 , p_source_10_meaning => p_source_10_meaning
66882 , p_source_33 => p_source_33
66883 , p_source_34 => p_source_34
66884          , x_transaction_coa_id       => l_adr_transaction_coa_id
66885          , x_accounting_coa_id        => l_adr_accounting_coa_id
66886          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66887          , x_flex_value_set_id        => l_adr_flex_value_set_id
66888          , x_value_type_code          => l_adr_value_type_code
66889          , x_value_combination_id     => l_adr_value_combination_id
66890          , x_value_segment_code       => l_adr_value_segment_code
66891          , p_side                     => 'DEBIT'
66892          , p_override_seg_flag        => 'Y'
66893    );
66894 
66895    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66896 
66897       xla_ae_lines_pkg.set_segment(
66898           p_to_segment_code         => 'GL_ACCOUNT'
66899         , p_segment_value           => l_segment
66900         , p_from_segment_code       => l_adr_value_segment_code
66901         , p_from_combination_id     => l_adr_value_combination_id
66902         , p_value_type_code         => l_adr_value_type_code
66906         , p_flex_value_set_id       => l_adr_flex_value_set_id
66903         , p_transaction_coa_id      => l_adr_transaction_coa_id
66904         , p_accounting_coa_id       => l_adr_accounting_coa_id
66905         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66907         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
66908         , p_adr_type_code           => 'S'
66909         , p_component_type          => l_component_type
66910         , p_component_code          => l_component_code
66911         , p_component_type_code     => l_component_type_code
66912         , p_component_appl_id       => l_component_appl_id
66913         , p_amb_context_code        => l_amb_context_code
66914         , p_entity_code             => 'AP_PAYMENTS'
66915         , p_event_class_code        => 'PAYMENTS'
66916         , p_side                    => 'DEBIT'
66917         );
66918 
66919   END IF;
66920 
66921    --
66922    --
66923    END IF;
66924 
66925        --
66926        -- Update the line information that should be overwritten
66927        --
66928        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66929                                          p_header_num   => 1);
66930        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66931 
66932        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66933 
66934        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66935           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66936        END IF;
66937 
66938       --
66939       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66940       --
66941       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66942           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66943       ELSE
66944           ---------------------------------------------------------------------------------------------------
66945           -- 4262811a Switch Sign
66946           ---------------------------------------------------------------------------------------------------
66947           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66948           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66949                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66950           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66951                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66952           -- 5132302
66953           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66954                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66955 
66956       END IF;
66957 
66958       -- 4955764
66959       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66960       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66961 
66962 
66963       XLA_AE_LINES_PKG.ValidateCurrentLine;
66964       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66965 
66966       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66967                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66968                ,p_balance_type_code => l_balance_type_code);
66969 
66970    END IF;
66971 
66972    -----------------------------------------------------------------------------------------
66973    -- 4262811 Multiperiod Accounting
66974    -----------------------------------------------------------------------------------------
66975      -- No MPA option is assigned.
66976 
66977 
66978 END IF;
66979 END IF;
66980 --
66981 
66982 --
66983 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66984    trace
66985       (p_msg      => 'END of AcctLineType_135'
66986       ,p_level    => C_LEVEL_PROCEDURE
66987       ,p_module   => l_log_module);
66988 END IF;
66989 --
66990 EXCEPTION
66991   WHEN xla_exceptions_pkg.application_exception THEN
66992       RAISE;
66993   WHEN OTHERS THEN
66994        xla_exceptions_pkg.raise_message
66995            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_135');
66996 END AcctLineType_135;
66997 --
66998 
66999 ---------------------------------------
67000 --
67001 -- PRIVATE FUNCTION
67002 --         AcctLineType_136
67003 --
67004 ---------------------------------------
67005 PROCEDURE AcctLineType_136 (
67006   p_application_id        IN NUMBER
67007  ,p_event_id              IN NUMBER
67008  ,p_calculate_acctd_flag  IN VARCHAR2
67009  ,p_calculate_g_l_flag    IN VARCHAR2
67010  ,p_actual_flag           IN OUT VARCHAR2
67011  ,p_balance_type_code     OUT VARCHAR2
67012  ,p_gain_or_loss_ref      OUT VARCHAR2
67013  
67014 --Automatic Offsets Value
67015  , p_source_10            IN VARCHAR2
67016  , p_source_10_meaning    IN VARCHAR2
67017 --Invoice Distribution Account
67018  , p_source_25            IN NUMBER
67019 --Internal Realized Gain Account
67020  , p_source_31            IN NUMBER
67021 --Bank Gain Account
67025 --Bank Loss Account
67022  , p_source_32            IN NUMBER
67023 --Internal Realized Loss Account
67024  , p_source_33            IN NUMBER
67026  , p_source_34            IN NUMBER
67027 --When to Account for Payment Option
67028  , p_source_57            IN VARCHAR2
67029 --Accounting Reversal Indicator
67030  , p_source_58            IN VARCHAR2
67031 --Distribution Link Type
67032  , p_source_60            IN VARCHAR2
67033 --Override Accounted Amount Indicator
67034  , p_source_85            IN VARCHAR2
67035  , p_source_85_meaning    IN VARCHAR2
67036 --Third Party Type
67037  , p_source_88            IN VARCHAR2
67038 --Business Flow Accounts Payable Application Identifier
67039  , p_source_96            IN NUMBER
67040 --Payment Distribution Type
67041  , p_source_101            IN VARCHAR2
67042  , p_source_101_meaning    IN VARCHAR2
67043 --Business Flow Payment Distribution Type
67044  , p_source_103            IN VARCHAR2
67045 --Business Flow Payment Entity Code
67046  , p_source_104            IN VARCHAR2
67047 --Business Flow Payment Distribution Identifier
67048  , p_source_105            IN NUMBER
67049 --Business Flow Payment Identifier
67050  , p_source_106            IN NUMBER
67051 --Payment Distribution Identifier
67052  , p_source_107            IN NUMBER
67053 --Payment Supplier Identifier
67054  , p_source_113            IN NUMBER
67055 --Payment Supplier Site Identifier
67056  , p_source_114            IN NUMBER
67057 --Payment Distribution Reversed Identifier
67058  , p_source_115            IN NUMBER
67059 --Payment Maturity Date
67060  , p_source_117            IN DATE
67061 --Payment/Maturity Ledger Amount Difference
67062  , p_source_157            IN NUMBER
67063 )
67064 IS
67065 
67066 l_component_type              VARCHAR2(80);
67067 l_component_code              VARCHAR2(30);
67068 l_component_type_code         VARCHAR2(1);
67069 l_component_appl_id           INTEGER;
67070 l_amb_context_code            VARCHAR2(30);
67071 l_entity_code                 VARCHAR2(30);
67072 l_event_class_code            VARCHAR2(30);
67073 l_ae_header_id                NUMBER;
67074 l_event_type_code             VARCHAR2(30);
67075 l_line_definition_code        VARCHAR2(30);
67076 l_line_definition_owner_code  VARCHAR2(1);
67077 --
67078 -- adr variables
67079 l_segment                     VARCHAR2(30);
67080 l_ccid                        NUMBER;
67081 l_adr_transaction_coa_id      NUMBER;
67082 l_adr_accounting_coa_id       NUMBER;
67083 l_adr_flexfield_segment_code  VARCHAR2(30);
67084 l_adr_flex_value_set_id       NUMBER;
67085 l_adr_value_type_code         VARCHAR2(30);
67086 l_adr_value_combination_id    NUMBER;
67087 l_adr_value_segment_code      VARCHAR2(30);
67088 
67089 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67090 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67091 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67092 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67093 
67094 -- 4262811 Variables ------------------------------------------------------------------------------------------
67095 l_entered_amt_idx             NUMBER;
67096 l_accted_amt_idx              NUMBER;
67097 l_acc_rev_flag                VARCHAR2(1);
67098 l_accrual_line_num            NUMBER;
67099 l_tmp_amt                     NUMBER;
67100 l_acc_rev_natural_side_code   VARCHAR2(1);
67101 
67102 l_num_entries                 NUMBER;
67103 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67104 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67105 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67106 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67107 l_recog_line_1                NUMBER;
67108 l_recog_line_2                NUMBER;
67109 
67110 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67111 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67112 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67113 
67114 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67115 
67116 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67117 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67118 
67119 ---------------------------------------------------------------------------------------------------------------
67120 
67121 
67122 --
67123 -- bulk performance
67124 --
67125 l_balance_type_code           VARCHAR2(1);
67126 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67127 l_log_module                  VARCHAR2(240);
67128 
67129 --
67130 -- Upgrade strategy
67131 --
67132 l_actual_upg_option           VARCHAR2(1);
67133 l_enc_upg_option           VARCHAR2(1);
67134 
67135 --
67136 BEGIN
67137 --
67138 IF g_log_enabled THEN
67139       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
67140 END IF;
67141 --
67142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67143 
67144       trace
67145          (p_msg      => 'BEGIN of AcctLineType_136'
67146          ,p_level    => C_LEVEL_PROCEDURE
67147          ,p_module   => l_log_module);
67148 
67149 END IF;
67150 --
67151 l_component_type             := 'AMB_JLT';
67155 l_amb_context_code           := 'DEFAULT';
67152 l_component_code             := 'AP_GAIN_LOSS_PMT_MAT';
67153 l_component_type_code        := 'S';
67154 l_component_appl_id          :=  200;
67156 l_entity_code                := 'AP_PAYMENTS';
67157 l_event_class_code           := 'FUTURE DATED PAYMENTS';
67158 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
67159 l_line_definition_owner_code := 'S';
67160 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
67161 --
67162 l_balance_type_code          := 'A';
67163 l_segment                     := NULL;
67164 l_ccid                        := NULL;
67165 l_adr_transaction_coa_id      := NULL;
67166 l_adr_accounting_coa_id       := NULL;
67167 l_adr_flexfield_segment_code  := NULL;
67168 l_adr_flex_value_set_id       := NULL;
67169 l_adr_value_type_code         := NULL;
67170 l_adr_value_combination_id    := NULL;
67171 l_adr_value_segment_code      := NULL;
67172 
67173 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67174 l_bflow_class_code           := '';    -- 4219869 Business Flow
67175 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67176 l_budgetary_control_flag     := 'N';
67177 
67178 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67179 l_bflow_applied_to_amt       := NULL; -- 5132302
67180 l_entered_amt_idx            := NULL;          -- 4262811
67181 l_accted_amt_idx             := NULL;          -- 4262811
67182 l_acc_rev_flag               := NULL;          -- 4262811
67183 l_accrual_line_num           := NULL;          -- 4262811
67184 l_tmp_amt                    := NULL;          -- 4262811
67185 --
67186 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67187             (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
67188                return;
67189   END IF;
67190   
67191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67192     l_balance_type_code <> 'B' THEN
67193 IF (NVL(p_source_57,'
67194 ') =  'ALWAYS_ALWAYS' OR 
67195 NVL(p_source_57,'
67196 ') =  'ALWAYS_ISSUE') AND 
67197 p_source_117 IS NOT NULL AND 
67198 NVL(p_source_101,'
67199 ') <>  'EXCHANGE RATE VARIANCE' AND 
67200 NVL(p_source_101,'
67201 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
67202 NVL(p_source_101,'
67203 ') <>  'BANK CHARGE' AND 
67204 NVL(p_source_101,'
67205 ') <>  'BANK ERROR'
67206  THEN 
67207 
67208    --
67209    XLA_AE_LINES_PKG.SetNewLine;
67210 
67211    p_balance_type_code          := l_balance_type_code;
67212    -- set the flag so later we will know whether the gain loss line needs to be created
67213    
67214    IF(l_balance_type_code = 'A' ) THEN
67215      p_actual_flag :='G';
67216    END IF;
67217 
67218    --
67219    -- bulk performance
67220    --
67221    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67222                                       p_header_num   => 0); -- 4262811
67223    --
67224    -- set accounting line options
67225    --
67226    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67227            p_natural_side_code          => 'G'
67228          , p_gain_or_loss_flag          => 'N'
67229          , p_gl_transfer_mode_code      => 'S'
67230          , p_acct_entry_type_code       => 'A'
67231          , p_switch_side_flag           => ''
67232          , p_merge_duplicate_code       => 'A'
67233          );
67234    --
67235    l_acc_rev_natural_side_code := 'C';  -- 4262811
67236    -- 
67237    --
67238    -- set accounting line type info
67239    --
67240    xla_ae_lines_pkg.SetAcctLineType
67241       (p_component_type             => l_component_type
67242       ,p_event_type_code            => l_event_type_code
67243       ,p_line_definition_owner_code => l_line_definition_owner_code
67244       ,p_line_definition_code       => l_line_definition_code
67245       ,p_accounting_line_code       => l_component_code
67246       ,p_accounting_line_type_code  => l_component_type_code
67247       ,p_accounting_line_appl_id    => l_component_appl_id
67248       ,p_amb_context_code           => l_amb_context_code
67249       ,p_entity_code                => l_entity_code
67250       ,p_event_class_code           => l_event_class_code);
67251    --
67252    -- set accounting class
67253    --
67254    xla_ae_lines_pkg.SetAcctClass(
67255            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
67256          , p_ae_header_id           => l_ae_header_id
67257          );
67258 
67259    --
67260    -- set rounding class
67261    --
67262    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67263                       'EXCHANGE_GAIN_LOSS';
67264 
67265    --
67266    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67267    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67268    --
67269    -- bulk performance
67270    --
67271    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67272 
67273    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67274       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67275 
67276    -- 4955764
67280    -- 4458381 Public Sector Enh
67277    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67278       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67279 
67281    
67282    --
67283    -- set accounting attributes for the line type
67284    --
67285    l_entered_amt_idx := NULL;
67286    l_accted_amt_idx  := 9;
67287    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
67288    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67289    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
67290    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
67291    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
67292    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67293    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
67294    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
67295    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
67296    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
67297    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
67298    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67299    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
67300    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
67301    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
67302    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
67303    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
67304    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
67305    l_rec_acct_attrs.array_num_value(9)  := p_source_157;
67306    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
67307    l_rec_acct_attrs.array_char_value(10)  := p_source_85;
67308    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
67309    l_rec_acct_attrs.array_num_value(11)  := p_source_113;
67310    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
67311    l_rec_acct_attrs.array_num_value(12)  := p_source_114;
67312    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
67313    l_rec_acct_attrs.array_char_value(13)  := p_source_88;
67314    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
67315    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_115);
67316    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
67317    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
67318 
67319    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67320    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67321 
67322    ---------------------------------------------------------------------------------------------------------------
67323    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67324    ---------------------------------------------------------------------------------------------------------------
67325    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67326 
67327    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67328    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67329 
67330    IF xla_accounting_cache_pkg.GetValueChar
67331          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67332          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67333    AND l_bflow_method_code = 'PRIOR_ENTRY'
67334 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67335    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67336          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67337        )
67338    THEN
67339          xla_ae_lines_pkg.BflowUpgEntry
67340            (p_business_method_code    => l_bflow_method_code
67341            ,p_business_class_code     => l_bflow_class_code
67342            ,p_balance_type            => l_balance_type_code);
67343    ELSE
67344       NULL;
67345 -- No business flow processing for business flow method of NONE.
67346    END IF;
67347 
67348    --
67349    -- call analytical criteria
67350    --
67351    
67352    --
67353    -- call description
67354    --
67355    -- No description or it is inherited.
67356    --
67357    -- call ADRs
67358    -- Bug 4922099
67359    --
67360    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67361         (NVL(l_actual_upg_option, 'N') = 'O') OR
67362         (NVL(l_enc_upg_option, 'N') = 'O')
67363       )
67364    THEN
67365    NULL;
67366    --
67367    --
67368    
67369   l_ccid := AcctDerRule_40(
67370            p_application_id           => p_application_id
67371          , p_ae_header_id             => l_ae_header_id 
67372 , p_source_10 => p_source_10
67373 , p_source_10_meaning => p_source_10_meaning
67374 , p_source_25 => p_source_25
67375 , p_source_31 => p_source_31
67376 , p_source_32 => p_source_32
67377          , x_transaction_coa_id       => l_adr_transaction_coa_id
67378          , x_accounting_coa_id        => l_adr_accounting_coa_id
67379          , x_value_type_code          => l_adr_value_type_code
67380          , p_side                     => 'CREDIT'
67381    );
67382 
67383    xla_ae_lines_pkg.set_ccid(
67384     p_code_combination_id          => l_ccid
67385   , p_value_type_code              => l_adr_value_type_code
67389   , p_adr_type_code                => 'S'
67386   , p_transaction_coa_id           => l_adr_transaction_coa_id
67387   , p_accounting_coa_id            => l_adr_accounting_coa_id
67388   , p_adr_code                     => 'AP_REAL_GAIN'
67390   , p_component_type               => l_component_type
67391   , p_component_code               => l_component_code
67392   , p_component_type_code          => l_component_type_code
67393   , p_component_appl_id            => l_component_appl_id
67394   , p_amb_context_code             => l_amb_context_code
67395   , p_side                         => 'CREDIT'
67396   );
67397 
67398 
67399   l_ccid := AcctDerRule_41(
67400            p_application_id           => p_application_id
67401          , p_ae_header_id             => l_ae_header_id 
67402 , p_source_10 => p_source_10
67403 , p_source_10_meaning => p_source_10_meaning
67404 , p_source_25 => p_source_25
67405 , p_source_33 => p_source_33
67406 , p_source_34 => p_source_34
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                     => 'DEBIT'
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                         => 'DEBIT'
67426   );
67427 
67428 
67429    l_segment := AcctDerRule_23(
67430            p_application_id           => p_application_id
67431          , p_ae_header_id             => l_ae_header_id 
67432 , p_source_10 => p_source_10
67433 , p_source_10_meaning => p_source_10_meaning
67434 , p_source_25 => p_source_25
67435          , x_transaction_coa_id       => l_adr_transaction_coa_id
67436          , x_accounting_coa_id        => l_adr_accounting_coa_id
67437          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67438          , x_flex_value_set_id        => l_adr_flex_value_set_id
67439          , x_value_type_code          => l_adr_value_type_code
67440          , x_value_combination_id     => l_adr_value_combination_id
67441          , x_value_segment_code       => l_adr_value_segment_code
67442          , p_side                     => 'ALL'
67443          , p_override_seg_flag        => 'Y'
67444    );
67445 
67446    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67447 
67448       xla_ae_lines_pkg.set_segment(
67449           p_to_segment_code         => 'GL_BALANCING'
67450         , p_segment_value           => l_segment
67451         , p_from_segment_code       => l_adr_value_segment_code
67452         , p_from_combination_id     => l_adr_value_combination_id
67453         , p_value_type_code         => l_adr_value_type_code
67454         , p_transaction_coa_id      => l_adr_transaction_coa_id
67455         , p_accounting_coa_id       => l_adr_accounting_coa_id
67456         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67457         , p_flex_value_set_id       => l_adr_flex_value_set_id
67458         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
67459         , p_adr_type_code           => 'S'
67460         , p_component_type          => l_component_type
67461         , p_component_code          => l_component_code
67462         , p_component_type_code     => l_component_type_code
67463         , p_component_appl_id       => l_component_appl_id
67464         , p_amb_context_code        => l_amb_context_code
67465         , p_entity_code             => 'AP_PAYMENTS'
67466         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67467         , p_side                    => 'ALL'
67468         );
67469 
67470   END IF;
67471 
67472    l_segment := AcctDerRule_17(
67473            p_application_id           => p_application_id
67474          , p_ae_header_id             => l_ae_header_id 
67475 , p_source_10 => p_source_10
67476 , p_source_10_meaning => p_source_10_meaning
67477 , p_source_31 => p_source_31
67478 , p_source_32 => p_source_32
67479          , x_transaction_coa_id       => l_adr_transaction_coa_id
67480          , x_accounting_coa_id        => l_adr_accounting_coa_id
67481          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67482          , x_flex_value_set_id        => l_adr_flex_value_set_id
67483          , x_value_type_code          => l_adr_value_type_code
67484          , x_value_combination_id     => l_adr_value_combination_id
67485          , x_value_segment_code       => l_adr_value_segment_code
67486          , p_side                     => 'CREDIT'
67487          , p_override_seg_flag        => 'Y'
67488    );
67489 
67490    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67491 
67492       xla_ae_lines_pkg.set_segment(
67493           p_to_segment_code         => 'GL_ACCOUNT'
67494         , p_segment_value           => l_segment
67495         , p_from_segment_code       => l_adr_value_segment_code
67496         , p_from_combination_id     => l_adr_value_combination_id
67497         , p_value_type_code         => l_adr_value_type_code
67501         , p_flex_value_set_id       => l_adr_flex_value_set_id
67498         , p_transaction_coa_id      => l_adr_transaction_coa_id
67499         , p_accounting_coa_id       => l_adr_accounting_coa_id
67500         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67502         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
67503         , p_adr_type_code           => 'S'
67504         , p_component_type          => l_component_type
67505         , p_component_code          => l_component_code
67506         , p_component_type_code     => l_component_type_code
67507         , p_component_appl_id       => l_component_appl_id
67508         , p_amb_context_code        => l_amb_context_code
67509         , p_entity_code             => 'AP_PAYMENTS'
67510         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67511         , p_side                    => 'CREDIT'
67512         );
67513 
67514   END IF;
67515 
67516    l_segment := AcctDerRule_18(
67517            p_application_id           => p_application_id
67518          , p_ae_header_id             => l_ae_header_id 
67519 , p_source_10 => p_source_10
67520 , p_source_10_meaning => p_source_10_meaning
67521 , p_source_33 => p_source_33
67522 , p_source_34 => p_source_34
67523          , x_transaction_coa_id       => l_adr_transaction_coa_id
67524          , x_accounting_coa_id        => l_adr_accounting_coa_id
67525          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67526          , x_flex_value_set_id        => l_adr_flex_value_set_id
67527          , x_value_type_code          => l_adr_value_type_code
67528          , x_value_combination_id     => l_adr_value_combination_id
67529          , x_value_segment_code       => l_adr_value_segment_code
67530          , p_side                     => 'DEBIT'
67531          , p_override_seg_flag        => 'Y'
67532    );
67533 
67534    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67535 
67536       xla_ae_lines_pkg.set_segment(
67537           p_to_segment_code         => 'GL_ACCOUNT'
67538         , p_segment_value           => l_segment
67539         , p_from_segment_code       => l_adr_value_segment_code
67540         , p_from_combination_id     => l_adr_value_combination_id
67541         , p_value_type_code         => l_adr_value_type_code
67542         , p_transaction_coa_id      => l_adr_transaction_coa_id
67543         , p_accounting_coa_id       => l_adr_accounting_coa_id
67544         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67545         , p_flex_value_set_id       => l_adr_flex_value_set_id
67546         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
67547         , p_adr_type_code           => 'S'
67548         , p_component_type          => l_component_type
67549         , p_component_code          => l_component_code
67550         , p_component_type_code     => l_component_type_code
67551         , p_component_appl_id       => l_component_appl_id
67552         , p_amb_context_code        => l_amb_context_code
67553         , p_entity_code             => 'AP_PAYMENTS'
67554         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67555         , p_side                    => 'DEBIT'
67556         );
67557 
67558   END IF;
67559 
67560    --
67561    --
67562    END IF;
67563    --
67564    -- Bug 4922099
67565    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67566           (NVL(l_enc_upg_option, 'N') = 'O')
67567         ) AND
67568         (l_bflow_method_code = 'PRIOR_ENTRY')
67569       )
67570    THEN
67571       IF
67572       --
67573       1 = 2
67574       --
67575       THEN
67576       xla_accounting_err_pkg.build_message
67577                                     (p_appli_s_name            => 'XLA'
67578                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67579                                     ,p_token_1                 => 'LINE_NUMBER'
67580                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67581                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67582                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67583                                                                              l_component_type
67584                                                                             ,l_component_code
67585                                                                             ,l_component_type_code
67586                                                                             ,l_component_appl_id
67587                                                                             ,l_amb_context_code
67588                                                                             ,l_entity_code
67589                                                                             ,l_event_class_code
67590                                                                            )
67591                                     ,p_token_3                 => 'OWNER'
67592                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67593                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67594                                                                           ,p_lookup_code    => l_component_type_code
67595                                                                          )
67596                                     ,p_token_4                 => 'PRODUCT_NAME'
67600                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67597                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67598                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67599                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67601                                     ,p_ae_header_id            =>  NULL
67602                                        );
67603 
67604         IF (C_LEVEL_ERROR>= g_log_level) THEN
67605                  trace
67606                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67607                       ,p_level    => C_LEVEL_ERROR
67608                       ,p_module   => l_log_module);
67609         END IF;
67610       END IF;
67611    END IF;
67612    --
67613    --
67614    ------------------------------------------------------------------------------------------------
67615    -- 4219869 Business Flow
67616    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67617    -- Prior Entry.  Currently, the following code is always generated.
67618    ------------------------------------------------------------------------------------------------
67619    XLA_AE_LINES_PKG.ValidateCurrentLine;
67620 
67621    ------------------------------------------------------------------------------------
67622    -- 4219869 Business Flow
67623    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67624    ------------------------------------------------------------------------------------
67625    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67626 
67627    ----------------------------------------------------------------------------------
67628    -- 4219869 Business Flow
67629    -- Update journal entry status -- Need to generate this within IF <condition>
67630    ----------------------------------------------------------------------------------
67631    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67632          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67633          ,p_balance_type_code => l_balance_type_code
67634          );
67635 
67636    -------------------------------------------------------------------------------------------
67637    -- 4262811 - Generate the Accrual Reversal lines
67638    -------------------------------------------------------------------------------------------
67639    BEGIN
67640       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67641                               (g_array_event(p_event_id).array_value_num('header_index'));
67642       IF l_acc_rev_flag IS NULL THEN
67643          l_acc_rev_flag := 'N';
67644       END IF;
67645    EXCEPTION
67646       WHEN OTHERS THEN
67647          l_acc_rev_flag := 'N';
67648    END;
67649    --
67650    IF (l_acc_rev_flag = 'Y') THEN
67651 
67652        -- 4645092  ------------------------------------------------------------------------------
67653        -- To allow MPA report to determine if it should generate report process
67654        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67655        ------------------------------------------------------------------------------------------
67656 
67657        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67658        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67659    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67660    -- call ADRs
67661    -- Bug 4922099
67662    --
67663    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67664         (NVL(l_actual_upg_option, 'N') = 'O') OR
67665         (NVL(l_enc_upg_option, 'N') = 'O')
67666       )
67667    THEN
67668    NULL;
67669    --
67670    --
67671    
67672   l_ccid := AcctDerRule_40(
67673            p_application_id           => p_application_id
67674          , p_ae_header_id             => l_ae_header_id 
67675 , p_source_10 => p_source_10
67676 , p_source_10_meaning => p_source_10_meaning
67677 , p_source_25 => p_source_25
67678 , p_source_31 => p_source_31
67679 , p_source_32 => p_source_32
67680          , x_transaction_coa_id       => l_adr_transaction_coa_id
67681          , x_accounting_coa_id        => l_adr_accounting_coa_id
67682          , x_value_type_code          => l_adr_value_type_code
67683          , p_side                     => 'CREDIT'
67684    );
67685 
67686    xla_ae_lines_pkg.set_ccid(
67687     p_code_combination_id          => l_ccid
67688   , p_value_type_code              => l_adr_value_type_code
67689   , p_transaction_coa_id           => l_adr_transaction_coa_id
67690   , p_accounting_coa_id            => l_adr_accounting_coa_id
67691   , p_adr_code                     => 'AP_REAL_GAIN'
67692   , p_adr_type_code                => 'S'
67693   , p_component_type               => l_component_type
67694   , p_component_code               => l_component_code
67695   , p_component_type_code          => l_component_type_code
67696   , p_component_appl_id            => l_component_appl_id
67697   , p_amb_context_code             => l_amb_context_code
67698   , p_side                         => 'CREDIT'
67699   );
67700 
67701 
67702   l_ccid := AcctDerRule_41(
67703            p_application_id           => p_application_id
67704          , p_ae_header_id             => l_ae_header_id 
67705 , p_source_10 => p_source_10
67709 , p_source_34 => p_source_34
67706 , p_source_10_meaning => p_source_10_meaning
67707 , p_source_25 => p_source_25
67708 , p_source_33 => p_source_33
67710          , x_transaction_coa_id       => l_adr_transaction_coa_id
67711          , x_accounting_coa_id        => l_adr_accounting_coa_id
67712          , x_value_type_code          => l_adr_value_type_code
67713          , p_side                     => 'DEBIT'
67714    );
67715 
67716    xla_ae_lines_pkg.set_ccid(
67717     p_code_combination_id          => l_ccid
67718   , p_value_type_code              => l_adr_value_type_code
67719   , p_transaction_coa_id           => l_adr_transaction_coa_id
67720   , p_accounting_coa_id            => l_adr_accounting_coa_id
67721   , p_adr_code                     => 'AP_REAL_LOSS'
67722   , p_adr_type_code                => 'S'
67723   , p_component_type               => l_component_type
67724   , p_component_code               => l_component_code
67725   , p_component_type_code          => l_component_type_code
67726   , p_component_appl_id            => l_component_appl_id
67727   , p_amb_context_code             => l_amb_context_code
67728   , p_side                         => 'DEBIT'
67729   );
67730 
67731 
67732    l_segment := AcctDerRule_23(
67733            p_application_id           => p_application_id
67734          , p_ae_header_id             => l_ae_header_id 
67735 , p_source_10 => p_source_10
67736 , p_source_10_meaning => p_source_10_meaning
67737 , p_source_25 => p_source_25
67738          , x_transaction_coa_id       => l_adr_transaction_coa_id
67739          , x_accounting_coa_id        => l_adr_accounting_coa_id
67740          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67741          , x_flex_value_set_id        => l_adr_flex_value_set_id
67742          , x_value_type_code          => l_adr_value_type_code
67743          , x_value_combination_id     => l_adr_value_combination_id
67744          , x_value_segment_code       => l_adr_value_segment_code
67745          , p_side                     => 'ALL'
67746          , p_override_seg_flag        => 'Y'
67747    );
67748 
67749    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67750 
67751       xla_ae_lines_pkg.set_segment(
67752           p_to_segment_code         => 'GL_BALANCING'
67753         , p_segment_value           => l_segment
67754         , p_from_segment_code       => l_adr_value_segment_code
67755         , p_from_combination_id     => l_adr_value_combination_id
67756         , p_value_type_code         => l_adr_value_type_code
67757         , p_transaction_coa_id      => l_adr_transaction_coa_id
67758         , p_accounting_coa_id       => l_adr_accounting_coa_id
67759         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67760         , p_flex_value_set_id       => l_adr_flex_value_set_id
67761         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
67762         , p_adr_type_code           => 'S'
67763         , p_component_type          => l_component_type
67764         , p_component_code          => l_component_code
67765         , p_component_type_code     => l_component_type_code
67766         , p_component_appl_id       => l_component_appl_id
67767         , p_amb_context_code        => l_amb_context_code
67768         , p_entity_code             => 'AP_PAYMENTS'
67769         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67770         , p_side                    => 'ALL'
67771         );
67772 
67773   END IF;
67774 
67775    l_segment := AcctDerRule_17(
67776            p_application_id           => p_application_id
67777          , p_ae_header_id             => l_ae_header_id 
67778 , p_source_10 => p_source_10
67779 , p_source_10_meaning => p_source_10_meaning
67780 , p_source_31 => p_source_31
67781 , p_source_32 => p_source_32
67782          , x_transaction_coa_id       => l_adr_transaction_coa_id
67783          , x_accounting_coa_id        => l_adr_accounting_coa_id
67784          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67785          , x_flex_value_set_id        => l_adr_flex_value_set_id
67786          , x_value_type_code          => l_adr_value_type_code
67787          , x_value_combination_id     => l_adr_value_combination_id
67788          , x_value_segment_code       => l_adr_value_segment_code
67789          , p_side                     => 'CREDIT'
67790          , p_override_seg_flag        => 'Y'
67791    );
67792 
67793    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67794 
67795       xla_ae_lines_pkg.set_segment(
67796           p_to_segment_code         => 'GL_ACCOUNT'
67797         , p_segment_value           => l_segment
67798         , p_from_segment_code       => l_adr_value_segment_code
67799         , p_from_combination_id     => l_adr_value_combination_id
67800         , p_value_type_code         => l_adr_value_type_code
67801         , p_transaction_coa_id      => l_adr_transaction_coa_id
67802         , p_accounting_coa_id       => l_adr_accounting_coa_id
67803         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67804         , p_flex_value_set_id       => l_adr_flex_value_set_id
67805         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
67806         , p_adr_type_code           => 'S'
67807         , p_component_type          => l_component_type
67808         , p_component_code          => l_component_code
67809         , p_component_type_code     => l_component_type_code
67810         , p_component_appl_id       => l_component_appl_id
67811         , p_amb_context_code        => l_amb_context_code
67815         );
67812         , p_entity_code             => 'AP_PAYMENTS'
67813         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67814         , p_side                    => 'CREDIT'
67816 
67817   END IF;
67818 
67819    l_segment := AcctDerRule_18(
67820            p_application_id           => p_application_id
67821          , p_ae_header_id             => l_ae_header_id 
67822 , p_source_10 => p_source_10
67823 , p_source_10_meaning => p_source_10_meaning
67824 , p_source_33 => p_source_33
67825 , p_source_34 => p_source_34
67826          , x_transaction_coa_id       => l_adr_transaction_coa_id
67827          , x_accounting_coa_id        => l_adr_accounting_coa_id
67828          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67829          , x_flex_value_set_id        => l_adr_flex_value_set_id
67830          , x_value_type_code          => l_adr_value_type_code
67831          , x_value_combination_id     => l_adr_value_combination_id
67832          , x_value_segment_code       => l_adr_value_segment_code
67833          , p_side                     => 'DEBIT'
67834          , p_override_seg_flag        => 'Y'
67835    );
67836 
67837    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67838 
67839       xla_ae_lines_pkg.set_segment(
67840           p_to_segment_code         => 'GL_ACCOUNT'
67841         , p_segment_value           => l_segment
67842         , p_from_segment_code       => l_adr_value_segment_code
67843         , p_from_combination_id     => l_adr_value_combination_id
67844         , p_value_type_code         => l_adr_value_type_code
67845         , p_transaction_coa_id      => l_adr_transaction_coa_id
67846         , p_accounting_coa_id       => l_adr_accounting_coa_id
67847         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67848         , p_flex_value_set_id       => l_adr_flex_value_set_id
67849         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
67850         , p_adr_type_code           => 'S'
67851         , p_component_type          => l_component_type
67852         , p_component_code          => l_component_code
67853         , p_component_type_code     => l_component_type_code
67854         , p_component_appl_id       => l_component_appl_id
67855         , p_amb_context_code        => l_amb_context_code
67856         , p_entity_code             => 'AP_PAYMENTS'
67857         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67858         , p_side                    => 'DEBIT'
67859         );
67860 
67861   END IF;
67862 
67863    --
67864    --
67865    END IF;
67866 
67867        --
67868        -- Update the line information that should be overwritten
67869        --
67870        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67871                                          p_header_num   => 1);
67872        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67873 
67874        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67875 
67876        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67877           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67878        END IF;
67879 
67880       --
67881       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67882       --
67883       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67884           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67885       ELSE
67886           ---------------------------------------------------------------------------------------------------
67887           -- 4262811a Switch Sign
67888           ---------------------------------------------------------------------------------------------------
67889           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67890           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67891                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67892           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67893                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67894           -- 5132302
67895           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67896                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67897 
67898       END IF;
67899 
67900       -- 4955764
67901       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67902       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67903 
67904 
67905       XLA_AE_LINES_PKG.ValidateCurrentLine;
67906       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67907 
67908       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67909                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67910                ,p_balance_type_code => l_balance_type_code);
67911 
67912    END IF;
67913 
67914    -----------------------------------------------------------------------------------------
67915    -- 4262811 Multiperiod Accounting
67916    -----------------------------------------------------------------------------------------
67917      -- No MPA option is assigned.
67918 
67919 
67920 END IF;
67921 END IF;
67922 --
67923 
67927       (p_msg      => 'END of AcctLineType_136'
67924 --
67925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67926    trace
67928       ,p_level    => C_LEVEL_PROCEDURE
67929       ,p_module   => l_log_module);
67930 END IF;
67931 --
67932 EXCEPTION
67933   WHEN xla_exceptions_pkg.application_exception THEN
67934       RAISE;
67935   WHEN OTHERS THEN
67936        xla_exceptions_pkg.raise_message
67937            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_136');
67938 END AcctLineType_136;
67939 --
67940 
67941 ---------------------------------------
67942 --
67943 -- PRIVATE FUNCTION
67944 --         AcctLineType_137
67945 --
67946 ---------------------------------------
67947 PROCEDURE AcctLineType_137 (
67948   p_application_id        IN NUMBER
67949  ,p_event_id              IN NUMBER
67950  ,p_calculate_acctd_flag  IN VARCHAR2
67951  ,p_calculate_g_l_flag    IN VARCHAR2
67952  ,p_actual_flag           IN OUT VARCHAR2
67953  ,p_balance_type_code     OUT VARCHAR2
67954  ,p_gain_or_loss_ref      OUT VARCHAR2
67955  
67956 --Automatic Offsets Value
67957  , p_source_10            IN VARCHAR2
67958  , p_source_10_meaning    IN VARCHAR2
67959 --Invoice Distribution Account
67960  , p_source_25            IN NUMBER
67961 --Internal Realized Gain Account
67962  , p_source_31            IN NUMBER
67963 --Bank Gain Account
67964  , p_source_32            IN NUMBER
67965 --Internal Realized Loss Account
67966  , p_source_33            IN NUMBER
67967 --Bank Loss Account
67968  , p_source_34            IN NUMBER
67969 --Accounting Reversal Indicator
67970  , p_source_58            IN VARCHAR2
67971 --Distribution Link Type
67972  , p_source_60            IN VARCHAR2
67973 --Invoice Identifier
67974  , p_source_63            IN NUMBER
67975 --Payables Encumbrance Upgrade Credit Account
67976  , p_source_70            IN NUMBER
67977 --Payables Encumbrance Upgrade Credit Amount
67978  , p_source_71            IN NUMBER
67979 --Invoice Currency Code
67980  , p_source_72            IN VARCHAR2
67981 --Payables Encumbrance Upgrade Credit Base Amount
67982  , p_source_73            IN NUMBER
67983 --Payables Encumbrance Upgrade Debit Account
67984  , p_source_74            IN NUMBER
67985 --Payables Encumbrance Upgrade Debit Amount
67986  , p_source_75            IN NUMBER
67987 --Payables Encumbrance Upgrade Debit Base Amount
67988  , p_source_76            IN NUMBER
67989 --Payables Encumbrance Upgrade Option
67990  , p_source_77            IN VARCHAR2
67991 --Deferred Accounting End Date
67992  , p_source_82            IN DATE
67993 --Deferred Accounting Option
67994  , p_source_83            IN VARCHAR2
67995 --Deferred Accounting Start Date
67996  , p_source_84            IN DATE
67997 --Override Accounted Amount Indicator
67998  , p_source_85            IN VARCHAR2
67999  , p_source_85_meaning    IN VARCHAR2
68000 --Invoice Supplier Identifier
68001  , p_source_86            IN NUMBER
68002 --Invoice Supplier Site Identifier
68003  , p_source_87            IN NUMBER
68004 --Third Party Type
68005  , p_source_88            IN VARCHAR2
68006 --Invoice Distribution Tax Line Identifier
68007  , p_source_91            IN NUMBER
68008 --Invoice Distribution Tax Distribution Identifier from Tax
68009  , p_source_92            IN NUMBER
68010 --Invoice Distribution Summary Tax Line Identifier
68011  , p_source_93            IN NUMBER
68012 --Payables Upgrade Credit Encumbrance Type Identifier
68013  , p_source_94            IN NUMBER
68014 --Payables Upgrade Debit Encumbrance Type Identifier
68015  , p_source_95            IN NUMBER
68016 --Business Flow Accounts Payable Application Identifier
68017  , p_source_96            IN NUMBER
68018 --Prepayment Distribution Type
68019  , p_source_128            IN VARCHAR2
68020 --Prepayment Application Distribution Identifier
68021  , p_source_130            IN NUMBER
68022 --Upgrade Encumbrance Credit Account Class
68023  , p_source_135            IN VARCHAR2
68024 --Upgrade Encumbrance Debit Account Class
68025  , p_source_136            IN VARCHAR2
68026 --Identifier of the Prepayment Application Reversed
68027  , p_source_139            IN NUMBER
68028 --Business Flow Prepayment Invoice Distribution Type
68029  , p_source_149            IN VARCHAR2
68030 --Business Flow Prepayment Invoice Entity Code
68031  , p_source_150            IN VARCHAR2
68032 --Business Flow Prepayment Invoice Distribution Identifier
68033  , p_source_151            IN NUMBER
68034 --Business Flow Prepayment Invoice Identifier
68035  , p_source_152            IN NUMBER
68036 --Prepayment/Invoice Ledger Amount Difference
68037  , p_source_158            IN NUMBER
68038 )
68039 IS
68040 
68041 l_component_type              VARCHAR2(80);
68042 l_component_code              VARCHAR2(30);
68043 l_component_type_code         VARCHAR2(1);
68044 l_component_appl_id           INTEGER;
68045 l_amb_context_code            VARCHAR2(30);
68046 l_entity_code                 VARCHAR2(30);
68047 l_event_class_code            VARCHAR2(30);
68048 l_ae_header_id                NUMBER;
68049 l_event_type_code             VARCHAR2(30);
68050 l_line_definition_code        VARCHAR2(30);
68051 l_line_definition_owner_code  VARCHAR2(1);
68052 --
68053 -- adr variables
68054 l_segment                     VARCHAR2(30);
68055 l_ccid                        NUMBER;
68056 l_adr_transaction_coa_id      NUMBER;
68060 l_adr_value_type_code         VARCHAR2(30);
68057 l_adr_accounting_coa_id       NUMBER;
68058 l_adr_flexfield_segment_code  VARCHAR2(30);
68059 l_adr_flex_value_set_id       NUMBER;
68061 l_adr_value_combination_id    NUMBER;
68062 l_adr_value_segment_code      VARCHAR2(30);
68063 
68064 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68065 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68066 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68067 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68068 
68069 -- 4262811 Variables ------------------------------------------------------------------------------------------
68070 l_entered_amt_idx             NUMBER;
68071 l_accted_amt_idx              NUMBER;
68072 l_acc_rev_flag                VARCHAR2(1);
68073 l_accrual_line_num            NUMBER;
68074 l_tmp_amt                     NUMBER;
68075 l_acc_rev_natural_side_code   VARCHAR2(1);
68076 
68077 l_num_entries                 NUMBER;
68078 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68079 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68080 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68081 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68082 l_recog_line_1                NUMBER;
68083 l_recog_line_2                NUMBER;
68084 
68085 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68086 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68087 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68088 
68089 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68090 
68091 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68092 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68093 
68094 ---------------------------------------------------------------------------------------------------------------
68095 
68096 
68097 --
68098 -- bulk performance
68099 --
68100 l_balance_type_code           VARCHAR2(1);
68101 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68102 l_log_module                  VARCHAR2(240);
68103 
68104 --
68105 -- Upgrade strategy
68106 --
68107 l_actual_upg_option           VARCHAR2(1);
68108 l_enc_upg_option           VARCHAR2(1);
68109 
68110 --
68111 BEGIN
68112 --
68113 IF g_log_enabled THEN
68114       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
68115 END IF;
68116 --
68117 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68118 
68119       trace
68120          (p_msg      => 'BEGIN of AcctLineType_137'
68121          ,p_level    => C_LEVEL_PROCEDURE
68122          ,p_module   => l_log_module);
68123 
68124 END IF;
68125 --
68126 l_component_type             := 'AMB_JLT';
68127 l_component_code             := 'AP_GAIN_LOSS_PREPAY_APP';
68128 l_component_type_code        := 'S';
68129 l_component_appl_id          :=  200;
68130 l_amb_context_code           := 'DEFAULT';
68131 l_entity_code                := 'AP_INVOICES';
68132 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
68133 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
68134 l_line_definition_owner_code := 'S';
68135 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
68136 --
68137 l_balance_type_code          := 'A';
68138 l_segment                     := NULL;
68139 l_ccid                        := NULL;
68140 l_adr_transaction_coa_id      := NULL;
68141 l_adr_accounting_coa_id       := NULL;
68142 l_adr_flexfield_segment_code  := NULL;
68143 l_adr_flex_value_set_id       := NULL;
68144 l_adr_value_type_code         := NULL;
68145 l_adr_value_combination_id    := NULL;
68146 l_adr_value_segment_code      := NULL;
68147 
68148 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68149 l_bflow_class_code           := '';    -- 4219869 Business Flow
68150 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68151 l_budgetary_control_flag     := 'N';
68152 
68153 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68154 l_bflow_applied_to_amt       := NULL; -- 5132302
68155 l_entered_amt_idx            := NULL;          -- 4262811
68156 l_accted_amt_idx             := NULL;          -- 4262811
68157 l_acc_rev_flag               := NULL;          -- 4262811
68158 l_accrual_line_num           := NULL;          -- 4262811
68159 l_tmp_amt                    := NULL;          -- 4262811
68160 --
68161 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
68162             (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
68163                return;
68164   END IF;
68165   
68166 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68167     l_balance_type_code <> 'B' THEN
68168 IF NVL(p_source_128,'
68169 ') =  'PREPAY APPL'
68170  THEN 
68171 
68172    --
68173    XLA_AE_LINES_PKG.SetNewLine;
68174 
68175    p_balance_type_code          := l_balance_type_code;
68176    -- set the flag so later we will know whether the gain loss line needs to be created
68177    
68178    IF(l_balance_type_code = 'A' ) THEN
68179      p_actual_flag :='G';
68180    END IF;
68181 
68182    --
68183    -- bulk performance
68184    --
68188    -- set accounting line options
68185    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68186                                       p_header_num   => 0); -- 4262811
68187    --
68189    --
68190    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68191            p_natural_side_code          => 'G'
68192          , p_gain_or_loss_flag          => 'N'
68193          , p_gl_transfer_mode_code      => 'S'
68194          , p_acct_entry_type_code       => 'A'
68195          , p_switch_side_flag           => ''
68196          , p_merge_duplicate_code       => 'A'
68197          );
68198    --
68199    l_acc_rev_natural_side_code := 'C';  -- 4262811
68200    -- 
68201    --
68202    -- set accounting line type info
68203    --
68204    xla_ae_lines_pkg.SetAcctLineType
68205       (p_component_type             => l_component_type
68206       ,p_event_type_code            => l_event_type_code
68207       ,p_line_definition_owner_code => l_line_definition_owner_code
68208       ,p_line_definition_code       => l_line_definition_code
68209       ,p_accounting_line_code       => l_component_code
68210       ,p_accounting_line_type_code  => l_component_type_code
68211       ,p_accounting_line_appl_id    => l_component_appl_id
68212       ,p_amb_context_code           => l_amb_context_code
68213       ,p_entity_code                => l_entity_code
68214       ,p_event_class_code           => l_event_class_code);
68215    --
68216    -- set accounting class
68217    --
68218    xla_ae_lines_pkg.SetAcctClass(
68219            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
68220          , p_ae_header_id           => l_ae_header_id
68221          );
68222 
68223    --
68224    -- set rounding class
68225    --
68226    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68227                       'EXCHANGE_GAIN_LOSS';
68228 
68229    --
68230    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68231    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68232    --
68233    -- bulk performance
68234    --
68235    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68236 
68237    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68238       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68239 
68240    -- 4955764
68241    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68242       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68243 
68244    -- 4458381 Public Sector Enh
68245    
68246    --
68247    -- set accounting attributes for the line type
68248    --
68249    l_entered_amt_idx := NULL;
68250    l_accted_amt_idx  := 25;
68251    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
68252    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68253    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
68254    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
68255    l_rec_acct_attrs.array_num_value(2)  := 
68256 xla_ae_sources_pkg.GetSystemSourceNum(
68257    p_source_code           => 'XLA_EVENT_APPL_ID'
68258  , p_source_type_code      => 'Y'
68259  , p_source_application_id =>  602
68260 );
68261    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
68262    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
68263    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
68264    l_rec_acct_attrs.array_char_value(4)  := 
68265 xla_ae_sources_pkg.GetSystemSourceChar(
68266    p_source_code           => 'XLA_ENTITY_CODE'
68267  , p_source_type_code      => 'Y'
68268  , p_source_application_id =>  602
68269 );
68270    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
68271    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
68272    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
68273    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
68274    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
68275    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
68276    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68277    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
68278    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
68279    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
68280    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
68281    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
68282    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68283    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
68284    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
68285    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
68286    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
68287    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
68288    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
68289    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
68290    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
68291    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
68292    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
68296    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
68293    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
68294    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
68295    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
68297    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
68298    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
68299    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
68300    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
68301    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
68302    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
68303    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
68304    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
68305    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
68306    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
68307    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
68308    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
68309    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
68310    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
68311    l_rec_acct_attrs.array_num_value(25)  := p_source_158;
68312    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
68313    l_rec_acct_attrs.array_date_value(26)  := p_source_82;
68314    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
68315    l_rec_acct_attrs.array_char_value(27)  := p_source_83;
68316    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
68317    l_rec_acct_attrs.array_date_value(28)  := p_source_84;
68318    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
68319    l_rec_acct_attrs.array_char_value(29)  := p_source_85;
68320    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
68321    l_rec_acct_attrs.array_num_value(30)  := p_source_86;
68322    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
68323    l_rec_acct_attrs.array_num_value(31)  := p_source_87;
68324    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
68325    l_rec_acct_attrs.array_char_value(32)  := p_source_88;
68326    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
68327    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_139);
68328    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
68329    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
68330    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
68331    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
68332    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
68333    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
68334    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
68335    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
68336    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
68337    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
68338    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
68339    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
68340 
68341    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68342    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68343 
68344    ---------------------------------------------------------------------------------------------------------------
68345    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68346    ---------------------------------------------------------------------------------------------------------------
68347    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68348 
68349    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68350    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68351 
68352    IF xla_accounting_cache_pkg.GetValueChar
68353          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68354          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68355    AND l_bflow_method_code = 'PRIOR_ENTRY'
68356 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68357    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68358          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68359        )
68360    THEN
68361          xla_ae_lines_pkg.BflowUpgEntry
68362            (p_business_method_code    => l_bflow_method_code
68363            ,p_business_class_code     => l_bflow_class_code
68364            ,p_balance_type            => l_balance_type_code);
68365    ELSE
68366       NULL;
68367 -- No business flow processing for business flow method of NONE.
68368    END IF;
68369 
68370    --
68371    -- call analytical criteria
68372    --
68373    
68374    --
68375    -- call description
68376    --
68377    -- No description or it is inherited.
68378    --
68379    -- call ADRs
68380    -- Bug 4922099
68381    --
68382    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68383         (NVL(l_actual_upg_option, 'N') = 'O') OR
68384         (NVL(l_enc_upg_option, 'N') = 'O')
68385       )
68386    THEN
68387    NULL;
68388    --
68389    --
68390    
68391   l_ccid := AcctDerRule_40(
68392            p_application_id           => p_application_id
68396 , p_source_25 => p_source_25
68393          , p_ae_header_id             => l_ae_header_id 
68394 , p_source_10 => p_source_10
68395 , p_source_10_meaning => p_source_10_meaning
68397 , p_source_31 => p_source_31
68398 , p_source_32 => p_source_32
68399          , x_transaction_coa_id       => l_adr_transaction_coa_id
68400          , x_accounting_coa_id        => l_adr_accounting_coa_id
68401          , x_value_type_code          => l_adr_value_type_code
68402          , p_side                     => 'CREDIT'
68403    );
68404 
68405    xla_ae_lines_pkg.set_ccid(
68406     p_code_combination_id          => l_ccid
68407   , p_value_type_code              => l_adr_value_type_code
68408   , p_transaction_coa_id           => l_adr_transaction_coa_id
68409   , p_accounting_coa_id            => l_adr_accounting_coa_id
68410   , p_adr_code                     => 'AP_REAL_GAIN'
68411   , p_adr_type_code                => 'S'
68412   , p_component_type               => l_component_type
68413   , p_component_code               => l_component_code
68414   , p_component_type_code          => l_component_type_code
68415   , p_component_appl_id            => l_component_appl_id
68416   , p_amb_context_code             => l_amb_context_code
68417   , p_side                         => 'CREDIT'
68418   );
68419 
68420 
68421   l_ccid := AcctDerRule_41(
68422            p_application_id           => p_application_id
68423          , p_ae_header_id             => l_ae_header_id 
68424 , p_source_10 => p_source_10
68425 , p_source_10_meaning => p_source_10_meaning
68426 , p_source_25 => p_source_25
68427 , p_source_33 => p_source_33
68428 , p_source_34 => p_source_34
68429          , x_transaction_coa_id       => l_adr_transaction_coa_id
68430          , x_accounting_coa_id        => l_adr_accounting_coa_id
68431          , x_value_type_code          => l_adr_value_type_code
68432          , p_side                     => 'DEBIT'
68433    );
68434 
68435    xla_ae_lines_pkg.set_ccid(
68436     p_code_combination_id          => l_ccid
68437   , p_value_type_code              => l_adr_value_type_code
68438   , p_transaction_coa_id           => l_adr_transaction_coa_id
68439   , p_accounting_coa_id            => l_adr_accounting_coa_id
68440   , p_adr_code                     => 'AP_REAL_LOSS'
68441   , p_adr_type_code                => 'S'
68442   , p_component_type               => l_component_type
68443   , p_component_code               => l_component_code
68444   , p_component_type_code          => l_component_type_code
68445   , p_component_appl_id            => l_component_appl_id
68446   , p_amb_context_code             => l_amb_context_code
68447   , p_side                         => 'DEBIT'
68448   );
68449 
68450 
68451    l_segment := AcctDerRule_23(
68452            p_application_id           => p_application_id
68453          , p_ae_header_id             => l_ae_header_id 
68454 , p_source_10 => p_source_10
68455 , p_source_10_meaning => p_source_10_meaning
68456 , p_source_25 => p_source_25
68457          , x_transaction_coa_id       => l_adr_transaction_coa_id
68458          , x_accounting_coa_id        => l_adr_accounting_coa_id
68459          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68460          , x_flex_value_set_id        => l_adr_flex_value_set_id
68461          , x_value_type_code          => l_adr_value_type_code
68462          , x_value_combination_id     => l_adr_value_combination_id
68463          , x_value_segment_code       => l_adr_value_segment_code
68464          , p_side                     => 'ALL'
68465          , p_override_seg_flag        => 'Y'
68466    );
68467 
68468    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68469 
68470       xla_ae_lines_pkg.set_segment(
68471           p_to_segment_code         => 'GL_BALANCING'
68472         , p_segment_value           => l_segment
68473         , p_from_segment_code       => l_adr_value_segment_code
68474         , p_from_combination_id     => l_adr_value_combination_id
68475         , p_value_type_code         => l_adr_value_type_code
68476         , p_transaction_coa_id      => l_adr_transaction_coa_id
68477         , p_accounting_coa_id       => l_adr_accounting_coa_id
68478         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68479         , p_flex_value_set_id       => l_adr_flex_value_set_id
68480         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68481         , p_adr_type_code           => 'S'
68482         , p_component_type          => l_component_type
68483         , p_component_code          => l_component_code
68484         , p_component_type_code     => l_component_type_code
68485         , p_component_appl_id       => l_component_appl_id
68486         , p_amb_context_code        => l_amb_context_code
68487         , p_entity_code             => 'AP_INVOICES'
68488         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68489         , p_side                    => 'ALL'
68490         );
68491 
68492   END IF;
68493 
68494    l_segment := AcctDerRule_17(
68495            p_application_id           => p_application_id
68496          , p_ae_header_id             => l_ae_header_id 
68497 , p_source_10 => p_source_10
68498 , p_source_10_meaning => p_source_10_meaning
68499 , p_source_31 => p_source_31
68500 , p_source_32 => p_source_32
68501          , x_transaction_coa_id       => l_adr_transaction_coa_id
68502          , x_accounting_coa_id        => l_adr_accounting_coa_id
68503          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68507          , x_value_segment_code       => l_adr_value_segment_code
68504          , x_flex_value_set_id        => l_adr_flex_value_set_id
68505          , x_value_type_code          => l_adr_value_type_code
68506          , x_value_combination_id     => l_adr_value_combination_id
68508          , p_side                     => 'CREDIT'
68509          , p_override_seg_flag        => 'Y'
68510    );
68511 
68512    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68513 
68514       xla_ae_lines_pkg.set_segment(
68515           p_to_segment_code         => 'GL_ACCOUNT'
68516         , p_segment_value           => l_segment
68517         , p_from_segment_code       => l_adr_value_segment_code
68518         , p_from_combination_id     => l_adr_value_combination_id
68519         , p_value_type_code         => l_adr_value_type_code
68520         , p_transaction_coa_id      => l_adr_transaction_coa_id
68521         , p_accounting_coa_id       => l_adr_accounting_coa_id
68522         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68523         , p_flex_value_set_id       => l_adr_flex_value_set_id
68524         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
68525         , p_adr_type_code           => 'S'
68526         , p_component_type          => l_component_type
68527         , p_component_code          => l_component_code
68528         , p_component_type_code     => l_component_type_code
68529         , p_component_appl_id       => l_component_appl_id
68530         , p_amb_context_code        => l_amb_context_code
68531         , p_entity_code             => 'AP_INVOICES'
68532         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68533         , p_side                    => 'CREDIT'
68534         );
68535 
68536   END IF;
68537 
68538    l_segment := AcctDerRule_18(
68539            p_application_id           => p_application_id
68540          , p_ae_header_id             => l_ae_header_id 
68541 , p_source_10 => p_source_10
68542 , p_source_10_meaning => p_source_10_meaning
68543 , p_source_33 => p_source_33
68544 , p_source_34 => p_source_34
68545          , x_transaction_coa_id       => l_adr_transaction_coa_id
68546          , x_accounting_coa_id        => l_adr_accounting_coa_id
68547          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68548          , x_flex_value_set_id        => l_adr_flex_value_set_id
68549          , x_value_type_code          => l_adr_value_type_code
68550          , x_value_combination_id     => l_adr_value_combination_id
68551          , x_value_segment_code       => l_adr_value_segment_code
68552          , p_side                     => 'DEBIT'
68553          , p_override_seg_flag        => 'Y'
68554    );
68555 
68556    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68557 
68558       xla_ae_lines_pkg.set_segment(
68559           p_to_segment_code         => 'GL_ACCOUNT'
68560         , p_segment_value           => l_segment
68561         , p_from_segment_code       => l_adr_value_segment_code
68562         , p_from_combination_id     => l_adr_value_combination_id
68563         , p_value_type_code         => l_adr_value_type_code
68564         , p_transaction_coa_id      => l_adr_transaction_coa_id
68565         , p_accounting_coa_id       => l_adr_accounting_coa_id
68566         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68567         , p_flex_value_set_id       => l_adr_flex_value_set_id
68568         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
68569         , p_adr_type_code           => 'S'
68570         , p_component_type          => l_component_type
68571         , p_component_code          => l_component_code
68572         , p_component_type_code     => l_component_type_code
68573         , p_component_appl_id       => l_component_appl_id
68574         , p_amb_context_code        => l_amb_context_code
68575         , p_entity_code             => 'AP_INVOICES'
68576         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68577         , p_side                    => 'DEBIT'
68578         );
68579 
68580   END IF;
68581 
68582    --
68583    --
68584    END IF;
68585    --
68586    -- Bug 4922099
68587    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68588           (NVL(l_enc_upg_option, 'N') = 'O')
68589         ) AND
68590         (l_bflow_method_code = 'PRIOR_ENTRY')
68591       )
68592    THEN
68593       IF
68594       --
68595       1 = 2
68596       --
68597       THEN
68598       xla_accounting_err_pkg.build_message
68599                                     (p_appli_s_name            => 'XLA'
68600                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68601                                     ,p_token_1                 => 'LINE_NUMBER'
68602                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68603                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68604                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68605                                                                              l_component_type
68606                                                                             ,l_component_code
68607                                                                             ,l_component_type_code
68608                                                                             ,l_component_appl_id
68609                                                                             ,l_amb_context_code
68610                                                                             ,l_entity_code
68614                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68611                                                                             ,l_event_class_code
68612                                                                            )
68613                                     ,p_token_3                 => 'OWNER'
68615                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68616                                                                           ,p_lookup_code    => l_component_type_code
68617                                                                          )
68618                                     ,p_token_4                 => 'PRODUCT_NAME'
68619                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68620                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68621                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68622                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68623                                     ,p_ae_header_id            =>  NULL
68624                                        );
68625 
68626         IF (C_LEVEL_ERROR>= g_log_level) THEN
68627                  trace
68628                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68629                       ,p_level    => C_LEVEL_ERROR
68630                       ,p_module   => l_log_module);
68631         END IF;
68632       END IF;
68633    END IF;
68634    --
68635    --
68636    ------------------------------------------------------------------------------------------------
68637    -- 4219869 Business Flow
68638    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68639    -- Prior Entry.  Currently, the following code is always generated.
68640    ------------------------------------------------------------------------------------------------
68641    XLA_AE_LINES_PKG.ValidateCurrentLine;
68642 
68643    ------------------------------------------------------------------------------------
68644    -- 4219869 Business Flow
68645    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68646    ------------------------------------------------------------------------------------
68647    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68648 
68649    ----------------------------------------------------------------------------------
68650    -- 4219869 Business Flow
68651    -- Update journal entry status -- Need to generate this within IF <condition>
68652    ----------------------------------------------------------------------------------
68653    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68654          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68655          ,p_balance_type_code => l_balance_type_code
68656          );
68657 
68658    -------------------------------------------------------------------------------------------
68659    -- 4262811 - Generate the Accrual Reversal lines
68660    -------------------------------------------------------------------------------------------
68661    BEGIN
68662       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68663                               (g_array_event(p_event_id).array_value_num('header_index'));
68664       IF l_acc_rev_flag IS NULL THEN
68665          l_acc_rev_flag := 'N';
68666       END IF;
68667    EXCEPTION
68668       WHEN OTHERS THEN
68669          l_acc_rev_flag := 'N';
68670    END;
68671    --
68672    IF (l_acc_rev_flag = 'Y') THEN
68673 
68674        -- 4645092  ------------------------------------------------------------------------------
68675        -- To allow MPA report to determine if it should generate report process
68676        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68677        ------------------------------------------------------------------------------------------
68678 
68679        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68680        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68681    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68682    -- call ADRs
68683    -- Bug 4922099
68684    --
68685    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68686         (NVL(l_actual_upg_option, 'N') = 'O') OR
68687         (NVL(l_enc_upg_option, 'N') = 'O')
68688       )
68689    THEN
68690    NULL;
68691    --
68692    --
68693    
68694   l_ccid := AcctDerRule_40(
68695            p_application_id           => p_application_id
68696          , p_ae_header_id             => l_ae_header_id 
68697 , p_source_10 => p_source_10
68698 , p_source_10_meaning => p_source_10_meaning
68699 , p_source_25 => p_source_25
68700 , p_source_31 => p_source_31
68701 , p_source_32 => p_source_32
68702          , x_transaction_coa_id       => l_adr_transaction_coa_id
68703          , x_accounting_coa_id        => l_adr_accounting_coa_id
68704          , x_value_type_code          => l_adr_value_type_code
68705          , p_side                     => 'CREDIT'
68706    );
68707 
68708    xla_ae_lines_pkg.set_ccid(
68709     p_code_combination_id          => l_ccid
68710   , p_value_type_code              => l_adr_value_type_code
68711   , p_transaction_coa_id           => l_adr_transaction_coa_id
68712   , p_accounting_coa_id            => l_adr_accounting_coa_id
68713   , p_adr_code                     => 'AP_REAL_GAIN'
68714   , p_adr_type_code                => 'S'
68718   , p_component_appl_id            => l_component_appl_id
68715   , p_component_type               => l_component_type
68716   , p_component_code               => l_component_code
68717   , p_component_type_code          => l_component_type_code
68719   , p_amb_context_code             => l_amb_context_code
68720   , p_side                         => 'CREDIT'
68721   );
68722 
68723 
68724   l_ccid := AcctDerRule_41(
68725            p_application_id           => p_application_id
68726          , p_ae_header_id             => l_ae_header_id 
68727 , p_source_10 => p_source_10
68728 , p_source_10_meaning => p_source_10_meaning
68729 , p_source_25 => p_source_25
68730 , p_source_33 => p_source_33
68731 , p_source_34 => p_source_34
68732          , x_transaction_coa_id       => l_adr_transaction_coa_id
68733          , x_accounting_coa_id        => l_adr_accounting_coa_id
68734          , x_value_type_code          => l_adr_value_type_code
68735          , p_side                     => 'DEBIT'
68736    );
68737 
68738    xla_ae_lines_pkg.set_ccid(
68739     p_code_combination_id          => l_ccid
68740   , p_value_type_code              => l_adr_value_type_code
68741   , p_transaction_coa_id           => l_adr_transaction_coa_id
68742   , p_accounting_coa_id            => l_adr_accounting_coa_id
68743   , p_adr_code                     => 'AP_REAL_LOSS'
68744   , p_adr_type_code                => 'S'
68745   , p_component_type               => l_component_type
68746   , p_component_code               => l_component_code
68747   , p_component_type_code          => l_component_type_code
68748   , p_component_appl_id            => l_component_appl_id
68749   , p_amb_context_code             => l_amb_context_code
68750   , p_side                         => 'DEBIT'
68751   );
68752 
68753 
68754    l_segment := AcctDerRule_23(
68755            p_application_id           => p_application_id
68756          , p_ae_header_id             => l_ae_header_id 
68757 , p_source_10 => p_source_10
68758 , p_source_10_meaning => p_source_10_meaning
68759 , p_source_25 => p_source_25
68760          , x_transaction_coa_id       => l_adr_transaction_coa_id
68761          , x_accounting_coa_id        => l_adr_accounting_coa_id
68762          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68763          , x_flex_value_set_id        => l_adr_flex_value_set_id
68764          , x_value_type_code          => l_adr_value_type_code
68765          , x_value_combination_id     => l_adr_value_combination_id
68766          , x_value_segment_code       => l_adr_value_segment_code
68767          , p_side                     => 'ALL'
68768          , p_override_seg_flag        => 'Y'
68769    );
68770 
68771    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68772 
68773       xla_ae_lines_pkg.set_segment(
68774           p_to_segment_code         => 'GL_BALANCING'
68775         , p_segment_value           => l_segment
68776         , p_from_segment_code       => l_adr_value_segment_code
68777         , p_from_combination_id     => l_adr_value_combination_id
68778         , p_value_type_code         => l_adr_value_type_code
68779         , p_transaction_coa_id      => l_adr_transaction_coa_id
68780         , p_accounting_coa_id       => l_adr_accounting_coa_id
68781         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68782         , p_flex_value_set_id       => l_adr_flex_value_set_id
68783         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68784         , p_adr_type_code           => 'S'
68785         , p_component_type          => l_component_type
68786         , p_component_code          => l_component_code
68787         , p_component_type_code     => l_component_type_code
68788         , p_component_appl_id       => l_component_appl_id
68789         , p_amb_context_code        => l_amb_context_code
68790         , p_entity_code             => 'AP_INVOICES'
68791         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68792         , p_side                    => 'ALL'
68793         );
68794 
68795   END IF;
68796 
68797    l_segment := AcctDerRule_17(
68798            p_application_id           => p_application_id
68799          , p_ae_header_id             => l_ae_header_id 
68800 , p_source_10 => p_source_10
68801 , p_source_10_meaning => p_source_10_meaning
68802 , p_source_31 => p_source_31
68803 , p_source_32 => p_source_32
68804          , x_transaction_coa_id       => l_adr_transaction_coa_id
68805          , x_accounting_coa_id        => l_adr_accounting_coa_id
68806          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68807          , x_flex_value_set_id        => l_adr_flex_value_set_id
68808          , x_value_type_code          => l_adr_value_type_code
68809          , x_value_combination_id     => l_adr_value_combination_id
68810          , x_value_segment_code       => l_adr_value_segment_code
68811          , p_side                     => 'CREDIT'
68812          , p_override_seg_flag        => 'Y'
68813    );
68814 
68815    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68816 
68817       xla_ae_lines_pkg.set_segment(
68818           p_to_segment_code         => 'GL_ACCOUNT'
68819         , p_segment_value           => l_segment
68820         , p_from_segment_code       => l_adr_value_segment_code
68821         , p_from_combination_id     => l_adr_value_combination_id
68822         , p_value_type_code         => l_adr_value_type_code
68823         , p_transaction_coa_id      => l_adr_transaction_coa_id
68824         , p_accounting_coa_id       => l_adr_accounting_coa_id
68828         , p_adr_type_code           => 'S'
68825         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68826         , p_flex_value_set_id       => l_adr_flex_value_set_id
68827         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
68829         , p_component_type          => l_component_type
68830         , p_component_code          => l_component_code
68831         , p_component_type_code     => l_component_type_code
68832         , p_component_appl_id       => l_component_appl_id
68833         , p_amb_context_code        => l_amb_context_code
68834         , p_entity_code             => 'AP_INVOICES'
68835         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68836         , p_side                    => 'CREDIT'
68837         );
68838 
68839   END IF;
68840 
68841    l_segment := AcctDerRule_18(
68842            p_application_id           => p_application_id
68843          , p_ae_header_id             => l_ae_header_id 
68844 , p_source_10 => p_source_10
68845 , p_source_10_meaning => p_source_10_meaning
68846 , p_source_33 => p_source_33
68847 , p_source_34 => p_source_34
68848          , x_transaction_coa_id       => l_adr_transaction_coa_id
68849          , x_accounting_coa_id        => l_adr_accounting_coa_id
68850          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68851          , x_flex_value_set_id        => l_adr_flex_value_set_id
68852          , x_value_type_code          => l_adr_value_type_code
68853          , x_value_combination_id     => l_adr_value_combination_id
68854          , x_value_segment_code       => l_adr_value_segment_code
68855          , p_side                     => 'DEBIT'
68856          , p_override_seg_flag        => 'Y'
68857    );
68858 
68859    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68860 
68861       xla_ae_lines_pkg.set_segment(
68862           p_to_segment_code         => 'GL_ACCOUNT'
68863         , p_segment_value           => l_segment
68864         , p_from_segment_code       => l_adr_value_segment_code
68865         , p_from_combination_id     => l_adr_value_combination_id
68866         , p_value_type_code         => l_adr_value_type_code
68867         , p_transaction_coa_id      => l_adr_transaction_coa_id
68868         , p_accounting_coa_id       => l_adr_accounting_coa_id
68869         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68870         , p_flex_value_set_id       => l_adr_flex_value_set_id
68871         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
68872         , p_adr_type_code           => 'S'
68873         , p_component_type          => l_component_type
68874         , p_component_code          => l_component_code
68875         , p_component_type_code     => l_component_type_code
68876         , p_component_appl_id       => l_component_appl_id
68877         , p_amb_context_code        => l_amb_context_code
68878         , p_entity_code             => 'AP_INVOICES'
68879         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68880         , p_side                    => 'DEBIT'
68881         );
68882 
68883   END IF;
68884 
68885    --
68886    --
68887    END IF;
68888 
68889        --
68890        -- Update the line information that should be overwritten
68891        --
68892        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68893                                          p_header_num   => 1);
68894        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68895 
68896        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68897 
68898        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68899           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68900        END IF;
68901 
68902       --
68903       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68904       --
68905       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68906           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68907       ELSE
68908           ---------------------------------------------------------------------------------------------------
68909           -- 4262811a Switch Sign
68910           ---------------------------------------------------------------------------------------------------
68911           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68912           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68913                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68914           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68915                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68916           -- 5132302
68917           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68918                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68919 
68920       END IF;
68921 
68922       -- 4955764
68923       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68924       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68925 
68926 
68927       XLA_AE_LINES_PKG.ValidateCurrentLine;
68928       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68929 
68933 
68930       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68931                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68932                ,p_balance_type_code => l_balance_type_code);
68934    END IF;
68935 
68936    -----------------------------------------------------------------------------------------
68937    -- 4262811 Multiperiod Accounting
68938    -----------------------------------------------------------------------------------------
68939      -- No MPA option is assigned.
68940 
68941 
68942 END IF;
68943 END IF;
68944 --
68945 
68946 --
68947 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68948    trace
68949       (p_msg      => 'END of AcctLineType_137'
68950       ,p_level    => C_LEVEL_PROCEDURE
68951       ,p_module   => l_log_module);
68952 END IF;
68953 --
68954 EXCEPTION
68955   WHEN xla_exceptions_pkg.application_exception THEN
68956       RAISE;
68957   WHEN OTHERS THEN
68958        xla_exceptions_pkg.raise_message
68959            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_137');
68960 END AcctLineType_137;
68961 --
68962 
68963 ---------------------------------------
68964 --
68965 -- PRIVATE FUNCTION
68966 --         AcctLineType_138
68967 --
68968 ---------------------------------------
68969 PROCEDURE AcctLineType_138 (
68970   p_application_id        IN NUMBER
68971  ,p_event_id              IN NUMBER
68972  ,p_calculate_acctd_flag  IN VARCHAR2
68973  ,p_calculate_g_l_flag    IN VARCHAR2
68974  ,p_actual_flag           IN OUT VARCHAR2
68975  ,p_balance_type_code     OUT VARCHAR2
68976  ,p_gain_or_loss_ref      OUT VARCHAR2
68977  
68978 --Automatic Offsets Value
68979  , p_source_10            IN VARCHAR2
68980  , p_source_10_meaning    IN VARCHAR2
68981 --Invoice Distribution Account
68982  , p_source_25            IN NUMBER
68983 --Internal Realized Gain Account
68984  , p_source_31            IN NUMBER
68985 --Bank Gain Account
68986  , p_source_32            IN NUMBER
68987 --Internal Realized Loss Account
68988  , p_source_33            IN NUMBER
68989 --Bank Loss Account
68990  , p_source_34            IN NUMBER
68991 --When to Account for Payment Option
68992  , p_source_57            IN VARCHAR2
68993 --Accounting Reversal Indicator
68994  , p_source_58            IN VARCHAR2
68995 --Distribution Link Type
68996  , p_source_60            IN VARCHAR2
68997 --Override Accounted Amount Indicator
68998  , p_source_85            IN VARCHAR2
68999  , p_source_85_meaning    IN VARCHAR2
69000 --Third Party Type
69001  , p_source_88            IN VARCHAR2
69002 --Invoice Distribution Tax Line Identifier
69003  , p_source_91            IN NUMBER
69004 --Invoice Distribution Tax Distribution Identifier from Tax
69005  , p_source_92            IN NUMBER
69006 --Invoice Distribution Summary Tax Line Identifier
69007  , p_source_93            IN NUMBER
69008 --Business Flow Accounts Payable Application Identifier
69009  , p_source_96            IN NUMBER
69010 --Business Flow Invoice Distribution Type
69011  , p_source_97            IN VARCHAR2
69012 --Business Flow Invoice Entity Code
69013  , p_source_98            IN VARCHAR2
69014 --Business Flow Invoice Distribution Identifier
69015  , p_source_99            IN NUMBER
69016 --Business Flow Invoice Identifier
69017  , p_source_100            IN NUMBER
69018 --Payment Distribution Type
69019  , p_source_101            IN VARCHAR2
69020  , p_source_101_meaning    IN VARCHAR2
69021 --Payment Distribution Identifier
69022  , p_source_107            IN NUMBER
69023 --Payment Supplier Identifier
69024  , p_source_113            IN NUMBER
69025 --Payment Supplier Site Identifier
69026  , p_source_114            IN NUMBER
69027 --Payment Distribution Reversed Identifier
69028  , p_source_115            IN NUMBER
69029 --Payment Type
69030  , p_source_125            IN VARCHAR2
69031  , p_source_125_meaning    IN VARCHAR2
69032 --Invoice/Payment Ledger Amount Difference
69033  , p_source_156            IN NUMBER
69034 )
69035 IS
69036 
69037 l_component_type              VARCHAR2(80);
69038 l_component_code              VARCHAR2(30);
69039 l_component_type_code         VARCHAR2(1);
69040 l_component_appl_id           INTEGER;
69041 l_amb_context_code            VARCHAR2(30);
69042 l_entity_code                 VARCHAR2(30);
69043 l_event_class_code            VARCHAR2(30);
69044 l_ae_header_id                NUMBER;
69045 l_event_type_code             VARCHAR2(30);
69046 l_line_definition_code        VARCHAR2(30);
69047 l_line_definition_owner_code  VARCHAR2(1);
69048 --
69049 -- adr variables
69050 l_segment                     VARCHAR2(30);
69051 l_ccid                        NUMBER;
69052 l_adr_transaction_coa_id      NUMBER;
69053 l_adr_accounting_coa_id       NUMBER;
69054 l_adr_flexfield_segment_code  VARCHAR2(30);
69055 l_adr_flex_value_set_id       NUMBER;
69056 l_adr_value_type_code         VARCHAR2(30);
69057 l_adr_value_combination_id    NUMBER;
69058 l_adr_value_segment_code      VARCHAR2(30);
69059 
69060 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69061 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69062 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69063 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69064 
69068 l_acc_rev_flag                VARCHAR2(1);
69065 -- 4262811 Variables ------------------------------------------------------------------------------------------
69066 l_entered_amt_idx             NUMBER;
69067 l_accted_amt_idx              NUMBER;
69069 l_accrual_line_num            NUMBER;
69070 l_tmp_amt                     NUMBER;
69071 l_acc_rev_natural_side_code   VARCHAR2(1);
69072 
69073 l_num_entries                 NUMBER;
69074 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69075 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69076 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69077 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69078 l_recog_line_1                NUMBER;
69079 l_recog_line_2                NUMBER;
69080 
69081 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69082 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69083 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69084 
69085 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69086 
69087 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69088 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69089 
69090 ---------------------------------------------------------------------------------------------------------------
69091 
69092 
69093 --
69094 -- bulk performance
69095 --
69096 l_balance_type_code           VARCHAR2(1);
69097 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69098 l_log_module                  VARCHAR2(240);
69099 
69100 --
69101 -- Upgrade strategy
69102 --
69103 l_actual_upg_option           VARCHAR2(1);
69104 l_enc_upg_option           VARCHAR2(1);
69105 
69106 --
69107 BEGIN
69108 --
69109 IF g_log_enabled THEN
69110       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
69111 END IF;
69112 --
69113 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69114 
69115       trace
69116          (p_msg      => 'BEGIN of AcctLineType_138'
69117          ,p_level    => C_LEVEL_PROCEDURE
69118          ,p_module   => l_log_module);
69119 
69120 END IF;
69121 --
69122 l_component_type             := 'AMB_JLT';
69123 l_component_code             := 'AP_GAIN_LOSS_REF';
69124 l_component_type_code        := 'S';
69125 l_component_appl_id          :=  200;
69126 l_amb_context_code           := 'DEFAULT';
69127 l_entity_code                := 'AP_PAYMENTS';
69128 l_event_class_code           := 'REFUNDS';
69129 l_event_type_code            := 'REFUNDS_ALL';
69130 l_line_definition_owner_code := 'S';
69131 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
69132 --
69133 l_balance_type_code          := 'A';
69134 l_segment                     := NULL;
69135 l_ccid                        := NULL;
69136 l_adr_transaction_coa_id      := NULL;
69137 l_adr_accounting_coa_id       := NULL;
69138 l_adr_flexfield_segment_code  := NULL;
69139 l_adr_flex_value_set_id       := NULL;
69140 l_adr_value_type_code         := NULL;
69141 l_adr_value_combination_id    := NULL;
69142 l_adr_value_segment_code      := NULL;
69143 
69144 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
69145 l_bflow_class_code           := '';    -- 4219869 Business Flow
69146 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69147 l_budgetary_control_flag     := 'N';
69148 
69149 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69150 l_bflow_applied_to_amt       := NULL; -- 5132302
69151 l_entered_amt_idx            := NULL;          -- 4262811
69152 l_accted_amt_idx             := NULL;          -- 4262811
69153 l_acc_rev_flag               := NULL;          -- 4262811
69154 l_accrual_line_num           := NULL;          -- 4262811
69155 l_tmp_amt                    := NULL;          -- 4262811
69156 --
69157 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
69158             (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
69159                return;
69160   END IF;
69161   
69162 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69163     l_balance_type_code <> 'B' THEN
69164 IF (NVL(p_source_57,'
69165 ') <>  'CLEAR_CLEAR' AND 
69166 NVL(p_source_57,'
69167 ') <>  'ALWAYS_CLEAR') AND 
69168 NVL(p_source_125,'
69169 ') =  'R' AND 
69170 NVL(p_source_101,'
69171 ') <>  'EXCHANGE RATE VARIANCE' AND 
69172 NVL(p_source_101,'
69173 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
69174 NVL(p_source_101,'
69175 ') <>  'BANK CHARGE' AND 
69176 NVL(p_source_101,'
69177 ') <>  'BANK ERROR'
69178  THEN 
69179 
69180    --
69181    XLA_AE_LINES_PKG.SetNewLine;
69182 
69183    p_balance_type_code          := l_balance_type_code;
69184    -- set the flag so later we will know whether the gain loss line needs to be created
69185    
69186    IF(l_balance_type_code = 'A' ) THEN
69187      p_actual_flag :='G';
69188    END IF;
69189 
69190    --
69191    -- bulk performance
69192    --
69193    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69194                                       p_header_num   => 0); -- 4262811
69195    --
69199            p_natural_side_code          => 'G'
69196    -- set accounting line options
69197    --
69198    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69200          , p_gain_or_loss_flag          => 'N'
69201          , p_gl_transfer_mode_code      => 'S'
69202          , p_acct_entry_type_code       => 'A'
69203          , p_switch_side_flag           => ''
69204          , p_merge_duplicate_code       => 'A'
69205          );
69206    --
69207    l_acc_rev_natural_side_code := 'C';  -- 4262811
69208    -- 
69209    --
69210    -- set accounting line type info
69211    --
69212    xla_ae_lines_pkg.SetAcctLineType
69213       (p_component_type             => l_component_type
69214       ,p_event_type_code            => l_event_type_code
69215       ,p_line_definition_owner_code => l_line_definition_owner_code
69216       ,p_line_definition_code       => l_line_definition_code
69217       ,p_accounting_line_code       => l_component_code
69218       ,p_accounting_line_type_code  => l_component_type_code
69219       ,p_accounting_line_appl_id    => l_component_appl_id
69220       ,p_amb_context_code           => l_amb_context_code
69221       ,p_entity_code                => l_entity_code
69222       ,p_event_class_code           => l_event_class_code);
69223    --
69224    -- set accounting class
69225    --
69226    xla_ae_lines_pkg.SetAcctClass(
69227            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
69228          , p_ae_header_id           => l_ae_header_id
69229          );
69230 
69231    --
69232    -- set rounding class
69233    --
69234    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69235                       'EXCHANGE_GAIN_LOSS';
69236 
69237    --
69238    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69239    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69240    --
69241    -- bulk performance
69242    --
69243    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69244 
69245    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69246       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69247 
69248    -- 4955764
69249    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69250       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69251 
69252    -- 4458381 Public Sector Enh
69253    
69254    --
69255    -- set accounting attributes for the line type
69256    --
69257    l_entered_amt_idx := NULL;
69258    l_accted_amt_idx  := 9;
69259    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
69260    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69261    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
69262    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
69263    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
69264    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69265    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
69266    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
69267    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
69268    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
69269    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
69270    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69271    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
69272    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
69273    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
69274    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
69275    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
69276    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
69277    l_rec_acct_attrs.array_num_value(9)  := p_source_156;
69278    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
69279    l_rec_acct_attrs.array_char_value(10)  := p_source_85;
69280    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
69281    l_rec_acct_attrs.array_num_value(11)  := p_source_113;
69282    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
69283    l_rec_acct_attrs.array_num_value(12)  := p_source_114;
69284    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
69285    l_rec_acct_attrs.array_char_value(13)  := p_source_88;
69286    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
69287    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_115);
69288    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
69289    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
69290    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
69291    l_rec_acct_attrs.array_num_value(16)  := p_source_91;
69292    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
69293    l_rec_acct_attrs.array_num_value(17)  := p_source_92;
69294    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
69295    l_rec_acct_attrs.array_num_value(18)  := p_source_93;
69296 
69297    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69298    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69299 
69300    ---------------------------------------------------------------------------------------------------------------
69304 
69301    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69302    ---------------------------------------------------------------------------------------------------------------
69303    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69305    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69306    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69307 
69308    IF xla_accounting_cache_pkg.GetValueChar
69309          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69310          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69311    AND l_bflow_method_code = 'PRIOR_ENTRY'
69312 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69313    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69314          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69315        )
69316    THEN
69317          xla_ae_lines_pkg.BflowUpgEntry
69318            (p_business_method_code    => l_bflow_method_code
69319            ,p_business_class_code     => l_bflow_class_code
69320            ,p_balance_type            => l_balance_type_code);
69321    ELSE
69322       NULL;
69323 -- No business flow processing for business flow method of NONE.
69324    END IF;
69325 
69326    --
69327    -- call analytical criteria
69328    --
69329    
69330    --
69331    -- call description
69332    --
69333    -- No description or it is inherited.
69334    --
69335    -- call ADRs
69336    -- Bug 4922099
69337    --
69338    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69339         (NVL(l_actual_upg_option, 'N') = 'O') OR
69340         (NVL(l_enc_upg_option, 'N') = 'O')
69341       )
69342    THEN
69343    NULL;
69344    --
69345    --
69346    
69347   l_ccid := AcctDerRule_40(
69348            p_application_id           => p_application_id
69349          , p_ae_header_id             => l_ae_header_id 
69350 , p_source_10 => p_source_10
69351 , p_source_10_meaning => p_source_10_meaning
69352 , p_source_25 => p_source_25
69353 , p_source_31 => p_source_31
69354 , p_source_32 => p_source_32
69355          , x_transaction_coa_id       => l_adr_transaction_coa_id
69356          , x_accounting_coa_id        => l_adr_accounting_coa_id
69357          , x_value_type_code          => l_adr_value_type_code
69358          , p_side                     => 'CREDIT'
69359    );
69360 
69361    xla_ae_lines_pkg.set_ccid(
69362     p_code_combination_id          => l_ccid
69363   , p_value_type_code              => l_adr_value_type_code
69364   , p_transaction_coa_id           => l_adr_transaction_coa_id
69365   , p_accounting_coa_id            => l_adr_accounting_coa_id
69366   , p_adr_code                     => 'AP_REAL_GAIN'
69367   , p_adr_type_code                => 'S'
69368   , p_component_type               => l_component_type
69369   , p_component_code               => l_component_code
69370   , p_component_type_code          => l_component_type_code
69371   , p_component_appl_id            => l_component_appl_id
69372   , p_amb_context_code             => l_amb_context_code
69373   , p_side                         => 'CREDIT'
69374   );
69375 
69376 
69377   l_ccid := AcctDerRule_41(
69378            p_application_id           => p_application_id
69379          , p_ae_header_id             => l_ae_header_id 
69380 , p_source_10 => p_source_10
69381 , p_source_10_meaning => p_source_10_meaning
69382 , p_source_25 => p_source_25
69383 , p_source_33 => p_source_33
69384 , p_source_34 => p_source_34
69385          , x_transaction_coa_id       => l_adr_transaction_coa_id
69386          , x_accounting_coa_id        => l_adr_accounting_coa_id
69387          , x_value_type_code          => l_adr_value_type_code
69388          , p_side                     => 'DEBIT'
69389    );
69390 
69391    xla_ae_lines_pkg.set_ccid(
69392     p_code_combination_id          => l_ccid
69393   , p_value_type_code              => l_adr_value_type_code
69394   , p_transaction_coa_id           => l_adr_transaction_coa_id
69395   , p_accounting_coa_id            => l_adr_accounting_coa_id
69396   , p_adr_code                     => 'AP_REAL_LOSS'
69397   , p_adr_type_code                => 'S'
69398   , p_component_type               => l_component_type
69399   , p_component_code               => l_component_code
69400   , p_component_type_code          => l_component_type_code
69401   , p_component_appl_id            => l_component_appl_id
69402   , p_amb_context_code             => l_amb_context_code
69403   , p_side                         => 'DEBIT'
69404   );
69405 
69406 
69407    l_segment := AcctDerRule_23(
69408            p_application_id           => p_application_id
69409          , p_ae_header_id             => l_ae_header_id 
69410 , p_source_10 => p_source_10
69411 , p_source_10_meaning => p_source_10_meaning
69412 , p_source_25 => p_source_25
69413          , x_transaction_coa_id       => l_adr_transaction_coa_id
69414          , x_accounting_coa_id        => l_adr_accounting_coa_id
69415          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69416          , x_flex_value_set_id        => l_adr_flex_value_set_id
69417          , x_value_type_code          => l_adr_value_type_code
69418          , x_value_combination_id     => l_adr_value_combination_id
69419          , x_value_segment_code       => l_adr_value_segment_code
69420          , p_side                     => 'ALL'
69424    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69421          , p_override_seg_flag        => 'Y'
69422    );
69423 
69425 
69426       xla_ae_lines_pkg.set_segment(
69427           p_to_segment_code         => 'GL_BALANCING'
69428         , p_segment_value           => l_segment
69429         , p_from_segment_code       => l_adr_value_segment_code
69430         , p_from_combination_id     => l_adr_value_combination_id
69431         , p_value_type_code         => l_adr_value_type_code
69432         , p_transaction_coa_id      => l_adr_transaction_coa_id
69433         , p_accounting_coa_id       => l_adr_accounting_coa_id
69434         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69435         , p_flex_value_set_id       => l_adr_flex_value_set_id
69436         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69437         , p_adr_type_code           => 'S'
69438         , p_component_type          => l_component_type
69439         , p_component_code          => l_component_code
69440         , p_component_type_code     => l_component_type_code
69441         , p_component_appl_id       => l_component_appl_id
69442         , p_amb_context_code        => l_amb_context_code
69443         , p_entity_code             => 'AP_PAYMENTS'
69444         , p_event_class_code        => 'REFUNDS'
69445         , p_side                    => 'ALL'
69446         );
69447 
69448   END IF;
69449 
69450    l_segment := AcctDerRule_17(
69451            p_application_id           => p_application_id
69452          , p_ae_header_id             => l_ae_header_id 
69453 , p_source_10 => p_source_10
69454 , p_source_10_meaning => p_source_10_meaning
69455 , p_source_31 => p_source_31
69456 , p_source_32 => p_source_32
69457          , x_transaction_coa_id       => l_adr_transaction_coa_id
69458          , x_accounting_coa_id        => l_adr_accounting_coa_id
69459          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69460          , x_flex_value_set_id        => l_adr_flex_value_set_id
69461          , x_value_type_code          => l_adr_value_type_code
69462          , x_value_combination_id     => l_adr_value_combination_id
69463          , x_value_segment_code       => l_adr_value_segment_code
69464          , p_side                     => 'CREDIT'
69465          , p_override_seg_flag        => 'Y'
69466    );
69467 
69468    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69469 
69470       xla_ae_lines_pkg.set_segment(
69471           p_to_segment_code         => 'GL_ACCOUNT'
69472         , p_segment_value           => l_segment
69473         , p_from_segment_code       => l_adr_value_segment_code
69474         , p_from_combination_id     => l_adr_value_combination_id
69475         , p_value_type_code         => l_adr_value_type_code
69476         , p_transaction_coa_id      => l_adr_transaction_coa_id
69477         , p_accounting_coa_id       => l_adr_accounting_coa_id
69478         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69479         , p_flex_value_set_id       => l_adr_flex_value_set_id
69480         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69481         , p_adr_type_code           => 'S'
69482         , p_component_type          => l_component_type
69483         , p_component_code          => l_component_code
69484         , p_component_type_code     => l_component_type_code
69485         , p_component_appl_id       => l_component_appl_id
69486         , p_amb_context_code        => l_amb_context_code
69487         , p_entity_code             => 'AP_PAYMENTS'
69488         , p_event_class_code        => 'REFUNDS'
69489         , p_side                    => 'CREDIT'
69490         );
69491 
69492   END IF;
69493 
69494    l_segment := AcctDerRule_18(
69495            p_application_id           => p_application_id
69496          , p_ae_header_id             => l_ae_header_id 
69497 , p_source_10 => p_source_10
69498 , p_source_10_meaning => p_source_10_meaning
69499 , p_source_33 => p_source_33
69500 , p_source_34 => p_source_34
69501          , x_transaction_coa_id       => l_adr_transaction_coa_id
69502          , x_accounting_coa_id        => l_adr_accounting_coa_id
69503          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69504          , x_flex_value_set_id        => l_adr_flex_value_set_id
69505          , x_value_type_code          => l_adr_value_type_code
69506          , x_value_combination_id     => l_adr_value_combination_id
69507          , x_value_segment_code       => l_adr_value_segment_code
69508          , p_side                     => 'DEBIT'
69509          , p_override_seg_flag        => 'Y'
69510    );
69511 
69512    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69513 
69514       xla_ae_lines_pkg.set_segment(
69515           p_to_segment_code         => 'GL_ACCOUNT'
69516         , p_segment_value           => l_segment
69517         , p_from_segment_code       => l_adr_value_segment_code
69518         , p_from_combination_id     => l_adr_value_combination_id
69519         , p_value_type_code         => l_adr_value_type_code
69520         , p_transaction_coa_id      => l_adr_transaction_coa_id
69521         , p_accounting_coa_id       => l_adr_accounting_coa_id
69522         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69523         , p_flex_value_set_id       => l_adr_flex_value_set_id
69524         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
69525         , p_adr_type_code           => 'S'
69526         , p_component_type          => l_component_type
69527         , p_component_code          => l_component_code
69531         , p_entity_code             => 'AP_PAYMENTS'
69528         , p_component_type_code     => l_component_type_code
69529         , p_component_appl_id       => l_component_appl_id
69530         , p_amb_context_code        => l_amb_context_code
69532         , p_event_class_code        => 'REFUNDS'
69533         , p_side                    => 'DEBIT'
69534         );
69535 
69536   END IF;
69537 
69538    --
69539    --
69540    END IF;
69541    --
69542    -- Bug 4922099
69543    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69544           (NVL(l_enc_upg_option, 'N') = 'O')
69545         ) AND
69546         (l_bflow_method_code = 'PRIOR_ENTRY')
69547       )
69548    THEN
69549       IF
69550       --
69551       1 = 2
69552       --
69553       THEN
69554       xla_accounting_err_pkg.build_message
69555                                     (p_appli_s_name            => 'XLA'
69556                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69557                                     ,p_token_1                 => 'LINE_NUMBER'
69558                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69559                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69560                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69561                                                                              l_component_type
69562                                                                             ,l_component_code
69563                                                                             ,l_component_type_code
69564                                                                             ,l_component_appl_id
69565                                                                             ,l_amb_context_code
69566                                                                             ,l_entity_code
69567                                                                             ,l_event_class_code
69568                                                                            )
69569                                     ,p_token_3                 => 'OWNER'
69570                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69571                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69572                                                                           ,p_lookup_code    => l_component_type_code
69573                                                                          )
69574                                     ,p_token_4                 => 'PRODUCT_NAME'
69575                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69576                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69577                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69578                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69579                                     ,p_ae_header_id            =>  NULL
69580                                        );
69581 
69582         IF (C_LEVEL_ERROR>= g_log_level) THEN
69583                  trace
69584                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69585                       ,p_level    => C_LEVEL_ERROR
69586                       ,p_module   => l_log_module);
69587         END IF;
69588       END IF;
69589    END IF;
69590    --
69591    --
69592    ------------------------------------------------------------------------------------------------
69593    -- 4219869 Business Flow
69594    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69595    -- Prior Entry.  Currently, the following code is always generated.
69596    ------------------------------------------------------------------------------------------------
69597    XLA_AE_LINES_PKG.ValidateCurrentLine;
69598 
69599    ------------------------------------------------------------------------------------
69600    -- 4219869 Business Flow
69601    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69602    ------------------------------------------------------------------------------------
69603    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69604 
69605    ----------------------------------------------------------------------------------
69606    -- 4219869 Business Flow
69607    -- Update journal entry status -- Need to generate this within IF <condition>
69608    ----------------------------------------------------------------------------------
69609    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69610          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69611          ,p_balance_type_code => l_balance_type_code
69612          );
69613 
69614    -------------------------------------------------------------------------------------------
69615    -- 4262811 - Generate the Accrual Reversal lines
69616    -------------------------------------------------------------------------------------------
69617    BEGIN
69618       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69619                               (g_array_event(p_event_id).array_value_num('header_index'));
69620       IF l_acc_rev_flag IS NULL THEN
69621          l_acc_rev_flag := 'N';
69622       END IF;
69623    EXCEPTION
69624       WHEN OTHERS THEN
69625          l_acc_rev_flag := 'N';
69629 
69626    END;
69627    --
69628    IF (l_acc_rev_flag = 'Y') THEN
69630        -- 4645092  ------------------------------------------------------------------------------
69631        -- To allow MPA report to determine if it should generate report process
69632        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69633        ------------------------------------------------------------------------------------------
69634 
69635        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69636        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69637    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69638    -- call ADRs
69639    -- Bug 4922099
69640    --
69641    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69642         (NVL(l_actual_upg_option, 'N') = 'O') OR
69643         (NVL(l_enc_upg_option, 'N') = 'O')
69644       )
69645    THEN
69646    NULL;
69647    --
69648    --
69649    
69650   l_ccid := AcctDerRule_40(
69651            p_application_id           => p_application_id
69652          , p_ae_header_id             => l_ae_header_id 
69653 , p_source_10 => p_source_10
69654 , p_source_10_meaning => p_source_10_meaning
69655 , p_source_25 => p_source_25
69656 , p_source_31 => p_source_31
69657 , p_source_32 => p_source_32
69658          , x_transaction_coa_id       => l_adr_transaction_coa_id
69659          , x_accounting_coa_id        => l_adr_accounting_coa_id
69660          , x_value_type_code          => l_adr_value_type_code
69661          , p_side                     => 'CREDIT'
69662    );
69663 
69664    xla_ae_lines_pkg.set_ccid(
69665     p_code_combination_id          => l_ccid
69666   , p_value_type_code              => l_adr_value_type_code
69667   , p_transaction_coa_id           => l_adr_transaction_coa_id
69668   , p_accounting_coa_id            => l_adr_accounting_coa_id
69669   , p_adr_code                     => 'AP_REAL_GAIN'
69670   , p_adr_type_code                => 'S'
69671   , p_component_type               => l_component_type
69672   , p_component_code               => l_component_code
69673   , p_component_type_code          => l_component_type_code
69674   , p_component_appl_id            => l_component_appl_id
69675   , p_amb_context_code             => l_amb_context_code
69676   , p_side                         => 'CREDIT'
69677   );
69678 
69679 
69680   l_ccid := AcctDerRule_41(
69681            p_application_id           => p_application_id
69682          , p_ae_header_id             => l_ae_header_id 
69683 , p_source_10 => p_source_10
69684 , p_source_10_meaning => p_source_10_meaning
69685 , p_source_25 => p_source_25
69686 , p_source_33 => p_source_33
69687 , p_source_34 => p_source_34
69688          , x_transaction_coa_id       => l_adr_transaction_coa_id
69689          , x_accounting_coa_id        => l_adr_accounting_coa_id
69690          , x_value_type_code          => l_adr_value_type_code
69691          , p_side                     => 'DEBIT'
69692    );
69693 
69694    xla_ae_lines_pkg.set_ccid(
69695     p_code_combination_id          => l_ccid
69696   , p_value_type_code              => l_adr_value_type_code
69697   , p_transaction_coa_id           => l_adr_transaction_coa_id
69698   , p_accounting_coa_id            => l_adr_accounting_coa_id
69699   , p_adr_code                     => 'AP_REAL_LOSS'
69700   , p_adr_type_code                => 'S'
69701   , p_component_type               => l_component_type
69702   , p_component_code               => l_component_code
69703   , p_component_type_code          => l_component_type_code
69704   , p_component_appl_id            => l_component_appl_id
69705   , p_amb_context_code             => l_amb_context_code
69706   , p_side                         => 'DEBIT'
69707   );
69708 
69709 
69710    l_segment := AcctDerRule_23(
69711            p_application_id           => p_application_id
69712          , p_ae_header_id             => l_ae_header_id 
69713 , p_source_10 => p_source_10
69714 , p_source_10_meaning => p_source_10_meaning
69715 , p_source_25 => p_source_25
69716          , x_transaction_coa_id       => l_adr_transaction_coa_id
69717          , x_accounting_coa_id        => l_adr_accounting_coa_id
69718          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69719          , x_flex_value_set_id        => l_adr_flex_value_set_id
69720          , x_value_type_code          => l_adr_value_type_code
69721          , x_value_combination_id     => l_adr_value_combination_id
69722          , x_value_segment_code       => l_adr_value_segment_code
69723          , p_side                     => 'ALL'
69724          , p_override_seg_flag        => 'Y'
69725    );
69726 
69727    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69728 
69729       xla_ae_lines_pkg.set_segment(
69730           p_to_segment_code         => 'GL_BALANCING'
69731         , p_segment_value           => l_segment
69732         , p_from_segment_code       => l_adr_value_segment_code
69733         , p_from_combination_id     => l_adr_value_combination_id
69734         , p_value_type_code         => l_adr_value_type_code
69735         , p_transaction_coa_id      => l_adr_transaction_coa_id
69736         , p_accounting_coa_id       => l_adr_accounting_coa_id
69737         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69738         , p_flex_value_set_id       => l_adr_flex_value_set_id
69739         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69740         , p_adr_type_code           => 'S'
69744         , p_component_appl_id       => l_component_appl_id
69741         , p_component_type          => l_component_type
69742         , p_component_code          => l_component_code
69743         , p_component_type_code     => l_component_type_code
69745         , p_amb_context_code        => l_amb_context_code
69746         , p_entity_code             => 'AP_PAYMENTS'
69747         , p_event_class_code        => 'REFUNDS'
69748         , p_side                    => 'ALL'
69749         );
69750 
69751   END IF;
69752 
69753    l_segment := AcctDerRule_17(
69754            p_application_id           => p_application_id
69755          , p_ae_header_id             => l_ae_header_id 
69756 , p_source_10 => p_source_10
69757 , p_source_10_meaning => p_source_10_meaning
69758 , p_source_31 => p_source_31
69759 , p_source_32 => p_source_32
69760          , x_transaction_coa_id       => l_adr_transaction_coa_id
69761          , x_accounting_coa_id        => l_adr_accounting_coa_id
69762          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69763          , x_flex_value_set_id        => l_adr_flex_value_set_id
69764          , x_value_type_code          => l_adr_value_type_code
69765          , x_value_combination_id     => l_adr_value_combination_id
69766          , x_value_segment_code       => l_adr_value_segment_code
69767          , p_side                     => 'CREDIT'
69768          , p_override_seg_flag        => 'Y'
69769    );
69770 
69771    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69772 
69773       xla_ae_lines_pkg.set_segment(
69774           p_to_segment_code         => 'GL_ACCOUNT'
69775         , p_segment_value           => l_segment
69776         , p_from_segment_code       => l_adr_value_segment_code
69777         , p_from_combination_id     => l_adr_value_combination_id
69778         , p_value_type_code         => l_adr_value_type_code
69779         , p_transaction_coa_id      => l_adr_transaction_coa_id
69780         , p_accounting_coa_id       => l_adr_accounting_coa_id
69781         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69782         , p_flex_value_set_id       => l_adr_flex_value_set_id
69783         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69784         , p_adr_type_code           => 'S'
69785         , p_component_type          => l_component_type
69786         , p_component_code          => l_component_code
69787         , p_component_type_code     => l_component_type_code
69788         , p_component_appl_id       => l_component_appl_id
69789         , p_amb_context_code        => l_amb_context_code
69790         , p_entity_code             => 'AP_PAYMENTS'
69791         , p_event_class_code        => 'REFUNDS'
69792         , p_side                    => 'CREDIT'
69793         );
69794 
69795   END IF;
69796 
69797    l_segment := AcctDerRule_18(
69798            p_application_id           => p_application_id
69799          , p_ae_header_id             => l_ae_header_id 
69800 , p_source_10 => p_source_10
69801 , p_source_10_meaning => p_source_10_meaning
69802 , p_source_33 => p_source_33
69803 , p_source_34 => p_source_34
69804          , x_transaction_coa_id       => l_adr_transaction_coa_id
69805          , x_accounting_coa_id        => l_adr_accounting_coa_id
69806          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69807          , x_flex_value_set_id        => l_adr_flex_value_set_id
69808          , x_value_type_code          => l_adr_value_type_code
69809          , x_value_combination_id     => l_adr_value_combination_id
69810          , x_value_segment_code       => l_adr_value_segment_code
69811          , p_side                     => 'DEBIT'
69812          , p_override_seg_flag        => 'Y'
69813    );
69814 
69815    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69816 
69817       xla_ae_lines_pkg.set_segment(
69818           p_to_segment_code         => 'GL_ACCOUNT'
69819         , p_segment_value           => l_segment
69820         , p_from_segment_code       => l_adr_value_segment_code
69821         , p_from_combination_id     => l_adr_value_combination_id
69822         , p_value_type_code         => l_adr_value_type_code
69823         , p_transaction_coa_id      => l_adr_transaction_coa_id
69824         , p_accounting_coa_id       => l_adr_accounting_coa_id
69825         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69826         , p_flex_value_set_id       => l_adr_flex_value_set_id
69827         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
69828         , p_adr_type_code           => 'S'
69829         , p_component_type          => l_component_type
69830         , p_component_code          => l_component_code
69831         , p_component_type_code     => l_component_type_code
69832         , p_component_appl_id       => l_component_appl_id
69833         , p_amb_context_code        => l_amb_context_code
69834         , p_entity_code             => 'AP_PAYMENTS'
69835         , p_event_class_code        => 'REFUNDS'
69836         , p_side                    => 'DEBIT'
69837         );
69838 
69839   END IF;
69840 
69841    --
69842    --
69843    END IF;
69844 
69845        --
69846        -- Update the line information that should be overwritten
69847        --
69848        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69849                                          p_header_num   => 1);
69850        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69851 
69855           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69852        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69853 
69854        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69856        END IF;
69857 
69858       --
69859       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69860       --
69861       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69862           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69863       ELSE
69864           ---------------------------------------------------------------------------------------------------
69865           -- 4262811a Switch Sign
69866           ---------------------------------------------------------------------------------------------------
69867           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69868           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69869                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69870           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69871                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69872           -- 5132302
69873           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69874                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69875 
69876       END IF;
69877 
69878       -- 4955764
69879       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69880       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69881 
69882 
69883       XLA_AE_LINES_PKG.ValidateCurrentLine;
69884       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69885 
69886       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69887                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69888                ,p_balance_type_code => l_balance_type_code);
69889 
69890    END IF;
69891 
69892    -----------------------------------------------------------------------------------------
69893    -- 4262811 Multiperiod Accounting
69894    -----------------------------------------------------------------------------------------
69895      -- No MPA option is assigned.
69896 
69897 
69898 END IF;
69899 END IF;
69900 --
69901 
69902 --
69903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69904    trace
69905       (p_msg      => 'END of AcctLineType_138'
69906       ,p_level    => C_LEVEL_PROCEDURE
69907       ,p_module   => l_log_module);
69908 END IF;
69909 --
69910 EXCEPTION
69911   WHEN xla_exceptions_pkg.application_exception THEN
69912       RAISE;
69913   WHEN OTHERS THEN
69914        xla_exceptions_pkg.raise_message
69915            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_138');
69916 END AcctLineType_138;
69917 --
69918 
69919 ---------------------------------------
69920 --
69921 -- PRIVATE FUNCTION
69922 --         AcctLineType_139
69923 --
69924 ---------------------------------------
69925 PROCEDURE AcctLineType_139 (
69926   p_application_id        IN NUMBER
69927  ,p_event_id              IN NUMBER
69928  ,p_calculate_acctd_flag  IN VARCHAR2
69929  ,p_calculate_g_l_flag    IN VARCHAR2
69930  ,p_actual_flag           IN OUT VARCHAR2
69931  ,p_balance_type_code     OUT VARCHAR2
69932  ,p_gain_or_loss_ref      OUT VARCHAR2
69933  
69934 --Payment Currency Code
69935  , p_source_8            IN VARCHAR2
69936 --Automatic Offsets Value
69937  , p_source_10            IN VARCHAR2
69938  , p_source_10_meaning    IN VARCHAR2
69939 --Invoice Distribution Account
69940  , p_source_25            IN NUMBER
69941 --Internal Realized Gain Account
69942  , p_source_31            IN NUMBER
69943 --Bank Gain Account
69944  , p_source_32            IN NUMBER
69945 --When to Account for Payment Option
69946  , p_source_57            IN VARCHAR2
69947 --Accounting Reversal Indicator
69948  , p_source_58            IN VARCHAR2
69949 --Distribution Link Type
69950  , p_source_60            IN VARCHAR2
69951 --Override Accounted Amount Indicator
69952  , p_source_85            IN VARCHAR2
69953  , p_source_85_meaning    IN VARCHAR2
69954 --Third Party Type
69955  , p_source_88            IN VARCHAR2
69956 --Invoice Distribution Tax Line Identifier
69957  , p_source_91            IN NUMBER
69958 --Invoice Distribution Summary Tax Line Identifier
69959  , p_source_93            IN NUMBER
69960 --Business Flow Accounts Payable Application Identifier
69961  , p_source_96            IN NUMBER
69962 --Payment Distribution Type
69963  , p_source_101            IN VARCHAR2
69964  , p_source_101_meaning    IN VARCHAR2
69965 --Payment Distribution Amount
69966  , p_source_102            IN NUMBER
69967 --Business Flow Payment Distribution Type
69968  , p_source_103            IN VARCHAR2
69969 --Business Flow Payment Entity Code
69970  , p_source_104            IN VARCHAR2
69971 --Business Flow Payment Distribution Identifier
69972  , p_source_105            IN NUMBER
69973 --Business Flow Payment Identifier
69974  , p_source_106            IN NUMBER
69978  , p_source_109            IN DATE
69975 --Payment Distribution Identifier
69976  , p_source_107            IN NUMBER
69977 --Cleared Exchange Date
69979 --Cleared Exchange Rate
69980  , p_source_110            IN NUMBER
69981 --Cleared Exchange Rate Type
69982  , p_source_111            IN VARCHAR2
69983 --Payment Supplier Identifier
69984  , p_source_113            IN NUMBER
69985 --Payment Supplier Site Identifier
69986  , p_source_114            IN NUMBER
69987 --Payment Distribution Reversed Identifier
69988  , p_source_115            IN NUMBER
69989 --Payment Maturity Date
69990  , p_source_117            IN DATE
69991 --Gain or Loss Indicator between Maturity and Clearing
69992  , p_source_159            IN VARCHAR2
69993 --Maturity/Clearing Ledger Amount Difference
69994  , p_source_160            IN NUMBER
69995 )
69996 IS
69997 
69998 l_component_type              VARCHAR2(80);
69999 l_component_code              VARCHAR2(30);
70000 l_component_type_code         VARCHAR2(1);
70001 l_component_appl_id           INTEGER;
70002 l_amb_context_code            VARCHAR2(30);
70003 l_entity_code                 VARCHAR2(30);
70004 l_event_class_code            VARCHAR2(30);
70005 l_ae_header_id                NUMBER;
70006 l_event_type_code             VARCHAR2(30);
70007 l_line_definition_code        VARCHAR2(30);
70008 l_line_definition_owner_code  VARCHAR2(1);
70009 --
70010 -- adr variables
70011 l_segment                     VARCHAR2(30);
70012 l_ccid                        NUMBER;
70013 l_adr_transaction_coa_id      NUMBER;
70014 l_adr_accounting_coa_id       NUMBER;
70015 l_adr_flexfield_segment_code  VARCHAR2(30);
70016 l_adr_flex_value_set_id       NUMBER;
70017 l_adr_value_type_code         VARCHAR2(30);
70018 l_adr_value_combination_id    NUMBER;
70019 l_adr_value_segment_code      VARCHAR2(30);
70020 
70021 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70022 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70023 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70024 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70025 
70026 -- 4262811 Variables ------------------------------------------------------------------------------------------
70027 l_entered_amt_idx             NUMBER;
70028 l_accted_amt_idx              NUMBER;
70029 l_acc_rev_flag                VARCHAR2(1);
70030 l_accrual_line_num            NUMBER;
70031 l_tmp_amt                     NUMBER;
70032 l_acc_rev_natural_side_code   VARCHAR2(1);
70033 
70034 l_num_entries                 NUMBER;
70035 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70036 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70037 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70038 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70039 l_recog_line_1                NUMBER;
70040 l_recog_line_2                NUMBER;
70041 
70042 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70043 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70044 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70045 
70046 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70047 
70048 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70049 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70050 
70051 ---------------------------------------------------------------------------------------------------------------
70052 
70053 
70054 --
70055 -- bulk performance
70056 --
70057 l_balance_type_code           VARCHAR2(1);
70058 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70059 l_log_module                  VARCHAR2(240);
70060 
70061 --
70062 -- Upgrade strategy
70063 --
70064 l_actual_upg_option           VARCHAR2(1);
70065 l_enc_upg_option           VARCHAR2(1);
70066 
70067 --
70068 BEGIN
70069 --
70070 IF g_log_enabled THEN
70071       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
70072 END IF;
70073 --
70074 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70075 
70076       trace
70077          (p_msg      => 'BEGIN of AcctLineType_139'
70078          ,p_level    => C_LEVEL_PROCEDURE
70079          ,p_module   => l_log_module);
70080 
70081 END IF;
70082 --
70083 l_component_type             := 'AMB_JLT';
70084 l_component_code             := 'AP_GAIN_MAT_CLEAR';
70085 l_component_type_code        := 'S';
70086 l_component_appl_id          :=  200;
70087 l_amb_context_code           := 'DEFAULT';
70088 l_entity_code                := 'AP_PAYMENTS';
70089 l_event_class_code           := 'RECONCILED PAYMENTS';
70090 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
70091 l_line_definition_owner_code := 'S';
70092 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
70093 --
70094 l_balance_type_code          := 'A';
70095 l_segment                     := NULL;
70096 l_ccid                        := NULL;
70097 l_adr_transaction_coa_id      := NULL;
70098 l_adr_accounting_coa_id       := NULL;
70099 l_adr_flexfield_segment_code  := NULL;
70100 l_adr_flex_value_set_id       := NULL;
70101 l_adr_value_type_code         := NULL;
70102 l_adr_value_combination_id    := NULL;
70103 l_adr_value_segment_code      := NULL;
70104 
70105 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70109 
70106 l_bflow_class_code           := '';    -- 4219869 Business Flow
70107 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70108 l_budgetary_control_flag     := 'N';
70110 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70111 l_bflow_applied_to_amt       := NULL; -- 5132302
70112 l_entered_amt_idx            := NULL;          -- 4262811
70113 l_accted_amt_idx             := NULL;          -- 4262811
70114 l_acc_rev_flag               := NULL;          -- 4262811
70115 l_accrual_line_num           := NULL;          -- 4262811
70116 l_tmp_amt                    := NULL;          -- 4262811
70117 --
70118 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70119             (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
70120                return;
70121   END IF;
70122   
70123 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70124     l_balance_type_code <> 'B' THEN
70125 IF NVL(p_source_57,'
70126 ') =  'ALWAYS_ALWAYS' AND 
70127 p_source_117 IS NOT NULL AND 
70128 NVL(p_source_159,'
70129 ') =  'GAIN' AND 
70130 NVL(p_source_101,'
70131 ') <>  'EXCHANGE RATE VARIANCE' AND 
70132 NVL(p_source_101,'
70133 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
70134 NVL(p_source_101,'
70135 ') <>  'BANK CHARGE' AND 
70136 NVL(p_source_101,'
70137 ') <>  'BANK ERROR'
70138  THEN 
70139 
70140    --
70141    XLA_AE_LINES_PKG.SetNewLine;
70142 
70143    p_balance_type_code          := l_balance_type_code;
70144    -- set the flag so later we will know whether the gain loss line needs to be created
70145    
70146    IF(l_balance_type_code = 'A' ) THEN
70147      p_actual_flag :='G';
70148    END IF;
70149 
70150    --
70151    -- bulk performance
70152    --
70153    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70154                                       p_header_num   => 0); -- 4262811
70155    --
70156    -- set accounting line options
70157    --
70158    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70159            p_natural_side_code          => 'C'
70160          , p_gain_or_loss_flag          => 'Y'
70161          , p_gl_transfer_mode_code      => 'S'
70162          , p_acct_entry_type_code       => 'A'
70163          , p_switch_side_flag           => 'Y'
70164          , p_merge_duplicate_code       => 'A'
70165          );
70166    --
70167    l_acc_rev_natural_side_code := 'D';  -- 4262811
70168    -- 
70169    --
70170    -- set accounting line type info
70171    --
70172    xla_ae_lines_pkg.SetAcctLineType
70173       (p_component_type             => l_component_type
70174       ,p_event_type_code            => l_event_type_code
70175       ,p_line_definition_owner_code => l_line_definition_owner_code
70176       ,p_line_definition_code       => l_line_definition_code
70177       ,p_accounting_line_code       => l_component_code
70178       ,p_accounting_line_type_code  => l_component_type_code
70179       ,p_accounting_line_appl_id    => l_component_appl_id
70180       ,p_amb_context_code           => l_amb_context_code
70181       ,p_entity_code                => l_entity_code
70182       ,p_event_class_code           => l_event_class_code);
70183    --
70184    -- set accounting class
70185    --
70186    xla_ae_lines_pkg.SetAcctClass(
70187            p_accounting_class_code  => 'GAIN'
70188          , p_ae_header_id           => l_ae_header_id
70189          );
70190 
70191    --
70192    -- set rounding class
70193    --
70194    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70195                       'GAIN';
70196 
70197    --
70198    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70199    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70200    --
70201    -- bulk performance
70202    --
70203    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70204 
70205    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70206       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70207 
70208    -- 4955764
70209    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70210       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70211 
70212    -- 4458381 Public Sector Enh
70213    
70214    --
70215    -- set accounting attributes for the line type
70216    --
70217    l_entered_amt_idx := 10;
70218    l_accted_amt_idx  := 15;
70219    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
70220    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70221    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
70222    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
70223    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
70224    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
70225    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
70226    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70227    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
70228    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
70232    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70229    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
70230    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
70231    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
70233    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
70234    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
70235    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
70236    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
70237    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
70238    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
70239    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
70240    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
70241    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
70242    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
70243    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
70244    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
70245    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
70246    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
70247    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
70248    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
70249    l_rec_acct_attrs.array_num_value(15)  := p_source_160;
70250    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
70251    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
70252    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
70253    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
70254    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
70255    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
70256    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
70257    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
70258    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
70259    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
70260    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
70261    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
70262    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
70263    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
70264    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
70265    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
70266    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
70267    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
70268 
70269    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70270    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70271 
70272    ---------------------------------------------------------------------------------------------------------------
70273    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70274    ---------------------------------------------------------------------------------------------------------------
70275    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70276 
70277    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70278    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70279 
70280    IF xla_accounting_cache_pkg.GetValueChar
70281          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70282          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70283    AND l_bflow_method_code = 'PRIOR_ENTRY'
70284 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70285    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70286          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70287        )
70288    THEN
70289          xla_ae_lines_pkg.BflowUpgEntry
70290            (p_business_method_code    => l_bflow_method_code
70291            ,p_business_class_code     => l_bflow_class_code
70292            ,p_balance_type            => l_balance_type_code);
70293    ELSE
70294       NULL;
70295 -- No business flow processing for business flow method of NONE.
70296    END IF;
70297 
70298    --
70299    -- call analytical criteria
70300    --
70301    
70302    --
70303    -- call description
70304    --
70305    -- No description or it is inherited.
70306    --
70307    -- call ADRs
70308    -- Bug 4922099
70309    --
70310    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70311         (NVL(l_actual_upg_option, 'N') = 'O') OR
70312         (NVL(l_enc_upg_option, 'N') = 'O')
70313       )
70314    THEN
70315    NULL;
70316    --
70317    --
70318    
70319   l_ccid := AcctDerRule_40(
70320            p_application_id           => p_application_id
70321          , p_ae_header_id             => l_ae_header_id 
70322 , p_source_10 => p_source_10
70323 , p_source_10_meaning => p_source_10_meaning
70324 , p_source_25 => p_source_25
70325 , p_source_31 => p_source_31
70326 , p_source_32 => p_source_32
70327          , x_transaction_coa_id       => l_adr_transaction_coa_id
70328          , x_accounting_coa_id        => l_adr_accounting_coa_id
70329          , x_value_type_code          => l_adr_value_type_code
70330          , p_side                     => 'NA'
70331    );
70332 
70333    xla_ae_lines_pkg.set_ccid(
70334     p_code_combination_id          => l_ccid
70338   , p_adr_code                     => 'AP_REAL_GAIN'
70335   , p_value_type_code              => l_adr_value_type_code
70336   , p_transaction_coa_id           => l_adr_transaction_coa_id
70337   , p_accounting_coa_id            => l_adr_accounting_coa_id
70339   , p_adr_type_code                => 'S'
70340   , p_component_type               => l_component_type
70341   , p_component_code               => l_component_code
70342   , p_component_type_code          => l_component_type_code
70343   , p_component_appl_id            => l_component_appl_id
70344   , p_amb_context_code             => l_amb_context_code
70345   , p_side                         => 'NA'
70346   );
70347 
70348 
70349    l_segment := AcctDerRule_23(
70350            p_application_id           => p_application_id
70351          , p_ae_header_id             => l_ae_header_id 
70352 , p_source_10 => p_source_10
70353 , p_source_10_meaning => p_source_10_meaning
70354 , p_source_25 => p_source_25
70355          , x_transaction_coa_id       => l_adr_transaction_coa_id
70356          , x_accounting_coa_id        => l_adr_accounting_coa_id
70357          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70358          , x_flex_value_set_id        => l_adr_flex_value_set_id
70359          , x_value_type_code          => l_adr_value_type_code
70360          , x_value_combination_id     => l_adr_value_combination_id
70361          , x_value_segment_code       => l_adr_value_segment_code
70362          , p_side                     => 'NA'
70363          , p_override_seg_flag        => 'Y'
70364    );
70365 
70366    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70367 
70368       xla_ae_lines_pkg.set_segment(
70369           p_to_segment_code         => 'GL_BALANCING'
70370         , p_segment_value           => l_segment
70371         , p_from_segment_code       => l_adr_value_segment_code
70372         , p_from_combination_id     => l_adr_value_combination_id
70373         , p_value_type_code         => l_adr_value_type_code
70374         , p_transaction_coa_id      => l_adr_transaction_coa_id
70375         , p_accounting_coa_id       => l_adr_accounting_coa_id
70376         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70377         , p_flex_value_set_id       => l_adr_flex_value_set_id
70378         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70379         , p_adr_type_code           => 'S'
70380         , p_component_type          => l_component_type
70381         , p_component_code          => l_component_code
70382         , p_component_type_code     => l_component_type_code
70383         , p_component_appl_id       => l_component_appl_id
70384         , p_amb_context_code        => l_amb_context_code
70385         , p_entity_code             => 'AP_PAYMENTS'
70386         , p_event_class_code        => 'RECONCILED PAYMENTS'
70387         , p_side                    => 'NA'
70388         );
70389 
70390   END IF;
70391 
70392    l_segment := AcctDerRule_17(
70393            p_application_id           => p_application_id
70394          , p_ae_header_id             => l_ae_header_id 
70395 , p_source_10 => p_source_10
70396 , p_source_10_meaning => p_source_10_meaning
70397 , p_source_31 => p_source_31
70398 , p_source_32 => p_source_32
70399          , x_transaction_coa_id       => l_adr_transaction_coa_id
70400          , x_accounting_coa_id        => l_adr_accounting_coa_id
70401          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70402          , x_flex_value_set_id        => l_adr_flex_value_set_id
70403          , x_value_type_code          => l_adr_value_type_code
70404          , x_value_combination_id     => l_adr_value_combination_id
70405          , x_value_segment_code       => l_adr_value_segment_code
70406          , p_side                     => 'NA'
70407          , p_override_seg_flag        => 'Y'
70408    );
70409 
70410    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70411 
70412       xla_ae_lines_pkg.set_segment(
70413           p_to_segment_code         => 'GL_ACCOUNT'
70414         , p_segment_value           => l_segment
70415         , p_from_segment_code       => l_adr_value_segment_code
70416         , p_from_combination_id     => l_adr_value_combination_id
70417         , p_value_type_code         => l_adr_value_type_code
70418         , p_transaction_coa_id      => l_adr_transaction_coa_id
70419         , p_accounting_coa_id       => l_adr_accounting_coa_id
70420         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70421         , p_flex_value_set_id       => l_adr_flex_value_set_id
70422         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70423         , p_adr_type_code           => 'S'
70424         , p_component_type          => l_component_type
70425         , p_component_code          => l_component_code
70426         , p_component_type_code     => l_component_type_code
70427         , p_component_appl_id       => l_component_appl_id
70428         , p_amb_context_code        => l_amb_context_code
70429         , p_entity_code             => 'AP_PAYMENTS'
70430         , p_event_class_code        => 'RECONCILED PAYMENTS'
70431         , p_side                    => 'NA'
70432         );
70433 
70434   END IF;
70435 
70436    --
70437    --
70438    END IF;
70439    --
70440    -- Bug 4922099
70441    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70442           (NVL(l_enc_upg_option, 'N') = 'O')
70443         ) AND
70444         (l_bflow_method_code = 'PRIOR_ENTRY')
70445       )
70449       1 = 2
70446    THEN
70447       IF
70448       --
70450       --
70451       THEN
70452       xla_accounting_err_pkg.build_message
70453                                     (p_appli_s_name            => 'XLA'
70454                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70455                                     ,p_token_1                 => 'LINE_NUMBER'
70456                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70457                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70458                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70459                                                                              l_component_type
70460                                                                             ,l_component_code
70461                                                                             ,l_component_type_code
70462                                                                             ,l_component_appl_id
70463                                                                             ,l_amb_context_code
70464                                                                             ,l_entity_code
70465                                                                             ,l_event_class_code
70466                                                                            )
70467                                     ,p_token_3                 => 'OWNER'
70468                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70469                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70470                                                                           ,p_lookup_code    => l_component_type_code
70471                                                                          )
70472                                     ,p_token_4                 => 'PRODUCT_NAME'
70473                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70474                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70475                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70476                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70477                                     ,p_ae_header_id            =>  NULL
70478                                        );
70479 
70480         IF (C_LEVEL_ERROR>= g_log_level) THEN
70481                  trace
70482                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70483                       ,p_level    => C_LEVEL_ERROR
70484                       ,p_module   => l_log_module);
70485         END IF;
70486       END IF;
70487    END IF;
70488    --
70489    --
70490    ------------------------------------------------------------------------------------------------
70491    -- 4219869 Business Flow
70492    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70493    -- Prior Entry.  Currently, the following code is always generated.
70494    ------------------------------------------------------------------------------------------------
70495    XLA_AE_LINES_PKG.ValidateCurrentLine;
70496 
70497    ------------------------------------------------------------------------------------
70498    -- 4219869 Business Flow
70499    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70500    ------------------------------------------------------------------------------------
70501    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70502 
70503    ----------------------------------------------------------------------------------
70504    -- 4219869 Business Flow
70505    -- Update journal entry status -- Need to generate this within IF <condition>
70506    ----------------------------------------------------------------------------------
70507    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70508          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70509          ,p_balance_type_code => l_balance_type_code
70510          );
70511 
70512    -------------------------------------------------------------------------------------------
70513    -- 4262811 - Generate the Accrual Reversal lines
70514    -------------------------------------------------------------------------------------------
70515    BEGIN
70516       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70517                               (g_array_event(p_event_id).array_value_num('header_index'));
70518       IF l_acc_rev_flag IS NULL THEN
70519          l_acc_rev_flag := 'N';
70520       END IF;
70521    EXCEPTION
70522       WHEN OTHERS THEN
70523          l_acc_rev_flag := 'N';
70524    END;
70525    --
70526    IF (l_acc_rev_flag = 'Y') THEN
70527 
70528        -- 4645092  ------------------------------------------------------------------------------
70529        -- To allow MPA report to determine if it should generate report process
70530        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70531        ------------------------------------------------------------------------------------------
70532 
70533        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70534        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70535    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70536    -- call ADRs
70540         (NVL(l_actual_upg_option, 'N') = 'O') OR
70537    -- Bug 4922099
70538    --
70539    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70541         (NVL(l_enc_upg_option, 'N') = 'O')
70542       )
70543    THEN
70544    NULL;
70545    --
70546    --
70547    
70548   l_ccid := AcctDerRule_40(
70549            p_application_id           => p_application_id
70550          , p_ae_header_id             => l_ae_header_id 
70551 , p_source_10 => p_source_10
70552 , p_source_10_meaning => p_source_10_meaning
70553 , p_source_25 => p_source_25
70554 , p_source_31 => p_source_31
70555 , p_source_32 => p_source_32
70556          , x_transaction_coa_id       => l_adr_transaction_coa_id
70557          , x_accounting_coa_id        => l_adr_accounting_coa_id
70558          , x_value_type_code          => l_adr_value_type_code
70559          , p_side                     => 'NA'
70560    );
70561 
70562    xla_ae_lines_pkg.set_ccid(
70563     p_code_combination_id          => l_ccid
70564   , p_value_type_code              => l_adr_value_type_code
70565   , p_transaction_coa_id           => l_adr_transaction_coa_id
70566   , p_accounting_coa_id            => l_adr_accounting_coa_id
70567   , p_adr_code                     => 'AP_REAL_GAIN'
70568   , p_adr_type_code                => 'S'
70569   , p_component_type               => l_component_type
70570   , p_component_code               => l_component_code
70571   , p_component_type_code          => l_component_type_code
70572   , p_component_appl_id            => l_component_appl_id
70573   , p_amb_context_code             => l_amb_context_code
70574   , p_side                         => 'NA'
70575   );
70576 
70577 
70578    l_segment := AcctDerRule_23(
70579            p_application_id           => p_application_id
70580          , p_ae_header_id             => l_ae_header_id 
70581 , p_source_10 => p_source_10
70582 , p_source_10_meaning => p_source_10_meaning
70583 , p_source_25 => p_source_25
70584          , x_transaction_coa_id       => l_adr_transaction_coa_id
70585          , x_accounting_coa_id        => l_adr_accounting_coa_id
70586          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70587          , x_flex_value_set_id        => l_adr_flex_value_set_id
70588          , x_value_type_code          => l_adr_value_type_code
70589          , x_value_combination_id     => l_adr_value_combination_id
70590          , x_value_segment_code       => l_adr_value_segment_code
70591          , p_side                     => 'NA'
70592          , p_override_seg_flag        => 'Y'
70593    );
70594 
70595    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70596 
70597       xla_ae_lines_pkg.set_segment(
70598           p_to_segment_code         => 'GL_BALANCING'
70599         , p_segment_value           => l_segment
70600         , p_from_segment_code       => l_adr_value_segment_code
70601         , p_from_combination_id     => l_adr_value_combination_id
70602         , p_value_type_code         => l_adr_value_type_code
70603         , p_transaction_coa_id      => l_adr_transaction_coa_id
70604         , p_accounting_coa_id       => l_adr_accounting_coa_id
70605         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70606         , p_flex_value_set_id       => l_adr_flex_value_set_id
70607         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70608         , p_adr_type_code           => 'S'
70609         , p_component_type          => l_component_type
70610         , p_component_code          => l_component_code
70611         , p_component_type_code     => l_component_type_code
70612         , p_component_appl_id       => l_component_appl_id
70613         , p_amb_context_code        => l_amb_context_code
70614         , p_entity_code             => 'AP_PAYMENTS'
70615         , p_event_class_code        => 'RECONCILED PAYMENTS'
70616         , p_side                    => 'NA'
70617         );
70618 
70619   END IF;
70620 
70621    l_segment := AcctDerRule_17(
70622            p_application_id           => p_application_id
70623          , p_ae_header_id             => l_ae_header_id 
70624 , p_source_10 => p_source_10
70625 , p_source_10_meaning => p_source_10_meaning
70626 , p_source_31 => p_source_31
70627 , p_source_32 => p_source_32
70628          , x_transaction_coa_id       => l_adr_transaction_coa_id
70629          , x_accounting_coa_id        => l_adr_accounting_coa_id
70630          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70631          , x_flex_value_set_id        => l_adr_flex_value_set_id
70632          , x_value_type_code          => l_adr_value_type_code
70633          , x_value_combination_id     => l_adr_value_combination_id
70634          , x_value_segment_code       => l_adr_value_segment_code
70635          , p_side                     => 'NA'
70636          , p_override_seg_flag        => 'Y'
70637    );
70638 
70639    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70640 
70641       xla_ae_lines_pkg.set_segment(
70642           p_to_segment_code         => 'GL_ACCOUNT'
70643         , p_segment_value           => l_segment
70644         , p_from_segment_code       => l_adr_value_segment_code
70645         , p_from_combination_id     => l_adr_value_combination_id
70646         , p_value_type_code         => l_adr_value_type_code
70647         , p_transaction_coa_id      => l_adr_transaction_coa_id
70648         , p_accounting_coa_id       => l_adr_accounting_coa_id
70649         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70650         , p_flex_value_set_id       => l_adr_flex_value_set_id
70654         , p_component_code          => l_component_code
70651         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70652         , p_adr_type_code           => 'S'
70653         , p_component_type          => l_component_type
70655         , p_component_type_code     => l_component_type_code
70656         , p_component_appl_id       => l_component_appl_id
70657         , p_amb_context_code        => l_amb_context_code
70658         , p_entity_code             => 'AP_PAYMENTS'
70659         , p_event_class_code        => 'RECONCILED PAYMENTS'
70660         , p_side                    => 'NA'
70661         );
70662 
70663   END IF;
70664 
70665    --
70666    --
70667    END IF;
70668 
70669        --
70670        -- Update the line information that should be overwritten
70671        --
70672        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70673                                          p_header_num   => 1);
70674        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70675 
70676        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70677 
70678        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70679           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70680        END IF;
70681 
70682       --
70683       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70684       --
70685       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70686           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70687       ELSE
70688           ---------------------------------------------------------------------------------------------------
70689           -- 4262811a Switch Sign
70690           ---------------------------------------------------------------------------------------------------
70691           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70692           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70693                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70694           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70695                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70696           -- 5132302
70697           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70698                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70699 
70700       END IF;
70701 
70702       -- 4955764
70703       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70704       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70705 
70706 
70707       XLA_AE_LINES_PKG.ValidateCurrentLine;
70708       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70709 
70710       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70711                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70712                ,p_balance_type_code => l_balance_type_code);
70713 
70714    END IF;
70715 
70716    -----------------------------------------------------------------------------------------
70717    -- 4262811 Multiperiod Accounting
70718    -----------------------------------------------------------------------------------------
70719      -- No MPA option is assigned.
70720 
70721 
70722 END IF;
70723 END IF;
70724 --
70725 
70726 --
70727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70728    trace
70729       (p_msg      => 'END of AcctLineType_139'
70730       ,p_level    => C_LEVEL_PROCEDURE
70731       ,p_module   => l_log_module);
70732 END IF;
70733 --
70734 EXCEPTION
70735   WHEN xla_exceptions_pkg.application_exception THEN
70736       RAISE;
70737   WHEN OTHERS THEN
70738        xla_exceptions_pkg.raise_message
70739            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_139');
70740 END AcctLineType_139;
70741 --
70742 
70743 ---------------------------------------
70744 --
70745 -- PRIVATE FUNCTION
70746 --         AcctLineType_140
70747 --
70748 ---------------------------------------
70749 PROCEDURE AcctLineType_140 (
70750   p_application_id        IN NUMBER
70751  ,p_event_id              IN NUMBER
70752  ,p_calculate_acctd_flag  IN VARCHAR2
70753  ,p_calculate_g_l_flag    IN VARCHAR2
70754  ,p_actual_flag           IN OUT VARCHAR2
70755  ,p_balance_type_code     OUT VARCHAR2
70756  ,p_gain_or_loss_ref      OUT VARCHAR2
70757  
70758 --Payment Currency Code
70759  , p_source_8            IN VARCHAR2
70760 --Automatic Offsets Value
70761  , p_source_10            IN VARCHAR2
70762  , p_source_10_meaning    IN VARCHAR2
70763 --Invoice Distribution Account
70764  , p_source_25            IN NUMBER
70765 --Internal Realized Gain Account
70766  , p_source_31            IN NUMBER
70767 --Bank Gain Account
70768  , p_source_32            IN NUMBER
70769 --When to Account for Payment Option
70770  , p_source_57            IN VARCHAR2
70771 --Accounting Reversal Indicator
70772  , p_source_58            IN VARCHAR2
70773 --Distribution Link Type
70774  , p_source_60            IN VARCHAR2
70775 --Override Accounted Amount Indicator
70779  , p_source_88            IN VARCHAR2
70776  , p_source_85            IN VARCHAR2
70777  , p_source_85_meaning    IN VARCHAR2
70778 --Third Party Type
70780 --Invoice Distribution Tax Line Identifier
70781  , p_source_91            IN NUMBER
70782 --Invoice Distribution Tax Distribution Identifier from Tax
70783  , p_source_92            IN NUMBER
70784 --Invoice Distribution Summary Tax Line Identifier
70785  , p_source_93            IN NUMBER
70786 --Business Flow Accounts Payable Application Identifier
70787  , p_source_96            IN NUMBER
70788 --Business Flow Invoice Distribution Type
70789  , p_source_97            IN VARCHAR2
70790 --Business Flow Invoice Entity Code
70791  , p_source_98            IN VARCHAR2
70792 --Business Flow Invoice Distribution Identifier
70793  , p_source_99            IN NUMBER
70794 --Business Flow Invoice Identifier
70795  , p_source_100            IN NUMBER
70796 --Payment Distribution Type
70797  , p_source_101            IN VARCHAR2
70798  , p_source_101_meaning    IN VARCHAR2
70799 --Payment Distribution Amount
70800  , p_source_102            IN NUMBER
70801 --Payment Distribution Identifier
70802  , p_source_107            IN NUMBER
70803 --Payment Supplier Identifier
70804  , p_source_113            IN NUMBER
70805 --Payment Supplier Site Identifier
70806  , p_source_114            IN NUMBER
70807 --Payment Distribution Reversed Identifier
70808  , p_source_115            IN NUMBER
70809 --Payment Exchange Date
70810  , p_source_120            IN DATE
70811 --Payment Exchange Rate
70812  , p_source_121            IN NUMBER
70813 --Payment Exchange Rate Type
70814  , p_source_122            IN VARCHAR2
70815 --Payment Type
70816  , p_source_125            IN VARCHAR2
70817  , p_source_125_meaning    IN VARCHAR2
70818 --Invoice Distribution Amount of the Payment Distribution
70819  , p_source_127            IN NUMBER
70820 --Invoice/Payment Ledger Amount Difference
70821  , p_source_156            IN NUMBER
70822 --Gain or Loss Indicator between Invoice and Payment
70823  , p_source_161            IN VARCHAR2
70824 )
70825 IS
70826 
70827 l_component_type              VARCHAR2(80);
70828 l_component_code              VARCHAR2(30);
70829 l_component_type_code         VARCHAR2(1);
70830 l_component_appl_id           INTEGER;
70831 l_amb_context_code            VARCHAR2(30);
70832 l_entity_code                 VARCHAR2(30);
70833 l_event_class_code            VARCHAR2(30);
70834 l_ae_header_id                NUMBER;
70835 l_event_type_code             VARCHAR2(30);
70836 l_line_definition_code        VARCHAR2(30);
70837 l_line_definition_owner_code  VARCHAR2(1);
70838 --
70839 -- adr variables
70840 l_segment                     VARCHAR2(30);
70841 l_ccid                        NUMBER;
70842 l_adr_transaction_coa_id      NUMBER;
70843 l_adr_accounting_coa_id       NUMBER;
70844 l_adr_flexfield_segment_code  VARCHAR2(30);
70845 l_adr_flex_value_set_id       NUMBER;
70846 l_adr_value_type_code         VARCHAR2(30);
70847 l_adr_value_combination_id    NUMBER;
70848 l_adr_value_segment_code      VARCHAR2(30);
70849 
70850 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70851 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70852 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70853 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70854 
70855 -- 4262811 Variables ------------------------------------------------------------------------------------------
70856 l_entered_amt_idx             NUMBER;
70857 l_accted_amt_idx              NUMBER;
70858 l_acc_rev_flag                VARCHAR2(1);
70859 l_accrual_line_num            NUMBER;
70860 l_tmp_amt                     NUMBER;
70861 l_acc_rev_natural_side_code   VARCHAR2(1);
70862 
70863 l_num_entries                 NUMBER;
70864 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70865 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70866 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70867 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70868 l_recog_line_1                NUMBER;
70869 l_recog_line_2                NUMBER;
70870 
70871 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70872 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70873 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70874 
70875 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70876 
70877 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70878 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70879 
70880 ---------------------------------------------------------------------------------------------------------------
70881 
70882 
70883 --
70884 -- bulk performance
70885 --
70886 l_balance_type_code           VARCHAR2(1);
70887 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70888 l_log_module                  VARCHAR2(240);
70889 
70890 --
70891 -- Upgrade strategy
70892 --
70893 l_actual_upg_option           VARCHAR2(1);
70894 l_enc_upg_option           VARCHAR2(1);
70895 
70896 --
70897 BEGIN
70898 --
70899 IF g_log_enabled THEN
70900       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
70901 END IF;
70902 --
70903 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70904 
70908          ,p_module   => l_log_module);
70905       trace
70906          (p_msg      => 'BEGIN of AcctLineType_140'
70907          ,p_level    => C_LEVEL_PROCEDURE
70909 
70910 END IF;
70911 --
70912 l_component_type             := 'AMB_JLT';
70913 l_component_code             := 'AP_GAIN_PMT';
70914 l_component_type_code        := 'S';
70915 l_component_appl_id          :=  200;
70916 l_amb_context_code           := 'DEFAULT';
70917 l_entity_code                := 'AP_PAYMENTS';
70918 l_event_class_code           := 'PAYMENTS';
70919 l_event_type_code            := 'PAYMENTS_ALL';
70920 l_line_definition_owner_code := 'S';
70921 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
70922 --
70923 l_balance_type_code          := 'A';
70924 l_segment                     := NULL;
70925 l_ccid                        := NULL;
70926 l_adr_transaction_coa_id      := NULL;
70927 l_adr_accounting_coa_id       := NULL;
70928 l_adr_flexfield_segment_code  := NULL;
70929 l_adr_flex_value_set_id       := NULL;
70930 l_adr_value_type_code         := NULL;
70931 l_adr_value_combination_id    := NULL;
70932 l_adr_value_segment_code      := NULL;
70933 
70934 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70935 l_bflow_class_code           := '';    -- 4219869 Business Flow
70936 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70937 l_budgetary_control_flag     := 'N';
70938 
70939 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70940 l_bflow_applied_to_amt       := NULL; -- 5132302
70941 l_entered_amt_idx            := NULL;          -- 4262811
70942 l_accted_amt_idx             := NULL;          -- 4262811
70943 l_acc_rev_flag               := NULL;          -- 4262811
70944 l_accrual_line_num           := NULL;          -- 4262811
70945 l_tmp_amt                    := NULL;          -- 4262811
70946 --
70947 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70948             (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
70949                return;
70950   END IF;
70951   
70952 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70953     l_balance_type_code <> 'B' THEN
70954 IF (NVL(p_source_57,'
70955 ') <>  'CLEAR_CLEAR' AND 
70956 NVL(p_source_57,'
70957 ') <>  'ALWAYS_CLEAR') AND 
70958 NVL(p_source_161,'
70959 ') =  'GAIN' AND 
70960 NVL(p_source_101,'
70961 ') <>  'EXCHANGE RATE VARIANCE' AND 
70962 NVL(p_source_101,'
70963 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
70964 NVL(p_source_101,'
70965 ') <>  'BANK ERROR' AND 
70966 NVL(p_source_101,'
70967 ') <>  'BANK CHARGE' AND 
70968 NVL(p_source_101,'
70969 ') <>  'AWT' AND 
70970 NVL(p_source_125,'
70971 ') <>  'R'
70972  THEN 
70973 
70974    --
70975    XLA_AE_LINES_PKG.SetNewLine;
70976 
70977    p_balance_type_code          := l_balance_type_code;
70978    -- set the flag so later we will know whether the gain loss line needs to be created
70979    
70980    IF(l_balance_type_code = 'A' ) THEN
70981      p_actual_flag :='G';
70982    END IF;
70983 
70984    --
70985    -- bulk performance
70986    --
70987    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70988                                       p_header_num   => 0); -- 4262811
70989    --
70990    -- set accounting line options
70991    --
70992    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70993            p_natural_side_code          => 'C'
70994          , p_gain_or_loss_flag          => 'Y'
70995          , p_gl_transfer_mode_code      => 'S'
70996          , p_acct_entry_type_code       => 'A'
70997          , p_switch_side_flag           => 'Y'
70998          , p_merge_duplicate_code       => 'A'
70999          );
71000    --
71001    l_acc_rev_natural_side_code := 'D';  -- 4262811
71002    -- 
71003    --
71004    -- set accounting line type info
71005    --
71006    xla_ae_lines_pkg.SetAcctLineType
71007       (p_component_type             => l_component_type
71008       ,p_event_type_code            => l_event_type_code
71009       ,p_line_definition_owner_code => l_line_definition_owner_code
71010       ,p_line_definition_code       => l_line_definition_code
71011       ,p_accounting_line_code       => l_component_code
71012       ,p_accounting_line_type_code  => l_component_type_code
71013       ,p_accounting_line_appl_id    => l_component_appl_id
71014       ,p_amb_context_code           => l_amb_context_code
71015       ,p_entity_code                => l_entity_code
71016       ,p_event_class_code           => l_event_class_code);
71017    --
71018    -- set accounting class
71019    --
71020    xla_ae_lines_pkg.SetAcctClass(
71021            p_accounting_class_code  => 'GAIN'
71022          , p_ae_header_id           => l_ae_header_id
71023          );
71024 
71025    --
71026    -- set rounding class
71027    --
71028    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71029                       'GAIN';
71030 
71031    --
71032    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71033    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71034    --
71035    -- bulk performance
71036    --
71040       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71037    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71038 
71039    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71041 
71042    -- 4955764
71043    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71044       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71045 
71046    -- 4458381 Public Sector Enh
71047    
71048    --
71049    -- set accounting attributes for the line type
71050    --
71051    l_entered_amt_idx := 10;
71052    l_accted_amt_idx  := 15;
71053    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
71054    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71055    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
71056    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71057    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
71058    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71059    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
71060    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71061    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
71062    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71063    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
71064    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71065    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
71066    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71067    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
71068    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71069    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
71070    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71071    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
71072    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71073    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
71074    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71075    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
71076    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71077    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
71078    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71079    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
71080    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71081    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
71082    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71083    l_rec_acct_attrs.array_num_value(15)  := p_source_156;
71084    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71085    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
71086    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71087    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
71088    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71089    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
71090    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71091    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
71092    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71093    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
71094    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71095    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
71096    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71097    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
71098    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71099    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
71100    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71101    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
71102 
71103    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71104    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71105 
71106    ---------------------------------------------------------------------------------------------------------------
71107    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71108    ---------------------------------------------------------------------------------------------------------------
71109    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71110 
71111    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71112    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71113 
71114    IF xla_accounting_cache_pkg.GetValueChar
71115          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71116          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71117    AND l_bflow_method_code = 'PRIOR_ENTRY'
71118 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71119    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71120          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71121        )
71122    THEN
71123          xla_ae_lines_pkg.BflowUpgEntry
71124            (p_business_method_code    => l_bflow_method_code
71125            ,p_business_class_code     => l_bflow_class_code
71126            ,p_balance_type            => l_balance_type_code);
71130    END IF;
71127    ELSE
71128       NULL;
71129 -- No business flow processing for business flow method of NONE.
71131 
71132    --
71133    -- call analytical criteria
71134    --
71135    
71136    --
71137    -- call description
71138    --
71139    -- No description or it is inherited.
71140    --
71141    -- call ADRs
71142    -- Bug 4922099
71143    --
71144    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71145         (NVL(l_actual_upg_option, 'N') = 'O') OR
71146         (NVL(l_enc_upg_option, 'N') = 'O')
71147       )
71148    THEN
71149    NULL;
71150    --
71151    --
71152    
71153   l_ccid := AcctDerRule_40(
71154            p_application_id           => p_application_id
71155          , p_ae_header_id             => l_ae_header_id 
71156 , p_source_10 => p_source_10
71157 , p_source_10_meaning => p_source_10_meaning
71158 , p_source_25 => p_source_25
71159 , p_source_31 => p_source_31
71160 , p_source_32 => p_source_32
71161          , x_transaction_coa_id       => l_adr_transaction_coa_id
71162          , x_accounting_coa_id        => l_adr_accounting_coa_id
71163          , x_value_type_code          => l_adr_value_type_code
71164          , p_side                     => 'NA'
71165    );
71166 
71167    xla_ae_lines_pkg.set_ccid(
71168     p_code_combination_id          => l_ccid
71169   , p_value_type_code              => l_adr_value_type_code
71170   , p_transaction_coa_id           => l_adr_transaction_coa_id
71171   , p_accounting_coa_id            => l_adr_accounting_coa_id
71172   , p_adr_code                     => 'AP_REAL_GAIN'
71173   , p_adr_type_code                => 'S'
71174   , p_component_type               => l_component_type
71175   , p_component_code               => l_component_code
71176   , p_component_type_code          => l_component_type_code
71177   , p_component_appl_id            => l_component_appl_id
71178   , p_amb_context_code             => l_amb_context_code
71179   , p_side                         => 'NA'
71180   );
71181 
71182 
71183    l_segment := AcctDerRule_23(
71184            p_application_id           => p_application_id
71185          , p_ae_header_id             => l_ae_header_id 
71186 , p_source_10 => p_source_10
71187 , p_source_10_meaning => p_source_10_meaning
71188 , p_source_25 => p_source_25
71189          , x_transaction_coa_id       => l_adr_transaction_coa_id
71190          , x_accounting_coa_id        => l_adr_accounting_coa_id
71191          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71192          , x_flex_value_set_id        => l_adr_flex_value_set_id
71193          , x_value_type_code          => l_adr_value_type_code
71194          , x_value_combination_id     => l_adr_value_combination_id
71195          , x_value_segment_code       => l_adr_value_segment_code
71196          , p_side                     => 'NA'
71197          , p_override_seg_flag        => 'Y'
71198    );
71199 
71200    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71201 
71202       xla_ae_lines_pkg.set_segment(
71203           p_to_segment_code         => 'GL_BALANCING'
71204         , p_segment_value           => l_segment
71205         , p_from_segment_code       => l_adr_value_segment_code
71206         , p_from_combination_id     => l_adr_value_combination_id
71207         , p_value_type_code         => l_adr_value_type_code
71208         , p_transaction_coa_id      => l_adr_transaction_coa_id
71209         , p_accounting_coa_id       => l_adr_accounting_coa_id
71210         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71211         , p_flex_value_set_id       => l_adr_flex_value_set_id
71212         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71213         , p_adr_type_code           => 'S'
71214         , p_component_type          => l_component_type
71215         , p_component_code          => l_component_code
71216         , p_component_type_code     => l_component_type_code
71217         , p_component_appl_id       => l_component_appl_id
71218         , p_amb_context_code        => l_amb_context_code
71219         , p_entity_code             => 'AP_PAYMENTS'
71220         , p_event_class_code        => 'PAYMENTS'
71221         , p_side                    => 'NA'
71222         );
71223 
71224   END IF;
71225 
71226    l_segment := AcctDerRule_17(
71227            p_application_id           => p_application_id
71228          , p_ae_header_id             => l_ae_header_id 
71229 , p_source_10 => p_source_10
71230 , p_source_10_meaning => p_source_10_meaning
71231 , p_source_31 => p_source_31
71232 , p_source_32 => p_source_32
71233          , x_transaction_coa_id       => l_adr_transaction_coa_id
71234          , x_accounting_coa_id        => l_adr_accounting_coa_id
71235          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71236          , x_flex_value_set_id        => l_adr_flex_value_set_id
71237          , x_value_type_code          => l_adr_value_type_code
71238          , x_value_combination_id     => l_adr_value_combination_id
71239          , x_value_segment_code       => l_adr_value_segment_code
71240          , p_side                     => 'NA'
71241          , p_override_seg_flag        => 'Y'
71242    );
71243 
71244    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71245 
71246       xla_ae_lines_pkg.set_segment(
71247           p_to_segment_code         => 'GL_ACCOUNT'
71248         , p_segment_value           => l_segment
71252         , p_transaction_coa_id      => l_adr_transaction_coa_id
71249         , p_from_segment_code       => l_adr_value_segment_code
71250         , p_from_combination_id     => l_adr_value_combination_id
71251         , p_value_type_code         => l_adr_value_type_code
71253         , p_accounting_coa_id       => l_adr_accounting_coa_id
71254         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71255         , p_flex_value_set_id       => l_adr_flex_value_set_id
71256         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71257         , p_adr_type_code           => 'S'
71258         , p_component_type          => l_component_type
71259         , p_component_code          => l_component_code
71260         , p_component_type_code     => l_component_type_code
71261         , p_component_appl_id       => l_component_appl_id
71262         , p_amb_context_code        => l_amb_context_code
71263         , p_entity_code             => 'AP_PAYMENTS'
71264         , p_event_class_code        => 'PAYMENTS'
71265         , p_side                    => 'NA'
71266         );
71267 
71268   END IF;
71269 
71270    --
71271    --
71272    END IF;
71273    --
71274    -- Bug 4922099
71275    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71276           (NVL(l_enc_upg_option, 'N') = 'O')
71277         ) AND
71278         (l_bflow_method_code = 'PRIOR_ENTRY')
71279       )
71280    THEN
71281       IF
71282       --
71283       1 = 2
71284       --
71285       THEN
71286       xla_accounting_err_pkg.build_message
71287                                     (p_appli_s_name            => 'XLA'
71288                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71289                                     ,p_token_1                 => 'LINE_NUMBER'
71290                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71291                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71292                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71293                                                                              l_component_type
71294                                                                             ,l_component_code
71295                                                                             ,l_component_type_code
71296                                                                             ,l_component_appl_id
71297                                                                             ,l_amb_context_code
71298                                                                             ,l_entity_code
71299                                                                             ,l_event_class_code
71300                                                                            )
71301                                     ,p_token_3                 => 'OWNER'
71302                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71303                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71304                                                                           ,p_lookup_code    => l_component_type_code
71305                                                                          )
71306                                     ,p_token_4                 => 'PRODUCT_NAME'
71307                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71308                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71309                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71310                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71311                                     ,p_ae_header_id            =>  NULL
71312                                        );
71313 
71314         IF (C_LEVEL_ERROR>= g_log_level) THEN
71315                  trace
71316                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71317                       ,p_level    => C_LEVEL_ERROR
71318                       ,p_module   => l_log_module);
71319         END IF;
71320       END IF;
71321    END IF;
71322    --
71323    --
71324    ------------------------------------------------------------------------------------------------
71325    -- 4219869 Business Flow
71326    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71327    -- Prior Entry.  Currently, the following code is always generated.
71328    ------------------------------------------------------------------------------------------------
71329    XLA_AE_LINES_PKG.ValidateCurrentLine;
71330 
71331    ------------------------------------------------------------------------------------
71332    -- 4219869 Business Flow
71333    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71334    ------------------------------------------------------------------------------------
71335    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71336 
71337    ----------------------------------------------------------------------------------
71338    -- 4219869 Business Flow
71339    -- Update journal entry status -- Need to generate this within IF <condition>
71340    ----------------------------------------------------------------------------------
71344          );
71341    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71342          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71343          ,p_balance_type_code => l_balance_type_code
71345 
71346    -------------------------------------------------------------------------------------------
71347    -- 4262811 - Generate the Accrual Reversal lines
71348    -------------------------------------------------------------------------------------------
71349    BEGIN
71350       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71351                               (g_array_event(p_event_id).array_value_num('header_index'));
71352       IF l_acc_rev_flag IS NULL THEN
71353          l_acc_rev_flag := 'N';
71354       END IF;
71355    EXCEPTION
71356       WHEN OTHERS THEN
71357          l_acc_rev_flag := 'N';
71358    END;
71359    --
71360    IF (l_acc_rev_flag = 'Y') THEN
71361 
71362        -- 4645092  ------------------------------------------------------------------------------
71363        -- To allow MPA report to determine if it should generate report process
71364        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71365        ------------------------------------------------------------------------------------------
71366 
71367        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71368        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71369    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71370    -- call ADRs
71371    -- Bug 4922099
71372    --
71373    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71374         (NVL(l_actual_upg_option, 'N') = 'O') OR
71375         (NVL(l_enc_upg_option, 'N') = 'O')
71376       )
71377    THEN
71378    NULL;
71379    --
71380    --
71381    
71382   l_ccid := AcctDerRule_40(
71383            p_application_id           => p_application_id
71384          , p_ae_header_id             => l_ae_header_id 
71385 , p_source_10 => p_source_10
71386 , p_source_10_meaning => p_source_10_meaning
71387 , p_source_25 => p_source_25
71388 , p_source_31 => p_source_31
71389 , p_source_32 => p_source_32
71390          , x_transaction_coa_id       => l_adr_transaction_coa_id
71391          , x_accounting_coa_id        => l_adr_accounting_coa_id
71392          , x_value_type_code          => l_adr_value_type_code
71393          , p_side                     => 'NA'
71394    );
71395 
71396    xla_ae_lines_pkg.set_ccid(
71397     p_code_combination_id          => l_ccid
71398   , p_value_type_code              => l_adr_value_type_code
71399   , p_transaction_coa_id           => l_adr_transaction_coa_id
71400   , p_accounting_coa_id            => l_adr_accounting_coa_id
71401   , p_adr_code                     => 'AP_REAL_GAIN'
71402   , p_adr_type_code                => 'S'
71403   , p_component_type               => l_component_type
71404   , p_component_code               => l_component_code
71405   , p_component_type_code          => l_component_type_code
71406   , p_component_appl_id            => l_component_appl_id
71407   , p_amb_context_code             => l_amb_context_code
71408   , p_side                         => 'NA'
71409   );
71410 
71411 
71412    l_segment := AcctDerRule_23(
71413            p_application_id           => p_application_id
71414          , p_ae_header_id             => l_ae_header_id 
71415 , p_source_10 => p_source_10
71416 , p_source_10_meaning => p_source_10_meaning
71417 , p_source_25 => p_source_25
71418          , x_transaction_coa_id       => l_adr_transaction_coa_id
71419          , x_accounting_coa_id        => l_adr_accounting_coa_id
71420          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71421          , x_flex_value_set_id        => l_adr_flex_value_set_id
71422          , x_value_type_code          => l_adr_value_type_code
71423          , x_value_combination_id     => l_adr_value_combination_id
71424          , x_value_segment_code       => l_adr_value_segment_code
71425          , p_side                     => 'NA'
71426          , p_override_seg_flag        => 'Y'
71427    );
71428 
71429    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71430 
71431       xla_ae_lines_pkg.set_segment(
71432           p_to_segment_code         => 'GL_BALANCING'
71433         , p_segment_value           => l_segment
71434         , p_from_segment_code       => l_adr_value_segment_code
71435         , p_from_combination_id     => l_adr_value_combination_id
71436         , p_value_type_code         => l_adr_value_type_code
71437         , p_transaction_coa_id      => l_adr_transaction_coa_id
71438         , p_accounting_coa_id       => l_adr_accounting_coa_id
71439         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71440         , p_flex_value_set_id       => l_adr_flex_value_set_id
71441         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71442         , p_adr_type_code           => 'S'
71443         , p_component_type          => l_component_type
71444         , p_component_code          => l_component_code
71445         , p_component_type_code     => l_component_type_code
71446         , p_component_appl_id       => l_component_appl_id
71447         , p_amb_context_code        => l_amb_context_code
71448         , p_entity_code             => 'AP_PAYMENTS'
71449         , p_event_class_code        => 'PAYMENTS'
71450         , p_side                    => 'NA'
71451         );
71452 
71453   END IF;
71454 
71455    l_segment := AcctDerRule_17(
71456            p_application_id           => p_application_id
71460 , p_source_31 => p_source_31
71457          , p_ae_header_id             => l_ae_header_id 
71458 , p_source_10 => p_source_10
71459 , p_source_10_meaning => p_source_10_meaning
71461 , p_source_32 => p_source_32
71462          , x_transaction_coa_id       => l_adr_transaction_coa_id
71463          , x_accounting_coa_id        => l_adr_accounting_coa_id
71464          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71465          , x_flex_value_set_id        => l_adr_flex_value_set_id
71466          , x_value_type_code          => l_adr_value_type_code
71467          , x_value_combination_id     => l_adr_value_combination_id
71468          , x_value_segment_code       => l_adr_value_segment_code
71469          , p_side                     => 'NA'
71470          , p_override_seg_flag        => 'Y'
71471    );
71472 
71473    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71474 
71475       xla_ae_lines_pkg.set_segment(
71476           p_to_segment_code         => 'GL_ACCOUNT'
71477         , p_segment_value           => l_segment
71478         , p_from_segment_code       => l_adr_value_segment_code
71479         , p_from_combination_id     => l_adr_value_combination_id
71480         , p_value_type_code         => l_adr_value_type_code
71481         , p_transaction_coa_id      => l_adr_transaction_coa_id
71482         , p_accounting_coa_id       => l_adr_accounting_coa_id
71483         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71484         , p_flex_value_set_id       => l_adr_flex_value_set_id
71485         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71486         , p_adr_type_code           => 'S'
71487         , p_component_type          => l_component_type
71488         , p_component_code          => l_component_code
71489         , p_component_type_code     => l_component_type_code
71490         , p_component_appl_id       => l_component_appl_id
71491         , p_amb_context_code        => l_amb_context_code
71492         , p_entity_code             => 'AP_PAYMENTS'
71493         , p_event_class_code        => 'PAYMENTS'
71494         , p_side                    => 'NA'
71495         );
71496 
71497   END IF;
71498 
71499    --
71500    --
71501    END IF;
71502 
71503        --
71504        -- Update the line information that should be overwritten
71505        --
71506        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71507                                          p_header_num   => 1);
71508        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71509 
71510        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71511 
71512        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71513           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71514        END IF;
71515 
71516       --
71517       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71518       --
71519       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71520           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71521       ELSE
71522           ---------------------------------------------------------------------------------------------------
71523           -- 4262811a Switch Sign
71524           ---------------------------------------------------------------------------------------------------
71525           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71526           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71527                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71528           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71529                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71530           -- 5132302
71531           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71532                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71533 
71534       END IF;
71535 
71536       -- 4955764
71537       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71538       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71539 
71540 
71541       XLA_AE_LINES_PKG.ValidateCurrentLine;
71542       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71543 
71544       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71545                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71546                ,p_balance_type_code => l_balance_type_code);
71547 
71548    END IF;
71549 
71550    -----------------------------------------------------------------------------------------
71551    -- 4262811 Multiperiod Accounting
71552    -----------------------------------------------------------------------------------------
71553      -- No MPA option is assigned.
71554 
71555 
71556 END IF;
71557 END IF;
71558 --
71559 
71560 --
71561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71562    trace
71563       (p_msg      => 'END of AcctLineType_140'
71564       ,p_level    => C_LEVEL_PROCEDURE
71565       ,p_module   => l_log_module);
71566 END IF;
71567 --
71568 EXCEPTION
71572        xla_exceptions_pkg.raise_message
71569   WHEN xla_exceptions_pkg.application_exception THEN
71570       RAISE;
71571   WHEN OTHERS THEN
71573            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_140');
71574 END AcctLineType_140;
71575 --
71576 
71577 ---------------------------------------
71578 --
71579 -- PRIVATE FUNCTION
71580 --         AcctLineType_141
71581 --
71582 ---------------------------------------
71583 PROCEDURE AcctLineType_141 (
71584   p_application_id        IN NUMBER
71585  ,p_event_id              IN NUMBER
71586  ,p_calculate_acctd_flag  IN VARCHAR2
71587  ,p_calculate_g_l_flag    IN VARCHAR2
71588  ,p_actual_flag           IN OUT VARCHAR2
71589  ,p_balance_type_code     OUT VARCHAR2
71590  ,p_gain_or_loss_ref      OUT VARCHAR2
71591  
71592 --Payment Currency Code
71593  , p_source_8            IN VARCHAR2
71594 --Automatic Offsets Value
71595  , p_source_10            IN VARCHAR2
71596  , p_source_10_meaning    IN VARCHAR2
71597 --Invoice Distribution Account
71598  , p_source_25            IN NUMBER
71599 --Internal Realized Gain Account
71600  , p_source_31            IN NUMBER
71601 --Bank Gain Account
71602  , p_source_32            IN NUMBER
71603 --When to Account for Payment Option
71604  , p_source_57            IN VARCHAR2
71605 --Accounting Reversal Indicator
71606  , p_source_58            IN VARCHAR2
71607 --Distribution Link Type
71608  , p_source_60            IN VARCHAR2
71609 --Override Accounted Amount Indicator
71610  , p_source_85            IN VARCHAR2
71611  , p_source_85_meaning    IN VARCHAR2
71612 --Third Party Type
71613  , p_source_88            IN VARCHAR2
71614 --Invoice Distribution Tax Line Identifier
71615  , p_source_91            IN NUMBER
71616 --Invoice Distribution Summary Tax Line Identifier
71617  , p_source_93            IN NUMBER
71618 --Business Flow Accounts Payable Application Identifier
71619  , p_source_96            IN NUMBER
71620 --Payment Distribution Type
71621  , p_source_101            IN VARCHAR2
71622  , p_source_101_meaning    IN VARCHAR2
71623 --Payment Distribution Amount
71624  , p_source_102            IN NUMBER
71625 --Business Flow Payment Distribution Type
71626  , p_source_103            IN VARCHAR2
71627 --Business Flow Payment Entity Code
71628  , p_source_104            IN VARCHAR2
71629 --Business Flow Payment Distribution Identifier
71630  , p_source_105            IN NUMBER
71631 --Business Flow Payment Identifier
71632  , p_source_106            IN NUMBER
71633 --Payment Distribution Identifier
71634  , p_source_107            IN NUMBER
71635 --Cleared Exchange Date
71636  , p_source_109            IN DATE
71637 --Cleared Exchange Rate
71638  , p_source_110            IN NUMBER
71639 --Cleared Exchange Rate Type
71640  , p_source_111            IN VARCHAR2
71641 --Payment Supplier Identifier
71642  , p_source_113            IN NUMBER
71643 --Payment Supplier Site Identifier
71644  , p_source_114            IN NUMBER
71645 --Payment Distribution Reversed Identifier
71646  , p_source_115            IN NUMBER
71647 --Payment Maturity Date
71648  , p_source_117            IN DATE
71649 --Gain or Loss Indicator between Payment and Clearing
71650  , p_source_162            IN VARCHAR2
71651 --Payment/Clearing Ledger Amount Difference
71652  , p_source_163            IN NUMBER
71653 )
71654 IS
71655 
71656 l_component_type              VARCHAR2(80);
71657 l_component_code              VARCHAR2(30);
71658 l_component_type_code         VARCHAR2(1);
71659 l_component_appl_id           INTEGER;
71660 l_amb_context_code            VARCHAR2(30);
71661 l_entity_code                 VARCHAR2(30);
71662 l_event_class_code            VARCHAR2(30);
71663 l_ae_header_id                NUMBER;
71664 l_event_type_code             VARCHAR2(30);
71665 l_line_definition_code        VARCHAR2(30);
71666 l_line_definition_owner_code  VARCHAR2(1);
71667 --
71668 -- adr variables
71669 l_segment                     VARCHAR2(30);
71670 l_ccid                        NUMBER;
71671 l_adr_transaction_coa_id      NUMBER;
71672 l_adr_accounting_coa_id       NUMBER;
71673 l_adr_flexfield_segment_code  VARCHAR2(30);
71674 l_adr_flex_value_set_id       NUMBER;
71675 l_adr_value_type_code         VARCHAR2(30);
71676 l_adr_value_combination_id    NUMBER;
71677 l_adr_value_segment_code      VARCHAR2(30);
71678 
71679 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
71680 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
71681 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
71682 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
71683 
71684 -- 4262811 Variables ------------------------------------------------------------------------------------------
71685 l_entered_amt_idx             NUMBER;
71686 l_accted_amt_idx              NUMBER;
71687 l_acc_rev_flag                VARCHAR2(1);
71688 l_accrual_line_num            NUMBER;
71689 l_tmp_amt                     NUMBER;
71690 l_acc_rev_natural_side_code   VARCHAR2(1);
71691 
71692 l_num_entries                 NUMBER;
71693 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
71694 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
71695 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
71696 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
71697 l_recog_line_1                NUMBER;
71698 l_recog_line_2                NUMBER;
71699 
71700 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
71704 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71701 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
71702 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
71703 
71705 
71706 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
71707 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
71708 
71709 ---------------------------------------------------------------------------------------------------------------
71710 
71711 
71712 --
71713 -- bulk performance
71714 --
71715 l_balance_type_code           VARCHAR2(1);
71716 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
71717 l_log_module                  VARCHAR2(240);
71718 
71719 --
71720 -- Upgrade strategy
71721 --
71722 l_actual_upg_option           VARCHAR2(1);
71723 l_enc_upg_option           VARCHAR2(1);
71724 
71725 --
71726 BEGIN
71727 --
71728 IF g_log_enabled THEN
71729       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
71730 END IF;
71731 --
71732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71733 
71734       trace
71735          (p_msg      => 'BEGIN of AcctLineType_141'
71736          ,p_level    => C_LEVEL_PROCEDURE
71737          ,p_module   => l_log_module);
71738 
71739 END IF;
71740 --
71741 l_component_type             := 'AMB_JLT';
71742 l_component_code             := 'AP_GAIN_PMT_CLEAR';
71743 l_component_type_code        := 'S';
71744 l_component_appl_id          :=  200;
71745 l_amb_context_code           := 'DEFAULT';
71746 l_entity_code                := 'AP_PAYMENTS';
71747 l_event_class_code           := 'RECONCILED PAYMENTS';
71748 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
71749 l_line_definition_owner_code := 'S';
71750 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
71751 --
71752 l_balance_type_code          := 'A';
71753 l_segment                     := NULL;
71754 l_ccid                        := NULL;
71755 l_adr_transaction_coa_id      := NULL;
71756 l_adr_accounting_coa_id       := NULL;
71757 l_adr_flexfield_segment_code  := NULL;
71758 l_adr_flex_value_set_id       := NULL;
71759 l_adr_value_type_code         := NULL;
71760 l_adr_value_combination_id    := NULL;
71761 l_adr_value_segment_code      := NULL;
71762 
71763 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
71764 l_bflow_class_code           := '';    -- 4219869 Business Flow
71765 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71766 l_budgetary_control_flag     := 'N';
71767 
71768 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71769 l_bflow_applied_to_amt       := NULL; -- 5132302
71770 l_entered_amt_idx            := NULL;          -- 4262811
71771 l_accted_amt_idx             := NULL;          -- 4262811
71772 l_acc_rev_flag               := NULL;          -- 4262811
71773 l_accrual_line_num           := NULL;          -- 4262811
71774 l_tmp_amt                    := NULL;          -- 4262811
71775 --
71776 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71777             (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
71778                return;
71779   END IF;
71780   
71781 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71782     l_balance_type_code <> 'B' THEN
71783 IF NVL(p_source_57,'
71784 ') =  'ALWAYS_ALWAYS' AND 
71785 p_source_117 IS NULL AND 
71786 NVL(p_source_162,'
71787 ') =  'GAIN' AND 
71788 NVL(p_source_101,'
71789 ') <>  'EXCHANGE RATE VARIANCE' AND 
71790 NVL(p_source_101,'
71791 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
71792 NVL(p_source_101,'
71793 ') <>  'BANK CHARGE' AND 
71794 NVL(p_source_101,'
71795 ') <>  'BANK ERROR' AND 
71796 NVL(p_source_101,'
71797 ') <>  'AWT'
71798  THEN 
71799 
71800    --
71801    XLA_AE_LINES_PKG.SetNewLine;
71802 
71803    p_balance_type_code          := l_balance_type_code;
71804    -- set the flag so later we will know whether the gain loss line needs to be created
71805    
71806    IF(l_balance_type_code = 'A' ) THEN
71807      p_actual_flag :='G';
71808    END IF;
71809 
71810    --
71811    -- bulk performance
71812    --
71813    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71814                                       p_header_num   => 0); -- 4262811
71815    --
71816    -- set accounting line options
71817    --
71818    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71819            p_natural_side_code          => 'C'
71820          , p_gain_or_loss_flag          => 'Y'
71821          , p_gl_transfer_mode_code      => 'S'
71822          , p_acct_entry_type_code       => 'A'
71823          , p_switch_side_flag           => 'Y'
71824          , p_merge_duplicate_code       => 'A'
71825          );
71826    --
71827    l_acc_rev_natural_side_code := 'D';  -- 4262811
71828    -- 
71829    --
71830    -- set accounting line type info
71831    --
71832    xla_ae_lines_pkg.SetAcctLineType
71833       (p_component_type             => l_component_type
71834       ,p_event_type_code            => l_event_type_code
71838       ,p_accounting_line_type_code  => l_component_type_code
71835       ,p_line_definition_owner_code => l_line_definition_owner_code
71836       ,p_line_definition_code       => l_line_definition_code
71837       ,p_accounting_line_code       => l_component_code
71839       ,p_accounting_line_appl_id    => l_component_appl_id
71840       ,p_amb_context_code           => l_amb_context_code
71841       ,p_entity_code                => l_entity_code
71842       ,p_event_class_code           => l_event_class_code);
71843    --
71844    -- set accounting class
71845    --
71846    xla_ae_lines_pkg.SetAcctClass(
71847            p_accounting_class_code  => 'GAIN'
71848          , p_ae_header_id           => l_ae_header_id
71849          );
71850 
71851    --
71852    -- set rounding class
71853    --
71854    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71855                       'GAIN';
71856 
71857    --
71858    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71859    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71860    --
71861    -- bulk performance
71862    --
71863    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71864 
71865    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71866       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71867 
71868    -- 4955764
71869    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71870       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71871 
71872    -- 4458381 Public Sector Enh
71873    
71874    --
71875    -- set accounting attributes for the line type
71876    --
71877    l_entered_amt_idx := 10;
71878    l_accted_amt_idx  := 15;
71879    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
71880    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71881    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
71882    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71883    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
71884    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71885    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
71886    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71887    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
71888    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71889    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
71890    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71891    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
71892    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71893    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
71894    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71895    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
71896    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71897    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
71898    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71899    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
71900    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71901    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
71902    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71903    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
71904    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71905    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
71906    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71907    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
71908    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71909    l_rec_acct_attrs.array_num_value(15)  := p_source_163;
71910    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71911    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
71912    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71913    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
71914    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71915    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
71916    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71917    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
71918    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71919    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
71920    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71921    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
71922    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71923    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
71924    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71925    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
71926    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71927    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
71928 
71929    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71930    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71931 
71935    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71932    ---------------------------------------------------------------------------------------------------------------
71933    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71934    ---------------------------------------------------------------------------------------------------------------
71936 
71937    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71938    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71939 
71940    IF xla_accounting_cache_pkg.GetValueChar
71941          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71942          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71943    AND l_bflow_method_code = 'PRIOR_ENTRY'
71944 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71945    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71946          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71947        )
71948    THEN
71949          xla_ae_lines_pkg.BflowUpgEntry
71950            (p_business_method_code    => l_bflow_method_code
71951            ,p_business_class_code     => l_bflow_class_code
71952            ,p_balance_type            => l_balance_type_code);
71953    ELSE
71954       NULL;
71955 -- No business flow processing for business flow method of NONE.
71956    END IF;
71957 
71958    --
71959    -- call analytical criteria
71960    --
71961    
71962    --
71963    -- call description
71964    --
71965    -- No description or it is inherited.
71966    --
71967    -- call ADRs
71968    -- Bug 4922099
71969    --
71970    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71971         (NVL(l_actual_upg_option, 'N') = 'O') OR
71972         (NVL(l_enc_upg_option, 'N') = 'O')
71973       )
71974    THEN
71975    NULL;
71976    --
71977    --
71978    
71979   l_ccid := AcctDerRule_40(
71980            p_application_id           => p_application_id
71981          , p_ae_header_id             => l_ae_header_id 
71982 , p_source_10 => p_source_10
71983 , p_source_10_meaning => p_source_10_meaning
71984 , p_source_25 => p_source_25
71985 , p_source_31 => p_source_31
71986 , p_source_32 => p_source_32
71987          , x_transaction_coa_id       => l_adr_transaction_coa_id
71988          , x_accounting_coa_id        => l_adr_accounting_coa_id
71989          , x_value_type_code          => l_adr_value_type_code
71990          , p_side                     => 'NA'
71991    );
71992 
71993    xla_ae_lines_pkg.set_ccid(
71994     p_code_combination_id          => l_ccid
71995   , p_value_type_code              => l_adr_value_type_code
71996   , p_transaction_coa_id           => l_adr_transaction_coa_id
71997   , p_accounting_coa_id            => l_adr_accounting_coa_id
71998   , p_adr_code                     => 'AP_REAL_GAIN'
71999   , p_adr_type_code                => 'S'
72000   , p_component_type               => l_component_type
72001   , p_component_code               => l_component_code
72002   , p_component_type_code          => l_component_type_code
72003   , p_component_appl_id            => l_component_appl_id
72004   , p_amb_context_code             => l_amb_context_code
72005   , p_side                         => 'NA'
72006   );
72007 
72008 
72009    l_segment := AcctDerRule_23(
72010            p_application_id           => p_application_id
72011          , p_ae_header_id             => l_ae_header_id 
72012 , p_source_10 => p_source_10
72013 , p_source_10_meaning => p_source_10_meaning
72014 , p_source_25 => p_source_25
72015          , x_transaction_coa_id       => l_adr_transaction_coa_id
72016          , x_accounting_coa_id        => l_adr_accounting_coa_id
72017          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72018          , x_flex_value_set_id        => l_adr_flex_value_set_id
72019          , x_value_type_code          => l_adr_value_type_code
72020          , x_value_combination_id     => l_adr_value_combination_id
72021          , x_value_segment_code       => l_adr_value_segment_code
72022          , p_side                     => 'NA'
72023          , p_override_seg_flag        => 'Y'
72024    );
72025 
72026    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72027 
72028       xla_ae_lines_pkg.set_segment(
72029           p_to_segment_code         => 'GL_BALANCING'
72030         , p_segment_value           => l_segment
72031         , p_from_segment_code       => l_adr_value_segment_code
72032         , p_from_combination_id     => l_adr_value_combination_id
72033         , p_value_type_code         => l_adr_value_type_code
72034         , p_transaction_coa_id      => l_adr_transaction_coa_id
72035         , p_accounting_coa_id       => l_adr_accounting_coa_id
72036         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72037         , p_flex_value_set_id       => l_adr_flex_value_set_id
72038         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72039         , p_adr_type_code           => 'S'
72040         , p_component_type          => l_component_type
72041         , p_component_code          => l_component_code
72042         , p_component_type_code     => l_component_type_code
72043         , p_component_appl_id       => l_component_appl_id
72047         , p_side                    => 'NA'
72044         , p_amb_context_code        => l_amb_context_code
72045         , p_entity_code             => 'AP_PAYMENTS'
72046         , p_event_class_code        => 'RECONCILED PAYMENTS'
72048         );
72049 
72050   END IF;
72051 
72052    l_segment := AcctDerRule_17(
72053            p_application_id           => p_application_id
72054          , p_ae_header_id             => l_ae_header_id 
72055 , p_source_10 => p_source_10
72056 , p_source_10_meaning => p_source_10_meaning
72057 , p_source_31 => p_source_31
72058 , p_source_32 => p_source_32
72059          , x_transaction_coa_id       => l_adr_transaction_coa_id
72060          , x_accounting_coa_id        => l_adr_accounting_coa_id
72061          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72062          , x_flex_value_set_id        => l_adr_flex_value_set_id
72063          , x_value_type_code          => l_adr_value_type_code
72064          , x_value_combination_id     => l_adr_value_combination_id
72065          , x_value_segment_code       => l_adr_value_segment_code
72066          , p_side                     => 'NA'
72067          , p_override_seg_flag        => 'Y'
72068    );
72069 
72070    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72071 
72072       xla_ae_lines_pkg.set_segment(
72073           p_to_segment_code         => 'GL_ACCOUNT'
72074         , p_segment_value           => l_segment
72075         , p_from_segment_code       => l_adr_value_segment_code
72076         , p_from_combination_id     => l_adr_value_combination_id
72077         , p_value_type_code         => l_adr_value_type_code
72078         , p_transaction_coa_id      => l_adr_transaction_coa_id
72079         , p_accounting_coa_id       => l_adr_accounting_coa_id
72080         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72081         , p_flex_value_set_id       => l_adr_flex_value_set_id
72082         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72083         , p_adr_type_code           => 'S'
72084         , p_component_type          => l_component_type
72085         , p_component_code          => l_component_code
72086         , p_component_type_code     => l_component_type_code
72087         , p_component_appl_id       => l_component_appl_id
72088         , p_amb_context_code        => l_amb_context_code
72089         , p_entity_code             => 'AP_PAYMENTS'
72090         , p_event_class_code        => 'RECONCILED PAYMENTS'
72091         , p_side                    => 'NA'
72092         );
72093 
72094   END IF;
72095 
72096    --
72097    --
72098    END IF;
72099    --
72100    -- Bug 4922099
72101    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72102           (NVL(l_enc_upg_option, 'N') = 'O')
72103         ) AND
72104         (l_bflow_method_code = 'PRIOR_ENTRY')
72105       )
72106    THEN
72107       IF
72108       --
72109       1 = 2
72110       --
72111       THEN
72112       xla_accounting_err_pkg.build_message
72113                                     (p_appli_s_name            => 'XLA'
72114                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72115                                     ,p_token_1                 => 'LINE_NUMBER'
72116                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72117                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72118                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72119                                                                              l_component_type
72120                                                                             ,l_component_code
72121                                                                             ,l_component_type_code
72122                                                                             ,l_component_appl_id
72123                                                                             ,l_amb_context_code
72124                                                                             ,l_entity_code
72125                                                                             ,l_event_class_code
72126                                                                            )
72127                                     ,p_token_3                 => 'OWNER'
72128                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72129                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72130                                                                           ,p_lookup_code    => l_component_type_code
72131                                                                          )
72132                                     ,p_token_4                 => 'PRODUCT_NAME'
72133                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72134                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72135                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72136                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72137                                     ,p_ae_header_id            =>  NULL
72138                                        );
72139 
72140         IF (C_LEVEL_ERROR>= g_log_level) THEN
72141                  trace
72142                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72146       END IF;
72143                       ,p_level    => C_LEVEL_ERROR
72144                       ,p_module   => l_log_module);
72145         END IF;
72147    END IF;
72148    --
72149    --
72150    ------------------------------------------------------------------------------------------------
72151    -- 4219869 Business Flow
72152    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72153    -- Prior Entry.  Currently, the following code is always generated.
72154    ------------------------------------------------------------------------------------------------
72155    XLA_AE_LINES_PKG.ValidateCurrentLine;
72156 
72157    ------------------------------------------------------------------------------------
72158    -- 4219869 Business Flow
72159    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72160    ------------------------------------------------------------------------------------
72161    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72162 
72163    ----------------------------------------------------------------------------------
72164    -- 4219869 Business Flow
72165    -- Update journal entry status -- Need to generate this within IF <condition>
72166    ----------------------------------------------------------------------------------
72167    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72168          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72169          ,p_balance_type_code => l_balance_type_code
72170          );
72171 
72172    -------------------------------------------------------------------------------------------
72173    -- 4262811 - Generate the Accrual Reversal lines
72174    -------------------------------------------------------------------------------------------
72175    BEGIN
72176       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72177                               (g_array_event(p_event_id).array_value_num('header_index'));
72178       IF l_acc_rev_flag IS NULL THEN
72179          l_acc_rev_flag := 'N';
72180       END IF;
72181    EXCEPTION
72182       WHEN OTHERS THEN
72183          l_acc_rev_flag := 'N';
72184    END;
72185    --
72186    IF (l_acc_rev_flag = 'Y') THEN
72187 
72188        -- 4645092  ------------------------------------------------------------------------------
72189        -- To allow MPA report to determine if it should generate report process
72190        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72191        ------------------------------------------------------------------------------------------
72192 
72193        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72194        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72195    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
72196    -- call ADRs
72197    -- Bug 4922099
72198    --
72199    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72200         (NVL(l_actual_upg_option, 'N') = 'O') OR
72201         (NVL(l_enc_upg_option, 'N') = 'O')
72202       )
72203    THEN
72204    NULL;
72205    --
72206    --
72207    
72208   l_ccid := AcctDerRule_40(
72209            p_application_id           => p_application_id
72210          , p_ae_header_id             => l_ae_header_id 
72211 , p_source_10 => p_source_10
72212 , p_source_10_meaning => p_source_10_meaning
72213 , p_source_25 => p_source_25
72214 , p_source_31 => p_source_31
72215 , p_source_32 => p_source_32
72216          , x_transaction_coa_id       => l_adr_transaction_coa_id
72217          , x_accounting_coa_id        => l_adr_accounting_coa_id
72218          , x_value_type_code          => l_adr_value_type_code
72219          , p_side                     => 'NA'
72220    );
72221 
72222    xla_ae_lines_pkg.set_ccid(
72223     p_code_combination_id          => l_ccid
72224   , p_value_type_code              => l_adr_value_type_code
72225   , p_transaction_coa_id           => l_adr_transaction_coa_id
72226   , p_accounting_coa_id            => l_adr_accounting_coa_id
72227   , p_adr_code                     => 'AP_REAL_GAIN'
72228   , p_adr_type_code                => 'S'
72229   , p_component_type               => l_component_type
72230   , p_component_code               => l_component_code
72231   , p_component_type_code          => l_component_type_code
72232   , p_component_appl_id            => l_component_appl_id
72233   , p_amb_context_code             => l_amb_context_code
72234   , p_side                         => 'NA'
72235   );
72236 
72237 
72238    l_segment := AcctDerRule_23(
72239            p_application_id           => p_application_id
72240          , p_ae_header_id             => l_ae_header_id 
72241 , p_source_10 => p_source_10
72242 , p_source_10_meaning => p_source_10_meaning
72243 , p_source_25 => p_source_25
72244          , x_transaction_coa_id       => l_adr_transaction_coa_id
72245          , x_accounting_coa_id        => l_adr_accounting_coa_id
72246          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72247          , x_flex_value_set_id        => l_adr_flex_value_set_id
72248          , x_value_type_code          => l_adr_value_type_code
72249          , x_value_combination_id     => l_adr_value_combination_id
72250          , x_value_segment_code       => l_adr_value_segment_code
72251          , p_side                     => 'NA'
72252          , p_override_seg_flag        => 'Y'
72253    );
72254 
72255    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72256 
72257       xla_ae_lines_pkg.set_segment(
72261         , p_from_combination_id     => l_adr_value_combination_id
72258           p_to_segment_code         => 'GL_BALANCING'
72259         , p_segment_value           => l_segment
72260         , p_from_segment_code       => l_adr_value_segment_code
72262         , p_value_type_code         => l_adr_value_type_code
72263         , p_transaction_coa_id      => l_adr_transaction_coa_id
72264         , p_accounting_coa_id       => l_adr_accounting_coa_id
72265         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72266         , p_flex_value_set_id       => l_adr_flex_value_set_id
72267         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72268         , p_adr_type_code           => 'S'
72269         , p_component_type          => l_component_type
72270         , p_component_code          => l_component_code
72271         , p_component_type_code     => l_component_type_code
72272         , p_component_appl_id       => l_component_appl_id
72273         , p_amb_context_code        => l_amb_context_code
72274         , p_entity_code             => 'AP_PAYMENTS'
72275         , p_event_class_code        => 'RECONCILED PAYMENTS'
72276         , p_side                    => 'NA'
72277         );
72278 
72279   END IF;
72280 
72281    l_segment := AcctDerRule_17(
72282            p_application_id           => p_application_id
72283          , p_ae_header_id             => l_ae_header_id 
72284 , p_source_10 => p_source_10
72285 , p_source_10_meaning => p_source_10_meaning
72286 , p_source_31 => p_source_31
72287 , p_source_32 => p_source_32
72288          , x_transaction_coa_id       => l_adr_transaction_coa_id
72289          , x_accounting_coa_id        => l_adr_accounting_coa_id
72290          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72291          , x_flex_value_set_id        => l_adr_flex_value_set_id
72292          , x_value_type_code          => l_adr_value_type_code
72293          , x_value_combination_id     => l_adr_value_combination_id
72294          , x_value_segment_code       => l_adr_value_segment_code
72295          , p_side                     => 'NA'
72296          , p_override_seg_flag        => 'Y'
72297    );
72298 
72299    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72300 
72301       xla_ae_lines_pkg.set_segment(
72302           p_to_segment_code         => 'GL_ACCOUNT'
72303         , p_segment_value           => l_segment
72304         , p_from_segment_code       => l_adr_value_segment_code
72305         , p_from_combination_id     => l_adr_value_combination_id
72306         , p_value_type_code         => l_adr_value_type_code
72307         , p_transaction_coa_id      => l_adr_transaction_coa_id
72308         , p_accounting_coa_id       => l_adr_accounting_coa_id
72309         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72310         , p_flex_value_set_id       => l_adr_flex_value_set_id
72311         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72312         , p_adr_type_code           => 'S'
72313         , p_component_type          => l_component_type
72314         , p_component_code          => l_component_code
72315         , p_component_type_code     => l_component_type_code
72316         , p_component_appl_id       => l_component_appl_id
72317         , p_amb_context_code        => l_amb_context_code
72318         , p_entity_code             => 'AP_PAYMENTS'
72319         , p_event_class_code        => 'RECONCILED PAYMENTS'
72320         , p_side                    => 'NA'
72321         );
72322 
72323   END IF;
72324 
72325    --
72326    --
72327    END IF;
72328 
72329        --
72330        -- Update the line information that should be overwritten
72331        --
72332        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72333                                          p_header_num   => 1);
72334        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72335 
72336        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72337 
72338        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72339           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72340        END IF;
72341 
72342       --
72343       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72344       --
72345       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72346           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72347       ELSE
72348           ---------------------------------------------------------------------------------------------------
72349           -- 4262811a Switch Sign
72350           ---------------------------------------------------------------------------------------------------
72351           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72352           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72353                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72354           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72355                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72356           -- 5132302
72357           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72358                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72359 
72360       END IF;
72361 
72365 
72362       -- 4955764
72363       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72364       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72366 
72367       XLA_AE_LINES_PKG.ValidateCurrentLine;
72368       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72369 
72370       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72371                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72372                ,p_balance_type_code => l_balance_type_code);
72373 
72374    END IF;
72375 
72376    -----------------------------------------------------------------------------------------
72377    -- 4262811 Multiperiod Accounting
72378    -----------------------------------------------------------------------------------------
72379      -- No MPA option is assigned.
72380 
72381 
72382 END IF;
72383 END IF;
72384 --
72385 
72386 --
72387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72388    trace
72389       (p_msg      => 'END of AcctLineType_141'
72390       ,p_level    => C_LEVEL_PROCEDURE
72391       ,p_module   => l_log_module);
72392 END IF;
72393 --
72394 EXCEPTION
72395   WHEN xla_exceptions_pkg.application_exception THEN
72396       RAISE;
72397   WHEN OTHERS THEN
72398        xla_exceptions_pkg.raise_message
72399            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_141');
72400 END AcctLineType_141;
72401 --
72402 
72403 ---------------------------------------
72404 --
72405 -- PRIVATE FUNCTION
72406 --         AcctLineType_142
72407 --
72408 ---------------------------------------
72409 PROCEDURE AcctLineType_142 (
72410   p_application_id        IN NUMBER
72411  ,p_event_id              IN NUMBER
72412  ,p_calculate_acctd_flag  IN VARCHAR2
72413  ,p_calculate_g_l_flag    IN VARCHAR2
72414  ,p_actual_flag           IN OUT VARCHAR2
72415  ,p_balance_type_code     OUT VARCHAR2
72416  ,p_gain_or_loss_ref      OUT VARCHAR2
72417  
72418 --Payment Currency Code
72419  , p_source_8            IN VARCHAR2
72420 --Automatic Offsets Value
72421  , p_source_10            IN VARCHAR2
72422  , p_source_10_meaning    IN VARCHAR2
72423 --Invoice Distribution Account
72424  , p_source_25            IN NUMBER
72425 --Internal Realized Gain Account
72426  , p_source_31            IN NUMBER
72427 --Bank Gain Account
72428  , p_source_32            IN NUMBER
72429 --When to Account for Payment Option
72430  , p_source_57            IN VARCHAR2
72431 --Accounting Reversal Indicator
72432  , p_source_58            IN VARCHAR2
72433 --Distribution Link Type
72434  , p_source_60            IN VARCHAR2
72435 --Override Accounted Amount Indicator
72436  , p_source_85            IN VARCHAR2
72437  , p_source_85_meaning    IN VARCHAR2
72438 --Third Party Type
72439  , p_source_88            IN VARCHAR2
72440 --Business Flow Accounts Payable Application Identifier
72441  , p_source_96            IN NUMBER
72442 --Payment Distribution Type
72443  , p_source_101            IN VARCHAR2
72444  , p_source_101_meaning    IN VARCHAR2
72445 --Payment Distribution Amount
72446  , p_source_102            IN NUMBER
72447 --Business Flow Payment Distribution Type
72448  , p_source_103            IN VARCHAR2
72449 --Business Flow Payment Entity Code
72450  , p_source_104            IN VARCHAR2
72451 --Business Flow Payment Distribution Identifier
72452  , p_source_105            IN NUMBER
72453 --Business Flow Payment Identifier
72454  , p_source_106            IN NUMBER
72455 --Payment Distribution Identifier
72456  , p_source_107            IN NUMBER
72457 --Payment Supplier Identifier
72458  , p_source_113            IN NUMBER
72459 --Payment Supplier Site Identifier
72460  , p_source_114            IN NUMBER
72461 --Payment Distribution Reversed Identifier
72462  , p_source_115            IN NUMBER
72463 --Payment Maturity Date
72464  , p_source_117            IN DATE
72465 --Payment Exchange Date
72466  , p_source_120            IN DATE
72467 --Payment Exchange Rate
72468  , p_source_121            IN NUMBER
72469 --Payment Exchange Rate Type
72470  , p_source_122            IN VARCHAR2
72471 --Payment/Maturity Ledger Amount Difference
72472  , p_source_157            IN NUMBER
72473 --Gain or Loss Indicator between Payment and Maturity
72474  , p_source_164            IN VARCHAR2
72475 )
72476 IS
72477 
72478 l_component_type              VARCHAR2(80);
72479 l_component_code              VARCHAR2(30);
72480 l_component_type_code         VARCHAR2(1);
72481 l_component_appl_id           INTEGER;
72482 l_amb_context_code            VARCHAR2(30);
72483 l_entity_code                 VARCHAR2(30);
72484 l_event_class_code            VARCHAR2(30);
72485 l_ae_header_id                NUMBER;
72486 l_event_type_code             VARCHAR2(30);
72487 l_line_definition_code        VARCHAR2(30);
72488 l_line_definition_owner_code  VARCHAR2(1);
72489 --
72490 -- adr variables
72491 l_segment                     VARCHAR2(30);
72492 l_ccid                        NUMBER;
72493 l_adr_transaction_coa_id      NUMBER;
72494 l_adr_accounting_coa_id       NUMBER;
72495 l_adr_flexfield_segment_code  VARCHAR2(30);
72496 l_adr_flex_value_set_id       NUMBER;
72497 l_adr_value_type_code         VARCHAR2(30);
72498 l_adr_value_combination_id    NUMBER;
72499 l_adr_value_segment_code      VARCHAR2(30);
72500 
72504 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72501 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72502 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72503 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72505 
72506 -- 4262811 Variables ------------------------------------------------------------------------------------------
72507 l_entered_amt_idx             NUMBER;
72508 l_accted_amt_idx              NUMBER;
72509 l_acc_rev_flag                VARCHAR2(1);
72510 l_accrual_line_num            NUMBER;
72511 l_tmp_amt                     NUMBER;
72512 l_acc_rev_natural_side_code   VARCHAR2(1);
72513 
72514 l_num_entries                 NUMBER;
72515 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72516 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72517 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72518 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72519 l_recog_line_1                NUMBER;
72520 l_recog_line_2                NUMBER;
72521 
72522 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72523 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72524 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72525 
72526 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72527 
72528 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72529 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72530 
72531 ---------------------------------------------------------------------------------------------------------------
72532 
72533 
72534 --
72535 -- bulk performance
72536 --
72537 l_balance_type_code           VARCHAR2(1);
72538 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72539 l_log_module                  VARCHAR2(240);
72540 
72541 --
72542 -- Upgrade strategy
72543 --
72544 l_actual_upg_option           VARCHAR2(1);
72545 l_enc_upg_option           VARCHAR2(1);
72546 
72547 --
72548 BEGIN
72549 --
72550 IF g_log_enabled THEN
72551       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
72552 END IF;
72553 --
72554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72555 
72556       trace
72557          (p_msg      => 'BEGIN of AcctLineType_142'
72558          ,p_level    => C_LEVEL_PROCEDURE
72559          ,p_module   => l_log_module);
72560 
72561 END IF;
72562 --
72563 l_component_type             := 'AMB_JLT';
72564 l_component_code             := 'AP_GAIN_PMT_MAT';
72565 l_component_type_code        := 'S';
72566 l_component_appl_id          :=  200;
72567 l_amb_context_code           := 'DEFAULT';
72568 l_entity_code                := 'AP_PAYMENTS';
72569 l_event_class_code           := 'FUTURE DATED PAYMENTS';
72570 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
72571 l_line_definition_owner_code := 'S';
72572 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
72573 --
72574 l_balance_type_code          := 'A';
72575 l_segment                     := NULL;
72576 l_ccid                        := NULL;
72577 l_adr_transaction_coa_id      := NULL;
72578 l_adr_accounting_coa_id       := NULL;
72579 l_adr_flexfield_segment_code  := NULL;
72580 l_adr_flex_value_set_id       := NULL;
72581 l_adr_value_type_code         := NULL;
72582 l_adr_value_combination_id    := NULL;
72583 l_adr_value_segment_code      := NULL;
72584 
72585 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72586 l_bflow_class_code           := '';    -- 4219869 Business Flow
72587 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72588 l_budgetary_control_flag     := 'N';
72589 
72590 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72591 l_bflow_applied_to_amt       := NULL; -- 5132302
72592 l_entered_amt_idx            := NULL;          -- 4262811
72593 l_accted_amt_idx             := NULL;          -- 4262811
72594 l_acc_rev_flag               := NULL;          -- 4262811
72595 l_accrual_line_num           := NULL;          -- 4262811
72596 l_tmp_amt                    := NULL;          -- 4262811
72597 --
72598 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72599             (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
72600                return;
72601   END IF;
72602   
72603 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72604     l_balance_type_code <> 'B' THEN
72605 IF (NVL(p_source_57,'
72606 ') =  'ALWAYS_ALWAYS' OR 
72607 NVL(p_source_57,'
72608 ') =  'ISSUE_ISSUE') AND 
72609 p_source_117 IS NOT NULL AND 
72610 NVL(p_source_164,'
72611 ') =  'GAIN' AND 
72612 NVL(p_source_101,'
72613 ') <>  'EXCHANGE RATE VARIANCE' AND 
72614 NVL(p_source_101,'
72615 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
72616 NVL(p_source_101,'
72617 ') <>  'BANK CHARGE' AND 
72618 NVL(p_source_101,'
72619 ') <>  'BANK ERROR' AND 
72620 NVL(p_source_101,'
72621 ') <>  'AWT'
72622  THEN 
72623 
72624    --
72625    XLA_AE_LINES_PKG.SetNewLine;
72626 
72630    IF(l_balance_type_code = 'A' ) THEN
72627    p_balance_type_code          := l_balance_type_code;
72628    -- set the flag so later we will know whether the gain loss line needs to be created
72629    
72631      p_actual_flag :='G';
72632    END IF;
72633 
72634    --
72635    -- bulk performance
72636    --
72637    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72638                                       p_header_num   => 0); -- 4262811
72639    --
72640    -- set accounting line options
72641    --
72642    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72643            p_natural_side_code          => 'C'
72644          , p_gain_or_loss_flag          => 'Y'
72645          , p_gl_transfer_mode_code      => 'S'
72646          , p_acct_entry_type_code       => 'A'
72647          , p_switch_side_flag           => 'Y'
72648          , p_merge_duplicate_code       => 'A'
72649          );
72650    --
72651    l_acc_rev_natural_side_code := 'D';  -- 4262811
72652    -- 
72653    --
72654    -- set accounting line type info
72655    --
72656    xla_ae_lines_pkg.SetAcctLineType
72657       (p_component_type             => l_component_type
72658       ,p_event_type_code            => l_event_type_code
72659       ,p_line_definition_owner_code => l_line_definition_owner_code
72660       ,p_line_definition_code       => l_line_definition_code
72661       ,p_accounting_line_code       => l_component_code
72662       ,p_accounting_line_type_code  => l_component_type_code
72663       ,p_accounting_line_appl_id    => l_component_appl_id
72664       ,p_amb_context_code           => l_amb_context_code
72665       ,p_entity_code                => l_entity_code
72666       ,p_event_class_code           => l_event_class_code);
72667    --
72668    -- set accounting class
72669    --
72670    xla_ae_lines_pkg.SetAcctClass(
72671            p_accounting_class_code  => 'GAIN'
72672          , p_ae_header_id           => l_ae_header_id
72673          );
72674 
72675    --
72676    -- set rounding class
72677    --
72678    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72679                       'GAIN';
72680 
72681    --
72682    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72683    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72684    --
72685    -- bulk performance
72686    --
72687    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72688 
72689    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72690       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72691 
72692    -- 4955764
72693    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72694       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72695 
72696    -- 4458381 Public Sector Enh
72697    
72698    --
72699    -- set accounting attributes for the line type
72700    --
72701    l_entered_amt_idx := 9;
72702    l_accted_amt_idx  := 14;
72703    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
72704    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72705    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
72706    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
72707    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
72708    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72709    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
72710    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
72711    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
72712    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
72713    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
72714    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72715    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
72716    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
72717    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
72718    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
72719    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
72720    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
72721    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
72722    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
72723    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
72724    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
72725    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
72726    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
72727    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
72728    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
72729    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
72730    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
72731    l_rec_acct_attrs.array_num_value(14)  := p_source_157;
72732    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
72733    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
72734    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
72735    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
72739    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
72736    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
72737    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
72738    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
72740    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
72741    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
72742    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
72743    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
72744 
72745    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72746    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72747 
72748    ---------------------------------------------------------------------------------------------------------------
72749    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72750    ---------------------------------------------------------------------------------------------------------------
72751    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72752 
72753    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72754    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72755 
72756    IF xla_accounting_cache_pkg.GetValueChar
72757          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72758          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72759    AND l_bflow_method_code = 'PRIOR_ENTRY'
72760 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72761    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72762          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72763        )
72764    THEN
72765          xla_ae_lines_pkg.BflowUpgEntry
72766            (p_business_method_code    => l_bflow_method_code
72767            ,p_business_class_code     => l_bflow_class_code
72768            ,p_balance_type            => l_balance_type_code);
72769    ELSE
72770       NULL;
72771 -- No business flow processing for business flow method of NONE.
72772    END IF;
72773 
72774    --
72775    -- call analytical criteria
72776    --
72777    
72778    --
72779    -- call description
72780    --
72781    -- No description or it is inherited.
72782    --
72783    -- call ADRs
72784    -- Bug 4922099
72785    --
72786    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72787         (NVL(l_actual_upg_option, 'N') = 'O') OR
72788         (NVL(l_enc_upg_option, 'N') = 'O')
72789       )
72790    THEN
72791    NULL;
72792    --
72793    --
72794    
72795   l_ccid := AcctDerRule_40(
72796            p_application_id           => p_application_id
72797          , p_ae_header_id             => l_ae_header_id 
72798 , p_source_10 => p_source_10
72799 , p_source_10_meaning => p_source_10_meaning
72800 , p_source_25 => p_source_25
72801 , p_source_31 => p_source_31
72802 , p_source_32 => p_source_32
72803          , x_transaction_coa_id       => l_adr_transaction_coa_id
72804          , x_accounting_coa_id        => l_adr_accounting_coa_id
72805          , x_value_type_code          => l_adr_value_type_code
72806          , p_side                     => 'NA'
72807    );
72808 
72809    xla_ae_lines_pkg.set_ccid(
72810     p_code_combination_id          => l_ccid
72811   , p_value_type_code              => l_adr_value_type_code
72812   , p_transaction_coa_id           => l_adr_transaction_coa_id
72813   , p_accounting_coa_id            => l_adr_accounting_coa_id
72814   , p_adr_code                     => 'AP_REAL_GAIN'
72815   , p_adr_type_code                => 'S'
72816   , p_component_type               => l_component_type
72817   , p_component_code               => l_component_code
72818   , p_component_type_code          => l_component_type_code
72819   , p_component_appl_id            => l_component_appl_id
72820   , p_amb_context_code             => l_amb_context_code
72821   , p_side                         => 'NA'
72822   );
72823 
72824 
72825    l_segment := AcctDerRule_23(
72826            p_application_id           => p_application_id
72827          , p_ae_header_id             => l_ae_header_id 
72828 , p_source_10 => p_source_10
72829 , p_source_10_meaning => p_source_10_meaning
72830 , p_source_25 => p_source_25
72831          , x_transaction_coa_id       => l_adr_transaction_coa_id
72832          , x_accounting_coa_id        => l_adr_accounting_coa_id
72833          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72834          , x_flex_value_set_id        => l_adr_flex_value_set_id
72835          , x_value_type_code          => l_adr_value_type_code
72836          , x_value_combination_id     => l_adr_value_combination_id
72837          , x_value_segment_code       => l_adr_value_segment_code
72838          , p_side                     => 'NA'
72839          , p_override_seg_flag        => 'Y'
72840    );
72841 
72842    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72843 
72844       xla_ae_lines_pkg.set_segment(
72845           p_to_segment_code         => 'GL_BALANCING'
72846         , p_segment_value           => l_segment
72847         , p_from_segment_code       => l_adr_value_segment_code
72848         , p_from_combination_id     => l_adr_value_combination_id
72849         , p_value_type_code         => l_adr_value_type_code
72850         , p_transaction_coa_id      => l_adr_transaction_coa_id
72854         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72851         , p_accounting_coa_id       => l_adr_accounting_coa_id
72852         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72853         , p_flex_value_set_id       => l_adr_flex_value_set_id
72855         , p_adr_type_code           => 'S'
72856         , p_component_type          => l_component_type
72857         , p_component_code          => l_component_code
72858         , p_component_type_code     => l_component_type_code
72859         , p_component_appl_id       => l_component_appl_id
72860         , p_amb_context_code        => l_amb_context_code
72861         , p_entity_code             => 'AP_PAYMENTS'
72862         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72863         , p_side                    => 'NA'
72864         );
72865 
72866   END IF;
72867 
72868    l_segment := AcctDerRule_17(
72869            p_application_id           => p_application_id
72870          , p_ae_header_id             => l_ae_header_id 
72871 , p_source_10 => p_source_10
72872 , p_source_10_meaning => p_source_10_meaning
72873 , p_source_31 => p_source_31
72874 , p_source_32 => p_source_32
72875          , x_transaction_coa_id       => l_adr_transaction_coa_id
72876          , x_accounting_coa_id        => l_adr_accounting_coa_id
72877          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72878          , x_flex_value_set_id        => l_adr_flex_value_set_id
72879          , x_value_type_code          => l_adr_value_type_code
72880          , x_value_combination_id     => l_adr_value_combination_id
72881          , x_value_segment_code       => l_adr_value_segment_code
72882          , p_side                     => 'NA'
72883          , p_override_seg_flag        => 'Y'
72884    );
72885 
72886    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72887 
72888       xla_ae_lines_pkg.set_segment(
72889           p_to_segment_code         => 'GL_ACCOUNT'
72890         , p_segment_value           => l_segment
72891         , p_from_segment_code       => l_adr_value_segment_code
72892         , p_from_combination_id     => l_adr_value_combination_id
72893         , p_value_type_code         => l_adr_value_type_code
72894         , p_transaction_coa_id      => l_adr_transaction_coa_id
72895         , p_accounting_coa_id       => l_adr_accounting_coa_id
72896         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72897         , p_flex_value_set_id       => l_adr_flex_value_set_id
72898         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72899         , p_adr_type_code           => 'S'
72900         , p_component_type          => l_component_type
72901         , p_component_code          => l_component_code
72902         , p_component_type_code     => l_component_type_code
72903         , p_component_appl_id       => l_component_appl_id
72904         , p_amb_context_code        => l_amb_context_code
72905         , p_entity_code             => 'AP_PAYMENTS'
72906         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72907         , p_side                    => 'NA'
72908         );
72909 
72910   END IF;
72911 
72912    --
72913    --
72914    END IF;
72915    --
72916    -- Bug 4922099
72917    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72918           (NVL(l_enc_upg_option, 'N') = 'O')
72919         ) AND
72920         (l_bflow_method_code = 'PRIOR_ENTRY')
72921       )
72922    THEN
72923       IF
72924       --
72925       1 = 2
72926       --
72927       THEN
72928       xla_accounting_err_pkg.build_message
72929                                     (p_appli_s_name            => 'XLA'
72930                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72931                                     ,p_token_1                 => 'LINE_NUMBER'
72932                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72933                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72934                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72935                                                                              l_component_type
72936                                                                             ,l_component_code
72937                                                                             ,l_component_type_code
72938                                                                             ,l_component_appl_id
72939                                                                             ,l_amb_context_code
72940                                                                             ,l_entity_code
72941                                                                             ,l_event_class_code
72942                                                                            )
72943                                     ,p_token_3                 => 'OWNER'
72944                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72945                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72946                                                                           ,p_lookup_code    => l_component_type_code
72947                                                                          )
72948                                     ,p_token_4                 => 'PRODUCT_NAME'
72949                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72950                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72954                                        );
72951                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72952                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72953                                     ,p_ae_header_id            =>  NULL
72955 
72956         IF (C_LEVEL_ERROR>= g_log_level) THEN
72957                  trace
72958                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72959                       ,p_level    => C_LEVEL_ERROR
72960                       ,p_module   => l_log_module);
72961         END IF;
72962       END IF;
72963    END IF;
72964    --
72965    --
72966    ------------------------------------------------------------------------------------------------
72967    -- 4219869 Business Flow
72968    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72969    -- Prior Entry.  Currently, the following code is always generated.
72970    ------------------------------------------------------------------------------------------------
72971    XLA_AE_LINES_PKG.ValidateCurrentLine;
72972 
72973    ------------------------------------------------------------------------------------
72974    -- 4219869 Business Flow
72975    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72976    ------------------------------------------------------------------------------------
72977    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72978 
72979    ----------------------------------------------------------------------------------
72980    -- 4219869 Business Flow
72981    -- Update journal entry status -- Need to generate this within IF <condition>
72982    ----------------------------------------------------------------------------------
72983    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72984          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72985          ,p_balance_type_code => l_balance_type_code
72986          );
72987 
72988    -------------------------------------------------------------------------------------------
72989    -- 4262811 - Generate the Accrual Reversal lines
72990    -------------------------------------------------------------------------------------------
72991    BEGIN
72992       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72993                               (g_array_event(p_event_id).array_value_num('header_index'));
72994       IF l_acc_rev_flag IS NULL THEN
72995          l_acc_rev_flag := 'N';
72996       END IF;
72997    EXCEPTION
72998       WHEN OTHERS THEN
72999          l_acc_rev_flag := 'N';
73000    END;
73001    --
73002    IF (l_acc_rev_flag = 'Y') THEN
73003 
73004        -- 4645092  ------------------------------------------------------------------------------
73005        -- To allow MPA report to determine if it should generate report process
73006        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73007        ------------------------------------------------------------------------------------------
73008 
73009        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73010        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73011    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73012    -- call ADRs
73013    -- Bug 4922099
73014    --
73015    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73016         (NVL(l_actual_upg_option, 'N') = 'O') OR
73017         (NVL(l_enc_upg_option, 'N') = 'O')
73018       )
73019    THEN
73020    NULL;
73021    --
73022    --
73023    
73024   l_ccid := AcctDerRule_40(
73025            p_application_id           => p_application_id
73026          , p_ae_header_id             => l_ae_header_id 
73027 , p_source_10 => p_source_10
73028 , p_source_10_meaning => p_source_10_meaning
73029 , p_source_25 => p_source_25
73030 , p_source_31 => p_source_31
73031 , p_source_32 => p_source_32
73032          , x_transaction_coa_id       => l_adr_transaction_coa_id
73033          , x_accounting_coa_id        => l_adr_accounting_coa_id
73034          , x_value_type_code          => l_adr_value_type_code
73035          , p_side                     => 'NA'
73036    );
73037 
73038    xla_ae_lines_pkg.set_ccid(
73039     p_code_combination_id          => l_ccid
73040   , p_value_type_code              => l_adr_value_type_code
73041   , p_transaction_coa_id           => l_adr_transaction_coa_id
73042   , p_accounting_coa_id            => l_adr_accounting_coa_id
73043   , p_adr_code                     => 'AP_REAL_GAIN'
73044   , p_adr_type_code                => 'S'
73045   , p_component_type               => l_component_type
73046   , p_component_code               => l_component_code
73047   , p_component_type_code          => l_component_type_code
73048   , p_component_appl_id            => l_component_appl_id
73049   , p_amb_context_code             => l_amb_context_code
73050   , p_side                         => 'NA'
73051   );
73052 
73053 
73054    l_segment := AcctDerRule_23(
73055            p_application_id           => p_application_id
73056          , p_ae_header_id             => l_ae_header_id 
73057 , p_source_10 => p_source_10
73058 , p_source_10_meaning => p_source_10_meaning
73059 , p_source_25 => p_source_25
73060          , x_transaction_coa_id       => l_adr_transaction_coa_id
73061          , x_accounting_coa_id        => l_adr_accounting_coa_id
73062          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73063          , x_flex_value_set_id        => l_adr_flex_value_set_id
73067          , p_side                     => 'NA'
73064          , x_value_type_code          => l_adr_value_type_code
73065          , x_value_combination_id     => l_adr_value_combination_id
73066          , x_value_segment_code       => l_adr_value_segment_code
73068          , p_override_seg_flag        => 'Y'
73069    );
73070 
73071    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73072 
73073       xla_ae_lines_pkg.set_segment(
73074           p_to_segment_code         => 'GL_BALANCING'
73075         , p_segment_value           => l_segment
73076         , p_from_segment_code       => l_adr_value_segment_code
73077         , p_from_combination_id     => l_adr_value_combination_id
73078         , p_value_type_code         => l_adr_value_type_code
73079         , p_transaction_coa_id      => l_adr_transaction_coa_id
73080         , p_accounting_coa_id       => l_adr_accounting_coa_id
73081         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73082         , p_flex_value_set_id       => l_adr_flex_value_set_id
73083         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
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_entity_code             => 'AP_PAYMENTS'
73091         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73092         , p_side                    => 'NA'
73093         );
73094 
73095   END IF;
73096 
73097    l_segment := AcctDerRule_17(
73098            p_application_id           => p_application_id
73099          , p_ae_header_id             => l_ae_header_id 
73100 , p_source_10 => p_source_10
73101 , p_source_10_meaning => p_source_10_meaning
73102 , p_source_31 => p_source_31
73103 , p_source_32 => p_source_32
73104          , x_transaction_coa_id       => l_adr_transaction_coa_id
73105          , x_accounting_coa_id        => l_adr_accounting_coa_id
73106          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73107          , x_flex_value_set_id        => l_adr_flex_value_set_id
73108          , x_value_type_code          => l_adr_value_type_code
73109          , x_value_combination_id     => l_adr_value_combination_id
73110          , x_value_segment_code       => l_adr_value_segment_code
73111          , p_side                     => 'NA'
73112          , p_override_seg_flag        => 'Y'
73113    );
73114 
73115    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73116 
73117       xla_ae_lines_pkg.set_segment(
73118           p_to_segment_code         => 'GL_ACCOUNT'
73119         , p_segment_value           => l_segment
73120         , p_from_segment_code       => l_adr_value_segment_code
73121         , p_from_combination_id     => l_adr_value_combination_id
73122         , p_value_type_code         => l_adr_value_type_code
73123         , p_transaction_coa_id      => l_adr_transaction_coa_id
73124         , p_accounting_coa_id       => l_adr_accounting_coa_id
73125         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73126         , p_flex_value_set_id       => l_adr_flex_value_set_id
73127         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73128         , p_adr_type_code           => 'S'
73129         , p_component_type          => l_component_type
73130         , p_component_code          => l_component_code
73131         , p_component_type_code     => l_component_type_code
73132         , p_component_appl_id       => l_component_appl_id
73133         , p_amb_context_code        => l_amb_context_code
73134         , p_entity_code             => 'AP_PAYMENTS'
73135         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
73136         , p_side                    => 'NA'
73137         );
73138 
73139   END IF;
73140 
73141    --
73142    --
73143    END IF;
73144 
73145        --
73146        -- Update the line information that should be overwritten
73147        --
73148        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73149                                          p_header_num   => 1);
73150        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73151 
73152        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73153 
73154        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73155           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73156        END IF;
73157 
73158       --
73159       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73160       --
73161       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73162           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73163       ELSE
73164           ---------------------------------------------------------------------------------------------------
73165           -- 4262811a Switch Sign
73166           ---------------------------------------------------------------------------------------------------
73167           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73168           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73169                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73173           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73170           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73171                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73172           -- 5132302
73174                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73175 
73176       END IF;
73177 
73178       -- 4955764
73179       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73180       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73181 
73182 
73183       XLA_AE_LINES_PKG.ValidateCurrentLine;
73184       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73185 
73186       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73187                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73188                ,p_balance_type_code => l_balance_type_code);
73189 
73190    END IF;
73191 
73192    -----------------------------------------------------------------------------------------
73193    -- 4262811 Multiperiod Accounting
73194    -----------------------------------------------------------------------------------------
73195      -- No MPA option is assigned.
73196 
73197 
73198 END IF;
73199 END IF;
73200 --
73201 
73202 --
73203 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73204    trace
73205       (p_msg      => 'END of AcctLineType_142'
73206       ,p_level    => C_LEVEL_PROCEDURE
73207       ,p_module   => l_log_module);
73208 END IF;
73209 --
73210 EXCEPTION
73211   WHEN xla_exceptions_pkg.application_exception THEN
73212       RAISE;
73213   WHEN OTHERS THEN
73214        xla_exceptions_pkg.raise_message
73215            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_142');
73216 END AcctLineType_142;
73217 --
73218 
73219 ---------------------------------------
73220 --
73221 -- PRIVATE FUNCTION
73222 --         AcctLineType_143
73223 --
73224 ---------------------------------------
73225 PROCEDURE AcctLineType_143 (
73226   p_application_id        IN NUMBER
73227  ,p_event_id              IN NUMBER
73228  ,p_calculate_acctd_flag  IN VARCHAR2
73229  ,p_calculate_g_l_flag    IN VARCHAR2
73230  ,p_actual_flag           IN OUT VARCHAR2
73231  ,p_balance_type_code     OUT VARCHAR2
73232  ,p_gain_or_loss_ref      OUT VARCHAR2
73233  
73234 --Automatic Offsets Value
73235  , p_source_10            IN VARCHAR2
73236  , p_source_10_meaning    IN VARCHAR2
73237 --Invoice Distribution Account
73238  , p_source_25            IN NUMBER
73239 --Internal Realized Gain Account
73240  , p_source_31            IN NUMBER
73241 --Bank Gain Account
73242  , p_source_32            IN NUMBER
73243 --Accounting Reversal Indicator
73244  , p_source_58            IN VARCHAR2
73245 --Distribution Link Type
73246  , p_source_60            IN VARCHAR2
73247 --Invoice Identifier
73248  , p_source_63            IN NUMBER
73249 --Payables Encumbrance Upgrade Credit Account
73250  , p_source_70            IN NUMBER
73251 --Payables Encumbrance Upgrade Credit Amount
73252  , p_source_71            IN NUMBER
73253 --Invoice Currency Code
73254  , p_source_72            IN VARCHAR2
73255 --Payables Encumbrance Upgrade Credit Base Amount
73256  , p_source_73            IN NUMBER
73257 --Payables Encumbrance Upgrade Debit Account
73258  , p_source_74            IN NUMBER
73259 --Payables Encumbrance Upgrade Debit Amount
73260  , p_source_75            IN NUMBER
73261 --Payables Encumbrance Upgrade Debit Base Amount
73262  , p_source_76            IN NUMBER
73263 --Payables Encumbrance Upgrade Option
73264  , p_source_77            IN VARCHAR2
73265 --Deferred Accounting End Date
73266  , p_source_82            IN DATE
73267 --Deferred Accounting Option
73268  , p_source_83            IN VARCHAR2
73269 --Deferred Accounting Start Date
73270  , p_source_84            IN DATE
73271 --Override Accounted Amount Indicator
73272  , p_source_85            IN VARCHAR2
73273  , p_source_85_meaning    IN VARCHAR2
73274 --Invoice Supplier Identifier
73275  , p_source_86            IN NUMBER
73276 --Invoice Supplier Site Identifier
73277  , p_source_87            IN NUMBER
73278 --Third Party Type
73279  , p_source_88            IN VARCHAR2
73280 --Invoice Distribution Tax Line Identifier
73281  , p_source_91            IN NUMBER
73282 --Invoice Distribution Tax Distribution Identifier from Tax
73283  , p_source_92            IN NUMBER
73284 --Invoice Distribution Summary Tax Line Identifier
73285  , p_source_93            IN NUMBER
73286 --Payables Upgrade Credit Encumbrance Type Identifier
73287  , p_source_94            IN NUMBER
73288 --Payables Upgrade Debit Encumbrance Type Identifier
73289  , p_source_95            IN NUMBER
73290 --Business Flow Accounts Payable Application Identifier
73291  , p_source_96            IN NUMBER
73292 --Prepayment Distribution Type
73293  , p_source_128            IN VARCHAR2
73294 --Prepayment Application Distribution Identifier
73295  , p_source_130            IN NUMBER
73296 --Upgrade Encumbrance Credit Account Class
73297  , p_source_135            IN VARCHAR2
73298 --Upgrade Encumbrance Debit Account Class
73299  , p_source_136            IN VARCHAR2
73300 --Prepayment Distribution Amount
73304 --Invoice Exchange Date
73301  , p_source_137            IN NUMBER
73302 --Identifier of the Prepayment Application Reversed
73303  , p_source_139            IN NUMBER
73305  , p_source_146            IN DATE
73306 --Invoice Exchange Rate
73307  , p_source_147            IN NUMBER
73308 --Invoice Exchange Rate Type
73309  , p_source_148            IN VARCHAR2
73310 --Business Flow Prepayment Invoice Distribution Type
73311  , p_source_149            IN VARCHAR2
73312 --Business Flow Prepayment Invoice Entity Code
73313  , p_source_150            IN VARCHAR2
73314 --Business Flow Prepayment Invoice Distribution Identifier
73315  , p_source_151            IN NUMBER
73316 --Business Flow Prepayment Invoice Identifier
73317  , p_source_152            IN NUMBER
73318 --Prepayment/Invoice Ledger Amount Difference
73319  , p_source_158            IN NUMBER
73320 --Gain or Loss Indicator between Prepayment and Invoice
73321  , p_source_165            IN VARCHAR2
73322 )
73323 IS
73324 
73325 l_component_type              VARCHAR2(80);
73326 l_component_code              VARCHAR2(30);
73327 l_component_type_code         VARCHAR2(1);
73328 l_component_appl_id           INTEGER;
73329 l_amb_context_code            VARCHAR2(30);
73330 l_entity_code                 VARCHAR2(30);
73331 l_event_class_code            VARCHAR2(30);
73332 l_ae_header_id                NUMBER;
73333 l_event_type_code             VARCHAR2(30);
73334 l_line_definition_code        VARCHAR2(30);
73335 l_line_definition_owner_code  VARCHAR2(1);
73336 --
73337 -- adr variables
73338 l_segment                     VARCHAR2(30);
73339 l_ccid                        NUMBER;
73340 l_adr_transaction_coa_id      NUMBER;
73341 l_adr_accounting_coa_id       NUMBER;
73342 l_adr_flexfield_segment_code  VARCHAR2(30);
73343 l_adr_flex_value_set_id       NUMBER;
73344 l_adr_value_type_code         VARCHAR2(30);
73345 l_adr_value_combination_id    NUMBER;
73346 l_adr_value_segment_code      VARCHAR2(30);
73347 
73348 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73349 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73350 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73351 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73352 
73353 -- 4262811 Variables ------------------------------------------------------------------------------------------
73354 l_entered_amt_idx             NUMBER;
73355 l_accted_amt_idx              NUMBER;
73356 l_acc_rev_flag                VARCHAR2(1);
73357 l_accrual_line_num            NUMBER;
73358 l_tmp_amt                     NUMBER;
73359 l_acc_rev_natural_side_code   VARCHAR2(1);
73360 
73361 l_num_entries                 NUMBER;
73362 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73363 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73364 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73365 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73366 l_recog_line_1                NUMBER;
73367 l_recog_line_2                NUMBER;
73368 
73369 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73370 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73371 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73372 
73373 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73374 
73375 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73376 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73377 
73378 ---------------------------------------------------------------------------------------------------------------
73379 
73380 
73381 --
73382 -- bulk performance
73383 --
73384 l_balance_type_code           VARCHAR2(1);
73385 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73386 l_log_module                  VARCHAR2(240);
73387 
73388 --
73389 -- Upgrade strategy
73390 --
73391 l_actual_upg_option           VARCHAR2(1);
73392 l_enc_upg_option           VARCHAR2(1);
73393 
73394 --
73395 BEGIN
73396 --
73397 IF g_log_enabled THEN
73398       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
73399 END IF;
73400 --
73401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73402 
73403       trace
73404          (p_msg      => 'BEGIN of AcctLineType_143'
73405          ,p_level    => C_LEVEL_PROCEDURE
73406          ,p_module   => l_log_module);
73407 
73408 END IF;
73409 --
73410 l_component_type             := 'AMB_JLT';
73411 l_component_code             := 'AP_GAIN_PREPAY_APP';
73412 l_component_type_code        := 'S';
73413 l_component_appl_id          :=  200;
73414 l_amb_context_code           := 'DEFAULT';
73415 l_entity_code                := 'AP_INVOICES';
73416 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
73417 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
73418 l_line_definition_owner_code := 'S';
73419 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
73420 --
73421 l_balance_type_code          := 'A';
73422 l_segment                     := NULL;
73423 l_ccid                        := NULL;
73424 l_adr_transaction_coa_id      := NULL;
73425 l_adr_accounting_coa_id       := NULL;
73426 l_adr_flexfield_segment_code  := NULL;
73427 l_adr_flex_value_set_id       := NULL;
73431 
73428 l_adr_value_type_code         := NULL;
73429 l_adr_value_combination_id    := NULL;
73430 l_adr_value_segment_code      := NULL;
73432 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
73433 l_bflow_class_code           := '';    -- 4219869 Business Flow
73434 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
73435 l_budgetary_control_flag     := 'N';
73436 
73437 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
73438 l_bflow_applied_to_amt       := NULL; -- 5132302
73439 l_entered_amt_idx            := NULL;          -- 4262811
73440 l_accted_amt_idx             := NULL;          -- 4262811
73441 l_acc_rev_flag               := NULL;          -- 4262811
73442 l_accrual_line_num           := NULL;          -- 4262811
73443 l_tmp_amt                    := NULL;          -- 4262811
73444 --
73445 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
73446             (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
73447                return;
73448   END IF;
73449   
73450 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73451     l_balance_type_code <> 'B' THEN
73452 IF NVL(p_source_128,'
73453 ') =  'PREPAY APPL' AND 
73454 NVL(p_source_165,'
73455 ') =  'GAIN'
73456  THEN 
73457 
73458    --
73459    XLA_AE_LINES_PKG.SetNewLine;
73460 
73461    p_balance_type_code          := l_balance_type_code;
73462    -- set the flag so later we will know whether the gain loss line needs to be created
73463    
73464    IF(l_balance_type_code = 'A' ) THEN
73465      p_actual_flag :='G';
73466    END IF;
73467 
73468    --
73469    -- bulk performance
73470    --
73471    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73472                                       p_header_num   => 0); -- 4262811
73473    --
73474    -- set accounting line options
73475    --
73476    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73477            p_natural_side_code          => 'D'
73478          , p_gain_or_loss_flag          => 'Y'
73479          , p_gl_transfer_mode_code      => 'S'
73480          , p_acct_entry_type_code       => 'A'
73481          , p_switch_side_flag           => 'Y'
73482          , p_merge_duplicate_code       => 'A'
73483          );
73484    --
73485    l_acc_rev_natural_side_code := 'C';  -- 4262811
73486    -- 
73487    --
73488    -- set accounting line type info
73489    --
73490    xla_ae_lines_pkg.SetAcctLineType
73491       (p_component_type             => l_component_type
73492       ,p_event_type_code            => l_event_type_code
73493       ,p_line_definition_owner_code => l_line_definition_owner_code
73494       ,p_line_definition_code       => l_line_definition_code
73495       ,p_accounting_line_code       => l_component_code
73496       ,p_accounting_line_type_code  => l_component_type_code
73497       ,p_accounting_line_appl_id    => l_component_appl_id
73498       ,p_amb_context_code           => l_amb_context_code
73499       ,p_entity_code                => l_entity_code
73500       ,p_event_class_code           => l_event_class_code);
73501    --
73502    -- set accounting class
73503    --
73504    xla_ae_lines_pkg.SetAcctClass(
73505            p_accounting_class_code  => 'GAIN'
73506          , p_ae_header_id           => l_ae_header_id
73507          );
73508 
73509    --
73510    -- set rounding class
73511    --
73512    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73513                       'GAIN';
73514 
73515    --
73516    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73517    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73518    --
73519    -- bulk performance
73520    --
73521    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73522 
73523    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73524       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73525 
73526    -- 4955764
73527    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73528       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73529 
73530    -- 4458381 Public Sector Enh
73531    
73532    --
73533    -- set accounting attributes for the line type
73534    --
73535    l_entered_amt_idx := 25;
73536    l_accted_amt_idx  := 30;
73537    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
73538    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73539    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
73540    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
73541    l_rec_acct_attrs.array_num_value(2)  := 
73542 xla_ae_sources_pkg.GetSystemSourceNum(
73543    p_source_code           => 'XLA_EVENT_APPL_ID'
73544  , p_source_type_code      => 'Y'
73545  , p_source_application_id =>  602
73546 );
73547    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
73548    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
73549    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
73553  , p_source_type_code      => 'Y'
73550    l_rec_acct_attrs.array_char_value(4)  := 
73551 xla_ae_sources_pkg.GetSystemSourceChar(
73552    p_source_code           => 'XLA_ENTITY_CODE'
73554  , p_source_application_id =>  602
73555 );
73556    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
73557    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
73558    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
73559    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
73560    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
73561    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
73562    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73563    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
73564    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
73565    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
73566    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
73567    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
73568    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73569    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
73570    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
73571    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
73572    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
73573    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
73574    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
73575    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
73576    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
73577    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
73578    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
73579    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
73580    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
73581    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
73582    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
73583    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
73584    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
73585    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
73586    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
73587    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
73588    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
73589    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
73590    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
73591    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
73592    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
73593    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
73594    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
73595    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
73596    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
73597    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
73598    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
73599    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
73600    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
73601    l_rec_acct_attrs.array_date_value(27)  := p_source_146;
73602    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
73603    l_rec_acct_attrs.array_num_value(28)  := p_source_147;
73604    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
73605    l_rec_acct_attrs.array_char_value(29)  := p_source_148;
73606    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
73607    l_rec_acct_attrs.array_num_value(30)  := p_source_158;
73608    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
73609    l_rec_acct_attrs.array_date_value(31)  := p_source_82;
73610    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
73611    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
73612    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
73613    l_rec_acct_attrs.array_date_value(33)  := p_source_84;
73614    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
73615    l_rec_acct_attrs.array_char_value(34)  := p_source_85;
73616    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
73617    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
73618    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
73619    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
73620    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
73621    l_rec_acct_attrs.array_char_value(37)  := p_source_88;
73622    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
73623    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_139);
73624    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
73625    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
73626    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
73627    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
73628    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
73629    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
73630    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
73631    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
73632    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
73633    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
73634    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
73635    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
73636 
73640    ---------------------------------------------------------------------------------------------------------------
73637    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73638    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73639 
73641    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73642    ---------------------------------------------------------------------------------------------------------------
73643    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73644 
73645    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73646    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73647 
73648    IF xla_accounting_cache_pkg.GetValueChar
73649          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73650          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73651    AND l_bflow_method_code = 'PRIOR_ENTRY'
73652 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73653    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73654          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73655        )
73656    THEN
73657          xla_ae_lines_pkg.BflowUpgEntry
73658            (p_business_method_code    => l_bflow_method_code
73659            ,p_business_class_code     => l_bflow_class_code
73660            ,p_balance_type            => l_balance_type_code);
73661    ELSE
73662       NULL;
73663 -- No business flow processing for business flow method of NONE.
73664    END IF;
73665 
73666    --
73667    -- call analytical criteria
73668    --
73669    
73670    --
73671    -- call description
73672    --
73673    -- No description or it is inherited.
73674    --
73675    -- call ADRs
73676    -- Bug 4922099
73677    --
73678    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73679         (NVL(l_actual_upg_option, 'N') = 'O') OR
73680         (NVL(l_enc_upg_option, 'N') = 'O')
73681       )
73682    THEN
73683    NULL;
73684    --
73685    --
73686    
73687   l_ccid := AcctDerRule_40(
73688            p_application_id           => p_application_id
73689          , p_ae_header_id             => l_ae_header_id 
73690 , p_source_10 => p_source_10
73691 , p_source_10_meaning => p_source_10_meaning
73692 , p_source_25 => p_source_25
73693 , p_source_31 => p_source_31
73694 , p_source_32 => p_source_32
73695          , x_transaction_coa_id       => l_adr_transaction_coa_id
73696          , x_accounting_coa_id        => l_adr_accounting_coa_id
73697          , x_value_type_code          => l_adr_value_type_code
73698          , p_side                     => 'NA'
73699    );
73700 
73701    xla_ae_lines_pkg.set_ccid(
73702     p_code_combination_id          => l_ccid
73703   , p_value_type_code              => l_adr_value_type_code
73704   , p_transaction_coa_id           => l_adr_transaction_coa_id
73705   , p_accounting_coa_id            => l_adr_accounting_coa_id
73706   , p_adr_code                     => 'AP_REAL_GAIN'
73707   , p_adr_type_code                => 'S'
73708   , p_component_type               => l_component_type
73709   , p_component_code               => l_component_code
73710   , p_component_type_code          => l_component_type_code
73711   , p_component_appl_id            => l_component_appl_id
73712   , p_amb_context_code             => l_amb_context_code
73713   , p_side                         => 'NA'
73714   );
73715 
73716 
73717    l_segment := AcctDerRule_23(
73718            p_application_id           => p_application_id
73719          , p_ae_header_id             => l_ae_header_id 
73720 , p_source_10 => p_source_10
73721 , p_source_10_meaning => p_source_10_meaning
73722 , p_source_25 => p_source_25
73723          , x_transaction_coa_id       => l_adr_transaction_coa_id
73724          , x_accounting_coa_id        => l_adr_accounting_coa_id
73725          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73726          , x_flex_value_set_id        => l_adr_flex_value_set_id
73727          , x_value_type_code          => l_adr_value_type_code
73728          , x_value_combination_id     => l_adr_value_combination_id
73729          , x_value_segment_code       => l_adr_value_segment_code
73730          , p_side                     => 'NA'
73731          , p_override_seg_flag        => 'Y'
73732    );
73733 
73734    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73735 
73736       xla_ae_lines_pkg.set_segment(
73737           p_to_segment_code         => 'GL_BALANCING'
73738         , p_segment_value           => l_segment
73739         , p_from_segment_code       => l_adr_value_segment_code
73740         , p_from_combination_id     => l_adr_value_combination_id
73741         , p_value_type_code         => l_adr_value_type_code
73742         , p_transaction_coa_id      => l_adr_transaction_coa_id
73743         , p_accounting_coa_id       => l_adr_accounting_coa_id
73744         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73745         , p_flex_value_set_id       => l_adr_flex_value_set_id
73746         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73747         , p_adr_type_code           => 'S'
73748         , p_component_type          => l_component_type
73749         , p_component_code          => l_component_code
73753         , p_entity_code             => 'AP_INVOICES'
73750         , p_component_type_code     => l_component_type_code
73751         , p_component_appl_id       => l_component_appl_id
73752         , p_amb_context_code        => l_amb_context_code
73754         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73755         , p_side                    => 'NA'
73756         );
73757 
73758   END IF;
73759 
73760    l_segment := AcctDerRule_17(
73761            p_application_id           => p_application_id
73762          , p_ae_header_id             => l_ae_header_id 
73763 , p_source_10 => p_source_10
73764 , p_source_10_meaning => p_source_10_meaning
73765 , p_source_31 => p_source_31
73766 , p_source_32 => p_source_32
73767          , x_transaction_coa_id       => l_adr_transaction_coa_id
73768          , x_accounting_coa_id        => l_adr_accounting_coa_id
73769          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73770          , x_flex_value_set_id        => l_adr_flex_value_set_id
73771          , x_value_type_code          => l_adr_value_type_code
73772          , x_value_combination_id     => l_adr_value_combination_id
73773          , x_value_segment_code       => l_adr_value_segment_code
73774          , p_side                     => 'NA'
73775          , p_override_seg_flag        => 'Y'
73776    );
73777 
73778    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73779 
73780       xla_ae_lines_pkg.set_segment(
73781           p_to_segment_code         => 'GL_ACCOUNT'
73782         , p_segment_value           => l_segment
73783         , p_from_segment_code       => l_adr_value_segment_code
73784         , p_from_combination_id     => l_adr_value_combination_id
73785         , p_value_type_code         => l_adr_value_type_code
73786         , p_transaction_coa_id      => l_adr_transaction_coa_id
73787         , p_accounting_coa_id       => l_adr_accounting_coa_id
73788         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73789         , p_flex_value_set_id       => l_adr_flex_value_set_id
73790         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73791         , p_adr_type_code           => 'S'
73792         , p_component_type          => l_component_type
73793         , p_component_code          => l_component_code
73794         , p_component_type_code     => l_component_type_code
73795         , p_component_appl_id       => l_component_appl_id
73796         , p_amb_context_code        => l_amb_context_code
73797         , p_entity_code             => 'AP_INVOICES'
73798         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73799         , p_side                    => 'NA'
73800         );
73801 
73802   END IF;
73803 
73804    --
73805    --
73806    END IF;
73807    --
73808    -- Bug 4922099
73809    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73810           (NVL(l_enc_upg_option, 'N') = 'O')
73811         ) AND
73812         (l_bflow_method_code = 'PRIOR_ENTRY')
73813       )
73814    THEN
73815       IF
73816       --
73817       1 = 2
73818       --
73819       THEN
73820       xla_accounting_err_pkg.build_message
73821                                     (p_appli_s_name            => 'XLA'
73822                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73823                                     ,p_token_1                 => 'LINE_NUMBER'
73824                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73825                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73826                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73827                                                                              l_component_type
73828                                                                             ,l_component_code
73829                                                                             ,l_component_type_code
73830                                                                             ,l_component_appl_id
73831                                                                             ,l_amb_context_code
73832                                                                             ,l_entity_code
73833                                                                             ,l_event_class_code
73834                                                                            )
73835                                     ,p_token_3                 => 'OWNER'
73836                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73837                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73838                                                                           ,p_lookup_code    => l_component_type_code
73839                                                                          )
73840                                     ,p_token_4                 => 'PRODUCT_NAME'
73841                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73842                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73843                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73844                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73845                                     ,p_ae_header_id            =>  NULL
73846                                        );
73847 
73848         IF (C_LEVEL_ERROR>= g_log_level) THEN
73849                  trace
73853         END IF;
73850                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73851                       ,p_level    => C_LEVEL_ERROR
73852                       ,p_module   => l_log_module);
73854       END IF;
73855    END IF;
73856    --
73857    --
73858    ------------------------------------------------------------------------------------------------
73859    -- 4219869 Business Flow
73860    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73861    -- Prior Entry.  Currently, the following code is always generated.
73862    ------------------------------------------------------------------------------------------------
73863    XLA_AE_LINES_PKG.ValidateCurrentLine;
73864 
73865    ------------------------------------------------------------------------------------
73866    -- 4219869 Business Flow
73867    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73868    ------------------------------------------------------------------------------------
73869    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73870 
73871    ----------------------------------------------------------------------------------
73872    -- 4219869 Business Flow
73873    -- Update journal entry status -- Need to generate this within IF <condition>
73874    ----------------------------------------------------------------------------------
73875    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73876          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73877          ,p_balance_type_code => l_balance_type_code
73878          );
73879 
73880    -------------------------------------------------------------------------------------------
73881    -- 4262811 - Generate the Accrual Reversal lines
73882    -------------------------------------------------------------------------------------------
73883    BEGIN
73884       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73885                               (g_array_event(p_event_id).array_value_num('header_index'));
73886       IF l_acc_rev_flag IS NULL THEN
73887          l_acc_rev_flag := 'N';
73888       END IF;
73889    EXCEPTION
73890       WHEN OTHERS THEN
73891          l_acc_rev_flag := 'N';
73892    END;
73893    --
73894    IF (l_acc_rev_flag = 'Y') THEN
73895 
73896        -- 4645092  ------------------------------------------------------------------------------
73897        -- To allow MPA report to determine if it should generate report process
73898        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73899        ------------------------------------------------------------------------------------------
73900 
73901        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73902        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73903    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73904    -- call ADRs
73905    -- Bug 4922099
73906    --
73907    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73908         (NVL(l_actual_upg_option, 'N') = 'O') OR
73909         (NVL(l_enc_upg_option, 'N') = 'O')
73910       )
73911    THEN
73912    NULL;
73913    --
73914    --
73915    
73916   l_ccid := AcctDerRule_40(
73917            p_application_id           => p_application_id
73918          , p_ae_header_id             => l_ae_header_id 
73919 , p_source_10 => p_source_10
73920 , p_source_10_meaning => p_source_10_meaning
73921 , p_source_25 => p_source_25
73922 , p_source_31 => p_source_31
73923 , p_source_32 => p_source_32
73924          , x_transaction_coa_id       => l_adr_transaction_coa_id
73925          , x_accounting_coa_id        => l_adr_accounting_coa_id
73926          , x_value_type_code          => l_adr_value_type_code
73927          , p_side                     => 'NA'
73928    );
73929 
73930    xla_ae_lines_pkg.set_ccid(
73931     p_code_combination_id          => l_ccid
73932   , p_value_type_code              => l_adr_value_type_code
73933   , p_transaction_coa_id           => l_adr_transaction_coa_id
73934   , p_accounting_coa_id            => l_adr_accounting_coa_id
73935   , p_adr_code                     => 'AP_REAL_GAIN'
73936   , p_adr_type_code                => 'S'
73937   , p_component_type               => l_component_type
73938   , p_component_code               => l_component_code
73939   , p_component_type_code          => l_component_type_code
73940   , p_component_appl_id            => l_component_appl_id
73941   , p_amb_context_code             => l_amb_context_code
73942   , p_side                         => 'NA'
73943   );
73944 
73945 
73946    l_segment := AcctDerRule_23(
73947            p_application_id           => p_application_id
73948          , p_ae_header_id             => l_ae_header_id 
73949 , p_source_10 => p_source_10
73950 , p_source_10_meaning => p_source_10_meaning
73951 , p_source_25 => p_source_25
73952          , x_transaction_coa_id       => l_adr_transaction_coa_id
73953          , x_accounting_coa_id        => l_adr_accounting_coa_id
73954          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73955          , x_flex_value_set_id        => l_adr_flex_value_set_id
73956          , x_value_type_code          => l_adr_value_type_code
73957          , x_value_combination_id     => l_adr_value_combination_id
73958          , x_value_segment_code       => l_adr_value_segment_code
73959          , p_side                     => 'NA'
73960          , p_override_seg_flag        => 'Y'
73964 
73961    );
73962 
73963    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73965       xla_ae_lines_pkg.set_segment(
73966           p_to_segment_code         => 'GL_BALANCING'
73967         , p_segment_value           => l_segment
73968         , p_from_segment_code       => l_adr_value_segment_code
73969         , p_from_combination_id     => l_adr_value_combination_id
73970         , p_value_type_code         => l_adr_value_type_code
73971         , p_transaction_coa_id      => l_adr_transaction_coa_id
73972         , p_accounting_coa_id       => l_adr_accounting_coa_id
73973         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73974         , p_flex_value_set_id       => l_adr_flex_value_set_id
73975         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73976         , p_adr_type_code           => 'S'
73977         , p_component_type          => l_component_type
73978         , p_component_code          => l_component_code
73979         , p_component_type_code     => l_component_type_code
73980         , p_component_appl_id       => l_component_appl_id
73981         , p_amb_context_code        => l_amb_context_code
73982         , p_entity_code             => 'AP_INVOICES'
73983         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73984         , p_side                    => 'NA'
73985         );
73986 
73987   END IF;
73988 
73989    l_segment := AcctDerRule_17(
73990            p_application_id           => p_application_id
73991          , p_ae_header_id             => l_ae_header_id 
73992 , p_source_10 => p_source_10
73993 , p_source_10_meaning => p_source_10_meaning
73994 , p_source_31 => p_source_31
73995 , p_source_32 => p_source_32
73996          , x_transaction_coa_id       => l_adr_transaction_coa_id
73997          , x_accounting_coa_id        => l_adr_accounting_coa_id
73998          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73999          , x_flex_value_set_id        => l_adr_flex_value_set_id
74000          , x_value_type_code          => l_adr_value_type_code
74001          , x_value_combination_id     => l_adr_value_combination_id
74002          , x_value_segment_code       => l_adr_value_segment_code
74003          , p_side                     => 'NA'
74004          , p_override_seg_flag        => 'Y'
74005    );
74006 
74007    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74008 
74009       xla_ae_lines_pkg.set_segment(
74010           p_to_segment_code         => 'GL_ACCOUNT'
74011         , p_segment_value           => l_segment
74012         , p_from_segment_code       => l_adr_value_segment_code
74013         , p_from_combination_id     => l_adr_value_combination_id
74014         , p_value_type_code         => l_adr_value_type_code
74015         , p_transaction_coa_id      => l_adr_transaction_coa_id
74016         , p_accounting_coa_id       => l_adr_accounting_coa_id
74017         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74018         , p_flex_value_set_id       => l_adr_flex_value_set_id
74019         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
74020         , p_adr_type_code           => 'S'
74021         , p_component_type          => l_component_type
74022         , p_component_code          => l_component_code
74023         , p_component_type_code     => l_component_type_code
74024         , p_component_appl_id       => l_component_appl_id
74025         , p_amb_context_code        => l_amb_context_code
74026         , p_entity_code             => 'AP_INVOICES'
74027         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
74028         , p_side                    => 'NA'
74029         );
74030 
74031   END IF;
74032 
74033    --
74034    --
74035    END IF;
74036 
74037        --
74038        -- Update the line information that should be overwritten
74039        --
74040        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74041                                          p_header_num   => 1);
74042        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74043 
74044        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74045 
74046        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74047           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74048        END IF;
74049 
74050       --
74051       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74052       --
74053       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74054           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74055       ELSE
74056           ---------------------------------------------------------------------------------------------------
74057           -- 4262811a Switch Sign
74058           ---------------------------------------------------------------------------------------------------
74059           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74060           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74061                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74062           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74063                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74064           -- 5132302
74068       END IF;
74065           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74066                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74067 
74069 
74070       -- 4955764
74071       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74072       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74073 
74074 
74075       XLA_AE_LINES_PKG.ValidateCurrentLine;
74076       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74077 
74078       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74079                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74080                ,p_balance_type_code => l_balance_type_code);
74081 
74082    END IF;
74083 
74084    -----------------------------------------------------------------------------------------
74085    -- 4262811 Multiperiod Accounting
74086    -----------------------------------------------------------------------------------------
74087      -- No MPA option is assigned.
74088 
74089 
74090 END IF;
74091 END IF;
74092 --
74093 
74094 --
74095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74096    trace
74097       (p_msg      => 'END of AcctLineType_143'
74098       ,p_level    => C_LEVEL_PROCEDURE
74099       ,p_module   => l_log_module);
74100 END IF;
74101 --
74102 EXCEPTION
74103   WHEN xla_exceptions_pkg.application_exception THEN
74104       RAISE;
74105   WHEN OTHERS THEN
74106        xla_exceptions_pkg.raise_message
74107            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_143');
74108 END AcctLineType_143;
74109 --
74110 
74111 ---------------------------------------
74112 --
74113 -- PRIVATE FUNCTION
74114 --         AcctLineType_144
74115 --
74116 ---------------------------------------
74117 PROCEDURE AcctLineType_144 (
74118   p_application_id        IN NUMBER
74119  ,p_event_id              IN NUMBER
74120  ,p_calculate_acctd_flag  IN VARCHAR2
74121  ,p_calculate_g_l_flag    IN VARCHAR2
74122  ,p_actual_flag           IN OUT VARCHAR2
74123  ,p_balance_type_code     OUT VARCHAR2
74124  ,p_gain_or_loss_ref      OUT VARCHAR2
74125  
74126 --Payment Currency Code
74127  , p_source_8            IN VARCHAR2
74128 --Automatic Offsets Value
74129  , p_source_10            IN VARCHAR2
74130  , p_source_10_meaning    IN VARCHAR2
74131 --Invoice Distribution Account
74132  , p_source_25            IN NUMBER
74133 --Internal Realized Gain Account
74134  , p_source_31            IN NUMBER
74135 --Bank Gain Account
74136  , p_source_32            IN NUMBER
74137 --When to Account for Payment Option
74138  , p_source_57            IN VARCHAR2
74139 --Accounting Reversal Indicator
74140  , p_source_58            IN VARCHAR2
74141 --Distribution Link Type
74142  , p_source_60            IN VARCHAR2
74143 --Override Accounted Amount Indicator
74144  , p_source_85            IN VARCHAR2
74145  , p_source_85_meaning    IN VARCHAR2
74146 --Third Party Type
74147  , p_source_88            IN VARCHAR2
74148 --Invoice Distribution Tax Line Identifier
74149  , p_source_91            IN NUMBER
74150 --Invoice Distribution Tax Distribution Identifier from Tax
74151  , p_source_92            IN NUMBER
74152 --Invoice Distribution Summary Tax Line Identifier
74153  , p_source_93            IN NUMBER
74154 --Business Flow Accounts Payable Application Identifier
74155  , p_source_96            IN NUMBER
74156 --Business Flow Invoice Distribution Type
74157  , p_source_97            IN VARCHAR2
74158 --Business Flow Invoice Entity Code
74159  , p_source_98            IN VARCHAR2
74160 --Business Flow Invoice Distribution Identifier
74161  , p_source_99            IN NUMBER
74162 --Business Flow Invoice Identifier
74163  , p_source_100            IN NUMBER
74164 --Payment Distribution Type
74165  , p_source_101            IN VARCHAR2
74166  , p_source_101_meaning    IN VARCHAR2
74167 --Payment Distribution Amount
74168  , p_source_102            IN NUMBER
74169 --Payment Distribution Identifier
74170  , p_source_107            IN NUMBER
74171 --Payment Supplier Identifier
74172  , p_source_113            IN NUMBER
74173 --Payment Supplier Site Identifier
74174  , p_source_114            IN NUMBER
74175 --Payment Distribution Reversed Identifier
74176  , p_source_115            IN NUMBER
74177 --Payment Exchange Date
74178  , p_source_120            IN DATE
74179 --Payment Exchange Rate
74180  , p_source_121            IN NUMBER
74181 --Payment Exchange Rate Type
74182  , p_source_122            IN VARCHAR2
74183 --Payment Type
74184  , p_source_125            IN VARCHAR2
74185  , p_source_125_meaning    IN VARCHAR2
74186 --Invoice/Payment Ledger Amount Difference
74187  , p_source_156            IN NUMBER
74188 --Gain or Loss Indicator between Invoice and Payment
74189  , p_source_161            IN VARCHAR2
74190 )
74191 IS
74192 
74193 l_component_type              VARCHAR2(80);
74194 l_component_code              VARCHAR2(30);
74195 l_component_type_code         VARCHAR2(1);
74196 l_component_appl_id           INTEGER;
74197 l_amb_context_code            VARCHAR2(30);
74198 l_entity_code                 VARCHAR2(30);
74199 l_event_class_code            VARCHAR2(30);
74200 l_ae_header_id                NUMBER;
74201 l_event_type_code             VARCHAR2(30);
74205 -- adr variables
74202 l_line_definition_code        VARCHAR2(30);
74203 l_line_definition_owner_code  VARCHAR2(1);
74204 --
74206 l_segment                     VARCHAR2(30);
74207 l_ccid                        NUMBER;
74208 l_adr_transaction_coa_id      NUMBER;
74209 l_adr_accounting_coa_id       NUMBER;
74210 l_adr_flexfield_segment_code  VARCHAR2(30);
74211 l_adr_flex_value_set_id       NUMBER;
74212 l_adr_value_type_code         VARCHAR2(30);
74213 l_adr_value_combination_id    NUMBER;
74214 l_adr_value_segment_code      VARCHAR2(30);
74215 
74216 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74217 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74218 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74219 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74220 
74221 -- 4262811 Variables ------------------------------------------------------------------------------------------
74222 l_entered_amt_idx             NUMBER;
74223 l_accted_amt_idx              NUMBER;
74224 l_acc_rev_flag                VARCHAR2(1);
74225 l_accrual_line_num            NUMBER;
74226 l_tmp_amt                     NUMBER;
74227 l_acc_rev_natural_side_code   VARCHAR2(1);
74228 
74229 l_num_entries                 NUMBER;
74230 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74231 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74232 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74233 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74234 l_recog_line_1                NUMBER;
74235 l_recog_line_2                NUMBER;
74236 
74237 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74238 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74239 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74240 
74241 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74242 
74243 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74244 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74245 
74246 ---------------------------------------------------------------------------------------------------------------
74247 
74248 
74249 --
74250 -- bulk performance
74251 --
74252 l_balance_type_code           VARCHAR2(1);
74253 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74254 l_log_module                  VARCHAR2(240);
74255 
74256 --
74257 -- Upgrade strategy
74258 --
74259 l_actual_upg_option           VARCHAR2(1);
74260 l_enc_upg_option           VARCHAR2(1);
74261 
74262 --
74263 BEGIN
74264 --
74265 IF g_log_enabled THEN
74266       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
74267 END IF;
74268 --
74269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74270 
74271       trace
74272          (p_msg      => 'BEGIN of AcctLineType_144'
74273          ,p_level    => C_LEVEL_PROCEDURE
74274          ,p_module   => l_log_module);
74275 
74276 END IF;
74277 --
74278 l_component_type             := 'AMB_JLT';
74279 l_component_code             := 'AP_GAIN_REF';
74280 l_component_type_code        := 'S';
74281 l_component_appl_id          :=  200;
74282 l_amb_context_code           := 'DEFAULT';
74283 l_entity_code                := 'AP_PAYMENTS';
74284 l_event_class_code           := 'REFUNDS';
74285 l_event_type_code            := 'REFUNDS_ALL';
74286 l_line_definition_owner_code := 'S';
74287 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
74288 --
74289 l_balance_type_code          := 'A';
74290 l_segment                     := NULL;
74291 l_ccid                        := NULL;
74292 l_adr_transaction_coa_id      := NULL;
74293 l_adr_accounting_coa_id       := NULL;
74294 l_adr_flexfield_segment_code  := NULL;
74295 l_adr_flex_value_set_id       := NULL;
74296 l_adr_value_type_code         := NULL;
74297 l_adr_value_combination_id    := NULL;
74298 l_adr_value_segment_code      := NULL;
74299 
74300 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74301 l_bflow_class_code           := '';    -- 4219869 Business Flow
74302 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74303 l_budgetary_control_flag     := 'N';
74304 
74305 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74306 l_bflow_applied_to_amt       := NULL; -- 5132302
74307 l_entered_amt_idx            := NULL;          -- 4262811
74308 l_accted_amt_idx             := NULL;          -- 4262811
74309 l_acc_rev_flag               := NULL;          -- 4262811
74310 l_accrual_line_num           := NULL;          -- 4262811
74311 l_tmp_amt                    := NULL;          -- 4262811
74312 --
74313 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
74314             (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code in ('ALC', 'SECONDARY') AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.calculate_amts_flag='Y')) THEN
74315                return;
74316   END IF;
74317   
74318 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74319     l_balance_type_code <> 'B' THEN
74320 IF (NVL(p_source_57,'
74321 ') <>  'CLEAR_CLEAR' AND 
74322 NVL(p_source_57,'
74323 ') <>  'ALWAYS_CLEAR') AND 
74324 NVL(p_source_161,'
74325 ') =  'GAIN' AND 
74326 NVL(p_source_125,'
74327 ') =  'R' AND 
74328 NVL(p_source_101,'
74332 NVL(p_source_101,'
74329 ') <>  'EXCHANGE RATE VARIANCE' AND 
74330 NVL(p_source_101,'
74331 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
74333 ') <>  'BANK CHARGE' AND 
74334 NVL(p_source_101,'
74335 ') <>  'BANK ERROR'
74336  THEN 
74337 
74338    --
74339    XLA_AE_LINES_PKG.SetNewLine;
74340 
74341    p_balance_type_code          := l_balance_type_code;
74342    -- set the flag so later we will know whether the gain loss line needs to be created
74343    
74344    IF(l_balance_type_code = 'A' ) THEN
74345      p_actual_flag :='G';
74346    END IF;
74347 
74348    --
74349    -- bulk performance
74350    --
74351    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74352                                       p_header_num   => 0); -- 4262811
74353    --
74354    -- set accounting line options
74355    --
74356    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74357            p_natural_side_code          => 'C'
74358          , p_gain_or_loss_flag          => 'Y'
74359          , p_gl_transfer_mode_code      => 'S'
74360          , p_acct_entry_type_code       => 'A'
74361          , p_switch_side_flag           => 'Y'
74362          , p_merge_duplicate_code       => 'A'
74363          );
74364    --
74365    l_acc_rev_natural_side_code := 'D';  -- 4262811
74366    -- 
74367    --
74368    -- set accounting line type info
74369    --
74370    xla_ae_lines_pkg.SetAcctLineType
74371       (p_component_type             => l_component_type
74372       ,p_event_type_code            => l_event_type_code
74373       ,p_line_definition_owner_code => l_line_definition_owner_code
74374       ,p_line_definition_code       => l_line_definition_code
74375       ,p_accounting_line_code       => l_component_code
74376       ,p_accounting_line_type_code  => l_component_type_code
74377       ,p_accounting_line_appl_id    => l_component_appl_id
74378       ,p_amb_context_code           => l_amb_context_code
74379       ,p_entity_code                => l_entity_code
74380       ,p_event_class_code           => l_event_class_code);
74381    --
74382    -- set accounting class
74383    --
74384    xla_ae_lines_pkg.SetAcctClass(
74385            p_accounting_class_code  => 'GAIN'
74386          , p_ae_header_id           => l_ae_header_id
74387          );
74388 
74389    --
74390    -- set rounding class
74391    --
74392    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74393                       'GAIN';
74394 
74395    --
74396    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74397    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74398    --
74399    -- bulk performance
74400    --
74401    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74402 
74403    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74404       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74405 
74406    -- 4955764
74407    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74408       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74409 
74410    -- 4458381 Public Sector Enh
74411    
74412    --
74413    -- set accounting attributes for the line type
74414    --
74415    l_entered_amt_idx := 9;
74416    l_accted_amt_idx  := 14;
74417    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
74418    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74419    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
74420    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
74421    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
74422    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74423    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
74424    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
74425    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
74426    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
74427    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
74428    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74429    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
74430    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
74431    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
74432    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
74433    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
74434    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
74435    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
74436    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
74437    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
74438    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
74439    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
74440    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
74441    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
74442    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
74443    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
74444    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
74445    l_rec_acct_attrs.array_num_value(14)  := p_source_156;
74449    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
74446    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
74447    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
74448    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
74450    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
74451    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
74452    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
74453    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
74454    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
74455    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
74456    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
74457    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
74458    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
74459    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
74460    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
74461    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
74462    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
74463    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
74464 
74465    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74466    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74467 
74468    ---------------------------------------------------------------------------------------------------------------
74469    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74470    ---------------------------------------------------------------------------------------------------------------
74471    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74472 
74473    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74474    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74475 
74476    IF xla_accounting_cache_pkg.GetValueChar
74477          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74478          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74479    AND l_bflow_method_code = 'PRIOR_ENTRY'
74480 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74481    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74482          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74483        )
74484    THEN
74485          xla_ae_lines_pkg.BflowUpgEntry
74486            (p_business_method_code    => l_bflow_method_code
74487            ,p_business_class_code     => l_bflow_class_code
74488            ,p_balance_type            => l_balance_type_code);
74489    ELSE
74490       NULL;
74491 -- No business flow processing for business flow method of NONE.
74492    END IF;
74493 
74494    --
74495    -- call analytical criteria
74496    --
74497    
74498    --
74499    -- call description
74500    --
74501    -- No description or it is inherited.
74502    --
74503    -- call ADRs
74504    -- Bug 4922099
74505    --
74506    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74507         (NVL(l_actual_upg_option, 'N') = 'O') OR
74508         (NVL(l_enc_upg_option, 'N') = 'O')
74509       )
74510    THEN
74511    NULL;
74512    --
74513    --
74514    
74515   l_ccid := AcctDerRule_40(
74516            p_application_id           => p_application_id
74517          , p_ae_header_id             => l_ae_header_id 
74518 , p_source_10 => p_source_10
74519 , p_source_10_meaning => p_source_10_meaning
74520 , p_source_25 => p_source_25
74521 , p_source_31 => p_source_31
74522 , p_source_32 => p_source_32
74523          , x_transaction_coa_id       => l_adr_transaction_coa_id
74524          , x_accounting_coa_id        => l_adr_accounting_coa_id
74525          , x_value_type_code          => l_adr_value_type_code
74526          , p_side                     => 'NA'
74527    );
74528 
74529    xla_ae_lines_pkg.set_ccid(
74530     p_code_combination_id          => l_ccid
74531   , p_value_type_code              => l_adr_value_type_code
74532   , p_transaction_coa_id           => l_adr_transaction_coa_id
74533   , p_accounting_coa_id            => l_adr_accounting_coa_id
74534   , p_adr_code                     => 'AP_REAL_GAIN'
74535   , p_adr_type_code                => 'S'
74536   , p_component_type               => l_component_type
74537   , p_component_code               => l_component_code
74538   , p_component_type_code          => l_component_type_code
74539   , p_component_appl_id            => l_component_appl_id
74540   , p_amb_context_code             => l_amb_context_code
74541   , p_side                         => 'NA'
74542   );
74543 
74544 
74545    l_segment := AcctDerRule_23(
74546            p_application_id           => p_application_id
74547          , p_ae_header_id             => l_ae_header_id 
74548 , p_source_10 => p_source_10
74549 , p_source_10_meaning => p_source_10_meaning
74550 , p_source_25 => p_source_25
74551          , x_transaction_coa_id       => l_adr_transaction_coa_id
74552          , x_accounting_coa_id        => l_adr_accounting_coa_id
74553          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74554          , x_flex_value_set_id        => l_adr_flex_value_set_id
74555          , x_value_type_code          => l_adr_value_type_code
74556          , x_value_combination_id     => l_adr_value_combination_id
74557          , x_value_segment_code       => l_adr_value_segment_code
74561 
74558          , p_side                     => 'NA'
74559          , p_override_seg_flag        => 'Y'
74560    );
74562    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74563 
74564       xla_ae_lines_pkg.set_segment(
74565           p_to_segment_code         => 'GL_BALANCING'
74566         , p_segment_value           => l_segment
74567         , p_from_segment_code       => l_adr_value_segment_code
74568         , p_from_combination_id     => l_adr_value_combination_id
74569         , p_value_type_code         => l_adr_value_type_code
74570         , p_transaction_coa_id      => l_adr_transaction_coa_id
74571         , p_accounting_coa_id       => l_adr_accounting_coa_id
74572         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74573         , p_flex_value_set_id       => l_adr_flex_value_set_id
74574         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
74575         , p_adr_type_code           => 'S'
74576         , p_component_type          => l_component_type
74577         , p_component_code          => l_component_code
74578         , p_component_type_code     => l_component_type_code
74579         , p_component_appl_id       => l_component_appl_id
74580         , p_amb_context_code        => l_amb_context_code
74581         , p_entity_code             => 'AP_PAYMENTS'
74582         , p_event_class_code        => 'REFUNDS'
74583         , p_side                    => 'NA'
74584         );
74585 
74586   END IF;
74587 
74588    l_segment := AcctDerRule_17(
74589            p_application_id           => p_application_id
74590          , p_ae_header_id             => l_ae_header_id 
74591 , p_source_10 => p_source_10
74592 , p_source_10_meaning => p_source_10_meaning
74593 , p_source_31 => p_source_31
74594 , p_source_32 => p_source_32
74595          , x_transaction_coa_id       => l_adr_transaction_coa_id
74596          , x_accounting_coa_id        => l_adr_accounting_coa_id
74597          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74598          , x_flex_value_set_id        => l_adr_flex_value_set_id
74599          , x_value_type_code          => l_adr_value_type_code
74600          , x_value_combination_id     => l_adr_value_combination_id
74601          , x_value_segment_code       => l_adr_value_segment_code
74602          , p_side                     => 'NA'
74603          , p_override_seg_flag        => 'Y'
74604    );
74605 
74606    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74607 
74608       xla_ae_lines_pkg.set_segment(
74609           p_to_segment_code         => 'GL_ACCOUNT'
74610         , p_segment_value           => l_segment
74611         , p_from_segment_code       => l_adr_value_segment_code
74612         , p_from_combination_id     => l_adr_value_combination_id
74613         , p_value_type_code         => l_adr_value_type_code
74614         , p_transaction_coa_id      => l_adr_transaction_coa_id
74615         , p_accounting_coa_id       => l_adr_accounting_coa_id
74616         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74617         , p_flex_value_set_id       => l_adr_flex_value_set_id
74618         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
74619         , p_adr_type_code           => 'S'
74620         , p_component_type          => l_component_type
74621         , p_component_code          => l_component_code
74622         , p_component_type_code     => l_component_type_code
74623         , p_component_appl_id       => l_component_appl_id
74624         , p_amb_context_code        => l_amb_context_code
74625         , p_entity_code             => 'AP_PAYMENTS'
74626         , p_event_class_code        => 'REFUNDS'
74627         , p_side                    => 'NA'
74628         );
74629 
74630   END IF;
74631 
74632    --
74633    --
74634    END IF;
74635    --
74636    -- Bug 4922099
74637    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74638           (NVL(l_enc_upg_option, 'N') = 'O')
74639         ) AND
74640         (l_bflow_method_code = 'PRIOR_ENTRY')
74641       )
74642    THEN
74643       IF
74644       --
74645       1 = 2
74646       --
74647       THEN
74648       xla_accounting_err_pkg.build_message
74649                                     (p_appli_s_name            => 'XLA'
74650                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74651                                     ,p_token_1                 => 'LINE_NUMBER'
74652                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
74653                                     ,p_token_2                 => 'LINE_TYPE_NAME'
74654                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
74655                                                                              l_component_type
74656                                                                             ,l_component_code
74657                                                                             ,l_component_type_code
74658                                                                             ,l_component_appl_id
74659                                                                             ,l_amb_context_code
74660                                                                             ,l_entity_code
74661                                                                             ,l_event_class_code
74662                                                                            )
74663                                     ,p_token_3                 => 'OWNER'
74667                                                                          )
74664                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
74665                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
74666                                                                           ,p_lookup_code    => l_component_type_code
74668                                     ,p_token_4                 => 'PRODUCT_NAME'
74669                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74670                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74671                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74672                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74673                                     ,p_ae_header_id            =>  NULL
74674                                        );
74675 
74676         IF (C_LEVEL_ERROR>= g_log_level) THEN
74677                  trace
74678                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74679                       ,p_level    => C_LEVEL_ERROR
74680                       ,p_module   => l_log_module);
74681         END IF;
74682       END IF;
74683    END IF;
74684    --
74685    --
74686    ------------------------------------------------------------------------------------------------
74687    -- 4219869 Business Flow
74688    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74689    -- Prior Entry.  Currently, the following code is always generated.
74690    ------------------------------------------------------------------------------------------------
74691    XLA_AE_LINES_PKG.ValidateCurrentLine;
74692 
74693    ------------------------------------------------------------------------------------
74694    -- 4219869 Business Flow
74695    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74696    ------------------------------------------------------------------------------------
74697    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74698 
74699    ----------------------------------------------------------------------------------
74700    -- 4219869 Business Flow
74701    -- Update journal entry status -- Need to generate this within IF <condition>
74702    ----------------------------------------------------------------------------------
74703    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74704          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74705          ,p_balance_type_code => l_balance_type_code
74706          );
74707 
74708    -------------------------------------------------------------------------------------------
74709    -- 4262811 - Generate the Accrual Reversal lines
74710    -------------------------------------------------------------------------------------------
74711    BEGIN
74712       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74713                               (g_array_event(p_event_id).array_value_num('header_index'));
74714       IF l_acc_rev_flag IS NULL THEN
74715          l_acc_rev_flag := 'N';
74716       END IF;
74717    EXCEPTION
74718       WHEN OTHERS THEN
74719          l_acc_rev_flag := 'N';
74720    END;
74721    --
74722    IF (l_acc_rev_flag = 'Y') THEN
74723 
74724        -- 4645092  ------------------------------------------------------------------------------
74725        -- To allow MPA report to determine if it should generate report process
74726        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74727        ------------------------------------------------------------------------------------------
74728 
74729        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74730        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74731    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74732    -- call ADRs
74733    -- Bug 4922099
74734    --
74735    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74736         (NVL(l_actual_upg_option, 'N') = 'O') OR
74737         (NVL(l_enc_upg_option, 'N') = 'O')
74738       )
74739    THEN
74740    NULL;
74741    --
74742    --
74743    
74744   l_ccid := AcctDerRule_40(
74745            p_application_id           => p_application_id
74746          , p_ae_header_id             => l_ae_header_id 
74747 , p_source_10 => p_source_10
74748 , p_source_10_meaning => p_source_10_meaning
74749 , p_source_25 => p_source_25
74750 , p_source_31 => p_source_31
74751 , p_source_32 => p_source_32
74752          , x_transaction_coa_id       => l_adr_transaction_coa_id
74753          , x_accounting_coa_id        => l_adr_accounting_coa_id
74754          , x_value_type_code          => l_adr_value_type_code
74755          , p_side                     => 'NA'
74756    );
74757 
74758    xla_ae_lines_pkg.set_ccid(
74759     p_code_combination_id          => l_ccid
74760   , p_value_type_code              => l_adr_value_type_code
74761   , p_transaction_coa_id           => l_adr_transaction_coa_id
74762   , p_accounting_coa_id            => l_adr_accounting_coa_id
74763   , p_adr_code                     => 'AP_REAL_GAIN'
74764   , p_adr_type_code                => 'S'
74765   , p_component_type               => l_component_type
74766   , p_component_code               => l_component_code
74770   , p_side                         => 'NA'
74767   , p_component_type_code          => l_component_type_code
74768   , p_component_appl_id            => l_component_appl_id
74769   , p_amb_context_code             => l_amb_context_code
74771   );
74772 
74773 
74774    l_segment := AcctDerRule_23(
74775            p_application_id           => p_application_id
74776          , p_ae_header_id             => l_ae_header_id 
74777 , p_source_10 => p_source_10
74778 , p_source_10_meaning => p_source_10_meaning
74779 , p_source_25 => p_source_25
74780          , x_transaction_coa_id       => l_adr_transaction_coa_id
74781          , x_accounting_coa_id        => l_adr_accounting_coa_id
74782          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74783          , x_flex_value_set_id        => l_adr_flex_value_set_id
74784          , x_value_type_code          => l_adr_value_type_code
74785          , x_value_combination_id     => l_adr_value_combination_id
74786          , x_value_segment_code       => l_adr_value_segment_code
74787          , p_side                     => 'NA'
74788          , p_override_seg_flag        => 'Y'
74789    );
74790 
74791    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74792 
74793       xla_ae_lines_pkg.set_segment(
74794           p_to_segment_code         => 'GL_BALANCING'
74795         , p_segment_value           => l_segment
74796         , p_from_segment_code       => l_adr_value_segment_code
74797         , p_from_combination_id     => l_adr_value_combination_id
74798         , p_value_type_code         => l_adr_value_type_code
74799         , p_transaction_coa_id      => l_adr_transaction_coa_id
74800         , p_accounting_coa_id       => l_adr_accounting_coa_id
74801         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74802         , p_flex_value_set_id       => l_adr_flex_value_set_id
74803         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
74804         , p_adr_type_code           => 'S'
74805         , p_component_type          => l_component_type
74806         , p_component_code          => l_component_code
74807         , p_component_type_code     => l_component_type_code
74808         , p_component_appl_id       => l_component_appl_id
74809         , p_amb_context_code        => l_amb_context_code
74810         , p_entity_code             => 'AP_PAYMENTS'
74811         , p_event_class_code        => 'REFUNDS'
74812         , p_side                    => 'NA'
74813         );
74814 
74815   END IF;
74816 
74817    l_segment := AcctDerRule_17(
74818            p_application_id           => p_application_id
74819          , p_ae_header_id             => l_ae_header_id 
74820 , p_source_10 => p_source_10
74821 , p_source_10_meaning => p_source_10_meaning
74822 , p_source_31 => p_source_31
74823 , p_source_32 => p_source_32
74824          , x_transaction_coa_id       => l_adr_transaction_coa_id
74825          , x_accounting_coa_id        => l_adr_accounting_coa_id
74826          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74827          , x_flex_value_set_id        => l_adr_flex_value_set_id
74828          , x_value_type_code          => l_adr_value_type_code
74829          , x_value_combination_id     => l_adr_value_combination_id
74830          , x_value_segment_code       => l_adr_value_segment_code
74831          , p_side                     => 'NA'
74832          , p_override_seg_flag        => 'Y'
74833    );
74834 
74835    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74836 
74837       xla_ae_lines_pkg.set_segment(
74838           p_to_segment_code         => 'GL_ACCOUNT'
74839         , p_segment_value           => l_segment
74840         , p_from_segment_code       => l_adr_value_segment_code
74841         , p_from_combination_id     => l_adr_value_combination_id
74842         , p_value_type_code         => l_adr_value_type_code
74843         , p_transaction_coa_id      => l_adr_transaction_coa_id
74844         , p_accounting_coa_id       => l_adr_accounting_coa_id
74845         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74846         , p_flex_value_set_id       => l_adr_flex_value_set_id
74847         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
74848         , p_adr_type_code           => 'S'
74849         , p_component_type          => l_component_type
74850         , p_component_code          => l_component_code
74851         , p_component_type_code     => l_component_type_code
74852         , p_component_appl_id       => l_component_appl_id
74853         , p_amb_context_code        => l_amb_context_code
74854         , p_entity_code             => 'AP_PAYMENTS'
74855         , p_event_class_code        => 'REFUNDS'
74856         , p_side                    => 'NA'
74857         );
74858 
74859   END IF;
74860 
74861    --
74862    --
74863    END IF;
74864 
74865        --
74866        -- Update the line information that should be overwritten
74867        --
74868        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74869                                          p_header_num   => 1);
74870        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74871 
74872        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74873 
74874        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74875           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74876        END IF;
74877 
74878       --
74882           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74879       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74880       --
74881       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74883       ELSE
74884           ---------------------------------------------------------------------------------------------------
74885           -- 4262811a Switch Sign
74886           ---------------------------------------------------------------------------------------------------
74887           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74888           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74889                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74890           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74891                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74892           -- 5132302
74893           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74894                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74895 
74896       END IF;
74897 
74898       -- 4955764
74899       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74900       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74901 
74902 
74903       XLA_AE_LINES_PKG.ValidateCurrentLine;
74904       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74905 
74906       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74907                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74908                ,p_balance_type_code => l_balance_type_code);
74909 
74910    END IF;
74911 
74912    -----------------------------------------------------------------------------------------
74913    -- 4262811 Multiperiod Accounting
74914    -----------------------------------------------------------------------------------------
74915      -- No MPA option is assigned.
74916 
74917 
74918 END IF;
74919 END IF;
74920 --
74921 
74922 --
74923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74924    trace
74925       (p_msg      => 'END of AcctLineType_144'
74926       ,p_level    => C_LEVEL_PROCEDURE
74927       ,p_module   => l_log_module);
74928 END IF;
74929 --
74930 EXCEPTION
74931   WHEN xla_exceptions_pkg.application_exception THEN
74932       RAISE;
74933   WHEN OTHERS THEN
74934        xla_exceptions_pkg.raise_message
74935            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_144');
74936 END AcctLineType_144;
74937 --
74938 
74939 ---------------------------------------
74940 --
74941 -- PRIVATE FUNCTION
74942 --         AcctLineType_145
74943 --
74944 ---------------------------------------
74945 PROCEDURE AcctLineType_145 (
74946   p_application_id        IN NUMBER
74947  ,p_event_id              IN NUMBER
74948  ,p_calculate_acctd_flag  IN VARCHAR2
74949  ,p_calculate_g_l_flag    IN VARCHAR2
74950  ,p_actual_flag           IN OUT VARCHAR2
74951  ,p_balance_type_code     OUT VARCHAR2
74952  ,p_gain_or_loss_ref      OUT VARCHAR2
74953  
74954 --Payment Currency Code
74955  , p_source_8            IN VARCHAR2
74956 --Interest Account
74957  , p_source_23            IN NUMBER
74958 --Prorate Interest Invoice Across Distributions Option
74959  , p_source_24            IN VARCHAR2
74960 --Invoice Distribution Account
74961  , p_source_25            IN NUMBER
74962 --Invoice Distribution Type
74963  , p_source_28            IN VARCHAR2
74964  , p_source_28_meaning    IN VARCHAR2
74965 --Invoice Type Paid
74966  , p_source_56            IN VARCHAR2
74967  , p_source_56_meaning    IN VARCHAR2
74968 --When to Account for Payment Option
74969  , p_source_57            IN VARCHAR2
74970 --Accounting Reversal Indicator
74971  , p_source_58            IN VARCHAR2
74972 --Distribution Link Type
74973  , p_source_60            IN VARCHAR2
74974 --Override Accounted Amount Indicator
74975  , p_source_85            IN VARCHAR2
74976  , p_source_85_meaning    IN VARCHAR2
74977 --Third Party Type
74978  , p_source_88            IN VARCHAR2
74979 --Invoice Distribution Tax Line Identifier
74980  , p_source_91            IN NUMBER
74981 --Invoice Distribution Summary Tax Line Identifier
74982  , p_source_93            IN NUMBER
74983 --Business Flow Accounts Payable Application Identifier
74984  , p_source_96            IN NUMBER
74985 --Payment Distribution Type
74986  , p_source_101            IN VARCHAR2
74987  , p_source_101_meaning    IN VARCHAR2
74988 --Payment Distribution Amount
74989  , p_source_102            IN NUMBER
74990 --Business Flow Payment Distribution Type
74991  , p_source_103            IN VARCHAR2
74992 --Business Flow Payment Entity Code
74993  , p_source_104            IN VARCHAR2
74994 --Business Flow Payment Distribution Identifier
74995  , p_source_105            IN NUMBER
74996 --Business Flow Payment Identifier
74997  , p_source_106            IN NUMBER
74998 --Payment Distribution Identifier
74999  , p_source_107            IN NUMBER
75000 --Cleared Exchange Date
75001  , p_source_109            IN DATE
75002 --Cleared Exchange Rate
75003  , p_source_110            IN NUMBER
75004 --Cleared Exchange Rate Type
75008 --Payment Supplier Identifier
75005  , p_source_111            IN VARCHAR2
75006 --Payment Distribution (Cleared Rate) Ledger Amount
75007  , p_source_112            IN NUMBER
75009  , p_source_113            IN NUMBER
75010 --Payment Supplier Site Identifier
75011  , p_source_114            IN NUMBER
75012 --Payment Distribution Reversed Identifier
75013  , p_source_115            IN NUMBER
75014 --Payment Type
75015  , p_source_125            IN VARCHAR2
75016  , p_source_125_meaning    IN VARCHAR2
75017 )
75018 IS
75019 
75020 l_component_type              VARCHAR2(80);
75021 l_component_code              VARCHAR2(30);
75022 l_component_type_code         VARCHAR2(1);
75023 l_component_appl_id           INTEGER;
75024 l_amb_context_code            VARCHAR2(30);
75025 l_entity_code                 VARCHAR2(30);
75026 l_event_class_code            VARCHAR2(30);
75027 l_ae_header_id                NUMBER;
75028 l_event_type_code             VARCHAR2(30);
75029 l_line_definition_code        VARCHAR2(30);
75030 l_line_definition_owner_code  VARCHAR2(1);
75031 --
75032 -- adr variables
75033 l_segment                     VARCHAR2(30);
75034 l_ccid                        NUMBER;
75035 l_adr_transaction_coa_id      NUMBER;
75036 l_adr_accounting_coa_id       NUMBER;
75037 l_adr_flexfield_segment_code  VARCHAR2(30);
75038 l_adr_flex_value_set_id       NUMBER;
75039 l_adr_value_type_code         VARCHAR2(30);
75040 l_adr_value_combination_id    NUMBER;
75041 l_adr_value_segment_code      VARCHAR2(30);
75042 
75043 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75044 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75045 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75046 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75047 
75048 -- 4262811 Variables ------------------------------------------------------------------------------------------
75049 l_entered_amt_idx             NUMBER;
75050 l_accted_amt_idx              NUMBER;
75051 l_acc_rev_flag                VARCHAR2(1);
75052 l_accrual_line_num            NUMBER;
75053 l_tmp_amt                     NUMBER;
75054 l_acc_rev_natural_side_code   VARCHAR2(1);
75055 
75056 l_num_entries                 NUMBER;
75057 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75058 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75059 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75060 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75061 l_recog_line_1                NUMBER;
75062 l_recog_line_2                NUMBER;
75063 
75064 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75065 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75066 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75067 
75068 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75069 
75070 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75071 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75072 
75073 ---------------------------------------------------------------------------------------------------------------
75074 
75075 
75076 --
75077 -- bulk performance
75078 --
75079 l_balance_type_code           VARCHAR2(1);
75080 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75081 l_log_module                  VARCHAR2(240);
75082 
75083 --
75084 -- Upgrade strategy
75085 --
75086 l_actual_upg_option           VARCHAR2(1);
75087 l_enc_upg_option           VARCHAR2(1);
75088 
75089 --
75090 BEGIN
75091 --
75092 IF g_log_enabled THEN
75093       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
75094 END IF;
75095 --
75096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75097 
75098       trace
75099          (p_msg      => 'BEGIN of AcctLineType_145'
75100          ,p_level    => C_LEVEL_PROCEDURE
75101          ,p_module   => l_log_module);
75102 
75103 END IF;
75104 --
75105 l_component_type             := 'AMB_JLT';
75106 l_component_code             := 'AP_INTEREST_EXPENSE_CLEAR';
75107 l_component_type_code        := 'S';
75108 l_component_appl_id          :=  200;
75109 l_amb_context_code           := 'DEFAULT';
75110 l_entity_code                := 'AP_PAYMENTS';
75111 l_event_class_code           := 'RECONCILED PAYMENTS';
75112 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
75113 l_line_definition_owner_code := 'S';
75114 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
75115 --
75116 l_balance_type_code          := 'A';
75117 l_segment                     := NULL;
75118 l_ccid                        := NULL;
75119 l_adr_transaction_coa_id      := NULL;
75120 l_adr_accounting_coa_id       := NULL;
75121 l_adr_flexfield_segment_code  := NULL;
75122 l_adr_flex_value_set_id       := NULL;
75123 l_adr_value_type_code         := NULL;
75124 l_adr_value_combination_id    := NULL;
75125 l_adr_value_segment_code      := NULL;
75126 
75127 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75128 l_bflow_class_code           := '';    -- 4219869 Business Flow
75129 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75130 l_budgetary_control_flag     := 'N';
75131 
75132 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75133 l_bflow_applied_to_amt       := NULL; -- 5132302
75137 l_accrual_line_num           := NULL;          -- 4262811
75134 l_entered_amt_idx            := NULL;          -- 4262811
75135 l_accted_amt_idx             := NULL;          -- 4262811
75136 l_acc_rev_flag               := NULL;          -- 4262811
75138 l_tmp_amt                    := NULL;          -- 4262811
75139 --
75140  
75141 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75142     l_balance_type_code <> 'B' THEN
75143 IF NVL(p_source_57,'
75144 ') =  'CLEAR_CLEAR' AND 
75145 NVL(p_source_28,'
75146 ') =  'ITEM' AND 
75147 NVL(p_source_56,'
75148 ') =  'INTEREST' AND 
75149 (NVL(p_source_101,'
75150 ') =  'CASH' OR 
75151 NVL(p_source_101,'
75152 ') =  'DISCOUNT') AND 
75153 NVL(p_source_125,'
75154 ') <>  'R'
75155  THEN 
75156 
75157    --
75158    XLA_AE_LINES_PKG.SetNewLine;
75159 
75160    p_balance_type_code          := l_balance_type_code;
75161    -- set the flag so later we will know whether the gain loss line needs to be created
75162    
75163    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75164      p_actual_flag :='A';
75165    END IF;
75166 
75167    --
75168    -- bulk performance
75169    --
75170    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75171                                       p_header_num   => 0); -- 4262811
75172    --
75173    -- set accounting line options
75174    --
75175    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75176            p_natural_side_code          => 'D'
75177          , p_gain_or_loss_flag          => 'N'
75178          , p_gl_transfer_mode_code      => 'S'
75179          , p_acct_entry_type_code       => 'A'
75180          , p_switch_side_flag           => 'Y'
75181          , p_merge_duplicate_code       => 'A'
75182          );
75183    --
75184    l_acc_rev_natural_side_code := 'C';  -- 4262811
75185    -- 
75186    --
75187    -- set accounting line type info
75188    --
75189    xla_ae_lines_pkg.SetAcctLineType
75190       (p_component_type             => l_component_type
75191       ,p_event_type_code            => l_event_type_code
75192       ,p_line_definition_owner_code => l_line_definition_owner_code
75193       ,p_line_definition_code       => l_line_definition_code
75194       ,p_accounting_line_code       => l_component_code
75195       ,p_accounting_line_type_code  => l_component_type_code
75196       ,p_accounting_line_appl_id    => l_component_appl_id
75197       ,p_amb_context_code           => l_amb_context_code
75198       ,p_entity_code                => l_entity_code
75199       ,p_event_class_code           => l_event_class_code);
75200    --
75201    -- set accounting class
75202    --
75203    xla_ae_lines_pkg.SetAcctClass(
75204            p_accounting_class_code  => 'INTEREST_EXPENSE'
75205          , p_ae_header_id           => l_ae_header_id
75206          );
75207 
75208    --
75209    -- set rounding class
75210    --
75211    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75212                       'INTEREST_EXPENSE';
75213 
75214    --
75215    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75216    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75217    --
75218    -- bulk performance
75219    --
75220    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75221 
75222    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75223       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75224 
75225    -- 4955764
75226    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75227       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75228 
75229    -- 4458381 Public Sector Enh
75230    
75231    --
75232    -- set accounting attributes for the line type
75233    --
75234    l_entered_amt_idx := 10;
75235    l_accted_amt_idx  := 15;
75236    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
75237    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75238    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
75239    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
75240    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
75241    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
75242    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
75243    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75244    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
75245    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
75246    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
75247    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
75248    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
75249    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75250    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
75251    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
75252    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
75253    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
75254    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
75255    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
75259    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
75256    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
75257    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
75258    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
75260    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
75261    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
75262    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
75263    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
75264    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
75265    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
75266    l_rec_acct_attrs.array_num_value(15)  := p_source_112;
75267    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
75268    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
75269    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
75270    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
75271    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
75272    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
75273    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
75274    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
75275    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
75276    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
75277    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
75278    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
75279    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
75280    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
75281    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
75282    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
75283    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
75284    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
75285 
75286    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75287    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75288 
75289    ---------------------------------------------------------------------------------------------------------------
75290    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75291    ---------------------------------------------------------------------------------------------------------------
75292    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75293 
75294    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75295    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75296 
75297    IF xla_accounting_cache_pkg.GetValueChar
75298          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75299          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75300    AND l_bflow_method_code = 'PRIOR_ENTRY'
75301 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75302    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75303          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75304        )
75305    THEN
75306          xla_ae_lines_pkg.BflowUpgEntry
75307            (p_business_method_code    => l_bflow_method_code
75308            ,p_business_class_code     => l_bflow_class_code
75309            ,p_balance_type            => l_balance_type_code);
75310    ELSE
75311       NULL;
75312 -- No business flow processing for business flow method of NONE.
75313    END IF;
75314 
75315    --
75316    -- call analytical criteria
75317    --
75318    
75319    --
75320    -- call description
75321    --
75322    -- No description or it is inherited.
75323    --
75324    -- call ADRs
75325    -- Bug 4922099
75326    --
75327    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75328         (NVL(l_actual_upg_option, 'N') = 'O') OR
75329         (NVL(l_enc_upg_option, 'N') = 'O')
75330       )
75331    THEN
75332    NULL;
75333    --
75334    --
75335    
75336   l_ccid := AcctDerRule_34(
75337            p_application_id           => p_application_id
75338          , p_ae_header_id             => l_ae_header_id 
75339 , p_source_23 => p_source_23
75340 , p_source_24 => p_source_24
75341 , p_source_25 => p_source_25
75342          , x_transaction_coa_id       => l_adr_transaction_coa_id
75343          , x_accounting_coa_id        => l_adr_accounting_coa_id
75344          , x_value_type_code          => l_adr_value_type_code
75345          , p_side                     => 'NA'
75346    );
75347 
75348    xla_ae_lines_pkg.set_ccid(
75349     p_code_combination_id          => l_ccid
75350   , p_value_type_code              => l_adr_value_type_code
75351   , p_transaction_coa_id           => l_adr_transaction_coa_id
75352   , p_accounting_coa_id            => l_adr_accounting_coa_id
75353   , p_adr_code                     => 'AP_INTEREST'
75354   , p_adr_type_code                => 'S'
75355   , p_component_type               => l_component_type
75356   , p_component_code               => l_component_code
75357   , p_component_type_code          => l_component_type_code
75358   , p_component_appl_id            => l_component_appl_id
75359   , p_amb_context_code             => l_amb_context_code
75360   , p_side                         => 'NA'
75361   );
75362 
75363 
75364    l_segment := AcctDerRule_12(
75365            p_application_id           => p_application_id
75369          , x_transaction_coa_id       => l_adr_transaction_coa_id
75366          , p_ae_header_id             => l_ae_header_id 
75367 , p_source_23 => p_source_23
75368 , p_source_24 => p_source_24
75370          , x_accounting_coa_id        => l_adr_accounting_coa_id
75371          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75372          , x_flex_value_set_id        => l_adr_flex_value_set_id
75373          , x_value_type_code          => l_adr_value_type_code
75374          , x_value_combination_id     => l_adr_value_combination_id
75375          , x_value_segment_code       => l_adr_value_segment_code
75376          , p_side                     => 'NA'
75377          , p_override_seg_flag        => 'Y'
75378    );
75379 
75380    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75381 
75382       xla_ae_lines_pkg.set_segment(
75383           p_to_segment_code         => 'GL_ACCOUNT'
75384         , p_segment_value           => l_segment
75385         , p_from_segment_code       => l_adr_value_segment_code
75386         , p_from_combination_id     => l_adr_value_combination_id
75387         , p_value_type_code         => l_adr_value_type_code
75388         , p_transaction_coa_id      => l_adr_transaction_coa_id
75389         , p_accounting_coa_id       => l_adr_accounting_coa_id
75390         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75391         , p_flex_value_set_id       => l_adr_flex_value_set_id
75392         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
75393         , p_adr_type_code           => 'S'
75394         , p_component_type          => l_component_type
75395         , p_component_code          => l_component_code
75396         , p_component_type_code     => l_component_type_code
75397         , p_component_appl_id       => l_component_appl_id
75398         , p_amb_context_code        => l_amb_context_code
75399         , p_entity_code             => 'AP_PAYMENTS'
75400         , p_event_class_code        => 'RECONCILED PAYMENTS'
75401         , p_side                    => 'NA'
75402         );
75403 
75404   END IF;
75405 
75406    --
75407    --
75408    END IF;
75409    --
75410    -- Bug 4922099
75411    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75412           (NVL(l_enc_upg_option, 'N') = 'O')
75413         ) AND
75414         (l_bflow_method_code = 'PRIOR_ENTRY')
75415       )
75416    THEN
75417       IF
75418       --
75419       1 = 2
75420       --
75421       THEN
75422       xla_accounting_err_pkg.build_message
75423                                     (p_appli_s_name            => 'XLA'
75424                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75425                                     ,p_token_1                 => 'LINE_NUMBER'
75426                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75427                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75428                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75429                                                                              l_component_type
75430                                                                             ,l_component_code
75431                                                                             ,l_component_type_code
75432                                                                             ,l_component_appl_id
75433                                                                             ,l_amb_context_code
75434                                                                             ,l_entity_code
75435                                                                             ,l_event_class_code
75436                                                                            )
75437                                     ,p_token_3                 => 'OWNER'
75438                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75439                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75440                                                                           ,p_lookup_code    => l_component_type_code
75441                                                                          )
75442                                     ,p_token_4                 => 'PRODUCT_NAME'
75443                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75444                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75445                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75446                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75447                                     ,p_ae_header_id            =>  NULL
75448                                        );
75449 
75450         IF (C_LEVEL_ERROR>= g_log_level) THEN
75451                  trace
75452                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75453                       ,p_level    => C_LEVEL_ERROR
75454                       ,p_module   => l_log_module);
75455         END IF;
75456       END IF;
75457    END IF;
75458    --
75459    --
75460    ------------------------------------------------------------------------------------------------
75461    -- 4219869 Business Flow
75462    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75466 
75463    -- Prior Entry.  Currently, the following code is always generated.
75464    ------------------------------------------------------------------------------------------------
75465    XLA_AE_LINES_PKG.ValidateCurrentLine;
75467    ------------------------------------------------------------------------------------
75468    -- 4219869 Business Flow
75469    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75470    ------------------------------------------------------------------------------------
75471    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75472 
75473    ----------------------------------------------------------------------------------
75474    -- 4219869 Business Flow
75475    -- Update journal entry status -- Need to generate this within IF <condition>
75476    ----------------------------------------------------------------------------------
75477    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75478          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75479          ,p_balance_type_code => l_balance_type_code
75480          );
75481 
75482    -------------------------------------------------------------------------------------------
75483    -- 4262811 - Generate the Accrual Reversal lines
75484    -------------------------------------------------------------------------------------------
75485    BEGIN
75486       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75487                               (g_array_event(p_event_id).array_value_num('header_index'));
75488       IF l_acc_rev_flag IS NULL THEN
75489          l_acc_rev_flag := 'N';
75490       END IF;
75491    EXCEPTION
75492       WHEN OTHERS THEN
75493          l_acc_rev_flag := 'N';
75494    END;
75495    --
75496    IF (l_acc_rev_flag = 'Y') THEN
75497 
75498        -- 4645092  ------------------------------------------------------------------------------
75499        -- To allow MPA report to determine if it should generate report process
75500        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75501        ------------------------------------------------------------------------------------------
75502 
75503        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75504        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75505    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75506    -- call ADRs
75507    -- Bug 4922099
75508    --
75509    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75510         (NVL(l_actual_upg_option, 'N') = 'O') OR
75511         (NVL(l_enc_upg_option, 'N') = 'O')
75512       )
75513    THEN
75514    NULL;
75515    --
75516    --
75517    
75518   l_ccid := AcctDerRule_34(
75519            p_application_id           => p_application_id
75520          , p_ae_header_id             => l_ae_header_id 
75521 , p_source_23 => p_source_23
75522 , p_source_24 => p_source_24
75523 , p_source_25 => p_source_25
75524          , x_transaction_coa_id       => l_adr_transaction_coa_id
75525          , x_accounting_coa_id        => l_adr_accounting_coa_id
75526          , x_value_type_code          => l_adr_value_type_code
75527          , p_side                     => 'NA'
75528    );
75529 
75530    xla_ae_lines_pkg.set_ccid(
75531     p_code_combination_id          => l_ccid
75532   , p_value_type_code              => l_adr_value_type_code
75533   , p_transaction_coa_id           => l_adr_transaction_coa_id
75534   , p_accounting_coa_id            => l_adr_accounting_coa_id
75535   , p_adr_code                     => 'AP_INTEREST'
75536   , p_adr_type_code                => 'S'
75537   , p_component_type               => l_component_type
75538   , p_component_code               => l_component_code
75539   , p_component_type_code          => l_component_type_code
75540   , p_component_appl_id            => l_component_appl_id
75541   , p_amb_context_code             => l_amb_context_code
75542   , p_side                         => 'NA'
75543   );
75544 
75545 
75546    l_segment := AcctDerRule_12(
75547            p_application_id           => p_application_id
75548          , p_ae_header_id             => l_ae_header_id 
75549 , p_source_23 => p_source_23
75550 , p_source_24 => p_source_24
75551          , x_transaction_coa_id       => l_adr_transaction_coa_id
75552          , x_accounting_coa_id        => l_adr_accounting_coa_id
75553          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75554          , x_flex_value_set_id        => l_adr_flex_value_set_id
75555          , x_value_type_code          => l_adr_value_type_code
75556          , x_value_combination_id     => l_adr_value_combination_id
75557          , x_value_segment_code       => l_adr_value_segment_code
75558          , p_side                     => 'NA'
75559          , p_override_seg_flag        => 'Y'
75560    );
75561 
75562    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75563 
75564       xla_ae_lines_pkg.set_segment(
75565           p_to_segment_code         => 'GL_ACCOUNT'
75566         , p_segment_value           => l_segment
75567         , p_from_segment_code       => l_adr_value_segment_code
75568         , p_from_combination_id     => l_adr_value_combination_id
75569         , p_value_type_code         => l_adr_value_type_code
75570         , p_transaction_coa_id      => l_adr_transaction_coa_id
75571         , p_accounting_coa_id       => l_adr_accounting_coa_id
75572         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75576         , p_component_type          => l_component_type
75573         , p_flex_value_set_id       => l_adr_flex_value_set_id
75574         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
75575         , p_adr_type_code           => 'S'
75577         , p_component_code          => l_component_code
75578         , p_component_type_code     => l_component_type_code
75579         , p_component_appl_id       => l_component_appl_id
75580         , p_amb_context_code        => l_amb_context_code
75581         , p_entity_code             => 'AP_PAYMENTS'
75582         , p_event_class_code        => 'RECONCILED PAYMENTS'
75583         , p_side                    => 'NA'
75584         );
75585 
75586   END IF;
75587 
75588    --
75589    --
75590    END IF;
75591 
75592        --
75593        -- Update the line information that should be overwritten
75594        --
75595        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75596                                          p_header_num   => 1);
75597        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75598 
75599        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75600 
75601        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75602           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75603        END IF;
75604 
75605       --
75606       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75607       --
75608       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75609           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75610       ELSE
75611           ---------------------------------------------------------------------------------------------------
75612           -- 4262811a Switch Sign
75613           ---------------------------------------------------------------------------------------------------
75614           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75615           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75616                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75617           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75618                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75619           -- 5132302
75620           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75621                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75622 
75623       END IF;
75624 
75625       -- 4955764
75626       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75627       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75628 
75629 
75630       XLA_AE_LINES_PKG.ValidateCurrentLine;
75631       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75632 
75633       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75634                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75635                ,p_balance_type_code => l_balance_type_code);
75636 
75637    END IF;
75638 
75639    -----------------------------------------------------------------------------------------
75640    -- 4262811 Multiperiod Accounting
75641    -----------------------------------------------------------------------------------------
75642      -- No MPA option is assigned.
75643 
75644 
75645 END IF;
75646 END IF;
75647 --
75648 
75649 --
75650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75651    trace
75652       (p_msg      => 'END of AcctLineType_145'
75653       ,p_level    => C_LEVEL_PROCEDURE
75654       ,p_module   => l_log_module);
75655 END IF;
75656 --
75657 EXCEPTION
75658   WHEN xla_exceptions_pkg.application_exception THEN
75659       RAISE;
75660   WHEN OTHERS THEN
75661        xla_exceptions_pkg.raise_message
75662            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_145');
75663 END AcctLineType_145;
75664 --
75665 
75666 ---------------------------------------
75667 --
75668 -- PRIVATE FUNCTION
75669 --         AcctLineType_146
75670 --
75671 ---------------------------------------
75672 PROCEDURE AcctLineType_146 (
75673   p_application_id        IN NUMBER
75674  ,p_event_id              IN NUMBER
75675  ,p_calculate_acctd_flag  IN VARCHAR2
75676  ,p_calculate_g_l_flag    IN VARCHAR2
75677  ,p_actual_flag           IN OUT VARCHAR2
75678  ,p_balance_type_code     OUT VARCHAR2
75679  ,p_gain_or_loss_ref      OUT VARCHAR2
75680  
75681 --Payment Currency Code
75682  , p_source_8            IN VARCHAR2
75683 --Interest Account
75684  , p_source_23            IN NUMBER
75685 --Prorate Interest Invoice Across Distributions Option
75686  , p_source_24            IN VARCHAR2
75687 --Invoice Distribution Account
75688  , p_source_25            IN NUMBER
75689 --Invoice Distribution Type
75690  , p_source_28            IN VARCHAR2
75691  , p_source_28_meaning    IN VARCHAR2
75692 --Invoice Type Paid
75693  , p_source_56            IN VARCHAR2
75694  , p_source_56_meaning    IN VARCHAR2
75698  , p_source_58            IN VARCHAR2
75695 --When to Account for Payment Option
75696  , p_source_57            IN VARCHAR2
75697 --Accounting Reversal Indicator
75699 --Distribution Link Type
75700  , p_source_60            IN VARCHAR2
75701 --Override Accounted Amount Indicator
75702  , p_source_85            IN VARCHAR2
75703  , p_source_85_meaning    IN VARCHAR2
75704 --Third Party Type
75705  , p_source_88            IN VARCHAR2
75706 --Invoice Distribution Tax Line Identifier
75707  , p_source_91            IN NUMBER
75708 --Invoice Distribution Tax Distribution Identifier from Tax
75709  , p_source_92            IN NUMBER
75710 --Invoice Distribution Summary Tax Line Identifier
75711  , p_source_93            IN NUMBER
75712 --Business Flow Accounts Payable Application Identifier
75713  , p_source_96            IN NUMBER
75714 --Business Flow Invoice Distribution Type
75715  , p_source_97            IN VARCHAR2
75716 --Business Flow Invoice Entity Code
75717  , p_source_98            IN VARCHAR2
75718 --Business Flow Invoice Distribution Identifier
75719  , p_source_99            IN NUMBER
75720 --Business Flow Invoice Identifier
75721  , p_source_100            IN NUMBER
75722 --Payment Distribution Type
75723  , p_source_101            IN VARCHAR2
75724  , p_source_101_meaning    IN VARCHAR2
75725 --Payment Distribution Amount
75726  , p_source_102            IN NUMBER
75727 --Payment Distribution Identifier
75728  , p_source_107            IN NUMBER
75729 --Payment Supplier Identifier
75730  , p_source_113            IN NUMBER
75731 --Payment Supplier Site Identifier
75732  , p_source_114            IN NUMBER
75733 --Payment Distribution Reversed Identifier
75734  , p_source_115            IN NUMBER
75735 --Payment Distribution (Payment Rate) Ledger Amount
75736  , p_source_118            IN NUMBER
75737 --Payment Exchange Date
75738  , p_source_120            IN DATE
75739 --Payment Exchange Rate
75740  , p_source_121            IN NUMBER
75741 --Payment Exchange Rate Type
75742  , p_source_122            IN VARCHAR2
75743 --Payment Processing Type
75744  , p_source_126            IN VARCHAR2
75745 --Invoice Distribution Amount of the Payment Distribution
75746  , p_source_127            IN NUMBER
75747 )
75748 IS
75749 
75750 l_component_type              VARCHAR2(80);
75751 l_component_code              VARCHAR2(30);
75752 l_component_type_code         VARCHAR2(1);
75753 l_component_appl_id           INTEGER;
75754 l_amb_context_code            VARCHAR2(30);
75755 l_entity_code                 VARCHAR2(30);
75756 l_event_class_code            VARCHAR2(30);
75757 l_ae_header_id                NUMBER;
75758 l_event_type_code             VARCHAR2(30);
75759 l_line_definition_code        VARCHAR2(30);
75760 l_line_definition_owner_code  VARCHAR2(1);
75761 --
75762 -- adr variables
75763 l_segment                     VARCHAR2(30);
75764 l_ccid                        NUMBER;
75765 l_adr_transaction_coa_id      NUMBER;
75766 l_adr_accounting_coa_id       NUMBER;
75767 l_adr_flexfield_segment_code  VARCHAR2(30);
75768 l_adr_flex_value_set_id       NUMBER;
75769 l_adr_value_type_code         VARCHAR2(30);
75770 l_adr_value_combination_id    NUMBER;
75771 l_adr_value_segment_code      VARCHAR2(30);
75772 
75773 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75774 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75775 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75776 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75777 
75778 -- 4262811 Variables ------------------------------------------------------------------------------------------
75779 l_entered_amt_idx             NUMBER;
75780 l_accted_amt_idx              NUMBER;
75781 l_acc_rev_flag                VARCHAR2(1);
75782 l_accrual_line_num            NUMBER;
75783 l_tmp_amt                     NUMBER;
75784 l_acc_rev_natural_side_code   VARCHAR2(1);
75785 
75786 l_num_entries                 NUMBER;
75787 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75788 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75789 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75790 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75791 l_recog_line_1                NUMBER;
75792 l_recog_line_2                NUMBER;
75793 
75794 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75795 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75796 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75797 
75798 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75799 
75800 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75801 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75802 
75803 ---------------------------------------------------------------------------------------------------------------
75804 
75805 
75806 --
75807 -- bulk performance
75808 --
75809 l_balance_type_code           VARCHAR2(1);
75810 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75811 l_log_module                  VARCHAR2(240);
75812 
75813 --
75814 -- Upgrade strategy
75815 --
75816 l_actual_upg_option           VARCHAR2(1);
75817 l_enc_upg_option           VARCHAR2(1);
75818 
75819 --
75820 BEGIN
75821 --
75822 IF g_log_enabled THEN
75826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75823       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
75824 END IF;
75825 --
75827 
75828       trace
75829          (p_msg      => 'BEGIN of AcctLineType_146'
75830          ,p_level    => C_LEVEL_PROCEDURE
75831          ,p_module   => l_log_module);
75832 
75833 END IF;
75834 --
75835 l_component_type             := 'AMB_JLT';
75836 l_component_code             := 'AP_INTEREST_EXPENSE_PMT';
75837 l_component_type_code        := 'S';
75838 l_component_appl_id          :=  200;
75839 l_amb_context_code           := 'DEFAULT';
75840 l_entity_code                := 'AP_PAYMENTS';
75841 l_event_class_code           := 'PAYMENTS';
75842 l_event_type_code            := 'PAYMENTS_ALL';
75843 l_line_definition_owner_code := 'S';
75844 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
75845 --
75846 l_balance_type_code          := 'A';
75847 l_segment                     := NULL;
75848 l_ccid                        := NULL;
75849 l_adr_transaction_coa_id      := NULL;
75850 l_adr_accounting_coa_id       := NULL;
75851 l_adr_flexfield_segment_code  := NULL;
75852 l_adr_flex_value_set_id       := NULL;
75853 l_adr_value_type_code         := NULL;
75854 l_adr_value_combination_id    := NULL;
75855 l_adr_value_segment_code      := NULL;
75856 
75857 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75858 l_bflow_class_code           := '';    -- 4219869 Business Flow
75859 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75860 l_budgetary_control_flag     := 'N';
75861 
75862 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75863 l_bflow_applied_to_amt       := NULL; -- 5132302
75864 l_entered_amt_idx            := NULL;          -- 4262811
75865 l_accted_amt_idx             := NULL;          -- 4262811
75866 l_acc_rev_flag               := NULL;          -- 4262811
75867 l_accrual_line_num           := NULL;          -- 4262811
75868 l_tmp_amt                    := NULL;          -- 4262811
75869 --
75870  
75871 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75872     l_balance_type_code <> 'B' THEN
75873 IF NVL(p_source_57,'
75874 ') <>  'CLEAR_CLEAR' AND 
75875 NVL(p_source_56,'
75876 ') =  'INTEREST' AND 
75877 NVL(p_source_28,'
75878 ') =  'ITEM' AND 
75879 (NVL(p_source_101,'
75880 ') =  'CASH' OR 
75881 NVL(p_source_101,'
75882 ') =  'DISCOUNT') AND 
75883 NVL(p_source_126,'
75884 ') <>  'PAYMENTCARD'
75885  THEN 
75886 
75887    --
75888    XLA_AE_LINES_PKG.SetNewLine;
75889 
75890    p_balance_type_code          := l_balance_type_code;
75891    -- set the flag so later we will know whether the gain loss line needs to be created
75892    
75893    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75894      p_actual_flag :='A';
75895    END IF;
75896 
75897    --
75898    -- bulk performance
75899    --
75900    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75901                                       p_header_num   => 0); -- 4262811
75902    --
75903    -- set accounting line options
75904    --
75905    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75906            p_natural_side_code          => 'D'
75907          , p_gain_or_loss_flag          => 'N'
75908          , p_gl_transfer_mode_code      => 'S'
75909          , p_acct_entry_type_code       => 'A'
75910          , p_switch_side_flag           => 'Y'
75911          , p_merge_duplicate_code       => 'A'
75912          );
75913    --
75914    l_acc_rev_natural_side_code := 'C';  -- 4262811
75915    -- 
75916    --
75917    -- set accounting line type info
75918    --
75919    xla_ae_lines_pkg.SetAcctLineType
75920       (p_component_type             => l_component_type
75921       ,p_event_type_code            => l_event_type_code
75922       ,p_line_definition_owner_code => l_line_definition_owner_code
75923       ,p_line_definition_code       => l_line_definition_code
75924       ,p_accounting_line_code       => l_component_code
75925       ,p_accounting_line_type_code  => l_component_type_code
75926       ,p_accounting_line_appl_id    => l_component_appl_id
75927       ,p_amb_context_code           => l_amb_context_code
75928       ,p_entity_code                => l_entity_code
75929       ,p_event_class_code           => l_event_class_code);
75930    --
75931    -- set accounting class
75932    --
75933    xla_ae_lines_pkg.SetAcctClass(
75934            p_accounting_class_code  => 'INTEREST_EXPENSE'
75935          , p_ae_header_id           => l_ae_header_id
75936          );
75937 
75938    --
75939    -- set rounding class
75940    --
75941    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75942                       'INTEREST_EXPENSE';
75943 
75944    --
75945    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75946    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75947    --
75948    -- bulk performance
75949    --
75950    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75951 
75952    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75953       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75954 
75955    -- 4955764
75956    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75960    
75957       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75958 
75959    -- 4458381 Public Sector Enh
75961    --
75962    -- set accounting attributes for the line type
75963    --
75964    l_entered_amt_idx := 10;
75965    l_accted_amt_idx  := 15;
75966    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
75967    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75968    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
75969    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
75970    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
75971    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
75972    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
75973    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75974    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
75975    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
75976    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
75977    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
75978    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
75979    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75980    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
75981    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
75982    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
75983    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
75984    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
75985    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
75986    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
75987    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
75988    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
75989    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
75990    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
75991    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
75992    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
75993    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
75994    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
75995    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
75996    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
75997    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
75998    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
75999    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
76000    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
76001    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
76002    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
76003    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
76004    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
76005    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
76006    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
76007    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
76008    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
76009    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
76010    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
76011    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
76012    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
76013    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
76014    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
76015 
76016    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76017    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76018 
76019    ---------------------------------------------------------------------------------------------------------------
76020    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76021    ---------------------------------------------------------------------------------------------------------------
76022    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76023 
76024    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76025    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76026 
76027    IF xla_accounting_cache_pkg.GetValueChar
76028          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76029          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76030    AND l_bflow_method_code = 'PRIOR_ENTRY'
76031 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76032    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76033          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76034        )
76035    THEN
76036          xla_ae_lines_pkg.BflowUpgEntry
76037            (p_business_method_code    => l_bflow_method_code
76038            ,p_business_class_code     => l_bflow_class_code
76039            ,p_balance_type            => l_balance_type_code);
76040    ELSE
76041       NULL;
76042 -- No business flow processing for business flow method of NONE.
76043    END IF;
76044 
76045    --
76046    -- call analytical criteria
76047    --
76048    
76049    --
76050    -- call description
76051    --
76052    -- No description or it is inherited.
76053    --
76054    -- call ADRs
76055    -- Bug 4922099
76059         (NVL(l_enc_upg_option, 'N') = 'O')
76056    --
76057    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76058         (NVL(l_actual_upg_option, 'N') = 'O') OR
76060       )
76061    THEN
76062    NULL;
76063    --
76064    --
76065    
76066   l_ccid := AcctDerRule_34(
76067            p_application_id           => p_application_id
76068          , p_ae_header_id             => l_ae_header_id 
76069 , p_source_23 => p_source_23
76070 , p_source_24 => p_source_24
76071 , p_source_25 => p_source_25
76072          , x_transaction_coa_id       => l_adr_transaction_coa_id
76073          , x_accounting_coa_id        => l_adr_accounting_coa_id
76074          , x_value_type_code          => l_adr_value_type_code
76075          , p_side                     => 'NA'
76076    );
76077 
76078    xla_ae_lines_pkg.set_ccid(
76079     p_code_combination_id          => l_ccid
76080   , p_value_type_code              => l_adr_value_type_code
76081   , p_transaction_coa_id           => l_adr_transaction_coa_id
76082   , p_accounting_coa_id            => l_adr_accounting_coa_id
76083   , p_adr_code                     => 'AP_INTEREST'
76084   , p_adr_type_code                => 'S'
76085   , p_component_type               => l_component_type
76086   , p_component_code               => l_component_code
76087   , p_component_type_code          => l_component_type_code
76088   , p_component_appl_id            => l_component_appl_id
76089   , p_amb_context_code             => l_amb_context_code
76090   , p_side                         => 'NA'
76091   );
76092 
76093 
76094    l_segment := AcctDerRule_12(
76095            p_application_id           => p_application_id
76096          , p_ae_header_id             => l_ae_header_id 
76097 , p_source_23 => p_source_23
76098 , p_source_24 => p_source_24
76099          , x_transaction_coa_id       => l_adr_transaction_coa_id
76100          , x_accounting_coa_id        => l_adr_accounting_coa_id
76101          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
76102          , x_flex_value_set_id        => l_adr_flex_value_set_id
76103          , x_value_type_code          => l_adr_value_type_code
76104          , x_value_combination_id     => l_adr_value_combination_id
76105          , x_value_segment_code       => l_adr_value_segment_code
76106          , p_side                     => 'NA'
76107          , p_override_seg_flag        => 'Y'
76108    );
76109 
76110    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
76111 
76112       xla_ae_lines_pkg.set_segment(
76113           p_to_segment_code         => 'GL_ACCOUNT'
76114         , p_segment_value           => l_segment
76115         , p_from_segment_code       => l_adr_value_segment_code
76116         , p_from_combination_id     => l_adr_value_combination_id
76117         , p_value_type_code         => l_adr_value_type_code
76118         , p_transaction_coa_id      => l_adr_transaction_coa_id
76119         , p_accounting_coa_id       => l_adr_accounting_coa_id
76120         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
76121         , p_flex_value_set_id       => l_adr_flex_value_set_id
76122         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
76123         , p_adr_type_code           => 'S'
76124         , p_component_type          => l_component_type
76125         , p_component_code          => l_component_code
76126         , p_component_type_code     => l_component_type_code
76127         , p_component_appl_id       => l_component_appl_id
76128         , p_amb_context_code        => l_amb_context_code
76129         , p_entity_code             => 'AP_PAYMENTS'
76130         , p_event_class_code        => 'PAYMENTS'
76131         , p_side                    => 'NA'
76132         );
76133 
76134   END IF;
76135 
76136    --
76137    --
76138    END IF;
76139    --
76140    -- Bug 4922099
76141    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76142           (NVL(l_enc_upg_option, 'N') = 'O')
76143         ) AND
76144         (l_bflow_method_code = 'PRIOR_ENTRY')
76145       )
76146    THEN
76147       IF
76148       --
76149       1 = 2
76150       --
76151       THEN
76152       xla_accounting_err_pkg.build_message
76153                                     (p_appli_s_name            => 'XLA'
76154                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76155                                     ,p_token_1                 => 'LINE_NUMBER'
76156                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76157                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76158                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76159                                                                              l_component_type
76160                                                                             ,l_component_code
76161                                                                             ,l_component_type_code
76162                                                                             ,l_component_appl_id
76163                                                                             ,l_amb_context_code
76164                                                                             ,l_entity_code
76165                                                                             ,l_event_class_code
76166                                                                            )
76170                                                                           ,p_lookup_code    => l_component_type_code
76167                                     ,p_token_3                 => 'OWNER'
76168                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76169                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76171                                                                          )
76172                                     ,p_token_4                 => 'PRODUCT_NAME'
76173                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76174                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76175                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76176                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76177                                     ,p_ae_header_id            =>  NULL
76178                                        );
76179 
76180         IF (C_LEVEL_ERROR>= g_log_level) THEN
76181                  trace
76182                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76183                       ,p_level    => C_LEVEL_ERROR
76184                       ,p_module   => l_log_module);
76185         END IF;
76186       END IF;
76187    END IF;
76188    --
76189    --
76190    ------------------------------------------------------------------------------------------------
76191    -- 4219869 Business Flow
76192    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76193    -- Prior Entry.  Currently, the following code is always generated.
76194    ------------------------------------------------------------------------------------------------
76195    XLA_AE_LINES_PKG.ValidateCurrentLine;
76196 
76197    ------------------------------------------------------------------------------------
76198    -- 4219869 Business Flow
76199    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76200    ------------------------------------------------------------------------------------
76201    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76202 
76203    ----------------------------------------------------------------------------------
76204    -- 4219869 Business Flow
76205    -- Update journal entry status -- Need to generate this within IF <condition>
76206    ----------------------------------------------------------------------------------
76207    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76208          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76209          ,p_balance_type_code => l_balance_type_code
76210          );
76211 
76212    -------------------------------------------------------------------------------------------
76213    -- 4262811 - Generate the Accrual Reversal lines
76214    -------------------------------------------------------------------------------------------
76215    BEGIN
76216       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76217                               (g_array_event(p_event_id).array_value_num('header_index'));
76218       IF l_acc_rev_flag IS NULL THEN
76219          l_acc_rev_flag := 'N';
76220       END IF;
76221    EXCEPTION
76222       WHEN OTHERS THEN
76223          l_acc_rev_flag := 'N';
76224    END;
76225    --
76226    IF (l_acc_rev_flag = 'Y') THEN
76227 
76228        -- 4645092  ------------------------------------------------------------------------------
76229        -- To allow MPA report to determine if it should generate report process
76230        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76231        ------------------------------------------------------------------------------------------
76232 
76233        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76234        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76235    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76236    -- call ADRs
76237    -- Bug 4922099
76238    --
76239    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76240         (NVL(l_actual_upg_option, 'N') = 'O') OR
76241         (NVL(l_enc_upg_option, 'N') = 'O')
76242       )
76243    THEN
76244    NULL;
76245    --
76246    --
76247    
76248   l_ccid := AcctDerRule_34(
76249            p_application_id           => p_application_id
76250          , p_ae_header_id             => l_ae_header_id 
76251 , p_source_23 => p_source_23
76252 , p_source_24 => p_source_24
76253 , p_source_25 => p_source_25
76254          , x_transaction_coa_id       => l_adr_transaction_coa_id
76255          , x_accounting_coa_id        => l_adr_accounting_coa_id
76256          , x_value_type_code          => l_adr_value_type_code
76257          , p_side                     => 'NA'
76258    );
76259 
76260    xla_ae_lines_pkg.set_ccid(
76261     p_code_combination_id          => l_ccid
76262   , p_value_type_code              => l_adr_value_type_code
76263   , p_transaction_coa_id           => l_adr_transaction_coa_id
76264   , p_accounting_coa_id            => l_adr_accounting_coa_id
76265   , p_adr_code                     => 'AP_INTEREST'
76266   , p_adr_type_code                => 'S'
76267   , p_component_type               => l_component_type
76271   , p_amb_context_code             => l_amb_context_code
76268   , p_component_code               => l_component_code
76269   , p_component_type_code          => l_component_type_code
76270   , p_component_appl_id            => l_component_appl_id
76272   , p_side                         => 'NA'
76273   );
76274 
76275 
76276    l_segment := AcctDerRule_12(
76277            p_application_id           => p_application_id
76278          , p_ae_header_id             => l_ae_header_id 
76279 , p_source_23 => p_source_23
76280 , p_source_24 => p_source_24
76281          , x_transaction_coa_id       => l_adr_transaction_coa_id
76282          , x_accounting_coa_id        => l_adr_accounting_coa_id
76283          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
76284          , x_flex_value_set_id        => l_adr_flex_value_set_id
76285          , x_value_type_code          => l_adr_value_type_code
76286          , x_value_combination_id     => l_adr_value_combination_id
76287          , x_value_segment_code       => l_adr_value_segment_code
76288          , p_side                     => 'NA'
76289          , p_override_seg_flag        => 'Y'
76290    );
76291 
76292    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
76293 
76294       xla_ae_lines_pkg.set_segment(
76295           p_to_segment_code         => 'GL_ACCOUNT'
76296         , p_segment_value           => l_segment
76297         , p_from_segment_code       => l_adr_value_segment_code
76298         , p_from_combination_id     => l_adr_value_combination_id
76299         , p_value_type_code         => l_adr_value_type_code
76300         , p_transaction_coa_id      => l_adr_transaction_coa_id
76301         , p_accounting_coa_id       => l_adr_accounting_coa_id
76302         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
76303         , p_flex_value_set_id       => l_adr_flex_value_set_id
76304         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
76305         , p_adr_type_code           => 'S'
76306         , p_component_type          => l_component_type
76307         , p_component_code          => l_component_code
76308         , p_component_type_code     => l_component_type_code
76309         , p_component_appl_id       => l_component_appl_id
76310         , p_amb_context_code        => l_amb_context_code
76311         , p_entity_code             => 'AP_PAYMENTS'
76312         , p_event_class_code        => 'PAYMENTS'
76313         , p_side                    => 'NA'
76314         );
76315 
76316   END IF;
76317 
76318    --
76319    --
76320    END IF;
76321 
76322        --
76323        -- Update the line information that should be overwritten
76324        --
76325        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76326                                          p_header_num   => 1);
76327        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76328 
76329        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76330 
76331        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76332           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76333        END IF;
76334 
76335       --
76336       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76337       --
76338       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76339           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76340       ELSE
76341           ---------------------------------------------------------------------------------------------------
76342           -- 4262811a Switch Sign
76343           ---------------------------------------------------------------------------------------------------
76344           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76345           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76346                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76347           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76348                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76349           -- 5132302
76350           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76351                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76352 
76353       END IF;
76354 
76355       -- 4955764
76356       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76357       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76358 
76359 
76360       XLA_AE_LINES_PKG.ValidateCurrentLine;
76361       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76362 
76363       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76364                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76365                ,p_balance_type_code => l_balance_type_code);
76366 
76367    END IF;
76368 
76369    -----------------------------------------------------------------------------------------
76370    -- 4262811 Multiperiod Accounting
76371    -----------------------------------------------------------------------------------------
76372      -- No MPA option is assigned.
76373 
76374 
76375 END IF;
76379 --
76376 END IF;
76377 --
76378 
76380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76381    trace
76382       (p_msg      => 'END of AcctLineType_146'
76383       ,p_level    => C_LEVEL_PROCEDURE
76384       ,p_module   => l_log_module);
76385 END IF;
76386 --
76387 EXCEPTION
76388   WHEN xla_exceptions_pkg.application_exception THEN
76389       RAISE;
76390   WHEN OTHERS THEN
76391        xla_exceptions_pkg.raise_message
76392            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_146');
76393 END AcctLineType_146;
76394 --
76395 
76396 ---------------------------------------
76397 --
76398 -- PRIVATE FUNCTION
76399 --         AcctLineType_147
76400 --
76401 ---------------------------------------
76402 PROCEDURE AcctLineType_147 (
76403   p_application_id        IN NUMBER
76404  ,p_event_id              IN NUMBER
76405  ,p_calculate_acctd_flag  IN VARCHAR2
76406  ,p_calculate_g_l_flag    IN VARCHAR2
76407  ,p_actual_flag           IN OUT VARCHAR2
76408  ,p_balance_type_code     OUT VARCHAR2
76409  ,p_gain_or_loss_ref      OUT VARCHAR2
76410  
76411 --Invoice Distribution Description
76412  , p_source_1            IN VARCHAR2
76413 --Invoice Distribution Ledger Amount
76414  , p_source_16            IN NUMBER
76415 --Invoice Distribution Account
76416  , p_source_25            IN NUMBER
76417 --Invoice Distribution Type
76418  , p_source_28            IN VARCHAR2
76419  , p_source_28_meaning    IN VARCHAR2
76420 --Accrue on Receipt Option
76421  , p_source_54            IN VARCHAR2
76422  , p_source_54_meaning    IN VARCHAR2
76423 --Accounting Reversal Indicator
76424  , p_source_58            IN VARCHAR2
76425 --Distribution Link Type
76426  , p_source_60            IN VARCHAR2
76427 --Allocation to Main Distribution Identifier
76428  , p_source_62            IN NUMBER
76429 --Invoice Identifier
76430  , p_source_63            IN NUMBER
76431 --Invoice Distribution Identifier
76432  , p_source_69            IN NUMBER
76433 --Payables Encumbrance Upgrade Credit Account
76434  , p_source_70            IN NUMBER
76435 --Payables Encumbrance Upgrade Credit Amount
76436  , p_source_71            IN NUMBER
76437 --Invoice Currency Code
76438  , p_source_72            IN VARCHAR2
76439 --Payables Encumbrance Upgrade Credit Base Amount
76440  , p_source_73            IN NUMBER
76441 --Payables Encumbrance Upgrade Debit Account
76442  , p_source_74            IN NUMBER
76443 --Payables Encumbrance Upgrade Debit Amount
76444  , p_source_75            IN NUMBER
76445 --Payables Encumbrance Upgrade Debit Base Amount
76446  , p_source_76            IN NUMBER
76447 --Payables Encumbrance Upgrade Option
76448  , p_source_77            IN VARCHAR2
76449 --Invoice Distribution Amount
76450  , p_source_78            IN NUMBER
76451 --Deferred Accounting End Date
76452  , p_source_82            IN DATE
76453 --Deferred Accounting Option
76454  , p_source_83            IN VARCHAR2
76455 --Deferred Accounting Start Date
76456  , p_source_84            IN DATE
76457 --Override Accounted Amount Indicator
76458  , p_source_85            IN VARCHAR2
76459  , p_source_85_meaning    IN VARCHAR2
76460 --Invoice Supplier Identifier
76461  , p_source_86            IN NUMBER
76462 --Invoice Supplier Site Identifier
76463  , p_source_87            IN NUMBER
76464 --Third Party Type
76465  , p_source_88            IN VARCHAR2
76466 --Parent Reversal Identifier
76467  , p_source_89            IN NUMBER
76468 --Invoice Distribution Statistical Amount
76469  , p_source_90            IN NUMBER
76470 --Invoice Distribution Tax Line Identifier
76471  , p_source_91            IN NUMBER
76472 --Invoice Distribution Tax Distribution Identifier from Tax
76473  , p_source_92            IN NUMBER
76474 --Invoice Distribution Summary Tax Line Identifier
76475  , p_source_93            IN NUMBER
76476 --Payables Upgrade Credit Encumbrance Type Identifier
76477  , p_source_94            IN NUMBER
76478 --Payables Upgrade Debit Encumbrance Type Identifier
76479  , p_source_95            IN NUMBER
76480 --Business Flow Accounts Payable Application Identifier
76481  , p_source_96            IN NUMBER
76482 --Business Flow Invoice Distribution Type
76483  , p_source_97            IN VARCHAR2
76484 --Business Flow Invoice Entity Code
76485  , p_source_98            IN VARCHAR2
76486 --Business Flow Invoice Distribution Identifier
76487  , p_source_99            IN NUMBER
76488 --Business Flow Invoice Identifier
76489  , p_source_100            IN NUMBER
76490 --Invoice Exchange Date
76491  , p_source_146            IN DATE
76492 --Invoice Exchange Rate
76493  , p_source_147            IN NUMBER
76494 --Invoice Exchange Rate Type
76495  , p_source_148            IN VARCHAR2
76496 )
76497 IS
76498 
76499 l_component_type              VARCHAR2(80);
76500 l_component_code              VARCHAR2(30);
76501 l_component_type_code         VARCHAR2(1);
76502 l_component_appl_id           INTEGER;
76503 l_amb_context_code            VARCHAR2(30);
76504 l_entity_code                 VARCHAR2(30);
76505 l_event_class_code            VARCHAR2(30);
76506 l_ae_header_id                NUMBER;
76507 l_event_type_code             VARCHAR2(30);
76508 l_line_definition_code        VARCHAR2(30);
76509 l_line_definition_owner_code  VARCHAR2(1);
76510 --
76511 -- adr variables
76512 l_segment                     VARCHAR2(30);
76513 l_ccid                        NUMBER;
76514 l_adr_transaction_coa_id      NUMBER;
76518 l_adr_value_type_code         VARCHAR2(30);
76515 l_adr_accounting_coa_id       NUMBER;
76516 l_adr_flexfield_segment_code  VARCHAR2(30);
76517 l_adr_flex_value_set_id       NUMBER;
76519 l_adr_value_combination_id    NUMBER;
76520 l_adr_value_segment_code      VARCHAR2(30);
76521 
76522 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76523 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76524 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76525 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76526 
76527 -- 4262811 Variables ------------------------------------------------------------------------------------------
76528 l_entered_amt_idx             NUMBER;
76529 l_accted_amt_idx              NUMBER;
76530 l_acc_rev_flag                VARCHAR2(1);
76531 l_accrual_line_num            NUMBER;
76532 l_tmp_amt                     NUMBER;
76533 l_acc_rev_natural_side_code   VARCHAR2(1);
76534 
76535 l_num_entries                 NUMBER;
76536 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76537 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76538 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76539 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76540 l_recog_line_1                NUMBER;
76541 l_recog_line_2                NUMBER;
76542 
76543 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76544 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76545 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76546 
76547 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76548 
76549 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76550 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76551 
76552 ---------------------------------------------------------------------------------------------------------------
76553 
76554 
76555 --
76556 -- bulk performance
76557 --
76558 l_balance_type_code           VARCHAR2(1);
76559 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76560 l_log_module                  VARCHAR2(240);
76561 
76562 --
76563 -- Upgrade strategy
76564 --
76565 l_actual_upg_option           VARCHAR2(1);
76566 l_enc_upg_option           VARCHAR2(1);
76567 
76568 --
76569 BEGIN
76570 --
76571 IF g_log_enabled THEN
76572       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
76573 END IF;
76574 --
76575 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76576 
76577       trace
76578          (p_msg      => 'BEGIN of AcctLineType_147'
76579          ,p_level    => C_LEVEL_PROCEDURE
76580          ,p_module   => l_log_module);
76581 
76582 END IF;
76583 --
76584 l_component_type             := 'AMB_JLT';
76585 l_component_code             := 'AP_INV_PRICE_VAR_CM';
76586 l_component_type_code        := 'S';
76587 l_component_appl_id          :=  200;
76588 l_amb_context_code           := 'DEFAULT';
76589 l_entity_code                := 'AP_INVOICES';
76590 l_event_class_code           := 'CREDIT MEMOS';
76591 l_event_type_code            := 'CREDIT MEMOS_ALL';
76592 l_line_definition_owner_code := 'S';
76593 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
76594 --
76595 l_balance_type_code          := 'A';
76596 l_segment                     := NULL;
76597 l_ccid                        := NULL;
76598 l_adr_transaction_coa_id      := NULL;
76599 l_adr_accounting_coa_id       := NULL;
76600 l_adr_flexfield_segment_code  := NULL;
76601 l_adr_flex_value_set_id       := NULL;
76602 l_adr_value_type_code         := NULL;
76603 l_adr_value_combination_id    := NULL;
76604 l_adr_value_segment_code      := NULL;
76605 
76606 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76607 l_bflow_class_code           := '';    -- 4219869 Business Flow
76608 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76609 l_budgetary_control_flag     := 'N';
76610 
76611 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76612 l_bflow_applied_to_amt       := NULL; -- 5132302
76613 l_entered_amt_idx            := NULL;          -- 4262811
76614 l_accted_amt_idx             := NULL;          -- 4262811
76615 l_acc_rev_flag               := NULL;          -- 4262811
76616 l_accrual_line_num           := NULL;          -- 4262811
76617 l_tmp_amt                    := NULL;          -- 4262811
76618 --
76619  
76620 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76621     l_balance_type_code <> 'B' THEN
76622 IF NVL(p_source_28,'
76623 ') =  'IPV' AND 
76624 NVL(p_source_54,'
76625 ') =  'Y'
76626  THEN 
76627 
76628    --
76629    XLA_AE_LINES_PKG.SetNewLine;
76630 
76631    p_balance_type_code          := l_balance_type_code;
76632    -- set the flag so later we will know whether the gain loss line needs to be created
76633    
76634    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76635      p_actual_flag :='A';
76636    END IF;
76637 
76638    --
76639    -- bulk performance
76640    --
76641    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76642                                       p_header_num   => 0); -- 4262811
76643    --
76644    -- set accounting line options
76645    --
76649          , p_gl_transfer_mode_code      => 'S'
76646    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76647            p_natural_side_code          => 'D'
76648          , p_gain_or_loss_flag          => 'N'
76650          , p_acct_entry_type_code       => 'A'
76651          , p_switch_side_flag           => 'Y'
76652          , p_merge_duplicate_code       => 'A'
76653          );
76654    --
76655    l_acc_rev_natural_side_code := 'C';  -- 4262811
76656    -- 
76657    --
76658    -- set accounting line type info
76659    --
76660    xla_ae_lines_pkg.SetAcctLineType
76661       (p_component_type             => l_component_type
76662       ,p_event_type_code            => l_event_type_code
76663       ,p_line_definition_owner_code => l_line_definition_owner_code
76664       ,p_line_definition_code       => l_line_definition_code
76665       ,p_accounting_line_code       => l_component_code
76666       ,p_accounting_line_type_code  => l_component_type_code
76667       ,p_accounting_line_appl_id    => l_component_appl_id
76668       ,p_amb_context_code           => l_amb_context_code
76669       ,p_entity_code                => l_entity_code
76670       ,p_event_class_code           => l_event_class_code);
76671    --
76672    -- set accounting class
76673    --
76674    xla_ae_lines_pkg.SetAcctClass(
76675            p_accounting_class_code  => 'IPV'
76676          , p_ae_header_id           => l_ae_header_id
76677          );
76678 
76679    --
76680    -- set rounding class
76681    --
76682    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76683                       'IPV';
76684 
76685    --
76686    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76687    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76688    --
76689    -- bulk performance
76690    --
76691    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76692 
76693    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76694       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76695 
76696    -- 4955764
76697    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76698       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76699 
76700    -- 4458381 Public Sector Enh
76701    
76702    --
76703    -- set accounting attributes for the line type
76704    --
76705    l_entered_amt_idx := 23;
76706    l_accted_amt_idx  := 28;
76707    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
76708    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76709    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
76710    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
76711    l_rec_acct_attrs.array_num_value(2)  := 
76712 xla_ae_sources_pkg.GetSystemSourceNum(
76713    p_source_code           => 'XLA_EVENT_APPL_ID'
76714  , p_source_type_code      => 'Y'
76715  , p_source_application_id =>  602
76716 );
76717    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
76718    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
76719    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
76720    l_rec_acct_attrs.array_char_value(4)  := 
76721 xla_ae_sources_pkg.GetSystemSourceChar(
76722    p_source_code           => 'XLA_ENTITY_CODE'
76723  , p_source_type_code      => 'Y'
76724  , p_source_application_id =>  602
76725 );
76726    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
76727    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
76728    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
76729    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
76730    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
76731    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
76732    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76733    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
76734    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
76735    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
76736    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
76737    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
76738    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76739    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
76740    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
76741    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
76742    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
76743    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
76744    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
76745    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
76746    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
76747    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
76748    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
76749    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
76750    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
76751    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
76752    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
76756    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
76753    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
76754    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
76755    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
76757    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
76758    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
76759    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
76760    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
76761    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
76762    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
76763    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
76764    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
76765    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
76766    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
76767    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
76768    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
76769    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
76770    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
76771    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
76772    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
76773    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
76774    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
76775    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
76776    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
76777    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
76778    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
76779    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
76780    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
76781    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
76782    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
76783    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
76784    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
76785    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
76786    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
76787    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
76788    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
76789    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
76790    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
76791    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
76792    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
76793    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
76794    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
76795    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
76796    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
76797    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
76798    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
76799    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
76800    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
76801    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
76802    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
76803    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
76804 
76805    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76806    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76807 
76808    ---------------------------------------------------------------------------------------------------------------
76809    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76810    ---------------------------------------------------------------------------------------------------------------
76811    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76812 
76813    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76814    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76815 
76816    IF xla_accounting_cache_pkg.GetValueChar
76817          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76818          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76819    AND l_bflow_method_code = 'PRIOR_ENTRY'
76820 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76821    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76822          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76823        )
76824    THEN
76825          xla_ae_lines_pkg.BflowUpgEntry
76826            (p_business_method_code    => l_bflow_method_code
76827            ,p_business_class_code     => l_bflow_class_code
76828            ,p_balance_type            => l_balance_type_code);
76829    ELSE
76830       NULL;
76831 -- No business flow processing for business flow method of NONE.
76832    END IF;
76833 
76834    --
76835    -- call analytical criteria
76836    --
76837    
76838    --
76839    -- call description
76840    --
76841    
76842 xla_ae_lines_pkg.SetLineDescription(
76843    p_ae_header_id => l_ae_header_id
76844   ,p_description  => Description_2 (
76845      p_application_id         => p_application_id
76849 );
76846    , p_ae_header_id           => l_ae_header_id 
76847 , p_source_1 => p_source_1
76848    )
76850 
76851 
76852    --
76853    -- call ADRs
76854    -- Bug 4922099
76855    --
76856    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76857         (NVL(l_actual_upg_option, 'N') = 'O') OR
76858         (NVL(l_enc_upg_option, 'N') = 'O')
76859       )
76860    THEN
76861    NULL;
76862    --
76863    --
76864    
76865   l_ccid := AcctDerRule_35(
76866            p_application_id           => p_application_id
76867          , p_ae_header_id             => l_ae_header_id 
76868 , p_source_25 => p_source_25
76869          , x_transaction_coa_id       => l_adr_transaction_coa_id
76870          , x_accounting_coa_id        => l_adr_accounting_coa_id
76871          , x_value_type_code          => l_adr_value_type_code
76872          , p_side                     => 'NA'
76873    );
76874 
76875    xla_ae_lines_pkg.set_ccid(
76876     p_code_combination_id          => l_ccid
76877   , p_value_type_code              => l_adr_value_type_code
76878   , p_transaction_coa_id           => l_adr_transaction_coa_id
76879   , p_accounting_coa_id            => l_adr_accounting_coa_id
76880   , p_adr_code                     => 'AP_INVOICE_DIST'
76881   , p_adr_type_code                => 'S'
76882   , p_component_type               => l_component_type
76883   , p_component_code               => l_component_code
76884   , p_component_type_code          => l_component_type_code
76885   , p_component_appl_id            => l_component_appl_id
76886   , p_amb_context_code             => l_amb_context_code
76887   , p_side                         => 'NA'
76888   );
76889 
76890 
76891    --
76892    --
76893    END IF;
76894    --
76895    -- Bug 4922099
76896    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76897           (NVL(l_enc_upg_option, 'N') = 'O')
76898         ) AND
76899         (l_bflow_method_code = 'PRIOR_ENTRY')
76900       )
76901    THEN
76902       IF
76903       --
76904       1 = 2
76905       --
76906       THEN
76907       xla_accounting_err_pkg.build_message
76908                                     (p_appli_s_name            => 'XLA'
76909                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76910                                     ,p_token_1                 => 'LINE_NUMBER'
76911                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76912                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76913                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76914                                                                              l_component_type
76915                                                                             ,l_component_code
76916                                                                             ,l_component_type_code
76917                                                                             ,l_component_appl_id
76918                                                                             ,l_amb_context_code
76919                                                                             ,l_entity_code
76920                                                                             ,l_event_class_code
76921                                                                            )
76922                                     ,p_token_3                 => 'OWNER'
76923                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76924                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76925                                                                           ,p_lookup_code    => l_component_type_code
76926                                                                          )
76927                                     ,p_token_4                 => 'PRODUCT_NAME'
76928                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76929                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76930                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76931                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76932                                     ,p_ae_header_id            =>  NULL
76933                                        );
76934 
76935         IF (C_LEVEL_ERROR>= g_log_level) THEN
76936                  trace
76937                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76938                       ,p_level    => C_LEVEL_ERROR
76939                       ,p_module   => l_log_module);
76940         END IF;
76941       END IF;
76942    END IF;
76943    --
76944    --
76945    ------------------------------------------------------------------------------------------------
76946    -- 4219869 Business Flow
76947    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76948    -- Prior Entry.  Currently, the following code is always generated.
76949    ------------------------------------------------------------------------------------------------
76950    XLA_AE_LINES_PKG.ValidateCurrentLine;
76951 
76952    ------------------------------------------------------------------------------------
76953    -- 4219869 Business Flow
76954    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76958    ----------------------------------------------------------------------------------
76955    ------------------------------------------------------------------------------------
76956    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76957 
76959    -- 4219869 Business Flow
76960    -- Update journal entry status -- Need to generate this within IF <condition>
76961    ----------------------------------------------------------------------------------
76962    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76963          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76964          ,p_balance_type_code => l_balance_type_code
76965          );
76966 
76967    -------------------------------------------------------------------------------------------
76968    -- 4262811 - Generate the Accrual Reversal lines
76969    -------------------------------------------------------------------------------------------
76970    BEGIN
76971       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76972                               (g_array_event(p_event_id).array_value_num('header_index'));
76973       IF l_acc_rev_flag IS NULL THEN
76974          l_acc_rev_flag := 'N';
76975       END IF;
76976    EXCEPTION
76977       WHEN OTHERS THEN
76978          l_acc_rev_flag := 'N';
76979    END;
76980    --
76981    IF (l_acc_rev_flag = 'Y') THEN
76982 
76983        -- 4645092  ------------------------------------------------------------------------------
76984        -- To allow MPA report to determine if it should generate report process
76985        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76986        ------------------------------------------------------------------------------------------
76987 
76988        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76989        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76990    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76991    -- call ADRs
76992    -- Bug 4922099
76993    --
76994    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76995         (NVL(l_actual_upg_option, 'N') = 'O') OR
76996         (NVL(l_enc_upg_option, 'N') = 'O')
76997       )
76998    THEN
76999    NULL;
77000    --
77001    --
77002    
77003   l_ccid := AcctDerRule_35(
77004            p_application_id           => p_application_id
77005          , p_ae_header_id             => l_ae_header_id 
77006 , p_source_25 => p_source_25
77007          , x_transaction_coa_id       => l_adr_transaction_coa_id
77008          , x_accounting_coa_id        => l_adr_accounting_coa_id
77009          , x_value_type_code          => l_adr_value_type_code
77010          , p_side                     => 'NA'
77011    );
77012 
77013    xla_ae_lines_pkg.set_ccid(
77014     p_code_combination_id          => l_ccid
77015   , p_value_type_code              => l_adr_value_type_code
77016   , p_transaction_coa_id           => l_adr_transaction_coa_id
77017   , p_accounting_coa_id            => l_adr_accounting_coa_id
77018   , p_adr_code                     => 'AP_INVOICE_DIST'
77019   , p_adr_type_code                => 'S'
77020   , p_component_type               => l_component_type
77021   , p_component_code               => l_component_code
77022   , p_component_type_code          => l_component_type_code
77023   , p_component_appl_id            => l_component_appl_id
77024   , p_amb_context_code             => l_amb_context_code
77025   , p_side                         => 'NA'
77026   );
77027 
77028 
77029    --
77030    --
77031    END IF;
77032 
77033        --
77034        -- Update the line information that should be overwritten
77035        --
77036        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77037                                          p_header_num   => 1);
77038        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77039 
77040        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77041 
77042        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77043           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77044        END IF;
77045 
77046       --
77047       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77048       --
77049       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77050           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77051       ELSE
77052           ---------------------------------------------------------------------------------------------------
77053           -- 4262811a Switch Sign
77054           ---------------------------------------------------------------------------------------------------
77055           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77056           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77057                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77058           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77059                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77060           -- 5132302
77061           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77062                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77066       -- 4955764
77063 
77064       END IF;
77065 
77067       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77068       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77069 
77070 
77071       XLA_AE_LINES_PKG.ValidateCurrentLine;
77072       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77073 
77074       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77075                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77076                ,p_balance_type_code => l_balance_type_code);
77077 
77078    END IF;
77079 
77080    -----------------------------------------------------------------------------------------
77081    -- 4262811 Multiperiod Accounting
77082    -----------------------------------------------------------------------------------------
77083      -- No MPA option is assigned.
77084 
77085 
77086 END IF;
77087 END IF;
77088 --
77089 
77090 --
77091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77092    trace
77093       (p_msg      => 'END of AcctLineType_147'
77094       ,p_level    => C_LEVEL_PROCEDURE
77095       ,p_module   => l_log_module);
77096 END IF;
77097 --
77098 EXCEPTION
77099   WHEN xla_exceptions_pkg.application_exception THEN
77100       RAISE;
77101   WHEN OTHERS THEN
77102        xla_exceptions_pkg.raise_message
77103            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_147');
77104 END AcctLineType_147;
77105 --
77106 
77107 ---------------------------------------
77108 --
77109 -- PRIVATE FUNCTION
77110 --         AcctLineType_148
77111 --
77112 ---------------------------------------
77113 PROCEDURE AcctLineType_148 (
77114   p_application_id        IN NUMBER
77115  ,p_event_id              IN NUMBER
77116  ,p_calculate_acctd_flag  IN VARCHAR2
77117  ,p_calculate_g_l_flag    IN VARCHAR2
77118  ,p_actual_flag           IN OUT VARCHAR2
77119  ,p_balance_type_code     OUT VARCHAR2
77120  ,p_gain_or_loss_ref      OUT VARCHAR2
77121  
77122 --Invoice Distribution Description
77123  , p_source_1            IN VARCHAR2
77124 --Invoice Distribution Ledger Amount
77125  , p_source_16            IN NUMBER
77126 --Invoice Distribution Account
77127  , p_source_25            IN NUMBER
77128 --Invoice Distribution Type
77129  , p_source_28            IN VARCHAR2
77130  , p_source_28_meaning    IN VARCHAR2
77131 --Accrue on Receipt Option
77132  , p_source_54            IN VARCHAR2
77133  , p_source_54_meaning    IN VARCHAR2
77134 --Accounting Reversal Indicator
77135  , p_source_58            IN VARCHAR2
77136 --Distribution Link Type
77137  , p_source_60            IN VARCHAR2
77138 --Allocation to Main Distribution Identifier
77139  , p_source_62            IN NUMBER
77140 --Invoice Identifier
77141  , p_source_63            IN NUMBER
77142 --Invoice Distribution Identifier
77143  , p_source_69            IN NUMBER
77144 --Payables Encumbrance Upgrade Credit Account
77145  , p_source_70            IN NUMBER
77146 --Payables Encumbrance Upgrade Credit Amount
77147  , p_source_71            IN NUMBER
77148 --Invoice Currency Code
77149  , p_source_72            IN VARCHAR2
77150 --Payables Encumbrance Upgrade Credit Base Amount
77151  , p_source_73            IN NUMBER
77152 --Payables Encumbrance Upgrade Debit Account
77153  , p_source_74            IN NUMBER
77154 --Payables Encumbrance Upgrade Debit Amount
77155  , p_source_75            IN NUMBER
77156 --Payables Encumbrance Upgrade Debit Base Amount
77157  , p_source_76            IN NUMBER
77158 --Payables Encumbrance Upgrade Option
77159  , p_source_77            IN VARCHAR2
77160 --Invoice Distribution Amount
77161  , p_source_78            IN NUMBER
77162 --Deferred Accounting End Date
77163  , p_source_82            IN DATE
77164 --Deferred Accounting Option
77165  , p_source_83            IN VARCHAR2
77166 --Deferred Accounting Start Date
77167  , p_source_84            IN DATE
77168 --Override Accounted Amount Indicator
77169  , p_source_85            IN VARCHAR2
77170  , p_source_85_meaning    IN VARCHAR2
77171 --Invoice Supplier Identifier
77172  , p_source_86            IN NUMBER
77173 --Invoice Supplier Site Identifier
77174  , p_source_87            IN NUMBER
77175 --Third Party Type
77176  , p_source_88            IN VARCHAR2
77177 --Parent Reversal Identifier
77178  , p_source_89            IN NUMBER
77179 --Invoice Distribution Tax Line Identifier
77180  , p_source_91            IN NUMBER
77181 --Invoice Distribution Tax Distribution Identifier from Tax
77182  , p_source_92            IN NUMBER
77183 --Invoice Distribution Summary Tax Line Identifier
77184  , p_source_93            IN NUMBER
77185 --Payables Upgrade Credit Encumbrance Type Identifier
77186  , p_source_94            IN NUMBER
77187 --Payables Upgrade Debit Encumbrance Type Identifier
77188  , p_source_95            IN NUMBER
77189 --Business Flow Accounts Payable Application Identifier
77190  , p_source_96            IN NUMBER
77191 --Business Flow Invoice Distribution Type
77192  , p_source_97            IN VARCHAR2
77193 --Business Flow Invoice Entity Code
77194  , p_source_98            IN VARCHAR2
77195 --Business Flow Invoice Distribution Identifier
77196  , p_source_99            IN NUMBER
77197 --Business Flow Invoice Identifier
77198  , p_source_100            IN NUMBER
77199 --Invoice Exchange Date
77203 --Invoice Exchange Rate Type
77200  , p_source_146            IN DATE
77201 --Invoice Exchange Rate
77202  , p_source_147            IN NUMBER
77204  , p_source_148            IN VARCHAR2
77205 )
77206 IS
77207 
77208 l_component_type              VARCHAR2(80);
77209 l_component_code              VARCHAR2(30);
77210 l_component_type_code         VARCHAR2(1);
77211 l_component_appl_id           INTEGER;
77212 l_amb_context_code            VARCHAR2(30);
77213 l_entity_code                 VARCHAR2(30);
77214 l_event_class_code            VARCHAR2(30);
77215 l_ae_header_id                NUMBER;
77216 l_event_type_code             VARCHAR2(30);
77217 l_line_definition_code        VARCHAR2(30);
77218 l_line_definition_owner_code  VARCHAR2(1);
77219 --
77220 -- adr variables
77221 l_segment                     VARCHAR2(30);
77222 l_ccid                        NUMBER;
77223 l_adr_transaction_coa_id      NUMBER;
77224 l_adr_accounting_coa_id       NUMBER;
77225 l_adr_flexfield_segment_code  VARCHAR2(30);
77226 l_adr_flex_value_set_id       NUMBER;
77227 l_adr_value_type_code         VARCHAR2(30);
77228 l_adr_value_combination_id    NUMBER;
77229 l_adr_value_segment_code      VARCHAR2(30);
77230 
77231 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77232 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77233 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77234 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77235 
77236 -- 4262811 Variables ------------------------------------------------------------------------------------------
77237 l_entered_amt_idx             NUMBER;
77238 l_accted_amt_idx              NUMBER;
77239 l_acc_rev_flag                VARCHAR2(1);
77240 l_accrual_line_num            NUMBER;
77241 l_tmp_amt                     NUMBER;
77242 l_acc_rev_natural_side_code   VARCHAR2(1);
77243 
77244 l_num_entries                 NUMBER;
77245 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77246 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77247 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77248 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77249 l_recog_line_1                NUMBER;
77250 l_recog_line_2                NUMBER;
77251 
77252 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77253 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77254 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77255 
77256 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77257 
77258 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77259 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77260 
77261 ---------------------------------------------------------------------------------------------------------------
77262 
77263 
77264 --
77265 -- bulk performance
77266 --
77267 l_balance_type_code           VARCHAR2(1);
77268 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77269 l_log_module                  VARCHAR2(240);
77270 
77271 --
77272 -- Upgrade strategy
77273 --
77274 l_actual_upg_option           VARCHAR2(1);
77275 l_enc_upg_option           VARCHAR2(1);
77276 
77277 --
77278 BEGIN
77279 --
77280 IF g_log_enabled THEN
77281       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
77282 END IF;
77283 --
77284 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77285 
77286       trace
77287          (p_msg      => 'BEGIN of AcctLineType_148'
77288          ,p_level    => C_LEVEL_PROCEDURE
77289          ,p_module   => l_log_module);
77290 
77291 END IF;
77292 --
77293 l_component_type             := 'AMB_JLT';
77294 l_component_code             := 'AP_INV_PRICE_VAR_DM';
77295 l_component_type_code        := 'S';
77296 l_component_appl_id          :=  200;
77297 l_amb_context_code           := 'DEFAULT';
77298 l_entity_code                := 'AP_INVOICES';
77299 l_event_class_code           := 'DEBIT MEMOS';
77300 l_event_type_code            := 'DEBIT MEMOS_ALL';
77301 l_line_definition_owner_code := 'S';
77302 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
77303 --
77304 l_balance_type_code          := 'A';
77305 l_segment                     := NULL;
77306 l_ccid                        := NULL;
77307 l_adr_transaction_coa_id      := NULL;
77308 l_adr_accounting_coa_id       := NULL;
77309 l_adr_flexfield_segment_code  := NULL;
77310 l_adr_flex_value_set_id       := NULL;
77311 l_adr_value_type_code         := NULL;
77312 l_adr_value_combination_id    := NULL;
77313 l_adr_value_segment_code      := NULL;
77314 
77315 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77316 l_bflow_class_code           := '';    -- 4219869 Business Flow
77317 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77318 l_budgetary_control_flag     := 'N';
77319 
77320 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77321 l_bflow_applied_to_amt       := NULL; -- 5132302
77322 l_entered_amt_idx            := NULL;          -- 4262811
77323 l_accted_amt_idx             := NULL;          -- 4262811
77324 l_acc_rev_flag               := NULL;          -- 4262811
77325 l_accrual_line_num           := NULL;          -- 4262811
77329 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77326 l_tmp_amt                    := NULL;          -- 4262811
77327 --
77328  
77330     l_balance_type_code <> 'B' THEN
77331 IF NVL(p_source_28,'
77332 ') =  'IPV' AND 
77333 NVL(p_source_54,'
77334 ') =  'Y'
77335  THEN 
77336 
77337    --
77338    XLA_AE_LINES_PKG.SetNewLine;
77339 
77340    p_balance_type_code          := l_balance_type_code;
77341    -- set the flag so later we will know whether the gain loss line needs to be created
77342    
77343    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77344      p_actual_flag :='A';
77345    END IF;
77346 
77347    --
77348    -- bulk performance
77349    --
77350    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77351                                       p_header_num   => 0); -- 4262811
77352    --
77353    -- set accounting line options
77354    --
77355    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77356            p_natural_side_code          => 'D'
77357          , p_gain_or_loss_flag          => 'N'
77358          , p_gl_transfer_mode_code      => 'S'
77359          , p_acct_entry_type_code       => 'A'
77360          , p_switch_side_flag           => 'Y'
77361          , p_merge_duplicate_code       => 'A'
77362          );
77363    --
77364    l_acc_rev_natural_side_code := 'C';  -- 4262811
77365    -- 
77366    --
77367    -- set accounting line type info
77368    --
77369    xla_ae_lines_pkg.SetAcctLineType
77370       (p_component_type             => l_component_type
77371       ,p_event_type_code            => l_event_type_code
77372       ,p_line_definition_owner_code => l_line_definition_owner_code
77373       ,p_line_definition_code       => l_line_definition_code
77374       ,p_accounting_line_code       => l_component_code
77375       ,p_accounting_line_type_code  => l_component_type_code
77376       ,p_accounting_line_appl_id    => l_component_appl_id
77377       ,p_amb_context_code           => l_amb_context_code
77378       ,p_entity_code                => l_entity_code
77379       ,p_event_class_code           => l_event_class_code);
77380    --
77381    -- set accounting class
77382    --
77383    xla_ae_lines_pkg.SetAcctClass(
77384            p_accounting_class_code  => 'IPV'
77385          , p_ae_header_id           => l_ae_header_id
77386          );
77387 
77388    --
77389    -- set rounding class
77390    --
77391    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77392                       'IPV';
77393 
77394    --
77395    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77396    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77397    --
77398    -- bulk performance
77399    --
77400    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77401 
77402    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77403       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77404 
77405    -- 4955764
77406    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77407       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77408 
77409    -- 4458381 Public Sector Enh
77410    
77411    --
77412    -- set accounting attributes for the line type
77413    --
77414    l_entered_amt_idx := 23;
77415    l_accted_amt_idx  := 28;
77416    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
77417    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77418    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
77419    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
77420    l_rec_acct_attrs.array_num_value(2)  := 
77421 xla_ae_sources_pkg.GetSystemSourceNum(
77422    p_source_code           => 'XLA_EVENT_APPL_ID'
77423  , p_source_type_code      => 'Y'
77424  , p_source_application_id =>  602
77425 );
77426    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
77427    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
77428    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
77429    l_rec_acct_attrs.array_char_value(4)  := 
77430 xla_ae_sources_pkg.GetSystemSourceChar(
77431    p_source_code           => 'XLA_ENTITY_CODE'
77432  , p_source_type_code      => 'Y'
77433  , p_source_application_id =>  602
77434 );
77435    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
77436    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
77437    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
77438    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
77439    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
77440    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
77441    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77442    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
77443    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
77444    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
77445    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
77446    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
77450    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
77447    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77448    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
77449    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
77451    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
77452    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
77453    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
77454    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
77455    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
77456    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
77457    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
77458    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
77459    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
77460    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
77461    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
77462    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
77463    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
77464    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
77465    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
77466    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
77467    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
77468    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
77469    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
77470    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
77471    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
77472    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
77473    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
77474    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
77475    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
77476    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
77477    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
77478    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
77479    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
77480    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
77481    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
77482    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
77483    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
77484    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
77485    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
77486    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
77487    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
77488    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
77489    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
77490    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
77491    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
77492    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
77493    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
77494    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
77495    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
77496    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
77497    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
77498    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
77499    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
77500    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
77501    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
77502    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
77503    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
77504    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
77505    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
77506    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
77507    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
77508    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
77509    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
77510    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
77511 
77512    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77513    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77514 
77515    ---------------------------------------------------------------------------------------------------------------
77516    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77517    ---------------------------------------------------------------------------------------------------------------
77518    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77519 
77520    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77521    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77522 
77523    IF xla_accounting_cache_pkg.GetValueChar
77524          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77525          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77526    AND l_bflow_method_code = 'PRIOR_ENTRY'
77527 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77528    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77529          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77530        )
77531    THEN
77535            ,p_balance_type            => l_balance_type_code);
77532          xla_ae_lines_pkg.BflowUpgEntry
77533            (p_business_method_code    => l_bflow_method_code
77534            ,p_business_class_code     => l_bflow_class_code
77536    ELSE
77537       NULL;
77538 -- No business flow processing for business flow method of NONE.
77539    END IF;
77540 
77541    --
77542    -- call analytical criteria
77543    --
77544    
77545    --
77546    -- call description
77547    --
77548    
77549 xla_ae_lines_pkg.SetLineDescription(
77550    p_ae_header_id => l_ae_header_id
77551   ,p_description  => Description_2 (
77552      p_application_id         => p_application_id
77553    , p_ae_header_id           => l_ae_header_id 
77554 , p_source_1 => p_source_1
77555    )
77556 );
77557 
77558 
77559    --
77560    -- call ADRs
77561    -- Bug 4922099
77562    --
77563    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77564         (NVL(l_actual_upg_option, 'N') = 'O') OR
77565         (NVL(l_enc_upg_option, 'N') = 'O')
77566       )
77567    THEN
77568    NULL;
77569    --
77570    --
77571    
77572   l_ccid := AcctDerRule_35(
77573            p_application_id           => p_application_id
77574          , p_ae_header_id             => l_ae_header_id 
77575 , p_source_25 => p_source_25
77576          , x_transaction_coa_id       => l_adr_transaction_coa_id
77577          , x_accounting_coa_id        => l_adr_accounting_coa_id
77578          , x_value_type_code          => l_adr_value_type_code
77579          , p_side                     => 'NA'
77580    );
77581 
77582    xla_ae_lines_pkg.set_ccid(
77583     p_code_combination_id          => l_ccid
77584   , p_value_type_code              => l_adr_value_type_code
77585   , p_transaction_coa_id           => l_adr_transaction_coa_id
77586   , p_accounting_coa_id            => l_adr_accounting_coa_id
77587   , p_adr_code                     => 'AP_INVOICE_DIST'
77588   , p_adr_type_code                => 'S'
77589   , p_component_type               => l_component_type
77590   , p_component_code               => l_component_code
77591   , p_component_type_code          => l_component_type_code
77592   , p_component_appl_id            => l_component_appl_id
77593   , p_amb_context_code             => l_amb_context_code
77594   , p_side                         => 'NA'
77595   );
77596 
77597 
77598    --
77599    --
77600    END IF;
77601    --
77602    -- Bug 4922099
77603    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77604           (NVL(l_enc_upg_option, 'N') = 'O')
77605         ) AND
77606         (l_bflow_method_code = 'PRIOR_ENTRY')
77607       )
77608    THEN
77609       IF
77610       --
77611       1 = 2
77612       --
77613       THEN
77614       xla_accounting_err_pkg.build_message
77615                                     (p_appli_s_name            => 'XLA'
77616                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77617                                     ,p_token_1                 => 'LINE_NUMBER'
77618                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77619                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77620                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77621                                                                              l_component_type
77622                                                                             ,l_component_code
77623                                                                             ,l_component_type_code
77624                                                                             ,l_component_appl_id
77625                                                                             ,l_amb_context_code
77626                                                                             ,l_entity_code
77627                                                                             ,l_event_class_code
77628                                                                            )
77629                                     ,p_token_3                 => 'OWNER'
77630                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77631                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77632                                                                           ,p_lookup_code    => l_component_type_code
77633                                                                          )
77634                                     ,p_token_4                 => 'PRODUCT_NAME'
77635                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77636                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77637                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77638                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77639                                     ,p_ae_header_id            =>  NULL
77640                                        );
77641 
77642         IF (C_LEVEL_ERROR>= g_log_level) THEN
77643                  trace
77644                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77645                       ,p_level    => C_LEVEL_ERROR
77649    END IF;
77646                       ,p_module   => l_log_module);
77647         END IF;
77648       END IF;
77650    --
77651    --
77652    ------------------------------------------------------------------------------------------------
77653    -- 4219869 Business Flow
77654    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77655    -- Prior Entry.  Currently, the following code is always generated.
77656    ------------------------------------------------------------------------------------------------
77657    XLA_AE_LINES_PKG.ValidateCurrentLine;
77658 
77659    ------------------------------------------------------------------------------------
77660    -- 4219869 Business Flow
77661    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77662    ------------------------------------------------------------------------------------
77663    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77664 
77665    ----------------------------------------------------------------------------------
77666    -- 4219869 Business Flow
77667    -- Update journal entry status -- Need to generate this within IF <condition>
77668    ----------------------------------------------------------------------------------
77669    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77670          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77671          ,p_balance_type_code => l_balance_type_code
77672          );
77673 
77674    -------------------------------------------------------------------------------------------
77675    -- 4262811 - Generate the Accrual Reversal lines
77676    -------------------------------------------------------------------------------------------
77677    BEGIN
77678       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77679                               (g_array_event(p_event_id).array_value_num('header_index'));
77680       IF l_acc_rev_flag IS NULL THEN
77681          l_acc_rev_flag := 'N';
77682       END IF;
77683    EXCEPTION
77684       WHEN OTHERS THEN
77685          l_acc_rev_flag := 'N';
77686    END;
77687    --
77688    IF (l_acc_rev_flag = 'Y') THEN
77689 
77690        -- 4645092  ------------------------------------------------------------------------------
77691        -- To allow MPA report to determine if it should generate report process
77692        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77693        ------------------------------------------------------------------------------------------
77694 
77695        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77696        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77697    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77698    -- call ADRs
77699    -- Bug 4922099
77700    --
77701    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77702         (NVL(l_actual_upg_option, 'N') = 'O') OR
77703         (NVL(l_enc_upg_option, 'N') = 'O')
77704       )
77705    THEN
77706    NULL;
77707    --
77708    --
77709    
77710   l_ccid := AcctDerRule_35(
77711            p_application_id           => p_application_id
77712          , p_ae_header_id             => l_ae_header_id 
77713 , p_source_25 => p_source_25
77714          , x_transaction_coa_id       => l_adr_transaction_coa_id
77715          , x_accounting_coa_id        => l_adr_accounting_coa_id
77716          , x_value_type_code          => l_adr_value_type_code
77717          , p_side                     => 'NA'
77718    );
77719 
77720    xla_ae_lines_pkg.set_ccid(
77721     p_code_combination_id          => l_ccid
77722   , p_value_type_code              => l_adr_value_type_code
77723   , p_transaction_coa_id           => l_adr_transaction_coa_id
77724   , p_accounting_coa_id            => l_adr_accounting_coa_id
77725   , p_adr_code                     => 'AP_INVOICE_DIST'
77726   , p_adr_type_code                => 'S'
77727   , p_component_type               => l_component_type
77728   , p_component_code               => l_component_code
77729   , p_component_type_code          => l_component_type_code
77730   , p_component_appl_id            => l_component_appl_id
77731   , p_amb_context_code             => l_amb_context_code
77732   , p_side                         => 'NA'
77733   );
77734 
77735 
77736    --
77737    --
77738    END IF;
77739 
77740        --
77741        -- Update the line information that should be overwritten
77742        --
77743        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77744                                          p_header_num   => 1);
77745        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77746 
77747        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77748 
77749        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77750           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77751        END IF;
77752 
77753       --
77754       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77755       --
77756       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77757           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77758       ELSE
77759           ---------------------------------------------------------------------------------------------------
77760           -- 4262811a Switch Sign
77764                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77761           ---------------------------------------------------------------------------------------------------
77762           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77763           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77765           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77766                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77767           -- 5132302
77768           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77769                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77770 
77771       END IF;
77772 
77773       -- 4955764
77774       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77775       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77776 
77777 
77778       XLA_AE_LINES_PKG.ValidateCurrentLine;
77779       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77780 
77781       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77782                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77783                ,p_balance_type_code => l_balance_type_code);
77784 
77785    END IF;
77786 
77787    -----------------------------------------------------------------------------------------
77788    -- 4262811 Multiperiod Accounting
77789    -----------------------------------------------------------------------------------------
77790      -- No MPA option is assigned.
77791 
77792 
77793 END IF;
77794 END IF;
77795 --
77796 
77797 --
77798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77799    trace
77800       (p_msg      => 'END of AcctLineType_148'
77801       ,p_level    => C_LEVEL_PROCEDURE
77802       ,p_module   => l_log_module);
77803 END IF;
77804 --
77805 EXCEPTION
77806   WHEN xla_exceptions_pkg.application_exception THEN
77807       RAISE;
77808   WHEN OTHERS THEN
77809        xla_exceptions_pkg.raise_message
77810            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_148');
77811 END AcctLineType_148;
77812 --
77813 
77814 ---------------------------------------
77815 --
77816 -- PRIVATE FUNCTION
77817 --         AcctLineType_149
77818 --
77819 ---------------------------------------
77820 PROCEDURE AcctLineType_149 (
77821   p_application_id        IN NUMBER
77822  ,p_event_id              IN NUMBER
77823  ,p_calculate_acctd_flag  IN VARCHAR2
77824  ,p_calculate_g_l_flag    IN VARCHAR2
77825  ,p_actual_flag           IN OUT VARCHAR2
77826  ,p_balance_type_code     OUT VARCHAR2
77827  ,p_gain_or_loss_ref      OUT VARCHAR2
77828  
77829 --Invoice Distribution Description
77830  , p_source_1            IN VARCHAR2
77831 --Invoice Distribution Ledger Amount
77832  , p_source_16            IN NUMBER
77833 --Invoice Distribution Account
77834  , p_source_25            IN NUMBER
77835 --Invoice Distribution Type
77836  , p_source_28            IN VARCHAR2
77837  , p_source_28_meaning    IN VARCHAR2
77838 --Accrue on Receipt Option
77839  , p_source_54            IN VARCHAR2
77840  , p_source_54_meaning    IN VARCHAR2
77841 --Accounting Reversal Indicator
77842  , p_source_58            IN VARCHAR2
77843 --Distribution Link Type
77844  , p_source_60            IN VARCHAR2
77845 --Allocation to Main Distribution Identifier
77846  , p_source_62            IN NUMBER
77847 --Invoice Identifier
77848  , p_source_63            IN NUMBER
77849 --Invoice Distribution Identifier
77850  , p_source_69            IN NUMBER
77851 --Payables Encumbrance Upgrade Credit Account
77852  , p_source_70            IN NUMBER
77853 --Payables Encumbrance Upgrade Credit Amount
77854  , p_source_71            IN NUMBER
77855 --Invoice Currency Code
77856  , p_source_72            IN VARCHAR2
77857 --Payables Encumbrance Upgrade Credit Base Amount
77858  , p_source_73            IN NUMBER
77859 --Payables Encumbrance Upgrade Debit Account
77860  , p_source_74            IN NUMBER
77861 --Payables Encumbrance Upgrade Debit Amount
77862  , p_source_75            IN NUMBER
77863 --Payables Encumbrance Upgrade Debit Base Amount
77864  , p_source_76            IN NUMBER
77865 --Payables Encumbrance Upgrade Option
77866  , p_source_77            IN VARCHAR2
77867 --Invoice Distribution Amount
77868  , p_source_78            IN NUMBER
77869 --Deferred Accounting End Date
77870  , p_source_82            IN DATE
77871 --Deferred Accounting Option
77872  , p_source_83            IN VARCHAR2
77873 --Deferred Accounting Start Date
77874  , p_source_84            IN DATE
77875 --Override Accounted Amount Indicator
77876  , p_source_85            IN VARCHAR2
77877  , p_source_85_meaning    IN VARCHAR2
77878 --Invoice Supplier Identifier
77879  , p_source_86            IN NUMBER
77880 --Invoice Supplier Site Identifier
77881  , p_source_87            IN NUMBER
77882 --Third Party Type
77883  , p_source_88            IN VARCHAR2
77884 --Parent Reversal Identifier
77885  , p_source_89            IN NUMBER
77886 --Invoice Distribution Statistical Amount
77887  , p_source_90            IN NUMBER
77891  , p_source_92            IN NUMBER
77888 --Invoice Distribution Tax Line Identifier
77889  , p_source_91            IN NUMBER
77890 --Invoice Distribution Tax Distribution Identifier from Tax
77892 --Invoice Distribution Summary Tax Line Identifier
77893  , p_source_93            IN NUMBER
77894 --Payables Upgrade Credit Encumbrance Type Identifier
77895  , p_source_94            IN NUMBER
77896 --Payables Upgrade Debit Encumbrance Type Identifier
77897  , p_source_95            IN NUMBER
77898 --Business Flow Accounts Payable Application Identifier
77899  , p_source_96            IN NUMBER
77900 --Business Flow Invoice Distribution Type
77901  , p_source_97            IN VARCHAR2
77902 --Business Flow Invoice Entity Code
77903  , p_source_98            IN VARCHAR2
77904 --Business Flow Invoice Distribution Identifier
77905  , p_source_99            IN NUMBER
77906 --Business Flow Invoice Identifier
77907  , p_source_100            IN NUMBER
77908 --Invoice Exchange Date
77909  , p_source_146            IN DATE
77910 --Invoice Exchange Rate
77911  , p_source_147            IN NUMBER
77912 --Invoice Exchange Rate Type
77913  , p_source_148            IN VARCHAR2
77914 )
77915 IS
77916 
77917 l_component_type              VARCHAR2(80);
77918 l_component_code              VARCHAR2(30);
77919 l_component_type_code         VARCHAR2(1);
77920 l_component_appl_id           INTEGER;
77921 l_amb_context_code            VARCHAR2(30);
77922 l_entity_code                 VARCHAR2(30);
77923 l_event_class_code            VARCHAR2(30);
77924 l_ae_header_id                NUMBER;
77925 l_event_type_code             VARCHAR2(30);
77926 l_line_definition_code        VARCHAR2(30);
77927 l_line_definition_owner_code  VARCHAR2(1);
77928 --
77929 -- adr variables
77930 l_segment                     VARCHAR2(30);
77931 l_ccid                        NUMBER;
77932 l_adr_transaction_coa_id      NUMBER;
77933 l_adr_accounting_coa_id       NUMBER;
77934 l_adr_flexfield_segment_code  VARCHAR2(30);
77935 l_adr_flex_value_set_id       NUMBER;
77936 l_adr_value_type_code         VARCHAR2(30);
77937 l_adr_value_combination_id    NUMBER;
77938 l_adr_value_segment_code      VARCHAR2(30);
77939 
77940 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77941 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77942 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77943 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77944 
77945 -- 4262811 Variables ------------------------------------------------------------------------------------------
77946 l_entered_amt_idx             NUMBER;
77947 l_accted_amt_idx              NUMBER;
77948 l_acc_rev_flag                VARCHAR2(1);
77949 l_accrual_line_num            NUMBER;
77950 l_tmp_amt                     NUMBER;
77951 l_acc_rev_natural_side_code   VARCHAR2(1);
77952 
77953 l_num_entries                 NUMBER;
77954 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77955 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77956 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77957 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77958 l_recog_line_1                NUMBER;
77959 l_recog_line_2                NUMBER;
77960 
77961 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77962 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77963 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77964 
77965 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77966 
77967 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77968 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77969 
77970 ---------------------------------------------------------------------------------------------------------------
77971 
77972 
77973 --
77974 -- bulk performance
77975 --
77976 l_balance_type_code           VARCHAR2(1);
77977 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77978 l_log_module                  VARCHAR2(240);
77979 
77980 --
77981 -- Upgrade strategy
77982 --
77983 l_actual_upg_option           VARCHAR2(1);
77984 l_enc_upg_option           VARCHAR2(1);
77985 
77986 --
77987 BEGIN
77988 --
77989 IF g_log_enabled THEN
77990       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
77991 END IF;
77992 --
77993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77994 
77995       trace
77996          (p_msg      => 'BEGIN of AcctLineType_149'
77997          ,p_level    => C_LEVEL_PROCEDURE
77998          ,p_module   => l_log_module);
77999 
78000 END IF;
78001 --
78002 l_component_type             := 'AMB_JLT';
78003 l_component_code             := 'AP_INV_PRICE_VAR_INV';
78004 l_component_type_code        := 'S';
78005 l_component_appl_id          :=  200;
78006 l_amb_context_code           := 'DEFAULT';
78007 l_entity_code                := 'AP_INVOICES';
78008 l_event_class_code           := 'INVOICES';
78009 l_event_type_code            := 'INVOICES_ALL';
78010 l_line_definition_owner_code := 'S';
78011 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
78012 --
78013 l_balance_type_code          := 'A';
78014 l_segment                     := NULL;
78015 l_ccid                        := NULL;
78019 l_adr_flex_value_set_id       := NULL;
78016 l_adr_transaction_coa_id      := NULL;
78017 l_adr_accounting_coa_id       := NULL;
78018 l_adr_flexfield_segment_code  := NULL;
78020 l_adr_value_type_code         := NULL;
78021 l_adr_value_combination_id    := NULL;
78022 l_adr_value_segment_code      := NULL;
78023 
78024 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78025 l_bflow_class_code           := '';    -- 4219869 Business Flow
78026 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78027 l_budgetary_control_flag     := 'N';
78028 
78029 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78030 l_bflow_applied_to_amt       := NULL; -- 5132302
78031 l_entered_amt_idx            := NULL;          -- 4262811
78032 l_accted_amt_idx             := NULL;          -- 4262811
78033 l_acc_rev_flag               := NULL;          -- 4262811
78034 l_accrual_line_num           := NULL;          -- 4262811
78035 l_tmp_amt                    := NULL;          -- 4262811
78036 --
78037  
78038 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78039     l_balance_type_code <> 'B' THEN
78040 IF NVL(p_source_28,'
78041 ') =  'IPV' AND 
78042 NVL(p_source_54,'
78043 ') =  'Y'
78044  THEN 
78045 
78046    --
78047    XLA_AE_LINES_PKG.SetNewLine;
78048 
78049    p_balance_type_code          := l_balance_type_code;
78050    -- set the flag so later we will know whether the gain loss line needs to be created
78051    
78052    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78053      p_actual_flag :='A';
78054    END IF;
78055 
78056    --
78057    -- bulk performance
78058    --
78059    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78060                                       p_header_num   => 0); -- 4262811
78061    --
78062    -- set accounting line options
78063    --
78064    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78065            p_natural_side_code          => 'D'
78066          , p_gain_or_loss_flag          => 'N'
78067          , p_gl_transfer_mode_code      => 'S'
78068          , p_acct_entry_type_code       => 'A'
78069          , p_switch_side_flag           => 'Y'
78070          , p_merge_duplicate_code       => 'A'
78071          );
78072    --
78073    l_acc_rev_natural_side_code := 'C';  -- 4262811
78074    -- 
78075    --
78076    -- set accounting line type info
78077    --
78078    xla_ae_lines_pkg.SetAcctLineType
78079       (p_component_type             => l_component_type
78080       ,p_event_type_code            => l_event_type_code
78081       ,p_line_definition_owner_code => l_line_definition_owner_code
78082       ,p_line_definition_code       => l_line_definition_code
78083       ,p_accounting_line_code       => l_component_code
78084       ,p_accounting_line_type_code  => l_component_type_code
78085       ,p_accounting_line_appl_id    => l_component_appl_id
78086       ,p_amb_context_code           => l_amb_context_code
78087       ,p_entity_code                => l_entity_code
78088       ,p_event_class_code           => l_event_class_code);
78089    --
78090    -- set accounting class
78091    --
78092    xla_ae_lines_pkg.SetAcctClass(
78093            p_accounting_class_code  => 'IPV'
78094          , p_ae_header_id           => l_ae_header_id
78095          );
78096 
78097    --
78098    -- set rounding class
78099    --
78100    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78101                       'IPV';
78102 
78103    --
78104    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78105    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78106    --
78107    -- bulk performance
78108    --
78109    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78110 
78111    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78112       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78113 
78114    -- 4955764
78115    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78116       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78117 
78118    -- 4458381 Public Sector Enh
78119    
78120    --
78121    -- set accounting attributes for the line type
78122    --
78123    l_entered_amt_idx := 24;
78124    l_accted_amt_idx  := 29;
78125    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
78126    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78127    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
78128    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
78129    l_rec_acct_attrs.array_num_value(2)  := 
78130 xla_ae_sources_pkg.GetSystemSourceNum(
78131    p_source_code           => 'XLA_EVENT_APPL_ID'
78132  , p_source_type_code      => 'Y'
78133  , p_source_application_id =>  602
78134 );
78135    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
78136    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
78137    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
78138    l_rec_acct_attrs.array_char_value(4)  := 
78139 xla_ae_sources_pkg.GetSystemSourceChar(
78140    p_source_code           => 'XLA_ENTITY_CODE'
78144    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
78141  , p_source_type_code      => 'Y'
78142  , p_source_application_id =>  602
78143 );
78145    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
78146    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
78147    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
78148    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
78149    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
78150    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
78151    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
78152    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78153    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
78154    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
78155    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
78156    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
78157    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
78158    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78159    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
78160    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
78161    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
78162    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
78163    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
78164    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
78165    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
78166    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
78167    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
78168    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
78169    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
78170    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
78171    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
78172    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
78173    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
78174    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
78175    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
78176    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
78177    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
78178    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
78179    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
78180    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
78181    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
78182    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
78183    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
78184    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
78185    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
78186    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
78187    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
78188    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
78189    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
78190    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
78191    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
78192    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
78193    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
78194    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
78195    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
78196    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
78197    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
78198    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
78199    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
78200    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
78201    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
78202    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
78203    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
78204    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
78205    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
78206    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
78207    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
78208    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
78209    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
78210    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
78211    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
78212    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
78213    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
78214    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
78215    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
78216    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
78217    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
78218    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
78219    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
78220    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
78221    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
78222    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
78223    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
78224 
78225    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78226    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78230    ---------------------------------------------------------------------------------------------------------------
78227 
78228    ---------------------------------------------------------------------------------------------------------------
78229    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78231    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78232 
78233    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78234    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78235 
78236    IF xla_accounting_cache_pkg.GetValueChar
78237          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78238          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78239    AND l_bflow_method_code = 'PRIOR_ENTRY'
78240 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78241    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78242          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78243        )
78244    THEN
78245          xla_ae_lines_pkg.BflowUpgEntry
78246            (p_business_method_code    => l_bflow_method_code
78247            ,p_business_class_code     => l_bflow_class_code
78248            ,p_balance_type            => l_balance_type_code);
78249    ELSE
78250       NULL;
78251 -- No business flow processing for business flow method of NONE.
78252    END IF;
78253 
78254    --
78255    -- call analytical criteria
78256    --
78257    
78258    --
78259    -- call description
78260    --
78261    
78262 xla_ae_lines_pkg.SetLineDescription(
78263    p_ae_header_id => l_ae_header_id
78264   ,p_description  => Description_2 (
78265      p_application_id         => p_application_id
78266    , p_ae_header_id           => l_ae_header_id 
78267 , p_source_1 => p_source_1
78268    )
78269 );
78270 
78271 
78272    --
78273    -- call ADRs
78274    -- Bug 4922099
78275    --
78276    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78277         (NVL(l_actual_upg_option, 'N') = 'O') OR
78278         (NVL(l_enc_upg_option, 'N') = 'O')
78279       )
78280    THEN
78281    NULL;
78282    --
78283    --
78284    
78285   l_ccid := AcctDerRule_35(
78286            p_application_id           => p_application_id
78287          , p_ae_header_id             => l_ae_header_id 
78288 , p_source_25 => p_source_25
78289          , x_transaction_coa_id       => l_adr_transaction_coa_id
78290          , x_accounting_coa_id        => l_adr_accounting_coa_id
78291          , x_value_type_code          => l_adr_value_type_code
78292          , p_side                     => 'NA'
78293    );
78294 
78295    xla_ae_lines_pkg.set_ccid(
78296     p_code_combination_id          => l_ccid
78297   , p_value_type_code              => l_adr_value_type_code
78298   , p_transaction_coa_id           => l_adr_transaction_coa_id
78299   , p_accounting_coa_id            => l_adr_accounting_coa_id
78300   , p_adr_code                     => 'AP_INVOICE_DIST'
78301   , p_adr_type_code                => 'S'
78302   , p_component_type               => l_component_type
78303   , p_component_code               => l_component_code
78304   , p_component_type_code          => l_component_type_code
78305   , p_component_appl_id            => l_component_appl_id
78306   , p_amb_context_code             => l_amb_context_code
78307   , p_side                         => 'NA'
78308   );
78309 
78310 
78311    --
78312    --
78313    END IF;
78314    --
78315    -- Bug 4922099
78316    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78317           (NVL(l_enc_upg_option, 'N') = 'O')
78318         ) AND
78319         (l_bflow_method_code = 'PRIOR_ENTRY')
78320       )
78321    THEN
78322       IF
78323       --
78324       1 = 2
78325       --
78326       THEN
78327       xla_accounting_err_pkg.build_message
78328                                     (p_appli_s_name            => 'XLA'
78329                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78330                                     ,p_token_1                 => 'LINE_NUMBER'
78331                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78332                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78333                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78334                                                                              l_component_type
78335                                                                             ,l_component_code
78336                                                                             ,l_component_type_code
78337                                                                             ,l_component_appl_id
78338                                                                             ,l_amb_context_code
78339                                                                             ,l_entity_code
78340                                                                             ,l_event_class_code
78341                                                                            )
78342                                     ,p_token_3                 => 'OWNER'
78343                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78347                                     ,p_token_4                 => 'PRODUCT_NAME'
78344                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78345                                                                           ,p_lookup_code    => l_component_type_code
78346                                                                          )
78348                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78349                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78350                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78351                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78352                                     ,p_ae_header_id            =>  NULL
78353                                        );
78354 
78355         IF (C_LEVEL_ERROR>= g_log_level) THEN
78356                  trace
78357                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78358                       ,p_level    => C_LEVEL_ERROR
78359                       ,p_module   => l_log_module);
78360         END IF;
78361       END IF;
78362    END IF;
78363    --
78364    --
78365    ------------------------------------------------------------------------------------------------
78366    -- 4219869 Business Flow
78367    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78368    -- Prior Entry.  Currently, the following code is always generated.
78369    ------------------------------------------------------------------------------------------------
78370    XLA_AE_LINES_PKG.ValidateCurrentLine;
78371 
78372    ------------------------------------------------------------------------------------
78373    -- 4219869 Business Flow
78374    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78375    ------------------------------------------------------------------------------------
78376    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78377 
78378    ----------------------------------------------------------------------------------
78379    -- 4219869 Business Flow
78380    -- Update journal entry status -- Need to generate this within IF <condition>
78381    ----------------------------------------------------------------------------------
78382    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78383          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78384          ,p_balance_type_code => l_balance_type_code
78385          );
78386 
78387    -------------------------------------------------------------------------------------------
78388    -- 4262811 - Generate the Accrual Reversal lines
78389    -------------------------------------------------------------------------------------------
78390    BEGIN
78391       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78392                               (g_array_event(p_event_id).array_value_num('header_index'));
78393       IF l_acc_rev_flag IS NULL THEN
78394          l_acc_rev_flag := 'N';
78395       END IF;
78396    EXCEPTION
78397       WHEN OTHERS THEN
78398          l_acc_rev_flag := 'N';
78399    END;
78400    --
78401    IF (l_acc_rev_flag = 'Y') THEN
78402 
78403        -- 4645092  ------------------------------------------------------------------------------
78404        -- To allow MPA report to determine if it should generate report process
78405        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78406        ------------------------------------------------------------------------------------------
78407 
78408        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78409        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78410    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78411    -- call ADRs
78412    -- Bug 4922099
78413    --
78414    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78415         (NVL(l_actual_upg_option, 'N') = 'O') OR
78416         (NVL(l_enc_upg_option, 'N') = 'O')
78417       )
78418    THEN
78419    NULL;
78420    --
78421    --
78422    
78423   l_ccid := AcctDerRule_35(
78424            p_application_id           => p_application_id
78425          , p_ae_header_id             => l_ae_header_id 
78426 , p_source_25 => p_source_25
78427          , x_transaction_coa_id       => l_adr_transaction_coa_id
78428          , x_accounting_coa_id        => l_adr_accounting_coa_id
78429          , x_value_type_code          => l_adr_value_type_code
78430          , p_side                     => 'NA'
78431    );
78432 
78433    xla_ae_lines_pkg.set_ccid(
78434     p_code_combination_id          => l_ccid
78435   , p_value_type_code              => l_adr_value_type_code
78436   , p_transaction_coa_id           => l_adr_transaction_coa_id
78437   , p_accounting_coa_id            => l_adr_accounting_coa_id
78438   , p_adr_code                     => 'AP_INVOICE_DIST'
78439   , p_adr_type_code                => 'S'
78440   , p_component_type               => l_component_type
78441   , p_component_code               => l_component_code
78442   , p_component_type_code          => l_component_type_code
78443   , p_component_appl_id            => l_component_appl_id
78444   , p_amb_context_code             => l_amb_context_code
78445   , p_side                         => 'NA'
78446   );
78447 
78448 
78449    --
78450    --
78451    END IF;
78452 
78453        --
78457                                          p_header_num   => 1);
78454        -- Update the line information that should be overwritten
78455        --
78456        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78458        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78459 
78460        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78461 
78462        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78463           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78464        END IF;
78465 
78466       --
78467       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78468       --
78469       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78470           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78471       ELSE
78472           ---------------------------------------------------------------------------------------------------
78473           -- 4262811a Switch Sign
78474           ---------------------------------------------------------------------------------------------------
78475           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78476           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78477                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78478           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78479                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78480           -- 5132302
78481           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78482                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78483 
78484       END IF;
78485 
78486       -- 4955764
78487       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78488       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78489 
78490 
78491       XLA_AE_LINES_PKG.ValidateCurrentLine;
78492       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78493 
78494       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78495                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78496                ,p_balance_type_code => l_balance_type_code);
78497 
78498    END IF;
78499 
78500    -----------------------------------------------------------------------------------------
78501    -- 4262811 Multiperiod Accounting
78502    -----------------------------------------------------------------------------------------
78503      -- No MPA option is assigned.
78504 
78505 
78506 END IF;
78507 END IF;
78508 --
78509 
78510 --
78511 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78512    trace
78513       (p_msg      => 'END of AcctLineType_149'
78514       ,p_level    => C_LEVEL_PROCEDURE
78515       ,p_module   => l_log_module);
78516 END IF;
78517 --
78518 EXCEPTION
78519   WHEN xla_exceptions_pkg.application_exception THEN
78520       RAISE;
78521   WHEN OTHERS THEN
78522        xla_exceptions_pkg.raise_message
78523            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_149');
78524 END AcctLineType_149;
78525 --
78526 
78527 ---------------------------------------
78528 --
78529 -- PRIVATE FUNCTION
78530 --         AcctLineType_150
78531 --
78532 ---------------------------------------
78533 PROCEDURE AcctLineType_150 (
78534   p_application_id        IN NUMBER
78535  ,p_event_id              IN NUMBER
78536  ,p_calculate_acctd_flag  IN VARCHAR2
78537  ,p_calculate_g_l_flag    IN VARCHAR2
78538  ,p_actual_flag           IN OUT VARCHAR2
78539  ,p_balance_type_code     OUT VARCHAR2
78540  ,p_gain_or_loss_ref      OUT VARCHAR2
78541  
78542 --Invoice Distribution Description
78543  , p_source_1            IN VARCHAR2
78544 --Invoice Distribution Ledger Amount
78545  , p_source_16            IN NUMBER
78546 --Invoice Distribution Account
78547  , p_source_25            IN NUMBER
78548 --Invoice Distribution Type
78549  , p_source_28            IN VARCHAR2
78550  , p_source_28_meaning    IN VARCHAR2
78551 --Accrue on Receipt Option
78552  , p_source_54            IN VARCHAR2
78553  , p_source_54_meaning    IN VARCHAR2
78554 --Accounting Reversal Indicator
78555  , p_source_58            IN VARCHAR2
78556 --Distribution Link Type
78557  , p_source_60            IN VARCHAR2
78558 --Allocation to Main Distribution Identifier
78559  , p_source_62            IN NUMBER
78560 --Invoice Identifier
78561  , p_source_63            IN NUMBER
78562 --Invoice Distribution Identifier
78563  , p_source_69            IN NUMBER
78564 --Payables Encumbrance Upgrade Credit Account
78565  , p_source_70            IN NUMBER
78566 --Payables Encumbrance Upgrade Credit Amount
78567  , p_source_71            IN NUMBER
78568 --Invoice Currency Code
78569  , p_source_72            IN VARCHAR2
78570 --Payables Encumbrance Upgrade Credit Base Amount
78571  , p_source_73            IN NUMBER
78575  , p_source_75            IN NUMBER
78572 --Payables Encumbrance Upgrade Debit Account
78573  , p_source_74            IN NUMBER
78574 --Payables Encumbrance Upgrade Debit Amount
78576 --Payables Encumbrance Upgrade Debit Base Amount
78577  , p_source_76            IN NUMBER
78578 --Payables Encumbrance Upgrade Option
78579  , p_source_77            IN VARCHAR2
78580 --Invoice Distribution Amount
78581  , p_source_78            IN NUMBER
78582 --Deferred Accounting End Date
78583  , p_source_82            IN DATE
78584 --Deferred Accounting Option
78585  , p_source_83            IN VARCHAR2
78586 --Deferred Accounting Start Date
78587  , p_source_84            IN DATE
78588 --Override Accounted Amount Indicator
78589  , p_source_85            IN VARCHAR2
78590  , p_source_85_meaning    IN VARCHAR2
78591 --Invoice Supplier Identifier
78592  , p_source_86            IN NUMBER
78593 --Invoice Supplier Site Identifier
78594  , p_source_87            IN NUMBER
78595 --Third Party Type
78596  , p_source_88            IN VARCHAR2
78597 --Parent Reversal Identifier
78598  , p_source_89            IN NUMBER
78599 --Invoice Distribution Statistical Amount
78600  , p_source_90            IN NUMBER
78601 --Invoice Distribution Tax Line Identifier
78602  , p_source_91            IN NUMBER
78603 --Invoice Distribution Tax Distribution Identifier from Tax
78604  , p_source_92            IN NUMBER
78605 --Invoice Distribution Summary Tax Line Identifier
78606  , p_source_93            IN NUMBER
78607 --Payables Upgrade Credit Encumbrance Type Identifier
78608  , p_source_94            IN NUMBER
78609 --Payables Upgrade Debit Encumbrance Type Identifier
78610  , p_source_95            IN NUMBER
78611 --Business Flow Accounts Payable Application Identifier
78612  , p_source_96            IN NUMBER
78613 --Business Flow Invoice Distribution Type
78614  , p_source_97            IN VARCHAR2
78615 --Business Flow Invoice Entity Code
78616  , p_source_98            IN VARCHAR2
78617 --Business Flow Invoice Distribution Identifier
78618  , p_source_99            IN NUMBER
78619 --Business Flow Invoice Identifier
78620  , p_source_100            IN NUMBER
78621 --Invoice Exchange Date
78622  , p_source_146            IN DATE
78623 --Invoice Exchange Rate
78624  , p_source_147            IN NUMBER
78625 --Invoice Exchange Rate Type
78626  , p_source_148            IN VARCHAR2
78627 )
78628 IS
78629 
78630 l_component_type              VARCHAR2(80);
78631 l_component_code              VARCHAR2(30);
78632 l_component_type_code         VARCHAR2(1);
78633 l_component_appl_id           INTEGER;
78634 l_amb_context_code            VARCHAR2(30);
78635 l_entity_code                 VARCHAR2(30);
78636 l_event_class_code            VARCHAR2(30);
78637 l_ae_header_id                NUMBER;
78638 l_event_type_code             VARCHAR2(30);
78639 l_line_definition_code        VARCHAR2(30);
78640 l_line_definition_owner_code  VARCHAR2(1);
78641 --
78642 -- adr variables
78643 l_segment                     VARCHAR2(30);
78644 l_ccid                        NUMBER;
78645 l_adr_transaction_coa_id      NUMBER;
78646 l_adr_accounting_coa_id       NUMBER;
78647 l_adr_flexfield_segment_code  VARCHAR2(30);
78648 l_adr_flex_value_set_id       NUMBER;
78649 l_adr_value_type_code         VARCHAR2(30);
78650 l_adr_value_combination_id    NUMBER;
78651 l_adr_value_segment_code      VARCHAR2(30);
78652 
78653 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78654 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78655 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78656 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78657 
78658 -- 4262811 Variables ------------------------------------------------------------------------------------------
78659 l_entered_amt_idx             NUMBER;
78660 l_accted_amt_idx              NUMBER;
78661 l_acc_rev_flag                VARCHAR2(1);
78662 l_accrual_line_num            NUMBER;
78663 l_tmp_amt                     NUMBER;
78664 l_acc_rev_natural_side_code   VARCHAR2(1);
78665 
78666 l_num_entries                 NUMBER;
78667 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78668 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78669 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78670 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78671 l_recog_line_1                NUMBER;
78672 l_recog_line_2                NUMBER;
78673 
78674 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78675 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78676 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78677 
78678 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78679 
78680 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78681 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78682 
78683 ---------------------------------------------------------------------------------------------------------------
78684 
78685 
78686 --
78687 -- bulk performance
78688 --
78689 l_balance_type_code           VARCHAR2(1);
78690 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78691 l_log_module                  VARCHAR2(240);
78692 
78693 --
78697 l_enc_upg_option           VARCHAR2(1);
78694 -- Upgrade strategy
78695 --
78696 l_actual_upg_option           VARCHAR2(1);
78698 
78699 --
78700 BEGIN
78701 --
78702 IF g_log_enabled THEN
78703       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
78704 END IF;
78705 --
78706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78707 
78708       trace
78709          (p_msg      => 'BEGIN of AcctLineType_150'
78710          ,p_level    => C_LEVEL_PROCEDURE
78711          ,p_module   => l_log_module);
78712 
78713 END IF;
78714 --
78715 l_component_type             := 'AMB_JLT';
78716 l_component_code             := 'AP_INV_PRICE_VAR_PREPAY';
78717 l_component_type_code        := 'S';
78718 l_component_appl_id          :=  200;
78719 l_amb_context_code           := 'DEFAULT';
78720 l_entity_code                := 'AP_INVOICES';
78721 l_event_class_code           := 'PREPAYMENTS';
78722 l_event_type_code            := 'PREPAYMENTS_ALL';
78723 l_line_definition_owner_code := 'S';
78724 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
78725 --
78726 l_balance_type_code          := 'A';
78727 l_segment                     := NULL;
78728 l_ccid                        := NULL;
78729 l_adr_transaction_coa_id      := NULL;
78730 l_adr_accounting_coa_id       := NULL;
78731 l_adr_flexfield_segment_code  := NULL;
78732 l_adr_flex_value_set_id       := NULL;
78733 l_adr_value_type_code         := NULL;
78734 l_adr_value_combination_id    := NULL;
78735 l_adr_value_segment_code      := NULL;
78736 
78737 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78738 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
78739 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78740 l_budgetary_control_flag     := 'N';
78741 
78742 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78743 l_bflow_applied_to_amt       := NULL; -- 5132302
78744 l_entered_amt_idx            := NULL;          -- 4262811
78745 l_accted_amt_idx             := NULL;          -- 4262811
78746 l_acc_rev_flag               := NULL;          -- 4262811
78747 l_accrual_line_num           := NULL;          -- 4262811
78748 l_tmp_amt                    := NULL;          -- 4262811
78749 --
78750  
78751 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78752     l_balance_type_code <> 'B' THEN
78753 IF NVL(p_source_28,'
78754 ') =  'IPV' AND 
78755 NVL(p_source_54,'
78756 ') =  'Y'
78757  THEN 
78758 
78759    --
78760    XLA_AE_LINES_PKG.SetNewLine;
78761 
78762    p_balance_type_code          := l_balance_type_code;
78763    -- set the flag so later we will know whether the gain loss line needs to be created
78764    
78765    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78766      p_actual_flag :='A';
78767    END IF;
78768 
78769    --
78770    -- bulk performance
78771    --
78772    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78773                                       p_header_num   => 0); -- 4262811
78774    --
78775    -- set accounting line options
78776    --
78777    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78778            p_natural_side_code          => 'D'
78779          , p_gain_or_loss_flag          => 'N'
78780          , p_gl_transfer_mode_code      => 'S'
78781          , p_acct_entry_type_code       => 'A'
78782          , p_switch_side_flag           => 'Y'
78783          , p_merge_duplicate_code       => 'A'
78784          );
78785    --
78786    l_acc_rev_natural_side_code := 'C';  -- 4262811
78787    -- 
78788    --
78789    -- set accounting line type info
78790    --
78791    xla_ae_lines_pkg.SetAcctLineType
78792       (p_component_type             => l_component_type
78793       ,p_event_type_code            => l_event_type_code
78794       ,p_line_definition_owner_code => l_line_definition_owner_code
78795       ,p_line_definition_code       => l_line_definition_code
78796       ,p_accounting_line_code       => l_component_code
78797       ,p_accounting_line_type_code  => l_component_type_code
78798       ,p_accounting_line_appl_id    => l_component_appl_id
78799       ,p_amb_context_code           => l_amb_context_code
78800       ,p_entity_code                => l_entity_code
78801       ,p_event_class_code           => l_event_class_code);
78802    --
78803    -- set accounting class
78804    --
78805    xla_ae_lines_pkg.SetAcctClass(
78806            p_accounting_class_code  => 'IPV'
78807          , p_ae_header_id           => l_ae_header_id
78808          );
78809 
78810    --
78811    -- set rounding class
78812    --
78813    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78814                       'IPV';
78815 
78816    --
78817    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78818    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78819    --
78820    -- bulk performance
78821    --
78822    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78823 
78824    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78825       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78826 
78827    -- 4955764
78831    -- 4458381 Public Sector Enh
78828    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78829       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78830 
78832    
78833    --
78834    -- set accounting attributes for the line type
78835    --
78836    l_entered_amt_idx := 23;
78837    l_accted_amt_idx  := 28;
78838    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
78839    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78840    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
78841    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
78842    l_rec_acct_attrs.array_num_value(2)  := 
78843 xla_ae_sources_pkg.GetSystemSourceNum(
78844    p_source_code           => 'XLA_EVENT_APPL_ID'
78845  , p_source_type_code      => 'Y'
78846  , p_source_application_id =>  602
78847 );
78848    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
78849    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
78850    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
78851    l_rec_acct_attrs.array_char_value(4)  := 
78852 xla_ae_sources_pkg.GetSystemSourceChar(
78853    p_source_code           => 'XLA_ENTITY_CODE'
78854  , p_source_type_code      => 'Y'
78855  , p_source_application_id =>  602
78856 );
78857    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
78858    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
78859    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
78860    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
78861    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
78862    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
78863    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78864    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
78865    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
78866    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
78867    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
78868    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
78869    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78870    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
78871    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
78872    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
78873    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
78874    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
78875    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
78876    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
78877    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
78878    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
78879    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
78880    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
78881    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
78882    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
78883    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
78884    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
78885    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
78886    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
78887    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
78888    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
78889    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
78890    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
78891    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
78892    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
78893    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
78894    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
78895    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
78896    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
78897    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
78898    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
78899    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
78900    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
78901    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
78902    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
78903    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
78904    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
78905    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
78906    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
78907    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
78908    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
78909    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
78910    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
78911    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
78912    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
78913    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
78914    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
78915    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
78916    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
78917    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
78918    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
78922    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
78919    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
78920    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
78921    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
78923    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
78924    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
78925    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
78926    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
78927    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
78928    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
78929    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
78930    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
78931    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
78932    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
78933    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
78934    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
78935 
78936    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78937    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78938 
78939    ---------------------------------------------------------------------------------------------------------------
78940    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78941    ---------------------------------------------------------------------------------------------------------------
78942    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78943 
78944    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78945    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78946 
78947    IF xla_accounting_cache_pkg.GetValueChar
78948          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78949          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78950    AND l_bflow_method_code = 'PRIOR_ENTRY'
78951 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78952    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78953          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78954        )
78955    THEN
78956          xla_ae_lines_pkg.BflowUpgEntry
78957            (p_business_method_code    => l_bflow_method_code
78958            ,p_business_class_code     => l_bflow_class_code
78959            ,p_balance_type            => l_balance_type_code);
78960    ELSE
78961       NULL;
78962 -- No business flow processing for business flow method of NONE.
78963    END IF;
78964 
78965    --
78966    -- call analytical criteria
78967    --
78968    
78969    --
78970    -- call description
78971    --
78972    
78973 xla_ae_lines_pkg.SetLineDescription(
78974    p_ae_header_id => l_ae_header_id
78975   ,p_description  => Description_2 (
78976      p_application_id         => p_application_id
78977    , p_ae_header_id           => l_ae_header_id 
78978 , p_source_1 => p_source_1
78979    )
78980 );
78981 
78982 
78983    --
78984    -- call ADRs
78985    -- Bug 4922099
78986    --
78987    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78988         (NVL(l_actual_upg_option, 'N') = 'O') OR
78989         (NVL(l_enc_upg_option, 'N') = 'O')
78990       )
78991    THEN
78992    NULL;
78993    --
78994    --
78995    
78996   l_ccid := AcctDerRule_35(
78997            p_application_id           => p_application_id
78998          , p_ae_header_id             => l_ae_header_id 
78999 , p_source_25 => p_source_25
79000          , x_transaction_coa_id       => l_adr_transaction_coa_id
79001          , x_accounting_coa_id        => l_adr_accounting_coa_id
79002          , x_value_type_code          => l_adr_value_type_code
79003          , p_side                     => 'NA'
79004    );
79005 
79006    xla_ae_lines_pkg.set_ccid(
79007     p_code_combination_id          => l_ccid
79008   , p_value_type_code              => l_adr_value_type_code
79009   , p_transaction_coa_id           => l_adr_transaction_coa_id
79010   , p_accounting_coa_id            => l_adr_accounting_coa_id
79011   , p_adr_code                     => 'AP_INVOICE_DIST'
79012   , p_adr_type_code                => 'S'
79013   , p_component_type               => l_component_type
79014   , p_component_code               => l_component_code
79015   , p_component_type_code          => l_component_type_code
79016   , p_component_appl_id            => l_component_appl_id
79017   , p_amb_context_code             => l_amb_context_code
79018   , p_side                         => 'NA'
79019   );
79020 
79021 
79022    --
79023    --
79024    END IF;
79025    --
79026    -- Bug 4922099
79027    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79028           (NVL(l_enc_upg_option, 'N') = 'O')
79029         ) AND
79030         (l_bflow_method_code = 'PRIOR_ENTRY')
79031       )
79032    THEN
79033       IF
79034       --
79035       1 = 2
79036       --
79037       THEN
79038       xla_accounting_err_pkg.build_message
79039                                     (p_appli_s_name            => 'XLA'
79040                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79041                                     ,p_token_1                 => 'LINE_NUMBER'
79045                                                                              l_component_type
79042                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79043                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79044                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79046                                                                             ,l_component_code
79047                                                                             ,l_component_type_code
79048                                                                             ,l_component_appl_id
79049                                                                             ,l_amb_context_code
79050                                                                             ,l_entity_code
79051                                                                             ,l_event_class_code
79052                                                                            )
79053                                     ,p_token_3                 => 'OWNER'
79054                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79055                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79056                                                                           ,p_lookup_code    => l_component_type_code
79057                                                                          )
79058                                     ,p_token_4                 => 'PRODUCT_NAME'
79059                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79060                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79061                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79062                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79063                                     ,p_ae_header_id            =>  NULL
79064                                        );
79065 
79066         IF (C_LEVEL_ERROR>= g_log_level) THEN
79067                  trace
79068                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79069                       ,p_level    => C_LEVEL_ERROR
79070                       ,p_module   => l_log_module);
79071         END IF;
79072       END IF;
79073    END IF;
79074    --
79075    --
79076    ------------------------------------------------------------------------------------------------
79077    -- 4219869 Business Flow
79078    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79079    -- Prior Entry.  Currently, the following code is always generated.
79080    ------------------------------------------------------------------------------------------------
79081    XLA_AE_LINES_PKG.ValidateCurrentLine;
79082 
79083    ------------------------------------------------------------------------------------
79084    -- 4219869 Business Flow
79085    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79086    ------------------------------------------------------------------------------------
79087    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79088 
79089    ----------------------------------------------------------------------------------
79090    -- 4219869 Business Flow
79091    -- Update journal entry status -- Need to generate this within IF <condition>
79092    ----------------------------------------------------------------------------------
79093    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79094          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79095          ,p_balance_type_code => l_balance_type_code
79096          );
79097 
79098    -------------------------------------------------------------------------------------------
79099    -- 4262811 - Generate the Accrual Reversal lines
79100    -------------------------------------------------------------------------------------------
79101    BEGIN
79102       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79103                               (g_array_event(p_event_id).array_value_num('header_index'));
79104       IF l_acc_rev_flag IS NULL THEN
79105          l_acc_rev_flag := 'N';
79106       END IF;
79107    EXCEPTION
79108       WHEN OTHERS THEN
79109          l_acc_rev_flag := 'N';
79110    END;
79111    --
79112    IF (l_acc_rev_flag = 'Y') THEN
79113 
79114        -- 4645092  ------------------------------------------------------------------------------
79115        -- To allow MPA report to determine if it should generate report process
79116        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79117        ------------------------------------------------------------------------------------------
79118 
79119        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79120        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79121    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79122    -- call ADRs
79123    -- Bug 4922099
79124    --
79125    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79126         (NVL(l_actual_upg_option, 'N') = 'O') OR
79127         (NVL(l_enc_upg_option, 'N') = 'O')
79128       )
79129    THEN
79130    NULL;
79131    --
79132    --
79133    
79134   l_ccid := AcctDerRule_35(
79135            p_application_id           => p_application_id
79139          , x_accounting_coa_id        => l_adr_accounting_coa_id
79136          , p_ae_header_id             => l_ae_header_id 
79137 , p_source_25 => p_source_25
79138          , x_transaction_coa_id       => l_adr_transaction_coa_id
79140          , x_value_type_code          => l_adr_value_type_code
79141          , p_side                     => 'NA'
79142    );
79143 
79144    xla_ae_lines_pkg.set_ccid(
79145     p_code_combination_id          => l_ccid
79146   , p_value_type_code              => l_adr_value_type_code
79147   , p_transaction_coa_id           => l_adr_transaction_coa_id
79148   , p_accounting_coa_id            => l_adr_accounting_coa_id
79149   , p_adr_code                     => 'AP_INVOICE_DIST'
79150   , p_adr_type_code                => 'S'
79151   , p_component_type               => l_component_type
79152   , p_component_code               => l_component_code
79153   , p_component_type_code          => l_component_type_code
79154   , p_component_appl_id            => l_component_appl_id
79155   , p_amb_context_code             => l_amb_context_code
79156   , p_side                         => 'NA'
79157   );
79158 
79159 
79160    --
79161    --
79162    END IF;
79163 
79164        --
79165        -- Update the line information that should be overwritten
79166        --
79167        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79168                                          p_header_num   => 1);
79169        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79170 
79171        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79172 
79173        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79174           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79175        END IF;
79176 
79177       --
79178       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79179       --
79180       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79181           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79182       ELSE
79183           ---------------------------------------------------------------------------------------------------
79184           -- 4262811a Switch Sign
79185           ---------------------------------------------------------------------------------------------------
79186           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79187           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79188                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79189           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79190                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79191           -- 5132302
79192           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79193                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79194 
79195       END IF;
79196 
79197       -- 4955764
79198       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79199       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79200 
79201 
79202       XLA_AE_LINES_PKG.ValidateCurrentLine;
79203       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79204 
79205       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79206                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79207                ,p_balance_type_code => l_balance_type_code);
79208 
79209    END IF;
79210 
79211    -----------------------------------------------------------------------------------------
79212    -- 4262811 Multiperiod Accounting
79213    -----------------------------------------------------------------------------------------
79214      -- No MPA option is assigned.
79215 
79216 
79217 END IF;
79218 END IF;
79219 --
79220 
79221 --
79222 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79223    trace
79224       (p_msg      => 'END of AcctLineType_150'
79225       ,p_level    => C_LEVEL_PROCEDURE
79226       ,p_module   => l_log_module);
79227 END IF;
79228 --
79229 EXCEPTION
79230   WHEN xla_exceptions_pkg.application_exception THEN
79231       RAISE;
79232   WHEN OTHERS THEN
79233        xla_exceptions_pkg.raise_message
79234            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_150');
79235 END AcctLineType_150;
79236 --
79237 
79238 ---------------------------------------
79239 --
79240 -- PRIVATE FUNCTION
79241 --         AcctLineType_151
79242 --
79243 ---------------------------------------
79244 PROCEDURE AcctLineType_151 (
79245   p_application_id        IN NUMBER
79246  ,p_event_id              IN NUMBER
79247  ,p_calculate_acctd_flag  IN VARCHAR2
79248  ,p_calculate_g_l_flag    IN VARCHAR2
79249  ,p_actual_flag           IN OUT VARCHAR2
79250  ,p_balance_type_code     OUT VARCHAR2
79251  ,p_gain_or_loss_ref      OUT VARCHAR2
79252  
79253 --Invoice Distribution Description
79254  , p_source_1            IN VARCHAR2
79258  , p_source_25            IN NUMBER
79255 --Invoice Distribution Ledger Amount
79256  , p_source_16            IN NUMBER
79257 --Invoice Distribution Account
79259 --Invoice Distribution Type
79260  , p_source_28            IN VARCHAR2
79261  , p_source_28_meaning    IN VARCHAR2
79262 --Accrue on Receipt Option
79263  , p_source_54            IN VARCHAR2
79264  , p_source_54_meaning    IN VARCHAR2
79265 --Accounting Reversal Indicator
79266  , p_source_58            IN VARCHAR2
79267 --Distribution Link Type
79268  , p_source_60            IN VARCHAR2
79269 --Allocation to Main Distribution Identifier
79270  , p_source_62            IN NUMBER
79271 --Invoice Identifier
79272  , p_source_63            IN NUMBER
79273 --Invoice Distribution Identifier
79274  , p_source_69            IN NUMBER
79275 --Payables Encumbrance Upgrade Credit Account
79276  , p_source_70            IN NUMBER
79277 --Payables Encumbrance Upgrade Credit Amount
79278  , p_source_71            IN NUMBER
79279 --Invoice Currency Code
79280  , p_source_72            IN VARCHAR2
79281 --Payables Encumbrance Upgrade Credit Base Amount
79282  , p_source_73            IN NUMBER
79283 --Payables Encumbrance Upgrade Debit Account
79284  , p_source_74            IN NUMBER
79285 --Payables Encumbrance Upgrade Debit Amount
79286  , p_source_75            IN NUMBER
79287 --Payables Encumbrance Upgrade Debit Base Amount
79288  , p_source_76            IN NUMBER
79289 --Payables Encumbrance Upgrade Option
79290  , p_source_77            IN VARCHAR2
79291 --Invoice Distribution Amount
79292  , p_source_78            IN NUMBER
79293 --Deferred Accounting End Date
79294  , p_source_82            IN DATE
79295 --Deferred Accounting Option
79296  , p_source_83            IN VARCHAR2
79297 --Deferred Accounting Start Date
79298  , p_source_84            IN DATE
79299 --Override Accounted Amount Indicator
79300  , p_source_85            IN VARCHAR2
79301  , p_source_85_meaning    IN VARCHAR2
79302 --Invoice Supplier Identifier
79303  , p_source_86            IN NUMBER
79304 --Invoice Supplier Site Identifier
79305  , p_source_87            IN NUMBER
79306 --Third Party Type
79307  , p_source_88            IN VARCHAR2
79308 --Parent Reversal Identifier
79309  , p_source_89            IN NUMBER
79310 --Invoice Distribution Statistical Amount
79311  , p_source_90            IN NUMBER
79312 --Invoice Distribution Tax Line Identifier
79313  , p_source_91            IN NUMBER
79314 --Invoice Distribution Tax Distribution Identifier from Tax
79315  , p_source_92            IN NUMBER
79316 --Invoice Distribution Summary Tax Line Identifier
79317  , p_source_93            IN NUMBER
79318 --Payables Upgrade Credit Encumbrance Type Identifier
79319  , p_source_94            IN NUMBER
79320 --Payables Upgrade Debit Encumbrance Type Identifier
79321  , p_source_95            IN NUMBER
79322 --Business Flow Accounts Payable Application Identifier
79323  , p_source_96            IN NUMBER
79324 --Business Flow Invoice Distribution Type
79325  , p_source_97            IN VARCHAR2
79326 --Business Flow Invoice Entity Code
79327  , p_source_98            IN VARCHAR2
79328 --Business Flow Invoice Distribution Identifier
79329  , p_source_99            IN NUMBER
79330 --Business Flow Invoice Identifier
79331  , p_source_100            IN NUMBER
79332 --Invoice Exchange Date
79333  , p_source_146            IN DATE
79334 --Invoice Exchange Rate
79335  , p_source_147            IN NUMBER
79336 --Invoice Exchange Rate Type
79337  , p_source_148            IN VARCHAR2
79338 )
79339 IS
79340 
79341 l_component_type              VARCHAR2(80);
79342 l_component_code              VARCHAR2(30);
79343 l_component_type_code         VARCHAR2(1);
79344 l_component_appl_id           INTEGER;
79345 l_amb_context_code            VARCHAR2(30);
79346 l_entity_code                 VARCHAR2(30);
79347 l_event_class_code            VARCHAR2(30);
79348 l_ae_header_id                NUMBER;
79349 l_event_type_code             VARCHAR2(30);
79350 l_line_definition_code        VARCHAR2(30);
79351 l_line_definition_owner_code  VARCHAR2(1);
79352 --
79353 -- adr variables
79354 l_segment                     VARCHAR2(30);
79355 l_ccid                        NUMBER;
79356 l_adr_transaction_coa_id      NUMBER;
79357 l_adr_accounting_coa_id       NUMBER;
79358 l_adr_flexfield_segment_code  VARCHAR2(30);
79359 l_adr_flex_value_set_id       NUMBER;
79360 l_adr_value_type_code         VARCHAR2(30);
79361 l_adr_value_combination_id    NUMBER;
79362 l_adr_value_segment_code      VARCHAR2(30);
79363 
79364 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
79365 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
79366 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
79367 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
79368 
79369 -- 4262811 Variables ------------------------------------------------------------------------------------------
79370 l_entered_amt_idx             NUMBER;
79371 l_accted_amt_idx              NUMBER;
79372 l_acc_rev_flag                VARCHAR2(1);
79373 l_accrual_line_num            NUMBER;
79374 l_tmp_amt                     NUMBER;
79375 l_acc_rev_natural_side_code   VARCHAR2(1);
79376 
79377 l_num_entries                 NUMBER;
79378 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79379 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79383 l_recog_line_2                NUMBER;
79380 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79381 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79382 l_recog_line_1                NUMBER;
79384 
79385 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79386 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79387 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79388 
79389 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79390 
79391 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79392 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79393 
79394 ---------------------------------------------------------------------------------------------------------------
79395 
79396 
79397 --
79398 -- bulk performance
79399 --
79400 l_balance_type_code           VARCHAR2(1);
79401 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79402 l_log_module                  VARCHAR2(240);
79403 
79404 --
79405 -- Upgrade strategy
79406 --
79407 l_actual_upg_option           VARCHAR2(1);
79408 l_enc_upg_option           VARCHAR2(1);
79409 
79410 --
79411 BEGIN
79412 --
79413 IF g_log_enabled THEN
79414       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
79415 END IF;
79416 --
79417 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79418 
79419       trace
79420          (p_msg      => 'BEGIN of AcctLineType_151'
79421          ,p_level    => C_LEVEL_PROCEDURE
79422          ,p_module   => l_log_module);
79423 
79424 END IF;
79425 --
79426 l_component_type             := 'AMB_JLT';
79427 l_component_code             := 'AP_ITEM_EXPENSE_CM';
79428 l_component_type_code        := 'S';
79429 l_component_appl_id          :=  200;
79430 l_amb_context_code           := 'DEFAULT';
79431 l_entity_code                := 'AP_INVOICES';
79432 l_event_class_code           := 'CREDIT MEMOS';
79433 l_event_type_code            := 'CREDIT MEMOS_ALL';
79434 l_line_definition_owner_code := 'S';
79435 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
79436 --
79437 l_balance_type_code          := 'A';
79438 l_segment                     := NULL;
79439 l_ccid                        := NULL;
79440 l_adr_transaction_coa_id      := NULL;
79441 l_adr_accounting_coa_id       := NULL;
79442 l_adr_flexfield_segment_code  := NULL;
79443 l_adr_flex_value_set_id       := NULL;
79444 l_adr_value_type_code         := NULL;
79445 l_adr_value_combination_id    := NULL;
79446 l_adr_value_segment_code      := NULL;
79447 
79448 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79449 l_bflow_class_code           := '';    -- 4219869 Business Flow
79450 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79451 l_budgetary_control_flag     := 'N';
79452 
79453 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79454 l_bflow_applied_to_amt       := NULL; -- 5132302
79455 l_entered_amt_idx            := NULL;          -- 4262811
79456 l_accted_amt_idx             := NULL;          -- 4262811
79457 l_acc_rev_flag               := NULL;          -- 4262811
79458 l_accrual_line_num           := NULL;          -- 4262811
79459 l_tmp_amt                    := NULL;          -- 4262811
79460 --
79461  
79462 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79463     l_balance_type_code <> 'B' THEN
79464 IF NVL(p_source_28,'
79465 ') =  'RETROEXPENSE' OR 
79466 NVL(p_source_28,'
79467 ') =  'ITEM' OR 
79468 (NVL(p_source_28,'
79469 ') =  'ERV' AND 
79470 NVL(p_source_54,'
79471 ') <>  'Y') OR 
79472 (NVL(p_source_28,'
79473 ') =  'IPV' AND 
79474 NVL(p_source_54,'
79475 ') <>  'Y')
79476  THEN 
79477 
79478    --
79479    XLA_AE_LINES_PKG.SetNewLine;
79480 
79481    p_balance_type_code          := l_balance_type_code;
79482    -- set the flag so later we will know whether the gain loss line needs to be created
79483    
79484    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79485      p_actual_flag :='A';
79486    END IF;
79487 
79488    --
79489    -- bulk performance
79490    --
79491    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79492                                       p_header_num   => 0); -- 4262811
79493    --
79494    -- set accounting line options
79495    --
79496    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79497            p_natural_side_code          => 'D'
79498          , p_gain_or_loss_flag          => 'N'
79499          , p_gl_transfer_mode_code      => 'S'
79500          , p_acct_entry_type_code       => 'A'
79501          , p_switch_side_flag           => 'Y'
79502          , p_merge_duplicate_code       => 'A'
79503          );
79504    --
79505    l_acc_rev_natural_side_code := 'C';  -- 4262811
79506    -- 
79507    --
79508    -- set accounting line type info
79509    --
79510    xla_ae_lines_pkg.SetAcctLineType
79511       (p_component_type             => l_component_type
79512       ,p_event_type_code            => l_event_type_code
79513       ,p_line_definition_owner_code => l_line_definition_owner_code
79514       ,p_line_definition_code       => l_line_definition_code
79515       ,p_accounting_line_code       => l_component_code
79516       ,p_accounting_line_type_code  => l_component_type_code
79520       ,p_event_class_code           => l_event_class_code);
79517       ,p_accounting_line_appl_id    => l_component_appl_id
79518       ,p_amb_context_code           => l_amb_context_code
79519       ,p_entity_code                => l_entity_code
79521    --
79522    -- set accounting class
79523    --
79524    xla_ae_lines_pkg.SetAcctClass(
79525            p_accounting_class_code  => 'ITEM EXPENSE'
79526          , p_ae_header_id           => l_ae_header_id
79527          );
79528 
79529    --
79530    -- set rounding class
79531    --
79532    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79533                       'ITEM EXPENSE';
79534 
79535    --
79536    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79537    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79538    --
79539    -- bulk performance
79540    --
79541    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79542 
79543    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79544       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79545 
79546    -- 4955764
79547    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79548       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79549 
79550    -- 4458381 Public Sector Enh
79551    
79552    --
79553    -- set accounting attributes for the line type
79554    --
79555    l_entered_amt_idx := 23;
79556    l_accted_amt_idx  := 28;
79557    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79558    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79559    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
79560    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79561    l_rec_acct_attrs.array_num_value(2)  := 
79562 xla_ae_sources_pkg.GetSystemSourceNum(
79563    p_source_code           => 'XLA_EVENT_APPL_ID'
79564  , p_source_type_code      => 'Y'
79565  , p_source_application_id =>  602
79566 );
79567    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79568    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
79569    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79570    l_rec_acct_attrs.array_char_value(4)  := 
79571 xla_ae_sources_pkg.GetSystemSourceChar(
79572    p_source_code           => 'XLA_ENTITY_CODE'
79573  , p_source_type_code      => 'Y'
79574  , p_source_application_id =>  602
79575 );
79576    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79577    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
79578    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79579    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
79580    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79581    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
79582    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79583    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
79584    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79585    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
79586    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79587    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
79588    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79589    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
79590    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79591    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
79592    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79593    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
79594    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
79595    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
79596    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
79597    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
79598    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
79599    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
79600    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
79601    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
79602    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
79603    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
79604    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
79605    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
79606    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
79607    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
79608    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
79609    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
79610    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
79611    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
79612    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
79613    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
79614    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
79615    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
79616    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
79617    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
79621    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
79618    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
79619    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
79620    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
79622    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
79623    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
79624    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
79625    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
79626    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
79627    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
79628    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
79629    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
79630    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
79631    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
79632    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
79633    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
79634    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
79635    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
79636    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
79637    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
79638    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
79639    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
79640    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
79641    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
79642    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
79643    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
79644    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
79645    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
79646    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
79647    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
79648    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
79649    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
79650    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
79651    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
79652    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
79653    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
79654 
79655    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79656    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79657 
79658    ---------------------------------------------------------------------------------------------------------------
79659    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79660    ---------------------------------------------------------------------------------------------------------------
79661    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79662 
79663    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79664    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79665 
79666    IF xla_accounting_cache_pkg.GetValueChar
79667          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79668          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79669    AND l_bflow_method_code = 'PRIOR_ENTRY'
79670 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79671    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79672          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79673        )
79674    THEN
79675          xla_ae_lines_pkg.BflowUpgEntry
79676            (p_business_method_code    => l_bflow_method_code
79677            ,p_business_class_code     => l_bflow_class_code
79678            ,p_balance_type            => l_balance_type_code);
79679    ELSE
79680       NULL;
79681 -- No business flow processing for business flow method of NONE.
79682    END IF;
79683 
79684    --
79685    -- call analytical criteria
79686    --
79687    
79688    --
79689    -- call description
79690    --
79691    
79692 xla_ae_lines_pkg.SetLineDescription(
79693    p_ae_header_id => l_ae_header_id
79694   ,p_description  => Description_2 (
79695      p_application_id         => p_application_id
79696    , p_ae_header_id           => l_ae_header_id 
79697 , p_source_1 => p_source_1
79698    )
79699 );
79700 
79701 
79702    --
79703    -- call ADRs
79704    -- Bug 4922099
79705    --
79706    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79707         (NVL(l_actual_upg_option, 'N') = 'O') OR
79708         (NVL(l_enc_upg_option, 'N') = 'O')
79709       )
79710    THEN
79711    NULL;
79712    --
79713    --
79714    
79715   l_ccid := AcctDerRule_35(
79716            p_application_id           => p_application_id
79717          , p_ae_header_id             => l_ae_header_id 
79718 , p_source_25 => p_source_25
79719          , x_transaction_coa_id       => l_adr_transaction_coa_id
79720          , x_accounting_coa_id        => l_adr_accounting_coa_id
79721          , x_value_type_code          => l_adr_value_type_code
79722          , p_side                     => 'NA'
79723    );
79724 
79725    xla_ae_lines_pkg.set_ccid(
79726     p_code_combination_id          => l_ccid
79727   , p_value_type_code              => l_adr_value_type_code
79728   , p_transaction_coa_id           => l_adr_transaction_coa_id
79732   , p_component_type               => l_component_type
79729   , p_accounting_coa_id            => l_adr_accounting_coa_id
79730   , p_adr_code                     => 'AP_INVOICE_DIST'
79731   , p_adr_type_code                => 'S'
79733   , p_component_code               => l_component_code
79734   , p_component_type_code          => l_component_type_code
79735   , p_component_appl_id            => l_component_appl_id
79736   , p_amb_context_code             => l_amb_context_code
79737   , p_side                         => 'NA'
79738   );
79739 
79740 
79741    --
79742    --
79743    END IF;
79744    --
79745    -- Bug 4922099
79746    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79747           (NVL(l_enc_upg_option, 'N') = 'O')
79748         ) AND
79749         (l_bflow_method_code = 'PRIOR_ENTRY')
79750       )
79751    THEN
79752       IF
79753       --
79754       1 = 2
79755       --
79756       THEN
79757       xla_accounting_err_pkg.build_message
79758                                     (p_appli_s_name            => 'XLA'
79759                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79760                                     ,p_token_1                 => 'LINE_NUMBER'
79761                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79762                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79763                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79764                                                                              l_component_type
79765                                                                             ,l_component_code
79766                                                                             ,l_component_type_code
79767                                                                             ,l_component_appl_id
79768                                                                             ,l_amb_context_code
79769                                                                             ,l_entity_code
79770                                                                             ,l_event_class_code
79771                                                                            )
79772                                     ,p_token_3                 => 'OWNER'
79773                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79774                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79775                                                                           ,p_lookup_code    => l_component_type_code
79776                                                                          )
79777                                     ,p_token_4                 => 'PRODUCT_NAME'
79778                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79779                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79780                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79781                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79782                                     ,p_ae_header_id            =>  NULL
79783                                        );
79784 
79785         IF (C_LEVEL_ERROR>= g_log_level) THEN
79786                  trace
79787                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79788                       ,p_level    => C_LEVEL_ERROR
79789                       ,p_module   => l_log_module);
79790         END IF;
79791       END IF;
79792    END IF;
79793    --
79794    --
79795    ------------------------------------------------------------------------------------------------
79796    -- 4219869 Business Flow
79797    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79798    -- Prior Entry.  Currently, the following code is always generated.
79799    ------------------------------------------------------------------------------------------------
79800    XLA_AE_LINES_PKG.ValidateCurrentLine;
79801 
79802    ------------------------------------------------------------------------------------
79803    -- 4219869 Business Flow
79804    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79805    ------------------------------------------------------------------------------------
79806    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79807 
79808    ----------------------------------------------------------------------------------
79809    -- 4219869 Business Flow
79810    -- Update journal entry status -- Need to generate this within IF <condition>
79811    ----------------------------------------------------------------------------------
79812    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79813          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79814          ,p_balance_type_code => l_balance_type_code
79815          );
79816 
79817    -------------------------------------------------------------------------------------------
79818    -- 4262811 - Generate the Accrual Reversal lines
79819    -------------------------------------------------------------------------------------------
79820    BEGIN
79821       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79822                               (g_array_event(p_event_id).array_value_num('header_index'));
79826    EXCEPTION
79823       IF l_acc_rev_flag IS NULL THEN
79824          l_acc_rev_flag := 'N';
79825       END IF;
79827       WHEN OTHERS THEN
79828          l_acc_rev_flag := 'N';
79829    END;
79830    --
79831    IF (l_acc_rev_flag = 'Y') THEN
79832 
79833        -- 4645092  ------------------------------------------------------------------------------
79834        -- To allow MPA report to determine if it should generate report process
79835        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79836        ------------------------------------------------------------------------------------------
79837 
79838        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79839        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79840    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79841    -- call ADRs
79842    -- Bug 4922099
79843    --
79844    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79845         (NVL(l_actual_upg_option, 'N') = 'O') OR
79846         (NVL(l_enc_upg_option, 'N') = 'O')
79847       )
79848    THEN
79849    NULL;
79850    --
79851    --
79852    
79853   l_ccid := AcctDerRule_35(
79854            p_application_id           => p_application_id
79855          , p_ae_header_id             => l_ae_header_id 
79856 , p_source_25 => p_source_25
79857          , x_transaction_coa_id       => l_adr_transaction_coa_id
79858          , x_accounting_coa_id        => l_adr_accounting_coa_id
79859          , x_value_type_code          => l_adr_value_type_code
79860          , p_side                     => 'NA'
79861    );
79862 
79863    xla_ae_lines_pkg.set_ccid(
79864     p_code_combination_id          => l_ccid
79865   , p_value_type_code              => l_adr_value_type_code
79866   , p_transaction_coa_id           => l_adr_transaction_coa_id
79867   , p_accounting_coa_id            => l_adr_accounting_coa_id
79868   , p_adr_code                     => 'AP_INVOICE_DIST'
79869   , p_adr_type_code                => 'S'
79870   , p_component_type               => l_component_type
79871   , p_component_code               => l_component_code
79872   , p_component_type_code          => l_component_type_code
79873   , p_component_appl_id            => l_component_appl_id
79874   , p_amb_context_code             => l_amb_context_code
79875   , p_side                         => 'NA'
79876   );
79877 
79878 
79879    --
79880    --
79881    END IF;
79882 
79883        --
79884        -- Update the line information that should be overwritten
79885        --
79886        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79887                                          p_header_num   => 1);
79888        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79889 
79890        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79891 
79892        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79893           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79894        END IF;
79895 
79896       --
79897       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79898       --
79899       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79900           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79901       ELSE
79902           ---------------------------------------------------------------------------------------------------
79903           -- 4262811a Switch Sign
79904           ---------------------------------------------------------------------------------------------------
79905           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79906           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79907                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79908           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79909                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79910           -- 5132302
79911           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79912                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79913 
79914       END IF;
79915 
79916       -- 4955764
79917       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79918       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79919 
79920 
79921       XLA_AE_LINES_PKG.ValidateCurrentLine;
79922       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79923 
79924       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79925                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79926                ,p_balance_type_code => l_balance_type_code);
79927 
79928    END IF;
79929 
79930    -----------------------------------------------------------------------------------------
79931    -- 4262811 Multiperiod Accounting
79932    -----------------------------------------------------------------------------------------
79933      -- No MPA option is assigned.
79934 
79935 
79936 END IF;
79940 --
79937 END IF;
79938 --
79939 
79941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79942    trace
79943       (p_msg      => 'END of AcctLineType_151'
79944       ,p_level    => C_LEVEL_PROCEDURE
79945       ,p_module   => l_log_module);
79946 END IF;
79947 --
79948 EXCEPTION
79949   WHEN xla_exceptions_pkg.application_exception THEN
79950       RAISE;
79951   WHEN OTHERS THEN
79952        xla_exceptions_pkg.raise_message
79953            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_151');
79954 END AcctLineType_151;
79955 --
79956 
79957 ---------------------------------------
79958 --
79959 -- PRIVATE FUNCTION
79960 --         AcctLineType_152
79961 --
79962 ---------------------------------------
79963 PROCEDURE AcctLineType_152 (
79964   p_application_id        IN NUMBER
79965  ,p_event_id              IN NUMBER
79966  ,p_calculate_acctd_flag  IN VARCHAR2
79967  ,p_calculate_g_l_flag    IN VARCHAR2
79968  ,p_actual_flag           IN OUT VARCHAR2
79969  ,p_balance_type_code     OUT VARCHAR2
79970  ,p_gain_or_loss_ref      OUT VARCHAR2
79971  
79972 --Invoice Distribution Description
79973  , p_source_1            IN VARCHAR2
79974 --Invoice Distribution Ledger Amount
79975  , p_source_16            IN NUMBER
79976 --Invoice Distribution Account
79977  , p_source_25            IN NUMBER
79978 --Invoice Distribution Type
79979  , p_source_28            IN VARCHAR2
79980  , p_source_28_meaning    IN VARCHAR2
79981 --Accrue on Receipt Option
79982  , p_source_54            IN VARCHAR2
79983  , p_source_54_meaning    IN VARCHAR2
79984 --Accounting Reversal Indicator
79985  , p_source_58            IN VARCHAR2
79986 --Distribution Link Type
79987  , p_source_60            IN VARCHAR2
79988 --Allocation to Main Distribution Identifier
79989  , p_source_62            IN NUMBER
79990 --Invoice Identifier
79991  , p_source_63            IN NUMBER
79992 --Invoice Distribution Identifier
79993  , p_source_69            IN NUMBER
79994 --Payables Encumbrance Upgrade Credit Account
79995  , p_source_70            IN NUMBER
79996 --Payables Encumbrance Upgrade Credit Amount
79997  , p_source_71            IN NUMBER
79998 --Invoice Currency Code
79999  , p_source_72            IN VARCHAR2
80000 --Payables Encumbrance Upgrade Credit Base Amount
80001  , p_source_73            IN NUMBER
80002 --Payables Encumbrance Upgrade Debit Account
80003  , p_source_74            IN NUMBER
80004 --Payables Encumbrance Upgrade Debit Amount
80005  , p_source_75            IN NUMBER
80006 --Payables Encumbrance Upgrade Debit Base Amount
80007  , p_source_76            IN NUMBER
80008 --Payables Encumbrance Upgrade Option
80009  , p_source_77            IN VARCHAR2
80010 --Invoice Distribution Amount
80011  , p_source_78            IN NUMBER
80012 --Deferred Accounting End Date
80013  , p_source_82            IN DATE
80014 --Deferred Accounting Option
80015  , p_source_83            IN VARCHAR2
80016 --Deferred Accounting Start Date
80017  , p_source_84            IN DATE
80018 --Override Accounted Amount Indicator
80019  , p_source_85            IN VARCHAR2
80020  , p_source_85_meaning    IN VARCHAR2
80021 --Invoice Supplier Identifier
80022  , p_source_86            IN NUMBER
80023 --Invoice Supplier Site Identifier
80024  , p_source_87            IN NUMBER
80025 --Third Party Type
80026  , p_source_88            IN VARCHAR2
80027 --Parent Reversal Identifier
80028  , p_source_89            IN NUMBER
80029 --Invoice Distribution Tax Line Identifier
80030  , p_source_91            IN NUMBER
80031 --Invoice Distribution Tax Distribution Identifier from Tax
80032  , p_source_92            IN NUMBER
80033 --Invoice Distribution Summary Tax Line Identifier
80034  , p_source_93            IN NUMBER
80035 --Payables Upgrade Credit Encumbrance Type Identifier
80036  , p_source_94            IN NUMBER
80037 --Payables Upgrade Debit Encumbrance Type Identifier
80038  , p_source_95            IN NUMBER
80039 --Business Flow Accounts Payable Application Identifier
80040  , p_source_96            IN NUMBER
80041 --Business Flow Invoice Distribution Type
80042  , p_source_97            IN VARCHAR2
80043 --Business Flow Invoice Entity Code
80044  , p_source_98            IN VARCHAR2
80045 --Business Flow Invoice Distribution Identifier
80046  , p_source_99            IN NUMBER
80047 --Business Flow Invoice Identifier
80048  , p_source_100            IN NUMBER
80049 --Invoice Exchange Date
80050  , p_source_146            IN DATE
80051 --Invoice Exchange Rate
80052  , p_source_147            IN NUMBER
80053 --Invoice Exchange Rate Type
80054  , p_source_148            IN VARCHAR2
80055 )
80056 IS
80057 
80058 l_component_type              VARCHAR2(80);
80059 l_component_code              VARCHAR2(30);
80060 l_component_type_code         VARCHAR2(1);
80061 l_component_appl_id           INTEGER;
80062 l_amb_context_code            VARCHAR2(30);
80063 l_entity_code                 VARCHAR2(30);
80064 l_event_class_code            VARCHAR2(30);
80065 l_ae_header_id                NUMBER;
80066 l_event_type_code             VARCHAR2(30);
80067 l_line_definition_code        VARCHAR2(30);
80068 l_line_definition_owner_code  VARCHAR2(1);
80069 --
80070 -- adr variables
80071 l_segment                     VARCHAR2(30);
80072 l_ccid                        NUMBER;
80076 l_adr_flex_value_set_id       NUMBER;
80073 l_adr_transaction_coa_id      NUMBER;
80074 l_adr_accounting_coa_id       NUMBER;
80075 l_adr_flexfield_segment_code  VARCHAR2(30);
80077 l_adr_value_type_code         VARCHAR2(30);
80078 l_adr_value_combination_id    NUMBER;
80079 l_adr_value_segment_code      VARCHAR2(30);
80080 
80081 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80082 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80083 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80084 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80085 
80086 -- 4262811 Variables ------------------------------------------------------------------------------------------
80087 l_entered_amt_idx             NUMBER;
80088 l_accted_amt_idx              NUMBER;
80089 l_acc_rev_flag                VARCHAR2(1);
80090 l_accrual_line_num            NUMBER;
80091 l_tmp_amt                     NUMBER;
80092 l_acc_rev_natural_side_code   VARCHAR2(1);
80093 
80094 l_num_entries                 NUMBER;
80095 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80096 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80097 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80098 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80099 l_recog_line_1                NUMBER;
80100 l_recog_line_2                NUMBER;
80101 
80102 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80103 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80104 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80105 
80106 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80107 
80108 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80109 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80110 
80111 ---------------------------------------------------------------------------------------------------------------
80112 
80113 
80114 --
80115 -- bulk performance
80116 --
80117 l_balance_type_code           VARCHAR2(1);
80118 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80119 l_log_module                  VARCHAR2(240);
80120 
80121 --
80122 -- Upgrade strategy
80123 --
80124 l_actual_upg_option           VARCHAR2(1);
80125 l_enc_upg_option           VARCHAR2(1);
80126 
80127 --
80128 BEGIN
80129 --
80130 IF g_log_enabled THEN
80131       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
80132 END IF;
80133 --
80134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80135 
80136       trace
80137          (p_msg      => 'BEGIN of AcctLineType_152'
80138          ,p_level    => C_LEVEL_PROCEDURE
80139          ,p_module   => l_log_module);
80140 
80141 END IF;
80142 --
80143 l_component_type             := 'AMB_JLT';
80144 l_component_code             := 'AP_ITEM_EXPENSE_DM';
80145 l_component_type_code        := 'S';
80146 l_component_appl_id          :=  200;
80147 l_amb_context_code           := 'DEFAULT';
80148 l_entity_code                := 'AP_INVOICES';
80149 l_event_class_code           := 'DEBIT MEMOS';
80150 l_event_type_code            := 'DEBIT MEMOS_ALL';
80151 l_line_definition_owner_code := 'S';
80152 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
80153 --
80154 l_balance_type_code          := 'A';
80155 l_segment                     := NULL;
80156 l_ccid                        := NULL;
80157 l_adr_transaction_coa_id      := NULL;
80158 l_adr_accounting_coa_id       := NULL;
80159 l_adr_flexfield_segment_code  := NULL;
80160 l_adr_flex_value_set_id       := NULL;
80161 l_adr_value_type_code         := NULL;
80162 l_adr_value_combination_id    := NULL;
80163 l_adr_value_segment_code      := NULL;
80164 
80165 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
80166 l_bflow_class_code           := '';    -- 4219869 Business Flow
80167 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80168 l_budgetary_control_flag     := 'N';
80169 
80170 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80171 l_bflow_applied_to_amt       := NULL; -- 5132302
80172 l_entered_amt_idx            := NULL;          -- 4262811
80173 l_accted_amt_idx             := NULL;          -- 4262811
80174 l_acc_rev_flag               := NULL;          -- 4262811
80175 l_accrual_line_num           := NULL;          -- 4262811
80176 l_tmp_amt                    := NULL;          -- 4262811
80177 --
80178  
80179 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80180     l_balance_type_code <> 'B' THEN
80181 IF NVL(p_source_28,'
80182 ') =  'RETROEXPENSE' OR 
80183 NVL(p_source_28,'
80184 ') =  'ITEM' OR 
80185 (NVL(p_source_28,'
80186 ') =  'ERV' AND 
80187 NVL(p_source_54,'
80188 ') <>  'Y') OR 
80189 (NVL(p_source_28,'
80190 ') =  'IPV' AND 
80191 NVL(p_source_54,'
80192 ') <>  'Y')
80193  THEN 
80194 
80195    --
80196    XLA_AE_LINES_PKG.SetNewLine;
80197 
80198    p_balance_type_code          := l_balance_type_code;
80199    -- set the flag so later we will know whether the gain loss line needs to be created
80200    
80201    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80202      p_actual_flag :='A';
80203    END IF;
80204 
80205    --
80206    -- bulk performance
80207    --
80211    -- set accounting line options
80208    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80209                                       p_header_num   => 0); -- 4262811
80210    --
80212    --
80213    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80214            p_natural_side_code          => 'D'
80215          , p_gain_or_loss_flag          => 'N'
80216          , p_gl_transfer_mode_code      => 'S'
80217          , p_acct_entry_type_code       => 'A'
80218          , p_switch_side_flag           => 'Y'
80219          , p_merge_duplicate_code       => 'A'
80220          );
80221    --
80222    l_acc_rev_natural_side_code := 'C';  -- 4262811
80223    -- 
80224    --
80225    -- set accounting line type info
80226    --
80227    xla_ae_lines_pkg.SetAcctLineType
80228       (p_component_type             => l_component_type
80229       ,p_event_type_code            => l_event_type_code
80230       ,p_line_definition_owner_code => l_line_definition_owner_code
80231       ,p_line_definition_code       => l_line_definition_code
80232       ,p_accounting_line_code       => l_component_code
80233       ,p_accounting_line_type_code  => l_component_type_code
80234       ,p_accounting_line_appl_id    => l_component_appl_id
80235       ,p_amb_context_code           => l_amb_context_code
80236       ,p_entity_code                => l_entity_code
80237       ,p_event_class_code           => l_event_class_code);
80238    --
80239    -- set accounting class
80240    --
80241    xla_ae_lines_pkg.SetAcctClass(
80242            p_accounting_class_code  => 'ITEM EXPENSE'
80243          , p_ae_header_id           => l_ae_header_id
80244          );
80245 
80246    --
80247    -- set rounding class
80248    --
80249    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80250                       'ITEM EXPENSE';
80251 
80252    --
80253    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80254    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80255    --
80256    -- bulk performance
80257    --
80258    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80259 
80260    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80261       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80262 
80263    -- 4955764
80264    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80265       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80266 
80267    -- 4458381 Public Sector Enh
80268    
80269    --
80270    -- set accounting attributes for the line type
80271    --
80272    l_entered_amt_idx := 23;
80273    l_accted_amt_idx  := 28;
80274    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
80275    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80276    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
80277    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80278    l_rec_acct_attrs.array_num_value(2)  := 
80279 xla_ae_sources_pkg.GetSystemSourceNum(
80280    p_source_code           => 'XLA_EVENT_APPL_ID'
80281  , p_source_type_code      => 'Y'
80282  , p_source_application_id =>  602
80283 );
80284    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
80285    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
80286    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
80287    l_rec_acct_attrs.array_char_value(4)  := 
80288 xla_ae_sources_pkg.GetSystemSourceChar(
80289    p_source_code           => 'XLA_ENTITY_CODE'
80290  , p_source_type_code      => 'Y'
80291  , p_source_application_id =>  602
80292 );
80293    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
80294    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
80295    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
80296    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
80297    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
80298    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
80299    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80300    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
80301    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
80302    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
80303    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
80304    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
80305    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80306    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
80307    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
80308    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
80309    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
80310    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
80311    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
80312    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
80313    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
80314    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
80315    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
80316    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
80320    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
80317    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
80318    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
80319    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
80321    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
80322    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
80323    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
80324    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
80325    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
80326    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
80327    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
80328    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
80329    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
80330    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
80331    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
80332    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
80333    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
80334    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
80335    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
80336    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
80337    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
80338    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
80339    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
80340    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
80341    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
80342    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
80343    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
80344    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
80345    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
80346    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
80347    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
80348    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
80349    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
80350    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
80351    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
80352    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
80353    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
80354    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
80355    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
80356    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
80357    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
80358    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
80359    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
80360    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
80361    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
80362    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
80363    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
80364    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
80365    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
80366    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
80367    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
80368    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
80369 
80370    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80371    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80372 
80373    ---------------------------------------------------------------------------------------------------------------
80374    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80375    ---------------------------------------------------------------------------------------------------------------
80376    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80377 
80378    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80379    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80380 
80381    IF xla_accounting_cache_pkg.GetValueChar
80382          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80383          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80384    AND l_bflow_method_code = 'PRIOR_ENTRY'
80385 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80386    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80387          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80388        )
80389    THEN
80390          xla_ae_lines_pkg.BflowUpgEntry
80391            (p_business_method_code    => l_bflow_method_code
80392            ,p_business_class_code     => l_bflow_class_code
80393            ,p_balance_type            => l_balance_type_code);
80394    ELSE
80395       NULL;
80396 -- No business flow processing for business flow method of NONE.
80397    END IF;
80398 
80399    --
80400    -- call analytical criteria
80401    --
80402    
80403    --
80404    -- call description
80405    --
80406    
80407 xla_ae_lines_pkg.SetLineDescription(
80408    p_ae_header_id => l_ae_header_id
80409   ,p_description  => Description_2 (
80410      p_application_id         => p_application_id
80411    , p_ae_header_id           => l_ae_header_id 
80412 , p_source_1 => p_source_1
80413    )
80414 );
80415 
80416 
80420    --
80417    --
80418    -- call ADRs
80419    -- Bug 4922099
80421    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80422         (NVL(l_actual_upg_option, 'N') = 'O') OR
80423         (NVL(l_enc_upg_option, 'N') = 'O')
80424       )
80425    THEN
80426    NULL;
80427    --
80428    --
80429    
80430   l_ccid := AcctDerRule_35(
80431            p_application_id           => p_application_id
80432          , p_ae_header_id             => l_ae_header_id 
80433 , p_source_25 => p_source_25
80434          , x_transaction_coa_id       => l_adr_transaction_coa_id
80435          , x_accounting_coa_id        => l_adr_accounting_coa_id
80436          , x_value_type_code          => l_adr_value_type_code
80437          , p_side                     => 'NA'
80438    );
80439 
80440    xla_ae_lines_pkg.set_ccid(
80441     p_code_combination_id          => l_ccid
80442   , p_value_type_code              => l_adr_value_type_code
80443   , p_transaction_coa_id           => l_adr_transaction_coa_id
80444   , p_accounting_coa_id            => l_adr_accounting_coa_id
80445   , p_adr_code                     => 'AP_INVOICE_DIST'
80446   , p_adr_type_code                => 'S'
80447   , p_component_type               => l_component_type
80448   , p_component_code               => l_component_code
80449   , p_component_type_code          => l_component_type_code
80450   , p_component_appl_id            => l_component_appl_id
80451   , p_amb_context_code             => l_amb_context_code
80452   , p_side                         => 'NA'
80453   );
80454 
80455 
80456    --
80457    --
80458    END IF;
80459    --
80460    -- Bug 4922099
80461    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80462           (NVL(l_enc_upg_option, 'N') = 'O')
80463         ) AND
80464         (l_bflow_method_code = 'PRIOR_ENTRY')
80465       )
80466    THEN
80467       IF
80468       --
80469       1 = 2
80470       --
80471       THEN
80472       xla_accounting_err_pkg.build_message
80473                                     (p_appli_s_name            => 'XLA'
80474                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80475                                     ,p_token_1                 => 'LINE_NUMBER'
80476                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80477                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80478                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80479                                                                              l_component_type
80480                                                                             ,l_component_code
80481                                                                             ,l_component_type_code
80482                                                                             ,l_component_appl_id
80483                                                                             ,l_amb_context_code
80484                                                                             ,l_entity_code
80485                                                                             ,l_event_class_code
80486                                                                            )
80487                                     ,p_token_3                 => 'OWNER'
80488                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80489                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80490                                                                           ,p_lookup_code    => l_component_type_code
80491                                                                          )
80492                                     ,p_token_4                 => 'PRODUCT_NAME'
80493                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80494                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80495                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80496                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80497                                     ,p_ae_header_id            =>  NULL
80498                                        );
80499 
80500         IF (C_LEVEL_ERROR>= g_log_level) THEN
80501                  trace
80502                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80503                       ,p_level    => C_LEVEL_ERROR
80504                       ,p_module   => l_log_module);
80505         END IF;
80506       END IF;
80507    END IF;
80508    --
80509    --
80510    ------------------------------------------------------------------------------------------------
80511    -- 4219869 Business Flow
80512    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80513    -- Prior Entry.  Currently, the following code is always generated.
80514    ------------------------------------------------------------------------------------------------
80515    XLA_AE_LINES_PKG.ValidateCurrentLine;
80516 
80517    ------------------------------------------------------------------------------------
80518    -- 4219869 Business Flow
80519    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80523    ----------------------------------------------------------------------------------
80520    ------------------------------------------------------------------------------------
80521    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80522 
80524    -- 4219869 Business Flow
80525    -- Update journal entry status -- Need to generate this within IF <condition>
80526    ----------------------------------------------------------------------------------
80527    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80528          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80529          ,p_balance_type_code => l_balance_type_code
80530          );
80531 
80532    -------------------------------------------------------------------------------------------
80533    -- 4262811 - Generate the Accrual Reversal lines
80534    -------------------------------------------------------------------------------------------
80535    BEGIN
80536       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80537                               (g_array_event(p_event_id).array_value_num('header_index'));
80538       IF l_acc_rev_flag IS NULL THEN
80539          l_acc_rev_flag := 'N';
80540       END IF;
80541    EXCEPTION
80542       WHEN OTHERS THEN
80543          l_acc_rev_flag := 'N';
80544    END;
80545    --
80546    IF (l_acc_rev_flag = 'Y') THEN
80547 
80548        -- 4645092  ------------------------------------------------------------------------------
80549        -- To allow MPA report to determine if it should generate report process
80550        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80551        ------------------------------------------------------------------------------------------
80552 
80553        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80554        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80555    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80556    -- call ADRs
80557    -- Bug 4922099
80558    --
80559    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80560         (NVL(l_actual_upg_option, 'N') = 'O') OR
80561         (NVL(l_enc_upg_option, 'N') = 'O')
80562       )
80563    THEN
80564    NULL;
80565    --
80566    --
80567    
80568   l_ccid := AcctDerRule_35(
80569            p_application_id           => p_application_id
80570          , p_ae_header_id             => l_ae_header_id 
80571 , p_source_25 => p_source_25
80572          , x_transaction_coa_id       => l_adr_transaction_coa_id
80573          , x_accounting_coa_id        => l_adr_accounting_coa_id
80574          , x_value_type_code          => l_adr_value_type_code
80575          , p_side                     => 'NA'
80576    );
80577 
80578    xla_ae_lines_pkg.set_ccid(
80579     p_code_combination_id          => l_ccid
80580   , p_value_type_code              => l_adr_value_type_code
80581   , p_transaction_coa_id           => l_adr_transaction_coa_id
80582   , p_accounting_coa_id            => l_adr_accounting_coa_id
80583   , p_adr_code                     => 'AP_INVOICE_DIST'
80584   , p_adr_type_code                => 'S'
80585   , p_component_type               => l_component_type
80586   , p_component_code               => l_component_code
80587   , p_component_type_code          => l_component_type_code
80588   , p_component_appl_id            => l_component_appl_id
80589   , p_amb_context_code             => l_amb_context_code
80590   , p_side                         => 'NA'
80591   );
80592 
80593 
80594    --
80595    --
80596    END IF;
80597 
80598        --
80599        -- Update the line information that should be overwritten
80600        --
80601        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80602                                          p_header_num   => 1);
80603        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80604 
80605        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80606 
80607        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80608           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80609        END IF;
80610 
80611       --
80612       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80613       --
80614       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80615           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80616       ELSE
80617           ---------------------------------------------------------------------------------------------------
80618           -- 4262811a Switch Sign
80619           ---------------------------------------------------------------------------------------------------
80620           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80621           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80622                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80623           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80624                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80625           -- 5132302
80626           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80630 
80627                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80628 
80629       END IF;
80631       -- 4955764
80632       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80633       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80634 
80635 
80636       XLA_AE_LINES_PKG.ValidateCurrentLine;
80637       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80638 
80639       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80640                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80641                ,p_balance_type_code => l_balance_type_code);
80642 
80643    END IF;
80644 
80645    -----------------------------------------------------------------------------------------
80646    -- 4262811 Multiperiod Accounting
80647    -----------------------------------------------------------------------------------------
80648      -- No MPA option is assigned.
80649 
80650 
80651 END IF;
80652 END IF;
80653 --
80654 
80655 --
80656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80657    trace
80658       (p_msg      => 'END of AcctLineType_152'
80659       ,p_level    => C_LEVEL_PROCEDURE
80660       ,p_module   => l_log_module);
80661 END IF;
80662 --
80663 EXCEPTION
80664   WHEN xla_exceptions_pkg.application_exception THEN
80665       RAISE;
80666   WHEN OTHERS THEN
80667        xla_exceptions_pkg.raise_message
80668            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_152');
80669 END AcctLineType_152;
80670 --
80671 
80672 ---------------------------------------
80673 --
80674 -- PRIVATE FUNCTION
80675 --         AcctLineType_153
80676 --
80677 ---------------------------------------
80678 PROCEDURE AcctLineType_153 (
80679   p_application_id        IN NUMBER
80680  ,p_event_id              IN NUMBER
80681  ,p_calculate_acctd_flag  IN VARCHAR2
80682  ,p_calculate_g_l_flag    IN VARCHAR2
80683  ,p_actual_flag           IN OUT VARCHAR2
80684  ,p_balance_type_code     OUT VARCHAR2
80685  ,p_gain_or_loss_ref      OUT VARCHAR2
80686  
80687 --Invoice Distribution Description
80688  , p_source_1            IN VARCHAR2
80689 --Invoice Distribution Ledger Amount
80690  , p_source_16            IN NUMBER
80691 --Invoice Distribution Account
80692  , p_source_25            IN NUMBER
80693 --Invoice Distribution Type
80694  , p_source_28            IN VARCHAR2
80695  , p_source_28_meaning    IN VARCHAR2
80696 --Accrue on Receipt Option
80697  , p_source_54            IN VARCHAR2
80698  , p_source_54_meaning    IN VARCHAR2
80699 --Accounting Reversal Indicator
80700  , p_source_58            IN VARCHAR2
80701 --Distribution Link Type
80702  , p_source_60            IN VARCHAR2
80703 --Allocation to Main Distribution Identifier
80704  , p_source_62            IN NUMBER
80705 --Invoice Identifier
80706  , p_source_63            IN NUMBER
80707 --Invoice Distribution Identifier
80708  , p_source_69            IN NUMBER
80709 --Payables Encumbrance Upgrade Credit Account
80710  , p_source_70            IN NUMBER
80711 --Payables Encumbrance Upgrade Credit Amount
80712  , p_source_71            IN NUMBER
80713 --Invoice Currency Code
80714  , p_source_72            IN VARCHAR2
80715 --Payables Encumbrance Upgrade Credit Base Amount
80716  , p_source_73            IN NUMBER
80717 --Payables Encumbrance Upgrade Debit Account
80718  , p_source_74            IN NUMBER
80719 --Payables Encumbrance Upgrade Debit Amount
80720  , p_source_75            IN NUMBER
80721 --Payables Encumbrance Upgrade Debit Base Amount
80722  , p_source_76            IN NUMBER
80723 --Payables Encumbrance Upgrade Option
80724  , p_source_77            IN VARCHAR2
80725 --Invoice Distribution Amount
80726  , p_source_78            IN NUMBER
80727 --Deferred Accounting End Date
80728  , p_source_82            IN DATE
80729 --Deferred Accounting Option
80730  , p_source_83            IN VARCHAR2
80731 --Deferred Accounting Start Date
80732  , p_source_84            IN DATE
80733 --Override Accounted Amount Indicator
80734  , p_source_85            IN VARCHAR2
80735  , p_source_85_meaning    IN VARCHAR2
80736 --Invoice Supplier Identifier
80737  , p_source_86            IN NUMBER
80738 --Invoice Supplier Site Identifier
80739  , p_source_87            IN NUMBER
80740 --Third Party Type
80741  , p_source_88            IN VARCHAR2
80742 --Parent Reversal Identifier
80743  , p_source_89            IN NUMBER
80744 --Invoice Distribution Statistical Amount
80745  , p_source_90            IN NUMBER
80746 --Invoice Distribution Tax Line Identifier
80747  , p_source_91            IN NUMBER
80748 --Invoice Distribution Tax Distribution Identifier from Tax
80749  , p_source_92            IN NUMBER
80750 --Invoice Distribution Summary Tax Line Identifier
80751  , p_source_93            IN NUMBER
80752 --Payables Upgrade Credit Encumbrance Type Identifier
80753  , p_source_94            IN NUMBER
80754 --Payables Upgrade Debit Encumbrance Type Identifier
80755  , p_source_95            IN NUMBER
80756 --Business Flow Accounts Payable Application Identifier
80757  , p_source_96            IN NUMBER
80758 --Business Flow Invoice Distribution Type
80759  , p_source_97            IN VARCHAR2
80760 --Business Flow Invoice Entity Code
80761  , p_source_98            IN VARCHAR2
80765  , p_source_100            IN NUMBER
80762 --Business Flow Invoice Distribution Identifier
80763  , p_source_99            IN NUMBER
80764 --Business Flow Invoice Identifier
80766 --Invoice Exchange Date
80767  , p_source_146            IN DATE
80768 --Invoice Exchange Rate
80769  , p_source_147            IN NUMBER
80770 --Invoice Exchange Rate Type
80771  , p_source_148            IN VARCHAR2
80772 )
80773 IS
80774 
80775 l_component_type              VARCHAR2(80);
80776 l_component_code              VARCHAR2(30);
80777 l_component_type_code         VARCHAR2(1);
80778 l_component_appl_id           INTEGER;
80779 l_amb_context_code            VARCHAR2(30);
80780 l_entity_code                 VARCHAR2(30);
80781 l_event_class_code            VARCHAR2(30);
80782 l_ae_header_id                NUMBER;
80783 l_event_type_code             VARCHAR2(30);
80784 l_line_definition_code        VARCHAR2(30);
80785 l_line_definition_owner_code  VARCHAR2(1);
80786 --
80787 -- adr variables
80788 l_segment                     VARCHAR2(30);
80789 l_ccid                        NUMBER;
80790 l_adr_transaction_coa_id      NUMBER;
80791 l_adr_accounting_coa_id       NUMBER;
80792 l_adr_flexfield_segment_code  VARCHAR2(30);
80793 l_adr_flex_value_set_id       NUMBER;
80794 l_adr_value_type_code         VARCHAR2(30);
80795 l_adr_value_combination_id    NUMBER;
80796 l_adr_value_segment_code      VARCHAR2(30);
80797 
80798 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80799 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80800 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80801 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80802 
80803 -- 4262811 Variables ------------------------------------------------------------------------------------------
80804 l_entered_amt_idx             NUMBER;
80805 l_accted_amt_idx              NUMBER;
80806 l_acc_rev_flag                VARCHAR2(1);
80807 l_accrual_line_num            NUMBER;
80808 l_tmp_amt                     NUMBER;
80809 l_acc_rev_natural_side_code   VARCHAR2(1);
80810 
80811 l_num_entries                 NUMBER;
80812 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80813 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80814 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80815 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80816 l_recog_line_1                NUMBER;
80817 l_recog_line_2                NUMBER;
80818 
80819 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80820 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80821 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80822 
80823 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80824 
80825 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80826 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80827 
80828 ---------------------------------------------------------------------------------------------------------------
80829 
80830 
80831 --
80832 -- bulk performance
80833 --
80834 l_balance_type_code           VARCHAR2(1);
80835 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80836 l_log_module                  VARCHAR2(240);
80837 
80838 --
80839 -- Upgrade strategy
80840 --
80841 l_actual_upg_option           VARCHAR2(1);
80842 l_enc_upg_option           VARCHAR2(1);
80843 
80844 --
80845 BEGIN
80846 --
80847 IF g_log_enabled THEN
80848       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
80849 END IF;
80850 --
80851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80852 
80853       trace
80854          (p_msg      => 'BEGIN of AcctLineType_153'
80855          ,p_level    => C_LEVEL_PROCEDURE
80856          ,p_module   => l_log_module);
80857 
80858 END IF;
80859 --
80860 l_component_type             := 'AMB_JLT';
80861 l_component_code             := 'AP_ITEM_EXPENSE_INV';
80862 l_component_type_code        := 'S';
80863 l_component_appl_id          :=  200;
80864 l_amb_context_code           := 'DEFAULT';
80865 l_entity_code                := 'AP_INVOICES';
80866 l_event_class_code           := 'INVOICES';
80867 l_event_type_code            := 'INVOICES_ALL';
80868 l_line_definition_owner_code := 'S';
80869 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
80870 --
80871 l_balance_type_code          := 'A';
80872 l_segment                     := NULL;
80873 l_ccid                        := NULL;
80874 l_adr_transaction_coa_id      := NULL;
80875 l_adr_accounting_coa_id       := NULL;
80876 l_adr_flexfield_segment_code  := NULL;
80877 l_adr_flex_value_set_id       := NULL;
80878 l_adr_value_type_code         := NULL;
80879 l_adr_value_combination_id    := NULL;
80880 l_adr_value_segment_code      := NULL;
80881 
80882 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
80883 l_bflow_class_code           := '';    -- 4219869 Business Flow
80884 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80885 l_budgetary_control_flag     := 'N';
80886 
80887 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80888 l_bflow_applied_to_amt       := NULL; -- 5132302
80889 l_entered_amt_idx            := NULL;          -- 4262811
80890 l_accted_amt_idx             := NULL;          -- 4262811
80891 l_acc_rev_flag               := NULL;          -- 4262811
80895  
80892 l_accrual_line_num           := NULL;          -- 4262811
80893 l_tmp_amt                    := NULL;          -- 4262811
80894 --
80896 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80897     l_balance_type_code <> 'B' THEN
80898 IF NVL(p_source_28,'
80899 ') =  'RETROEXPENSE' OR 
80900 NVL(p_source_28,'
80901 ') =  'ITEM' OR 
80902 (NVL(p_source_28,'
80903 ') =  'ERV' AND 
80904 NVL(p_source_54,'
80905 ') <>  'Y') OR 
80906 (NVL(p_source_28,'
80907 ') =  'IPV' AND 
80908 NVL(p_source_54,'
80909 ') <>  'Y')
80910  THEN 
80911 
80912    --
80913    XLA_AE_LINES_PKG.SetNewLine;
80914 
80915    p_balance_type_code          := l_balance_type_code;
80916    -- set the flag so later we will know whether the gain loss line needs to be created
80917    
80918    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80919      p_actual_flag :='A';
80920    END IF;
80921 
80922    --
80923    -- bulk performance
80924    --
80925    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80926                                       p_header_num   => 0); -- 4262811
80927    --
80928    -- set accounting line options
80929    --
80930    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80931            p_natural_side_code          => 'D'
80932          , p_gain_or_loss_flag          => 'N'
80933          , p_gl_transfer_mode_code      => 'S'
80934          , p_acct_entry_type_code       => 'A'
80935          , p_switch_side_flag           => 'Y'
80936          , p_merge_duplicate_code       => 'A'
80937          );
80938    --
80939    l_acc_rev_natural_side_code := 'C';  -- 4262811
80940    -- 
80941    --
80942    -- set accounting line type info
80943    --
80944    xla_ae_lines_pkg.SetAcctLineType
80945       (p_component_type             => l_component_type
80946       ,p_event_type_code            => l_event_type_code
80947       ,p_line_definition_owner_code => l_line_definition_owner_code
80948       ,p_line_definition_code       => l_line_definition_code
80949       ,p_accounting_line_code       => l_component_code
80950       ,p_accounting_line_type_code  => l_component_type_code
80951       ,p_accounting_line_appl_id    => l_component_appl_id
80952       ,p_amb_context_code           => l_amb_context_code
80953       ,p_entity_code                => l_entity_code
80954       ,p_event_class_code           => l_event_class_code);
80955    --
80956    -- set accounting class
80957    --
80958    xla_ae_lines_pkg.SetAcctClass(
80959            p_accounting_class_code  => 'ITEM EXPENSE'
80960          , p_ae_header_id           => l_ae_header_id
80961          );
80962 
80963    --
80964    -- set rounding class
80965    --
80966    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80967                       'ITEM EXPENSE';
80968 
80969    --
80970    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80971    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80972    --
80973    -- bulk performance
80974    --
80975    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80976 
80977    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80978       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80979 
80980    -- 4955764
80981    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80982       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80983 
80984    -- 4458381 Public Sector Enh
80985    
80986    --
80987    -- set accounting attributes for the line type
80988    --
80989    l_entered_amt_idx := 24;
80990    l_accted_amt_idx  := 29;
80991    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
80992    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80993    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
80994    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80995    l_rec_acct_attrs.array_num_value(2)  := 
80996 xla_ae_sources_pkg.GetSystemSourceNum(
80997    p_source_code           => 'XLA_EVENT_APPL_ID'
80998  , p_source_type_code      => 'Y'
80999  , p_source_application_id =>  602
81000 );
81001    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
81002    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
81003    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
81004    l_rec_acct_attrs.array_char_value(4)  := 
81005 xla_ae_sources_pkg.GetSystemSourceChar(
81006    p_source_code           => 'XLA_ENTITY_CODE'
81007  , p_source_type_code      => 'Y'
81008  , p_source_application_id =>  602
81009 );
81010    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
81011    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
81012    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
81013    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
81014    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
81015    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
81016    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
81017    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
81021    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
81018    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81019    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
81020    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
81022    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
81023    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
81024    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81025    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
81026    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
81027    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
81028    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
81029    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
81030    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
81031    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
81032    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
81033    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
81034    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
81035    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
81036    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
81037    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
81038    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
81039    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
81040    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
81041    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
81042    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
81043    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
81044    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
81045    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
81046    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
81047    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
81048    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
81049    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
81050    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
81051    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
81052    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
81053    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
81054    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
81055    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
81056    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
81057    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
81058    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
81059    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
81060    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
81061    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
81062    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
81063    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
81064    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
81065    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
81066    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
81067    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
81068    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
81069    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
81070    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
81071    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
81072    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
81073    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
81074    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
81075    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
81076    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
81077    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
81078    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
81079    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
81080    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
81081    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
81082    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
81083    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
81084    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
81085    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
81086    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
81087    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
81088    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
81089    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
81090 
81091    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81092    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81093 
81094    ---------------------------------------------------------------------------------------------------------------
81095    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81096    ---------------------------------------------------------------------------------------------------------------
81097    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81098 
81099    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81103          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81100    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81101 
81102    IF xla_accounting_cache_pkg.GetValueChar
81104          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81105    AND l_bflow_method_code = 'PRIOR_ENTRY'
81106 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81107    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81108          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81109        )
81110    THEN
81111          xla_ae_lines_pkg.BflowUpgEntry
81112            (p_business_method_code    => l_bflow_method_code
81113            ,p_business_class_code     => l_bflow_class_code
81114            ,p_balance_type            => l_balance_type_code);
81115    ELSE
81116       NULL;
81117 -- No business flow processing for business flow method of NONE.
81118    END IF;
81119 
81120    --
81121    -- call analytical criteria
81122    --
81123    
81124    --
81125    -- call description
81126    --
81127    
81128 xla_ae_lines_pkg.SetLineDescription(
81129    p_ae_header_id => l_ae_header_id
81130   ,p_description  => Description_2 (
81131      p_application_id         => p_application_id
81132    , p_ae_header_id           => l_ae_header_id 
81133 , p_source_1 => p_source_1
81134    )
81135 );
81136 
81137 
81138    --
81139    -- call ADRs
81140    -- Bug 4922099
81141    --
81142    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81143         (NVL(l_actual_upg_option, 'N') = 'O') OR
81144         (NVL(l_enc_upg_option, 'N') = 'O')
81145       )
81146    THEN
81147    NULL;
81148    --
81149    --
81150    
81151   l_ccid := AcctDerRule_35(
81152            p_application_id           => p_application_id
81153          , p_ae_header_id             => l_ae_header_id 
81154 , p_source_25 => p_source_25
81155          , x_transaction_coa_id       => l_adr_transaction_coa_id
81156          , x_accounting_coa_id        => l_adr_accounting_coa_id
81157          , x_value_type_code          => l_adr_value_type_code
81158          , p_side                     => 'NA'
81159    );
81160 
81161    xla_ae_lines_pkg.set_ccid(
81162     p_code_combination_id          => l_ccid
81163   , p_value_type_code              => l_adr_value_type_code
81164   , p_transaction_coa_id           => l_adr_transaction_coa_id
81165   , p_accounting_coa_id            => l_adr_accounting_coa_id
81166   , p_adr_code                     => 'AP_INVOICE_DIST'
81167   , p_adr_type_code                => 'S'
81168   , p_component_type               => l_component_type
81169   , p_component_code               => l_component_code
81170   , p_component_type_code          => l_component_type_code
81171   , p_component_appl_id            => l_component_appl_id
81172   , p_amb_context_code             => l_amb_context_code
81173   , p_side                         => 'NA'
81174   );
81175 
81176 
81177    --
81178    --
81179    END IF;
81180    --
81181    -- Bug 4922099
81182    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81183           (NVL(l_enc_upg_option, 'N') = 'O')
81184         ) AND
81185         (l_bflow_method_code = 'PRIOR_ENTRY')
81186       )
81187    THEN
81188       IF
81189       --
81190       1 = 2
81191       --
81192       THEN
81193       xla_accounting_err_pkg.build_message
81194                                     (p_appli_s_name            => 'XLA'
81195                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81196                                     ,p_token_1                 => 'LINE_NUMBER'
81197                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81198                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81199                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81200                                                                              l_component_type
81201                                                                             ,l_component_code
81202                                                                             ,l_component_type_code
81203                                                                             ,l_component_appl_id
81204                                                                             ,l_amb_context_code
81205                                                                             ,l_entity_code
81206                                                                             ,l_event_class_code
81207                                                                            )
81208                                     ,p_token_3                 => 'OWNER'
81209                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81210                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81211                                                                           ,p_lookup_code    => l_component_type_code
81212                                                                          )
81213                                     ,p_token_4                 => 'PRODUCT_NAME'
81214                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81218                                     ,p_ae_header_id            =>  NULL
81215                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81216                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81217                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81219                                        );
81220 
81221         IF (C_LEVEL_ERROR>= g_log_level) THEN
81222                  trace
81223                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81224                       ,p_level    => C_LEVEL_ERROR
81225                       ,p_module   => l_log_module);
81226         END IF;
81227       END IF;
81228    END IF;
81229    --
81230    --
81231    ------------------------------------------------------------------------------------------------
81232    -- 4219869 Business Flow
81233    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81234    -- Prior Entry.  Currently, the following code is always generated.
81235    ------------------------------------------------------------------------------------------------
81236    XLA_AE_LINES_PKG.ValidateCurrentLine;
81237 
81238    ------------------------------------------------------------------------------------
81239    -- 4219869 Business Flow
81240    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81241    ------------------------------------------------------------------------------------
81242    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81243 
81244    ----------------------------------------------------------------------------------
81245    -- 4219869 Business Flow
81246    -- Update journal entry status -- Need to generate this within IF <condition>
81247    ----------------------------------------------------------------------------------
81248    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81249          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81250          ,p_balance_type_code => l_balance_type_code
81251          );
81252 
81253    -------------------------------------------------------------------------------------------
81254    -- 4262811 - Generate the Accrual Reversal lines
81255    -------------------------------------------------------------------------------------------
81256    BEGIN
81257       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81258                               (g_array_event(p_event_id).array_value_num('header_index'));
81259       IF l_acc_rev_flag IS NULL THEN
81260          l_acc_rev_flag := 'N';
81261       END IF;
81262    EXCEPTION
81263       WHEN OTHERS THEN
81264          l_acc_rev_flag := 'N';
81265    END;
81266    --
81267    IF (l_acc_rev_flag = 'Y') THEN
81268 
81269        -- 4645092  ------------------------------------------------------------------------------
81270        -- To allow MPA report to determine if it should generate report process
81271        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81272        ------------------------------------------------------------------------------------------
81273 
81274        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81275        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81276    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81277    -- call ADRs
81278    -- Bug 4922099
81279    --
81280    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81281         (NVL(l_actual_upg_option, 'N') = 'O') OR
81282         (NVL(l_enc_upg_option, 'N') = 'O')
81283       )
81284    THEN
81285    NULL;
81286    --
81287    --
81288    
81289   l_ccid := AcctDerRule_35(
81290            p_application_id           => p_application_id
81291          , p_ae_header_id             => l_ae_header_id 
81292 , p_source_25 => p_source_25
81293          , x_transaction_coa_id       => l_adr_transaction_coa_id
81294          , x_accounting_coa_id        => l_adr_accounting_coa_id
81295          , x_value_type_code          => l_adr_value_type_code
81296          , p_side                     => 'NA'
81297    );
81298 
81299    xla_ae_lines_pkg.set_ccid(
81300     p_code_combination_id          => l_ccid
81301   , p_value_type_code              => l_adr_value_type_code
81302   , p_transaction_coa_id           => l_adr_transaction_coa_id
81303   , p_accounting_coa_id            => l_adr_accounting_coa_id
81304   , p_adr_code                     => 'AP_INVOICE_DIST'
81305   , p_adr_type_code                => 'S'
81306   , p_component_type               => l_component_type
81307   , p_component_code               => l_component_code
81308   , p_component_type_code          => l_component_type_code
81309   , p_component_appl_id            => l_component_appl_id
81310   , p_amb_context_code             => l_amb_context_code
81311   , p_side                         => 'NA'
81312   );
81313 
81314 
81315    --
81316    --
81317    END IF;
81318 
81319        --
81320        -- Update the line information that should be overwritten
81321        --
81322        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81323                                          p_header_num   => 1);
81324        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81325 
81329           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81326        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81327 
81328        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81330        END IF;
81331 
81332       --
81333       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81334       --
81335       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81336           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81337       ELSE
81338           ---------------------------------------------------------------------------------------------------
81339           -- 4262811a Switch Sign
81340           ---------------------------------------------------------------------------------------------------
81341           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81342           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81343                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81344           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81345                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81346           -- 5132302
81347           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81348                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81349 
81350       END IF;
81351 
81352       -- 4955764
81353       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81354       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81355 
81356 
81357       XLA_AE_LINES_PKG.ValidateCurrentLine;
81358       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81359 
81360       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81361                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81362                ,p_balance_type_code => l_balance_type_code);
81363 
81364    END IF;
81365 
81366    -----------------------------------------------------------------------------------------
81367    -- 4262811 Multiperiod Accounting
81368    -----------------------------------------------------------------------------------------
81369      -- No MPA option is assigned.
81370 
81371 
81372 END IF;
81373 END IF;
81374 --
81375 
81376 --
81377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81378    trace
81379       (p_msg      => 'END of AcctLineType_153'
81380       ,p_level    => C_LEVEL_PROCEDURE
81381       ,p_module   => l_log_module);
81382 END IF;
81383 --
81384 EXCEPTION
81385   WHEN xla_exceptions_pkg.application_exception THEN
81386       RAISE;
81387   WHEN OTHERS THEN
81388        xla_exceptions_pkg.raise_message
81389            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_153');
81390 END AcctLineType_153;
81391 --
81392 
81393 ---------------------------------------
81394 --
81395 -- PRIVATE FUNCTION
81396 --         AcctLineType_154
81397 --
81398 ---------------------------------------
81399 PROCEDURE AcctLineType_154 (
81400   p_application_id        IN NUMBER
81401  ,p_event_id              IN NUMBER
81402  ,p_calculate_acctd_flag  IN VARCHAR2
81403  ,p_calculate_g_l_flag    IN VARCHAR2
81404  ,p_actual_flag           IN OUT VARCHAR2
81405  ,p_balance_type_code     OUT VARCHAR2
81406  ,p_gain_or_loss_ref      OUT VARCHAR2
81407  
81408 --Payment Currency Code
81409  , p_source_8            IN VARCHAR2
81410 --Invoice Type Paid
81411  , p_source_56            IN VARCHAR2
81412  , p_source_56_meaning    IN VARCHAR2
81413 --When to Account for Payment Option
81414  , p_source_57            IN VARCHAR2
81415 --Accounting Reversal Indicator
81416  , p_source_58            IN VARCHAR2
81417 --Distribution Link Type
81418  , p_source_60            IN VARCHAR2
81419 --Override Accounted Amount Indicator
81420  , p_source_85            IN VARCHAR2
81421  , p_source_85_meaning    IN VARCHAR2
81422 --Third Party Type
81423  , p_source_88            IN VARCHAR2
81424 --Invoice Distribution Tax Line Identifier
81425  , p_source_91            IN NUMBER
81426 --Invoice Distribution Summary Tax Line Identifier
81427  , p_source_93            IN NUMBER
81428 --Business Flow Accounts Payable Application Identifier
81429  , p_source_96            IN NUMBER
81430 --Business Flow Invoice Distribution Type
81431  , p_source_97            IN VARCHAR2
81432 --Business Flow Invoice Entity Code
81433  , p_source_98            IN VARCHAR2
81434 --Business Flow Invoice Distribution Identifier
81435  , p_source_99            IN NUMBER
81436 --Business Flow Invoice Identifier
81437  , p_source_100            IN NUMBER
81438 --Payment Distribution Type
81439  , p_source_101            IN VARCHAR2
81440  , p_source_101_meaning    IN VARCHAR2
81441 --Payment Distribution Amount
81442  , p_source_102            IN NUMBER
81443 --Payment Distribution Identifier
81444  , p_source_107            IN NUMBER
81445 --Payment Distribution Reversed Identifier
81446  , p_source_115            IN NUMBER
81447 --Payment Distribution (Invoice Rate) Ledger Amount
81451  , p_source_125_meaning    IN VARCHAR2
81448  , p_source_119            IN NUMBER
81449 --Payment Type
81450  , p_source_125            IN VARCHAR2
81452 --Withholding at Payment Indicator
81453  , p_source_166            IN VARCHAR2
81454  , p_source_166_meaning    IN VARCHAR2
81455 )
81456 IS
81457 
81458 l_component_type              VARCHAR2(80);
81459 l_component_code              VARCHAR2(30);
81460 l_component_type_code         VARCHAR2(1);
81461 l_component_appl_id           INTEGER;
81462 l_amb_context_code            VARCHAR2(30);
81463 l_entity_code                 VARCHAR2(30);
81464 l_event_class_code            VARCHAR2(30);
81465 l_ae_header_id                NUMBER;
81466 l_event_type_code             VARCHAR2(30);
81467 l_line_definition_code        VARCHAR2(30);
81468 l_line_definition_owner_code  VARCHAR2(1);
81469 --
81470 -- adr variables
81471 l_segment                     VARCHAR2(30);
81472 l_ccid                        NUMBER;
81473 l_adr_transaction_coa_id      NUMBER;
81474 l_adr_accounting_coa_id       NUMBER;
81475 l_adr_flexfield_segment_code  VARCHAR2(30);
81476 l_adr_flex_value_set_id       NUMBER;
81477 l_adr_value_type_code         VARCHAR2(30);
81478 l_adr_value_combination_id    NUMBER;
81479 l_adr_value_segment_code      VARCHAR2(30);
81480 
81481 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81482 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81483 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81484 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81485 
81486 -- 4262811 Variables ------------------------------------------------------------------------------------------
81487 l_entered_amt_idx             NUMBER;
81488 l_accted_amt_idx              NUMBER;
81489 l_acc_rev_flag                VARCHAR2(1);
81490 l_accrual_line_num            NUMBER;
81491 l_tmp_amt                     NUMBER;
81492 l_acc_rev_natural_side_code   VARCHAR2(1);
81493 
81494 l_num_entries                 NUMBER;
81495 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81496 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81497 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81498 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81499 l_recog_line_1                NUMBER;
81500 l_recog_line_2                NUMBER;
81501 
81502 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81503 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81504 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81505 
81506 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81507 
81508 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81509 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81510 
81511 ---------------------------------------------------------------------------------------------------------------
81512 
81513 
81514 --
81515 -- bulk performance
81516 --
81517 l_balance_type_code           VARCHAR2(1);
81518 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81519 l_log_module                  VARCHAR2(240);
81520 
81521 --
81522 -- Upgrade strategy
81523 --
81524 l_actual_upg_option           VARCHAR2(1);
81525 l_enc_upg_option           VARCHAR2(1);
81526 
81527 --
81528 BEGIN
81529 --
81530 IF g_log_enabled THEN
81531       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
81532 END IF;
81533 --
81534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81535 
81536       trace
81537          (p_msg      => 'BEGIN of AcctLineType_154'
81538          ,p_level    => C_LEVEL_PROCEDURE
81539          ,p_module   => l_log_module);
81540 
81541 END IF;
81542 --
81543 l_component_type             := 'AMB_JLT';
81544 l_component_code             := 'AP_LIAB_AWT_CLEAR';
81545 l_component_type_code        := 'S';
81546 l_component_appl_id          :=  200;
81547 l_amb_context_code           := 'DEFAULT';
81548 l_entity_code                := 'AP_PAYMENTS';
81549 l_event_class_code           := 'RECONCILED PAYMENTS';
81550 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
81551 l_line_definition_owner_code := 'S';
81552 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
81553 --
81554 l_balance_type_code          := 'A';
81555 l_segment                     := NULL;
81556 l_ccid                        := NULL;
81557 l_adr_transaction_coa_id      := NULL;
81558 l_adr_accounting_coa_id       := NULL;
81559 l_adr_flexfield_segment_code  := NULL;
81560 l_adr_flex_value_set_id       := NULL;
81561 l_adr_value_type_code         := NULL;
81562 l_adr_value_combination_id    := NULL;
81563 l_adr_value_segment_code      := NULL;
81564 
81565 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
81566 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
81567 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81568 l_budgetary_control_flag     := 'N';
81569 
81570 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81571 l_bflow_applied_to_amt       := NULL; -- 5132302
81572 l_entered_amt_idx            := NULL;          -- 4262811
81573 l_accted_amt_idx             := NULL;          -- 4262811
81574 l_acc_rev_flag               := NULL;          -- 4262811
81575 l_accrual_line_num           := NULL;          -- 4262811
81579 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81576 l_tmp_amt                    := NULL;          -- 4262811
81577 --
81578  
81580     l_balance_type_code <> 'B' THEN
81581 IF NVL(p_source_57,'
81582 ') =  'CLEAR_CLEAR' AND 
81583 NVL(p_source_56,'
81584 ') <>  'INTEREST' AND 
81585 NVL(p_source_101,'
81586 ') =  'AWT' AND 
81587 NVL(p_source_166,'
81588 ') =  'Y' AND 
81589 NVL(p_source_125,'
81590 ') <>  'R'
81591  THEN 
81592 
81593    --
81594    XLA_AE_LINES_PKG.SetNewLine;
81595 
81596    p_balance_type_code          := l_balance_type_code;
81597    -- set the flag so later we will know whether the gain loss line needs to be created
81598    
81599    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81600      p_actual_flag :='A';
81601    END IF;
81602 
81603    --
81604    -- bulk performance
81605    --
81606    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81607                                       p_header_num   => 0); -- 4262811
81608    --
81609    -- set accounting line options
81610    --
81611    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81612            p_natural_side_code          => 'D'
81613          , p_gain_or_loss_flag          => 'N'
81614          , p_gl_transfer_mode_code      => 'S'
81615          , p_acct_entry_type_code       => 'A'
81616          , p_switch_side_flag           => 'Y'
81617          , p_merge_duplicate_code       => 'A'
81618          );
81619    --
81620    l_acc_rev_natural_side_code := 'C';  -- 4262811
81621    -- 
81622    --
81623    -- set accounting line type info
81624    --
81625    xla_ae_lines_pkg.SetAcctLineType
81626       (p_component_type             => l_component_type
81627       ,p_event_type_code            => l_event_type_code
81628       ,p_line_definition_owner_code => l_line_definition_owner_code
81629       ,p_line_definition_code       => l_line_definition_code
81630       ,p_accounting_line_code       => l_component_code
81631       ,p_accounting_line_type_code  => l_component_type_code
81632       ,p_accounting_line_appl_id    => l_component_appl_id
81633       ,p_amb_context_code           => l_amb_context_code
81634       ,p_entity_code                => l_entity_code
81635       ,p_event_class_code           => l_event_class_code);
81636    --
81637    -- set accounting class
81638    --
81639    xla_ae_lines_pkg.SetAcctClass(
81640            p_accounting_class_code  => 'LIABILITY'
81641          , p_ae_header_id           => l_ae_header_id
81642          );
81643 
81644    --
81645    -- set rounding class
81646    --
81647    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81648                       'LIABILITY';
81649 
81650    --
81651    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81652    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81653    --
81654    -- bulk performance
81655    --
81656    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81657 
81658    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81659       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81660 
81661    -- 4955764
81662    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81663       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81664 
81665    -- 4458381 Public Sector Enh
81666    
81667    --
81668    -- set accounting attributes for the line type
81669    --
81670    l_entered_amt_idx := 10;
81671    l_accted_amt_idx  := 12;
81672    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
81673    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81674    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
81675    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
81676    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
81677    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
81678    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
81679    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81680    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
81681    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
81682    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
81683    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
81684    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
81685    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81686    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
81687    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
81688    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
81689    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
81690    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
81691    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
81692    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
81693    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
81694    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
81695    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
81699    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
81696    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
81697    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
81698    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
81700    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
81701    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
81702    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
81703    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
81704    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
81705    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
81706    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
81707    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
81708    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
81709    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
81710    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
81711 
81712    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81713    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81714 
81715    ---------------------------------------------------------------------------------------------------------------
81716    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81717    ---------------------------------------------------------------------------------------------------------------
81718    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81719 
81720    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81721    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81722 
81723    IF xla_accounting_cache_pkg.GetValueChar
81724          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81725          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81726    AND l_bflow_method_code = 'PRIOR_ENTRY'
81727 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81728    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81729          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81730        )
81731    THEN
81732          xla_ae_lines_pkg.BflowUpgEntry
81733            (p_business_method_code    => l_bflow_method_code
81734            ,p_business_class_code     => l_bflow_class_code
81735            ,p_balance_type            => l_balance_type_code);
81736    ELSE
81737       NULL;
81738 XLA_AE_LINES_PKG.business_flow_validation(
81739                                 p_business_method_code     => l_bflow_method_code
81740                                ,p_business_class_code      => l_bflow_class_code
81741                                ,p_inherit_description_flag => l_inherit_desc_flag);
81742    END IF;
81743 
81744    --
81745    -- call analytical criteria
81746    --
81747    -- Inherited Analytical Criteria for business flow method of Prior Entry.
81748    --
81749    -- call description
81750    --
81751    -- No description or it is inherited.
81752    --
81753    -- call ADRs
81754    -- Bug 4922099
81755    --
81756    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81757         (NVL(l_actual_upg_option, 'N') = 'O') OR
81758         (NVL(l_enc_upg_option, 'N') = 'O')
81759       )
81760    THEN
81761    NULL;
81762    --
81763    --
81764    
81765    --
81766    --
81767    END IF;
81768    --
81769    -- Bug 4922099
81770    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81771           (NVL(l_enc_upg_option, 'N') = 'O')
81772         ) AND
81773         (l_bflow_method_code = 'PRIOR_ENTRY')
81774       )
81775    THEN
81776       IF
81777       --
81778       1 = 1
81779       --
81780       THEN
81781       xla_accounting_err_pkg.build_message
81782                                     (p_appli_s_name            => 'XLA'
81783                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81784                                     ,p_token_1                 => 'LINE_NUMBER'
81785                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81786                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81787                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81788                                                                              l_component_type
81789                                                                             ,l_component_code
81790                                                                             ,l_component_type_code
81791                                                                             ,l_component_appl_id
81792                                                                             ,l_amb_context_code
81793                                                                             ,l_entity_code
81794                                                                             ,l_event_class_code
81795                                                                            )
81796                                     ,p_token_3                 => 'OWNER'
81797                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81798                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81802                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81799                                                                           ,p_lookup_code    => l_component_type_code
81800                                                                          )
81801                                     ,p_token_4                 => 'PRODUCT_NAME'
81803                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81804                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81805                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81806                                     ,p_ae_header_id            =>  NULL
81807                                        );
81808 
81809         IF (C_LEVEL_ERROR>= g_log_level) THEN
81810                  trace
81811                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81812                       ,p_level    => C_LEVEL_ERROR
81813                       ,p_module   => l_log_module);
81814         END IF;
81815       END IF;
81816    END IF;
81817    --
81818    --
81819    ------------------------------------------------------------------------------------------------
81820    -- 4219869 Business Flow
81821    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81822    -- Prior Entry.  Currently, the following code is always generated.
81823    ------------------------------------------------------------------------------------------------
81824    -- No ValidateCurrentLine for business flow method of Prior Entry
81825 
81826    ------------------------------------------------------------------------------------
81827    -- 4219869 Business Flow
81828    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81829    ------------------------------------------------------------------------------------
81830    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81831 
81832    ----------------------------------------------------------------------------------
81833    -- 4219869 Business Flow
81834    -- Update journal entry status -- Need to generate this within IF <condition>
81835    ----------------------------------------------------------------------------------
81836    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81837          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81838          ,p_balance_type_code => l_balance_type_code
81839          );
81840 
81841    -------------------------------------------------------------------------------------------
81842    -- 4262811 - Generate the Accrual Reversal lines
81843    -------------------------------------------------------------------------------------------
81844    BEGIN
81845       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81846                               (g_array_event(p_event_id).array_value_num('header_index'));
81847       IF l_acc_rev_flag IS NULL THEN
81848          l_acc_rev_flag := 'N';
81849       END IF;
81850    EXCEPTION
81851       WHEN OTHERS THEN
81852          l_acc_rev_flag := 'N';
81853    END;
81854    --
81855    IF (l_acc_rev_flag = 'Y') THEN
81856 
81857        -- 4645092  ------------------------------------------------------------------------------
81858        -- To allow MPA report to determine if it should generate report process
81859        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81860        ------------------------------------------------------------------------------------------
81861 
81862        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81863        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81864    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81865    -- call ADRs
81866    -- Bug 4922099
81867    --
81868    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81869         (NVL(l_actual_upg_option, 'N') = 'O') OR
81870         (NVL(l_enc_upg_option, 'N') = 'O')
81871       )
81872    THEN
81873    NULL;
81874    --
81875    --
81876    
81877    --
81878    --
81879    END IF;
81880 
81881        --
81882        -- Update the line information that should be overwritten
81883        --
81884        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81885                                          p_header_num   => 1);
81886        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81887 
81888        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81889 
81890        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81891           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81892        END IF;
81893 
81894       --
81895       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81896       --
81897       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81898           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81899       ELSE
81900           ---------------------------------------------------------------------------------------------------
81901           -- 4262811a Switch Sign
81905                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81902           ---------------------------------------------------------------------------------------------------
81903           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81904           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81906           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81907                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81908           -- 5132302
81909           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81910                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81911 
81912       END IF;
81913 
81914       -- 4955764
81915       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81916       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81917 
81918 
81919       XLA_AE_LINES_PKG.ValidateCurrentLine;
81920       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81921 
81922       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81923                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81924                ,p_balance_type_code => l_balance_type_code);
81925 
81926    END IF;
81927 
81928    -----------------------------------------------------------------------------------------
81929    -- 4262811 Multiperiod Accounting
81930    -----------------------------------------------------------------------------------------
81931      -- No MPA option is assigned.
81932 
81933 
81934 END IF;
81935 END IF;
81936 --
81937 
81938 --
81939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81940    trace
81941       (p_msg      => 'END of AcctLineType_154'
81942       ,p_level    => C_LEVEL_PROCEDURE
81943       ,p_module   => l_log_module);
81944 END IF;
81945 --
81946 EXCEPTION
81947   WHEN xla_exceptions_pkg.application_exception THEN
81948       RAISE;
81949   WHEN OTHERS THEN
81950        xla_exceptions_pkg.raise_message
81951            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_154');
81952 END AcctLineType_154;
81953 --
81954 
81955 ---------------------------------------
81956 --
81957 -- PRIVATE FUNCTION
81958 --         AcctLineType_155
81959 --
81960 ---------------------------------------
81961 PROCEDURE AcctLineType_155 (
81962   p_application_id        IN NUMBER
81963  ,p_event_id              IN NUMBER
81964  ,p_calculate_acctd_flag  IN VARCHAR2
81965  ,p_calculate_g_l_flag    IN VARCHAR2
81966  ,p_actual_flag           IN OUT VARCHAR2
81967  ,p_balance_type_code     OUT VARCHAR2
81968  ,p_gain_or_loss_ref      OUT VARCHAR2
81969  
81970 --Payment Currency Code
81971  , p_source_8            IN VARCHAR2
81972 --Invoice Type Paid
81973  , p_source_56            IN VARCHAR2
81974  , p_source_56_meaning    IN VARCHAR2
81975 --When to Account for Payment Option
81976  , p_source_57            IN VARCHAR2
81977 --Accounting Reversal Indicator
81978  , p_source_58            IN VARCHAR2
81979 --Distribution Link Type
81980  , p_source_60            IN VARCHAR2
81981 --Override Accounted Amount Indicator
81982  , p_source_85            IN VARCHAR2
81983  , p_source_85_meaning    IN VARCHAR2
81984 --Third Party Type
81985  , p_source_88            IN VARCHAR2
81986 --Invoice Distribution Tax Line Identifier
81987  , p_source_91            IN NUMBER
81988 --Invoice Distribution Tax Distribution Identifier from Tax
81989  , p_source_92            IN NUMBER
81990 --Invoice Distribution Summary Tax Line Identifier
81991  , p_source_93            IN NUMBER
81992 --Business Flow Accounts Payable Application Identifier
81993  , p_source_96            IN NUMBER
81994 --Business Flow Invoice Distribution Type
81995  , p_source_97            IN VARCHAR2
81996 --Business Flow Invoice Entity Code
81997  , p_source_98            IN VARCHAR2
81998 --Business Flow Invoice Distribution Identifier
81999  , p_source_99            IN NUMBER
82000 --Business Flow Invoice Identifier
82001  , p_source_100            IN NUMBER
82002 --Payment Distribution Type
82003  , p_source_101            IN VARCHAR2
82004  , p_source_101_meaning    IN VARCHAR2
82005 --Payment Distribution Amount
82006  , p_source_102            IN NUMBER
82007 --Payment Distribution Identifier
82008  , p_source_107            IN NUMBER
82009 --Payment Distribution Reversed Identifier
82010  , p_source_115            IN NUMBER
82011 --Payment Distribution (Invoice Rate) Ledger Amount
82012  , p_source_119            IN NUMBER
82013 --Payment Type
82014  , p_source_125            IN VARCHAR2
82015  , p_source_125_meaning    IN VARCHAR2
82016 --Payment Processing Type
82017  , p_source_126            IN VARCHAR2
82018 --Invoice Distribution Amount of the Payment Distribution
82019  , p_source_127            IN NUMBER
82020 --Withholding at Payment Indicator
82021  , p_source_166            IN VARCHAR2
82022  , p_source_166_meaning    IN VARCHAR2
82023 )
82024 IS
82025 
82026 l_component_type              VARCHAR2(80);
82027 l_component_code              VARCHAR2(30);
82028 l_component_type_code         VARCHAR2(1);
82029 l_component_appl_id           INTEGER;
82033 l_ae_header_id                NUMBER;
82030 l_amb_context_code            VARCHAR2(30);
82031 l_entity_code                 VARCHAR2(30);
82032 l_event_class_code            VARCHAR2(30);
82034 l_event_type_code             VARCHAR2(30);
82035 l_line_definition_code        VARCHAR2(30);
82036 l_line_definition_owner_code  VARCHAR2(1);
82037 --
82038 -- adr variables
82039 l_segment                     VARCHAR2(30);
82040 l_ccid                        NUMBER;
82041 l_adr_transaction_coa_id      NUMBER;
82042 l_adr_accounting_coa_id       NUMBER;
82043 l_adr_flexfield_segment_code  VARCHAR2(30);
82044 l_adr_flex_value_set_id       NUMBER;
82045 l_adr_value_type_code         VARCHAR2(30);
82046 l_adr_value_combination_id    NUMBER;
82047 l_adr_value_segment_code      VARCHAR2(30);
82048 
82049 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82050 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82051 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82052 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82053 
82054 -- 4262811 Variables ------------------------------------------------------------------------------------------
82055 l_entered_amt_idx             NUMBER;
82056 l_accted_amt_idx              NUMBER;
82057 l_acc_rev_flag                VARCHAR2(1);
82058 l_accrual_line_num            NUMBER;
82059 l_tmp_amt                     NUMBER;
82060 l_acc_rev_natural_side_code   VARCHAR2(1);
82061 
82062 l_num_entries                 NUMBER;
82063 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82064 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82065 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82066 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82067 l_recog_line_1                NUMBER;
82068 l_recog_line_2                NUMBER;
82069 
82070 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82071 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82072 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82073 
82074 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82075 
82076 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82077 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82078 
82079 ---------------------------------------------------------------------------------------------------------------
82080 
82081 
82082 --
82083 -- bulk performance
82084 --
82085 l_balance_type_code           VARCHAR2(1);
82086 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82087 l_log_module                  VARCHAR2(240);
82088 
82089 --
82090 -- Upgrade strategy
82091 --
82092 l_actual_upg_option           VARCHAR2(1);
82093 l_enc_upg_option           VARCHAR2(1);
82094 
82095 --
82096 BEGIN
82097 --
82098 IF g_log_enabled THEN
82099       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
82100 END IF;
82101 --
82102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82103 
82104       trace
82105          (p_msg      => 'BEGIN of AcctLineType_155'
82106          ,p_level    => C_LEVEL_PROCEDURE
82107          ,p_module   => l_log_module);
82108 
82109 END IF;
82110 --
82111 l_component_type             := 'AMB_JLT';
82112 l_component_code             := 'AP_LIAB_AWT_PMT';
82113 l_component_type_code        := 'S';
82114 l_component_appl_id          :=  200;
82115 l_amb_context_code           := 'DEFAULT';
82116 l_entity_code                := 'AP_PAYMENTS';
82117 l_event_class_code           := 'PAYMENTS';
82118 l_event_type_code            := 'PAYMENTS_ALL';
82119 l_line_definition_owner_code := 'S';
82120 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
82121 --
82122 l_balance_type_code          := 'A';
82123 l_segment                     := NULL;
82124 l_ccid                        := NULL;
82125 l_adr_transaction_coa_id      := NULL;
82126 l_adr_accounting_coa_id       := NULL;
82127 l_adr_flexfield_segment_code  := NULL;
82128 l_adr_flex_value_set_id       := NULL;
82129 l_adr_value_type_code         := NULL;
82130 l_adr_value_combination_id    := NULL;
82131 l_adr_value_segment_code      := NULL;
82132 
82133 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
82134 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
82135 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82136 l_budgetary_control_flag     := 'N';
82137 
82138 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82139 l_bflow_applied_to_amt       := NULL; -- 5132302
82140 l_entered_amt_idx            := NULL;          -- 4262811
82141 l_accted_amt_idx             := NULL;          -- 4262811
82142 l_acc_rev_flag               := NULL;          -- 4262811
82143 l_accrual_line_num           := NULL;          -- 4262811
82144 l_tmp_amt                    := NULL;          -- 4262811
82145 --
82146  
82147 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82148     l_balance_type_code <> 'B' THEN
82149 IF NVL(p_source_57,'
82150 ') <>  'CLEAR_CLEAR' AND 
82151 NVL(p_source_56,'
82152 ') <>  'INTEREST' AND 
82153 NVL(p_source_101,'
82154 ') =  'AWT' AND 
82155 NVL(p_source_166,'
82156 ') =  'Y' AND 
82157 NVL(p_source_125,'
82161  THEN 
82158 ') <>  'R' AND 
82159 NVL(p_source_126,'
82160 ') <>  'PAYMENTCARD'
82162 
82163    --
82164    XLA_AE_LINES_PKG.SetNewLine;
82165 
82166    p_balance_type_code          := l_balance_type_code;
82167    -- set the flag so later we will know whether the gain loss line needs to be created
82168    
82169    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82170      p_actual_flag :='A';
82171    END IF;
82172 
82173    --
82174    -- bulk performance
82175    --
82176    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82177                                       p_header_num   => 0); -- 4262811
82178    --
82179    -- set accounting line options
82180    --
82181    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82182            p_natural_side_code          => 'D'
82183          , p_gain_or_loss_flag          => 'N'
82184          , p_gl_transfer_mode_code      => 'S'
82185          , p_acct_entry_type_code       => 'A'
82186          , p_switch_side_flag           => 'Y'
82187          , p_merge_duplicate_code       => 'A'
82188          );
82189    --
82190    l_acc_rev_natural_side_code := 'C';  -- 4262811
82191    -- 
82192    --
82193    -- set accounting line type info
82194    --
82195    xla_ae_lines_pkg.SetAcctLineType
82196       (p_component_type             => l_component_type
82197       ,p_event_type_code            => l_event_type_code
82198       ,p_line_definition_owner_code => l_line_definition_owner_code
82199       ,p_line_definition_code       => l_line_definition_code
82200       ,p_accounting_line_code       => l_component_code
82201       ,p_accounting_line_type_code  => l_component_type_code
82202       ,p_accounting_line_appl_id    => l_component_appl_id
82203       ,p_amb_context_code           => l_amb_context_code
82204       ,p_entity_code                => l_entity_code
82205       ,p_event_class_code           => l_event_class_code);
82206    --
82207    -- set accounting class
82208    --
82209    xla_ae_lines_pkg.SetAcctClass(
82210            p_accounting_class_code  => 'LIABILITY'
82211          , p_ae_header_id           => l_ae_header_id
82212          );
82213 
82214    --
82215    -- set rounding class
82216    --
82217    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82218                       'LIABILITY';
82219 
82220    --
82221    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82222    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82223    --
82224    -- bulk performance
82225    --
82226    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82227 
82228    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82229       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82230 
82231    -- 4955764
82232    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82233       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82234 
82235    -- 4458381 Public Sector Enh
82236    
82237    --
82238    -- set accounting attributes for the line type
82239    --
82240    l_entered_amt_idx := 10;
82241    l_accted_amt_idx  := 12;
82242    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82243    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82244    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
82245    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82246    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
82247    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82248    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
82249    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82250    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
82251    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82252    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
82253    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82254    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
82255    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82256    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
82257    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82258    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
82259    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82260    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
82261    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82262    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
82263    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82264    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
82265    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
82266    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
82267    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
82268    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
82269    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
82270    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
82271    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
82272    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
82273    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
82277    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
82274    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
82275    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
82276    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
82278    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
82279    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
82280    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
82281 
82282    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82283    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82284 
82285    ---------------------------------------------------------------------------------------------------------------
82286    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82287    ---------------------------------------------------------------------------------------------------------------
82288    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82289 
82290    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82291    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82292 
82293    IF xla_accounting_cache_pkg.GetValueChar
82294          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82295          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82296    AND l_bflow_method_code = 'PRIOR_ENTRY'
82297 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82298    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82299          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82300        )
82301    THEN
82302          xla_ae_lines_pkg.BflowUpgEntry
82303            (p_business_method_code    => l_bflow_method_code
82304            ,p_business_class_code     => l_bflow_class_code
82305            ,p_balance_type            => l_balance_type_code);
82306    ELSE
82307       NULL;
82308 XLA_AE_LINES_PKG.business_flow_validation(
82309                                 p_business_method_code     => l_bflow_method_code
82310                                ,p_business_class_code      => l_bflow_class_code
82311                                ,p_inherit_description_flag => l_inherit_desc_flag);
82312    END IF;
82313 
82314    --
82315    -- call analytical criteria
82316    --
82317    -- Inherited Analytical Criteria for business flow method of Prior Entry.
82318    --
82319    -- call description
82320    --
82321    -- No description or it is inherited.
82322    --
82323    -- call ADRs
82324    -- Bug 4922099
82325    --
82326    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82327         (NVL(l_actual_upg_option, 'N') = 'O') OR
82328         (NVL(l_enc_upg_option, 'N') = 'O')
82329       )
82330    THEN
82331    NULL;
82332    --
82333    --
82334    
82335    --
82336    --
82337    END IF;
82338    --
82339    -- Bug 4922099
82340    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82341           (NVL(l_enc_upg_option, 'N') = 'O')
82342         ) AND
82343         (l_bflow_method_code = 'PRIOR_ENTRY')
82344       )
82345    THEN
82346       IF
82347       --
82348       1 = 1
82349       --
82350       THEN
82351       xla_accounting_err_pkg.build_message
82352                                     (p_appli_s_name            => 'XLA'
82353                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82354                                     ,p_token_1                 => 'LINE_NUMBER'
82355                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82356                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82357                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82358                                                                              l_component_type
82359                                                                             ,l_component_code
82360                                                                             ,l_component_type_code
82361                                                                             ,l_component_appl_id
82362                                                                             ,l_amb_context_code
82363                                                                             ,l_entity_code
82364                                                                             ,l_event_class_code
82365                                                                            )
82366                                     ,p_token_3                 => 'OWNER'
82367                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82368                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82369                                                                           ,p_lookup_code    => l_component_type_code
82370                                                                          )
82371                                     ,p_token_4                 => 'PRODUCT_NAME'
82372                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82373                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82377                                        );
82374                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82375                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82376                                     ,p_ae_header_id            =>  NULL
82378 
82379         IF (C_LEVEL_ERROR>= g_log_level) THEN
82380                  trace
82381                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82382                       ,p_level    => C_LEVEL_ERROR
82383                       ,p_module   => l_log_module);
82384         END IF;
82385       END IF;
82386    END IF;
82387    --
82388    --
82389    ------------------------------------------------------------------------------------------------
82390    -- 4219869 Business Flow
82391    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82392    -- Prior Entry.  Currently, the following code is always generated.
82393    ------------------------------------------------------------------------------------------------
82394    -- No ValidateCurrentLine for business flow method of Prior Entry
82395 
82396    ------------------------------------------------------------------------------------
82397    -- 4219869 Business Flow
82398    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82399    ------------------------------------------------------------------------------------
82400    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82401 
82402    ----------------------------------------------------------------------------------
82403    -- 4219869 Business Flow
82404    -- Update journal entry status -- Need to generate this within IF <condition>
82405    ----------------------------------------------------------------------------------
82406    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82407          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82408          ,p_balance_type_code => l_balance_type_code
82409          );
82410 
82411    -------------------------------------------------------------------------------------------
82412    -- 4262811 - Generate the Accrual Reversal lines
82413    -------------------------------------------------------------------------------------------
82414    BEGIN
82415       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82416                               (g_array_event(p_event_id).array_value_num('header_index'));
82417       IF l_acc_rev_flag IS NULL THEN
82418          l_acc_rev_flag := 'N';
82419       END IF;
82420    EXCEPTION
82421       WHEN OTHERS THEN
82422          l_acc_rev_flag := 'N';
82423    END;
82424    --
82425    IF (l_acc_rev_flag = 'Y') THEN
82426 
82427        -- 4645092  ------------------------------------------------------------------------------
82428        -- To allow MPA report to determine if it should generate report process
82429        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82430        ------------------------------------------------------------------------------------------
82431 
82432        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82433        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82434    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82435    -- call ADRs
82436    -- Bug 4922099
82437    --
82438    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82439         (NVL(l_actual_upg_option, 'N') = 'O') OR
82440         (NVL(l_enc_upg_option, 'N') = 'O')
82441       )
82442    THEN
82443    NULL;
82444    --
82445    --
82446    
82447    --
82448    --
82449    END IF;
82450 
82451        --
82452        -- Update the line information that should be overwritten
82453        --
82454        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82455                                          p_header_num   => 1);
82456        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82457 
82458        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82459 
82460        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82461           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82462        END IF;
82463 
82464       --
82465       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82466       --
82467       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82468           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82469       ELSE
82470           ---------------------------------------------------------------------------------------------------
82471           -- 4262811a Switch Sign
82472           ---------------------------------------------------------------------------------------------------
82473           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82474           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82475                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82476           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82477                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82478           -- 5132302
82482       END IF;
82479           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82480                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82481 
82483 
82484       -- 4955764
82485       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82486       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82487 
82488 
82489       XLA_AE_LINES_PKG.ValidateCurrentLine;
82490       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82491 
82492       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82493                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82494                ,p_balance_type_code => l_balance_type_code);
82495 
82496    END IF;
82497 
82498    -----------------------------------------------------------------------------------------
82499    -- 4262811 Multiperiod Accounting
82500    -----------------------------------------------------------------------------------------
82501      -- No MPA option is assigned.
82502 
82503 
82504 END IF;
82505 END IF;
82506 --
82507 
82508 --
82509 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82510    trace
82511       (p_msg      => 'END of AcctLineType_155'
82512       ,p_level    => C_LEVEL_PROCEDURE
82513       ,p_module   => l_log_module);
82514 END IF;
82515 --
82516 EXCEPTION
82517   WHEN xla_exceptions_pkg.application_exception THEN
82518       RAISE;
82519   WHEN OTHERS THEN
82520        xla_exceptions_pkg.raise_message
82521            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_155');
82522 END AcctLineType_155;
82523 --
82524 
82525 ---------------------------------------
82526 --
82527 -- PRIVATE FUNCTION
82528 --         AcctLineType_156
82529 --
82530 ---------------------------------------
82531 PROCEDURE AcctLineType_156 (
82532   p_application_id        IN NUMBER
82533  ,p_event_id              IN NUMBER
82534  ,p_calculate_acctd_flag  IN VARCHAR2
82535  ,p_calculate_g_l_flag    IN VARCHAR2
82536  ,p_actual_flag           IN OUT VARCHAR2
82537  ,p_balance_type_code     OUT VARCHAR2
82538  ,p_gain_or_loss_ref      OUT VARCHAR2
82539  
82540 --Payment Currency Code
82541  , p_source_8            IN VARCHAR2
82542 --Invoice Type Paid
82543  , p_source_56            IN VARCHAR2
82544  , p_source_56_meaning    IN VARCHAR2
82545 --When to Account for Payment Option
82546  , p_source_57            IN VARCHAR2
82547 --Accounting Reversal Indicator
82548  , p_source_58            IN VARCHAR2
82549 --Distribution Link Type
82550  , p_source_60            IN VARCHAR2
82551 --Override Accounted Amount Indicator
82552  , p_source_85            IN VARCHAR2
82553  , p_source_85_meaning    IN VARCHAR2
82554 --Third Party Type
82555  , p_source_88            IN VARCHAR2
82556 --Invoice Distribution Tax Line Identifier
82557  , p_source_91            IN NUMBER
82558 --Invoice Distribution Summary Tax Line Identifier
82559  , p_source_93            IN NUMBER
82560 --Business Flow Accounts Payable Application Identifier
82561  , p_source_96            IN NUMBER
82562 --Business Flow Invoice Distribution Type
82563  , p_source_97            IN VARCHAR2
82564 --Business Flow Invoice Entity Code
82565  , p_source_98            IN VARCHAR2
82566 --Business Flow Invoice Distribution Identifier
82567  , p_source_99            IN NUMBER
82568 --Business Flow Invoice Identifier
82569  , p_source_100            IN NUMBER
82570 --Payment Distribution Type
82571  , p_source_101            IN VARCHAR2
82572  , p_source_101_meaning    IN VARCHAR2
82573 --Payment Distribution Amount
82574  , p_source_102            IN NUMBER
82575 --Payment Distribution Identifier
82576  , p_source_107            IN NUMBER
82577 --Payment Distribution Reversed Identifier
82578  , p_source_115            IN NUMBER
82579 --Payment Distribution (Invoice Rate) Ledger Amount
82580  , p_source_119            IN NUMBER
82581 )
82582 IS
82583 
82584 l_component_type              VARCHAR2(80);
82585 l_component_code              VARCHAR2(30);
82586 l_component_type_code         VARCHAR2(1);
82587 l_component_appl_id           INTEGER;
82588 l_amb_context_code            VARCHAR2(30);
82589 l_entity_code                 VARCHAR2(30);
82590 l_event_class_code            VARCHAR2(30);
82591 l_ae_header_id                NUMBER;
82592 l_event_type_code             VARCHAR2(30);
82593 l_line_definition_code        VARCHAR2(30);
82594 l_line_definition_owner_code  VARCHAR2(1);
82595 --
82596 -- adr variables
82597 l_segment                     VARCHAR2(30);
82598 l_ccid                        NUMBER;
82599 l_adr_transaction_coa_id      NUMBER;
82600 l_adr_accounting_coa_id       NUMBER;
82601 l_adr_flexfield_segment_code  VARCHAR2(30);
82602 l_adr_flex_value_set_id       NUMBER;
82603 l_adr_value_type_code         VARCHAR2(30);
82604 l_adr_value_combination_id    NUMBER;
82605 l_adr_value_segment_code      VARCHAR2(30);
82606 
82607 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82608 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82609 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82610 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82611 
82615 l_acc_rev_flag                VARCHAR2(1);
82612 -- 4262811 Variables ------------------------------------------------------------------------------------------
82613 l_entered_amt_idx             NUMBER;
82614 l_accted_amt_idx              NUMBER;
82616 l_accrual_line_num            NUMBER;
82617 l_tmp_amt                     NUMBER;
82618 l_acc_rev_natural_side_code   VARCHAR2(1);
82619 
82620 l_num_entries                 NUMBER;
82621 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82622 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82623 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82624 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82625 l_recog_line_1                NUMBER;
82626 l_recog_line_2                NUMBER;
82627 
82628 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82629 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82630 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82631 
82632 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82633 
82634 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82635 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82636 
82637 ---------------------------------------------------------------------------------------------------------------
82638 
82639 
82640 --
82641 -- bulk performance
82642 --
82643 l_balance_type_code           VARCHAR2(1);
82644 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82645 l_log_module                  VARCHAR2(240);
82646 
82647 --
82648 -- Upgrade strategy
82649 --
82650 l_actual_upg_option           VARCHAR2(1);
82651 l_enc_upg_option           VARCHAR2(1);
82652 
82653 --
82654 BEGIN
82655 --
82656 IF g_log_enabled THEN
82657       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
82658 END IF;
82659 --
82660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82661 
82662       trace
82663          (p_msg      => 'BEGIN of AcctLineType_156'
82664          ,p_level    => C_LEVEL_PROCEDURE
82665          ,p_module   => l_log_module);
82666 
82667 END IF;
82668 --
82669 l_component_type             := 'AMB_JLT';
82670 l_component_code             := 'AP_LIAB_CLEAR';
82671 l_component_type_code        := 'S';
82672 l_component_appl_id          :=  200;
82673 l_amb_context_code           := 'DEFAULT';
82674 l_entity_code                := 'AP_PAYMENTS';
82675 l_event_class_code           := 'RECONCILED PAYMENTS';
82676 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
82677 l_line_definition_owner_code := 'S';
82678 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
82679 --
82680 l_balance_type_code          := 'A';
82681 l_segment                     := NULL;
82682 l_ccid                        := NULL;
82683 l_adr_transaction_coa_id      := NULL;
82684 l_adr_accounting_coa_id       := NULL;
82685 l_adr_flexfield_segment_code  := NULL;
82686 l_adr_flex_value_set_id       := NULL;
82687 l_adr_value_type_code         := NULL;
82688 l_adr_value_combination_id    := NULL;
82689 l_adr_value_segment_code      := NULL;
82690 
82691 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
82692 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
82693 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82694 l_budgetary_control_flag     := 'N';
82695 
82696 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82697 l_bflow_applied_to_amt       := NULL; -- 5132302
82698 l_entered_amt_idx            := NULL;          -- 4262811
82699 l_accted_amt_idx             := NULL;          -- 4262811
82700 l_acc_rev_flag               := NULL;          -- 4262811
82701 l_accrual_line_num           := NULL;          -- 4262811
82702 l_tmp_amt                    := NULL;          -- 4262811
82703 --
82704  
82705 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82706     l_balance_type_code <> 'B' THEN
82707 IF NVL(p_source_57,'
82708 ') =  'CLEAR_CLEAR' AND 
82709 NVL(p_source_56,'
82710 ') <>  'INTEREST' AND 
82711 (NVL(p_source_101,'
82712 ') =  'ROUNDING' OR 
82713 NVL(p_source_101,'
82714 ') =  'CASH' OR 
82715 NVL(p_source_101,'
82716 ') =  'DISCOUNT')
82717  THEN 
82718 
82719    --
82720    XLA_AE_LINES_PKG.SetNewLine;
82721 
82722    p_balance_type_code          := l_balance_type_code;
82723    -- set the flag so later we will know whether the gain loss line needs to be created
82724    
82725    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82726      p_actual_flag :='A';
82727    END IF;
82728 
82729    --
82730    -- bulk performance
82731    --
82732    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82733                                       p_header_num   => 0); -- 4262811
82734    --
82735    -- set accounting line options
82736    --
82737    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82738            p_natural_side_code          => 'D'
82739          , p_gain_or_loss_flag          => 'N'
82740          , p_gl_transfer_mode_code      => 'S'
82741          , p_acct_entry_type_code       => 'A'
82742          , p_switch_side_flag           => 'Y'
82746    l_acc_rev_natural_side_code := 'C';  -- 4262811
82743          , p_merge_duplicate_code       => 'A'
82744          );
82745    --
82747    -- 
82748    --
82749    -- set accounting line type info
82750    --
82751    xla_ae_lines_pkg.SetAcctLineType
82752       (p_component_type             => l_component_type
82753       ,p_event_type_code            => l_event_type_code
82754       ,p_line_definition_owner_code => l_line_definition_owner_code
82755       ,p_line_definition_code       => l_line_definition_code
82756       ,p_accounting_line_code       => l_component_code
82757       ,p_accounting_line_type_code  => l_component_type_code
82758       ,p_accounting_line_appl_id    => l_component_appl_id
82759       ,p_amb_context_code           => l_amb_context_code
82760       ,p_entity_code                => l_entity_code
82761       ,p_event_class_code           => l_event_class_code);
82762    --
82763    -- set accounting class
82764    --
82765    xla_ae_lines_pkg.SetAcctClass(
82766            p_accounting_class_code  => 'LIABILITY'
82767          , p_ae_header_id           => l_ae_header_id
82768          );
82769 
82770    --
82771    -- set rounding class
82772    --
82773    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82774                       'LIABILITY';
82775 
82776    --
82777    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82778    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82779    --
82780    -- bulk performance
82781    --
82782    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82783 
82784    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82785       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82786 
82787    -- 4955764
82788    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82789       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82790 
82791    -- 4458381 Public Sector Enh
82792    
82793    --
82794    -- set accounting attributes for the line type
82795    --
82796    l_entered_amt_idx := 10;
82797    l_accted_amt_idx  := 12;
82798    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82799    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82800    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
82801    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82802    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
82803    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82804    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
82805    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82806    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
82807    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82808    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
82809    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82810    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
82811    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82812    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
82813    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82814    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
82815    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82816    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
82817    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82818    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
82819    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82820    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
82821    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
82822    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
82823    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
82824    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
82825    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
82826    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
82827    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
82828    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
82829    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
82830    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
82831    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
82832    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
82833    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
82834    l_rec_acct_attrs.array_num_value(18)  := p_source_91;
82835    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
82836    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
82837 
82838    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82839    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82840 
82841    ---------------------------------------------------------------------------------------------------------------
82842    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82843    ---------------------------------------------------------------------------------------------------------------
82847    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82844    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82845 
82846    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82848 
82849    IF xla_accounting_cache_pkg.GetValueChar
82850          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82851          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82852    AND l_bflow_method_code = 'PRIOR_ENTRY'
82853 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82854    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82855          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82856        )
82857    THEN
82858          xla_ae_lines_pkg.BflowUpgEntry
82859            (p_business_method_code    => l_bflow_method_code
82860            ,p_business_class_code     => l_bflow_class_code
82861            ,p_balance_type            => l_balance_type_code);
82862    ELSE
82863       NULL;
82864 XLA_AE_LINES_PKG.business_flow_validation(
82865                                 p_business_method_code     => l_bflow_method_code
82866                                ,p_business_class_code      => l_bflow_class_code
82867                                ,p_inherit_description_flag => l_inherit_desc_flag);
82868    END IF;
82869 
82870    --
82871    -- call analytical criteria
82872    --
82873    -- Inherited Analytical Criteria for business flow method of Prior Entry.
82874    --
82875    -- call description
82876    --
82877    -- No description or it is inherited.
82878    --
82879    -- call ADRs
82880    -- Bug 4922099
82881    --
82882    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82883         (NVL(l_actual_upg_option, 'N') = 'O') OR
82884         (NVL(l_enc_upg_option, 'N') = 'O')
82885       )
82886    THEN
82887    NULL;
82888    --
82889    --
82890    
82891    --
82892    --
82893    END IF;
82894    --
82895    -- Bug 4922099
82896    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82897           (NVL(l_enc_upg_option, 'N') = 'O')
82898         ) AND
82899         (l_bflow_method_code = 'PRIOR_ENTRY')
82900       )
82901    THEN
82902       IF
82903       --
82904       1 = 1
82905       --
82906       THEN
82907       xla_accounting_err_pkg.build_message
82908                                     (p_appli_s_name            => 'XLA'
82909                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82910                                     ,p_token_1                 => 'LINE_NUMBER'
82911                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82912                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82913                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82914                                                                              l_component_type
82915                                                                             ,l_component_code
82916                                                                             ,l_component_type_code
82917                                                                             ,l_component_appl_id
82918                                                                             ,l_amb_context_code
82919                                                                             ,l_entity_code
82920                                                                             ,l_event_class_code
82921                                                                            )
82922                                     ,p_token_3                 => 'OWNER'
82923                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82924                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82925                                                                           ,p_lookup_code    => l_component_type_code
82926                                                                          )
82927                                     ,p_token_4                 => 'PRODUCT_NAME'
82928                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82929                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82930                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82931                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82932                                     ,p_ae_header_id            =>  NULL
82933                                        );
82934 
82935         IF (C_LEVEL_ERROR>= g_log_level) THEN
82936                  trace
82937                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82938                       ,p_level    => C_LEVEL_ERROR
82939                       ,p_module   => l_log_module);
82940         END IF;
82941       END IF;
82942    END IF;
82943    --
82944    --
82945    ------------------------------------------------------------------------------------------------
82946    -- 4219869 Business Flow
82947    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82948    -- Prior Entry.  Currently, the following code is always generated.
82949    ------------------------------------------------------------------------------------------------
82953    -- 4219869 Business Flow
82950    -- No ValidateCurrentLine for business flow method of Prior Entry
82951 
82952    ------------------------------------------------------------------------------------
82954    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82955    ------------------------------------------------------------------------------------
82956    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82957 
82958    ----------------------------------------------------------------------------------
82959    -- 4219869 Business Flow
82960    -- Update journal entry status -- Need to generate this within IF <condition>
82961    ----------------------------------------------------------------------------------
82962    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82963          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82964          ,p_balance_type_code => l_balance_type_code
82965          );
82966 
82967    -------------------------------------------------------------------------------------------
82968    -- 4262811 - Generate the Accrual Reversal lines
82969    -------------------------------------------------------------------------------------------
82970    BEGIN
82971       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82972                               (g_array_event(p_event_id).array_value_num('header_index'));
82973       IF l_acc_rev_flag IS NULL THEN
82974          l_acc_rev_flag := 'N';
82975       END IF;
82976    EXCEPTION
82977       WHEN OTHERS THEN
82978          l_acc_rev_flag := 'N';
82979    END;
82980    --
82981    IF (l_acc_rev_flag = 'Y') THEN
82982 
82983        -- 4645092  ------------------------------------------------------------------------------
82984        -- To allow MPA report to determine if it should generate report process
82985        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82986        ------------------------------------------------------------------------------------------
82987 
82988        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82989        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82990    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82991    -- call ADRs
82992    -- Bug 4922099
82993    --
82994    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82995         (NVL(l_actual_upg_option, 'N') = 'O') OR
82996         (NVL(l_enc_upg_option, 'N') = 'O')
82997       )
82998    THEN
82999    NULL;
83000    --
83001    --
83002    
83003    --
83004    --
83005    END IF;
83006 
83007        --
83008        -- Update the line information that should be overwritten
83009        --
83010        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83011                                          p_header_num   => 1);
83012        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83013 
83014        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83015 
83016        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83017           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83018        END IF;
83019 
83020       --
83021       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83022       --
83023       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83024           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83025       ELSE
83026           ---------------------------------------------------------------------------------------------------
83027           -- 4262811a Switch Sign
83028           ---------------------------------------------------------------------------------------------------
83029           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83030           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83031                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83032           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83033                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83034           -- 5132302
83035           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83036                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83037 
83038       END IF;
83039 
83040       -- 4955764
83041       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83042       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83043 
83044 
83045       XLA_AE_LINES_PKG.ValidateCurrentLine;
83046       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83047 
83048       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83049                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83050                ,p_balance_type_code => l_balance_type_code);
83051 
83052    END IF;
83053 
83054    -----------------------------------------------------------------------------------------
83055    -- 4262811 Multiperiod Accounting
83059 
83056    -----------------------------------------------------------------------------------------
83057      -- No MPA option is assigned.
83058 
83060 END IF;
83061 END IF;
83062 --
83063 
83064 --
83065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83066    trace
83067       (p_msg      => 'END of AcctLineType_156'
83068       ,p_level    => C_LEVEL_PROCEDURE
83069       ,p_module   => l_log_module);
83070 END IF;
83071 --
83072 EXCEPTION
83073   WHEN xla_exceptions_pkg.application_exception THEN
83074       RAISE;
83075   WHEN OTHERS THEN
83076        xla_exceptions_pkg.raise_message
83077            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_156');
83078 END AcctLineType_156;
83079 --
83080 
83081 ---------------------------------------
83082 --
83083 -- PRIVATE FUNCTION
83084 --         AcctLineType_157
83085 --
83086 ---------------------------------------
83087 PROCEDURE AcctLineType_157 (
83088   p_application_id        IN NUMBER
83089  ,p_event_id              IN NUMBER
83090  ,p_calculate_acctd_flag  IN VARCHAR2
83091  ,p_calculate_g_l_flag    IN VARCHAR2
83092  ,p_actual_flag           IN OUT VARCHAR2
83093  ,p_balance_type_code     OUT VARCHAR2
83094  ,p_gain_or_loss_ref      OUT VARCHAR2
83095  
83096 --Invoice Distribution Description
83097  , p_source_1            IN VARCHAR2
83098 --Automatic Offsets Value
83099  , p_source_10            IN VARCHAR2
83100  , p_source_10_meaning    IN VARCHAR2
83101 --Invoice Distribution Ledger Amount
83102  , p_source_16            IN NUMBER
83103 --Invoice Liability Account
83104  , p_source_29            IN NUMBER
83105 --Accounting Reversal Indicator
83106  , p_source_58            IN VARCHAR2
83107 --Distribution Link Type
83108  , p_source_60            IN VARCHAR2
83109 --Allocation to Main Distribution Identifier
83110  , p_source_62            IN NUMBER
83111 --Invoice Identifier
83112  , p_source_63            IN NUMBER
83113 --Invoice Distribution Identifier
83114  , p_source_69            IN NUMBER
83115 --Payables Encumbrance Upgrade Credit Account
83116  , p_source_70            IN NUMBER
83117 --Payables Encumbrance Upgrade Credit Amount
83118  , p_source_71            IN NUMBER
83119 --Invoice Currency Code
83120  , p_source_72            IN VARCHAR2
83121 --Payables Encumbrance Upgrade Credit Base Amount
83122  , p_source_73            IN NUMBER
83123 --Payables Encumbrance Upgrade Debit Account
83124  , p_source_74            IN NUMBER
83125 --Payables Encumbrance Upgrade Debit Amount
83126  , p_source_75            IN NUMBER
83127 --Payables Encumbrance Upgrade Debit Base Amount
83128  , p_source_76            IN NUMBER
83129 --Payables Encumbrance Upgrade Option
83130  , p_source_77            IN VARCHAR2
83131 --Invoice Distribution Amount
83132  , p_source_78            IN NUMBER
83133 --Deferred Accounting End Date
83134  , p_source_82            IN DATE
83135 --Deferred Accounting Option
83136  , p_source_83            IN VARCHAR2
83137 --Deferred Accounting Start Date
83138  , p_source_84            IN DATE
83139 --Override Accounted Amount Indicator
83140  , p_source_85            IN VARCHAR2
83141  , p_source_85_meaning    IN VARCHAR2
83142 --Invoice Supplier Identifier
83143  , p_source_86            IN NUMBER
83144 --Invoice Supplier Site Identifier
83145  , p_source_87            IN NUMBER
83146 --Third Party Type
83147  , p_source_88            IN VARCHAR2
83148 --Parent Reversal Identifier
83149  , p_source_89            IN NUMBER
83150 --Invoice Distribution Statistical Amount
83151  , p_source_90            IN NUMBER
83152 --Invoice Distribution Tax Line Identifier
83153  , p_source_91            IN NUMBER
83154 --Invoice Distribution Tax Distribution Identifier from Tax
83155  , p_source_92            IN NUMBER
83156 --Invoice Distribution Summary Tax Line Identifier
83157  , p_source_93            IN NUMBER
83158 --Payables Upgrade Credit Encumbrance Type Identifier
83159  , p_source_94            IN NUMBER
83160 --Payables Upgrade Debit Encumbrance Type Identifier
83161  , p_source_95            IN NUMBER
83162 --Business Flow Accounts Payable Application Identifier
83163  , p_source_96            IN NUMBER
83164 --Business Flow Invoice Distribution Type
83165  , p_source_97            IN VARCHAR2
83166 --Business Flow Invoice Entity Code
83167  , p_source_98            IN VARCHAR2
83168 --Business Flow Invoice Distribution Identifier
83169  , p_source_99            IN NUMBER
83170 --Business Flow Invoice Identifier
83171  , p_source_100            IN NUMBER
83172 --Self-Assessed Tax Flag
83173  , p_source_145            IN VARCHAR2
83174  , p_source_145_meaning    IN VARCHAR2
83175 --Invoice Exchange Date
83176  , p_source_146            IN DATE
83177 --Invoice Exchange Rate
83178  , p_source_147            IN NUMBER
83179 --Invoice Exchange Rate Type
83180  , p_source_148            IN VARCHAR2
83181 )
83182 IS
83183 
83184 l_component_type              VARCHAR2(80);
83185 l_component_code              VARCHAR2(30);
83186 l_component_type_code         VARCHAR2(1);
83187 l_component_appl_id           INTEGER;
83188 l_amb_context_code            VARCHAR2(30);
83189 l_entity_code                 VARCHAR2(30);
83190 l_event_class_code            VARCHAR2(30);
83191 l_ae_header_id                NUMBER;
83192 l_event_type_code             VARCHAR2(30);
83193 l_line_definition_code        VARCHAR2(30);
83194 l_line_definition_owner_code  VARCHAR2(1);
83195 --
83199 l_adr_transaction_coa_id      NUMBER;
83196 -- adr variables
83197 l_segment                     VARCHAR2(30);
83198 l_ccid                        NUMBER;
83200 l_adr_accounting_coa_id       NUMBER;
83201 l_adr_flexfield_segment_code  VARCHAR2(30);
83202 l_adr_flex_value_set_id       NUMBER;
83203 l_adr_value_type_code         VARCHAR2(30);
83204 l_adr_value_combination_id    NUMBER;
83205 l_adr_value_segment_code      VARCHAR2(30);
83206 
83207 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83208 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83209 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83210 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83211 
83212 -- 4262811 Variables ------------------------------------------------------------------------------------------
83213 l_entered_amt_idx             NUMBER;
83214 l_accted_amt_idx              NUMBER;
83215 l_acc_rev_flag                VARCHAR2(1);
83216 l_accrual_line_num            NUMBER;
83217 l_tmp_amt                     NUMBER;
83218 l_acc_rev_natural_side_code   VARCHAR2(1);
83219 
83220 l_num_entries                 NUMBER;
83221 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83222 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83223 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83224 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83225 l_recog_line_1                NUMBER;
83226 l_recog_line_2                NUMBER;
83227 
83228 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83229 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83230 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83231 
83232 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83233 
83234 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83235 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83236 
83237 ---------------------------------------------------------------------------------------------------------------
83238 
83239 
83240 --
83241 -- bulk performance
83242 --
83243 l_balance_type_code           VARCHAR2(1);
83244 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83245 l_log_module                  VARCHAR2(240);
83246 
83247 --
83248 -- Upgrade strategy
83249 --
83250 l_actual_upg_option           VARCHAR2(1);
83251 l_enc_upg_option           VARCHAR2(1);
83252 
83253 --
83254 BEGIN
83255 --
83256 IF g_log_enabled THEN
83257       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
83258 END IF;
83259 --
83260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83261 
83262       trace
83263          (p_msg      => 'BEGIN of AcctLineType_157'
83264          ,p_level    => C_LEVEL_PROCEDURE
83265          ,p_module   => l_log_module);
83266 
83267 END IF;
83268 --
83269 l_component_type             := 'AMB_JLT';
83270 l_component_code             := 'AP_LIAB_CM';
83271 l_component_type_code        := 'S';
83272 l_component_appl_id          :=  200;
83273 l_amb_context_code           := 'DEFAULT';
83274 l_entity_code                := 'AP_INVOICES';
83275 l_event_class_code           := 'CREDIT MEMOS';
83276 l_event_type_code            := 'CREDIT MEMOS_ALL';
83277 l_line_definition_owner_code := 'S';
83278 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
83279 --
83280 l_balance_type_code          := 'A';
83281 l_segment                     := NULL;
83282 l_ccid                        := NULL;
83283 l_adr_transaction_coa_id      := NULL;
83284 l_adr_accounting_coa_id       := NULL;
83285 l_adr_flexfield_segment_code  := NULL;
83286 l_adr_flex_value_set_id       := NULL;
83287 l_adr_value_type_code         := NULL;
83288 l_adr_value_combination_id    := NULL;
83289 l_adr_value_segment_code      := NULL;
83290 
83291 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
83292 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
83293 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83294 l_budgetary_control_flag     := 'N';
83295 
83296 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83297 l_bflow_applied_to_amt       := NULL; -- 5132302
83298 l_entered_amt_idx            := NULL;          -- 4262811
83299 l_accted_amt_idx             := NULL;          -- 4262811
83300 l_acc_rev_flag               := NULL;          -- 4262811
83301 l_accrual_line_num           := NULL;          -- 4262811
83302 l_tmp_amt                    := NULL;          -- 4262811
83303 --
83304  
83305 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83306     l_balance_type_code <> 'B' THEN
83307 IF (NVL(p_source_10,'
83308 ') <>  'BALANCING_SEGMENT' AND 
83309 NVL(p_source_10,'
83310 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
83311 NVL(p_source_145,'
83312 ') <>  'Y'
83313  THEN 
83314 
83315    --
83316    XLA_AE_LINES_PKG.SetNewLine;
83317 
83318    p_balance_type_code          := l_balance_type_code;
83319    -- set the flag so later we will know whether the gain loss line needs to be created
83320    
83321    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83322      p_actual_flag :='A';
83323    END IF;
83324 
83328    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83325    --
83326    -- bulk performance
83327    --
83329                                       p_header_num   => 0); -- 4262811
83330    --
83331    -- set accounting line options
83332    --
83333    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83334            p_natural_side_code          => 'C'
83335          , p_gain_or_loss_flag          => 'N'
83336          , p_gl_transfer_mode_code      => 'S'
83337          , p_acct_entry_type_code       => 'A'
83338          , p_switch_side_flag           => 'Y'
83339          , p_merge_duplicate_code       => 'A'
83340          );
83341    --
83342    l_acc_rev_natural_side_code := 'D';  -- 4262811
83343    -- 
83344    --
83345    -- set accounting line type info
83346    --
83347    xla_ae_lines_pkg.SetAcctLineType
83348       (p_component_type             => l_component_type
83349       ,p_event_type_code            => l_event_type_code
83350       ,p_line_definition_owner_code => l_line_definition_owner_code
83351       ,p_line_definition_code       => l_line_definition_code
83352       ,p_accounting_line_code       => l_component_code
83353       ,p_accounting_line_type_code  => l_component_type_code
83354       ,p_accounting_line_appl_id    => l_component_appl_id
83355       ,p_amb_context_code           => l_amb_context_code
83356       ,p_entity_code                => l_entity_code
83357       ,p_event_class_code           => l_event_class_code);
83358    --
83359    -- set accounting class
83360    --
83361    xla_ae_lines_pkg.SetAcctClass(
83362            p_accounting_class_code  => 'LIABILITY'
83363          , p_ae_header_id           => l_ae_header_id
83364          );
83365 
83366    --
83367    -- set rounding class
83368    --
83369    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83370                       'LIABILITY';
83371 
83372    --
83373    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83374    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83375    --
83376    -- bulk performance
83377    --
83378    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83379 
83380    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83381       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83382 
83383    -- 4955764
83384    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83385       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83386 
83387    -- 4458381 Public Sector Enh
83388    
83389    --
83390    -- set accounting attributes for the line type
83391    --
83392    l_entered_amt_idx := 23;
83393    l_accted_amt_idx  := 28;
83394    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
83395    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83396    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
83397    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
83398    l_rec_acct_attrs.array_num_value(2)  := 
83399 xla_ae_sources_pkg.GetSystemSourceNum(
83400    p_source_code           => 'XLA_EVENT_APPL_ID'
83401  , p_source_type_code      => 'Y'
83402  , p_source_application_id =>  602
83403 );
83404    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
83405    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
83406    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
83407    l_rec_acct_attrs.array_char_value(4)  := 
83408 xla_ae_sources_pkg.GetSystemSourceChar(
83409    p_source_code           => 'XLA_ENTITY_CODE'
83410  , p_source_type_code      => 'Y'
83411  , p_source_application_id =>  602
83412 );
83413    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
83414    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
83415    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
83416    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
83417    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
83418    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
83419    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83420    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
83421    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
83422    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
83423    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
83424    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
83425    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83426    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
83427    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
83428    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
83429    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
83430    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
83431    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
83432    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
83433    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
83434    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
83438    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
83435    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
83436    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
83437    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
83439    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
83440    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
83441    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
83442    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
83443    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
83444    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
83445    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
83446    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
83447    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
83448    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
83449    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
83450    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
83451    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
83452    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
83453    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
83454    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
83455    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
83456    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
83457    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
83458    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
83459    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
83460    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
83461    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
83462    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
83463    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
83464    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
83465    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
83466    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
83467    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
83468    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
83469    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
83470    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
83471    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
83472    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
83473    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
83474    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
83475    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
83476    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
83477    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
83478    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
83479    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
83480    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
83481    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
83482    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
83483    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
83484    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
83485    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
83486    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
83487    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
83488    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
83489    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
83490    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
83491 
83492    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83493    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83494 
83495    ---------------------------------------------------------------------------------------------------------------
83496    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83497    ---------------------------------------------------------------------------------------------------------------
83498    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83499 
83500    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83501    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83502 
83503    IF xla_accounting_cache_pkg.GetValueChar
83504          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83505          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83506    AND l_bflow_method_code = 'PRIOR_ENTRY'
83507 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83508    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83509          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83510        )
83511    THEN
83512          xla_ae_lines_pkg.BflowUpgEntry
83513            (p_business_method_code    => l_bflow_method_code
83514            ,p_business_class_code     => l_bflow_class_code
83515            ,p_balance_type            => l_balance_type_code);
83516    ELSE
83517       NULL;
83518 -- No business flow processing for business flow method of NONE.
83519    END IF;
83520 
83521    --
83522    -- call analytical criteria
83523    --
83524    
83525    --
83526    -- call description
83527    --
83528    
83529 xla_ae_lines_pkg.SetLineDescription(
83533    , p_ae_header_id           => l_ae_header_id 
83530    p_ae_header_id => l_ae_header_id
83531   ,p_description  => Description_2 (
83532      p_application_id         => p_application_id
83534 , p_source_1 => p_source_1
83535    )
83536 );
83537 
83538 
83539    --
83540    -- call ADRs
83541    -- Bug 4922099
83542    --
83543    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83544         (NVL(l_actual_upg_option, 'N') = 'O') OR
83545         (NVL(l_enc_upg_option, 'N') = 'O')
83546       )
83547    THEN
83548    NULL;
83549    --
83550    --
83551    
83552   l_ccid := AcctDerRule_36(
83553            p_application_id           => p_application_id
83554          , p_ae_header_id             => l_ae_header_id 
83555 , p_source_29 => p_source_29
83556          , x_transaction_coa_id       => l_adr_transaction_coa_id
83557          , x_accounting_coa_id        => l_adr_accounting_coa_id
83558          , x_value_type_code          => l_adr_value_type_code
83559          , p_side                     => 'NA'
83560    );
83561 
83562    xla_ae_lines_pkg.set_ccid(
83563     p_code_combination_id          => l_ccid
83564   , p_value_type_code              => l_adr_value_type_code
83565   , p_transaction_coa_id           => l_adr_transaction_coa_id
83566   , p_accounting_coa_id            => l_adr_accounting_coa_id
83567   , p_adr_code                     => 'AP_LIAB'
83568   , p_adr_type_code                => 'S'
83569   , p_component_type               => l_component_type
83570   , p_component_code               => l_component_code
83571   , p_component_type_code          => l_component_type_code
83572   , p_component_appl_id            => l_component_appl_id
83573   , p_amb_context_code             => l_amb_context_code
83574   , p_side                         => 'NA'
83575   );
83576 
83577 
83578    --
83579    --
83580    END IF;
83581    --
83582    -- Bug 4922099
83583    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83584           (NVL(l_enc_upg_option, 'N') = 'O')
83585         ) AND
83586         (l_bflow_method_code = 'PRIOR_ENTRY')
83587       )
83588    THEN
83589       IF
83590       --
83591       1 = 2
83592       --
83593       THEN
83594       xla_accounting_err_pkg.build_message
83595                                     (p_appli_s_name            => 'XLA'
83596                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83597                                     ,p_token_1                 => 'LINE_NUMBER'
83598                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83599                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83600                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83601                                                                              l_component_type
83602                                                                             ,l_component_code
83603                                                                             ,l_component_type_code
83604                                                                             ,l_component_appl_id
83605                                                                             ,l_amb_context_code
83606                                                                             ,l_entity_code
83607                                                                             ,l_event_class_code
83608                                                                            )
83609                                     ,p_token_3                 => 'OWNER'
83610                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83611                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83612                                                                           ,p_lookup_code    => l_component_type_code
83613                                                                          )
83614                                     ,p_token_4                 => 'PRODUCT_NAME'
83615                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83616                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83617                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83618                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83619                                     ,p_ae_header_id            =>  NULL
83620                                        );
83621 
83622         IF (C_LEVEL_ERROR>= g_log_level) THEN
83623                  trace
83624                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83625                       ,p_level    => C_LEVEL_ERROR
83626                       ,p_module   => l_log_module);
83627         END IF;
83628       END IF;
83629    END IF;
83630    --
83631    --
83632    ------------------------------------------------------------------------------------------------
83633    -- 4219869 Business Flow
83634    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83635    -- Prior Entry.  Currently, the following code is always generated.
83636    ------------------------------------------------------------------------------------------------
83637    XLA_AE_LINES_PKG.ValidateCurrentLine;
83638 
83642    ------------------------------------------------------------------------------------
83639    ------------------------------------------------------------------------------------
83640    -- 4219869 Business Flow
83641    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83643    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83644 
83645    ----------------------------------------------------------------------------------
83646    -- 4219869 Business Flow
83647    -- Update journal entry status -- Need to generate this within IF <condition>
83648    ----------------------------------------------------------------------------------
83649    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83650          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83651          ,p_balance_type_code => l_balance_type_code
83652          );
83653 
83654    -------------------------------------------------------------------------------------------
83655    -- 4262811 - Generate the Accrual Reversal lines
83656    -------------------------------------------------------------------------------------------
83657    BEGIN
83658       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83659                               (g_array_event(p_event_id).array_value_num('header_index'));
83660       IF l_acc_rev_flag IS NULL THEN
83661          l_acc_rev_flag := 'N';
83662       END IF;
83663    EXCEPTION
83664       WHEN OTHERS THEN
83665          l_acc_rev_flag := 'N';
83666    END;
83667    --
83668    IF (l_acc_rev_flag = 'Y') THEN
83669 
83670        -- 4645092  ------------------------------------------------------------------------------
83671        -- To allow MPA report to determine if it should generate report process
83672        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83673        ------------------------------------------------------------------------------------------
83674 
83675        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83676        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83677    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83678    -- call ADRs
83679    -- Bug 4922099
83680    --
83681    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83682         (NVL(l_actual_upg_option, 'N') = 'O') OR
83683         (NVL(l_enc_upg_option, 'N') = 'O')
83684       )
83685    THEN
83686    NULL;
83687    --
83688    --
83689    
83690   l_ccid := AcctDerRule_36(
83691            p_application_id           => p_application_id
83692          , p_ae_header_id             => l_ae_header_id 
83693 , p_source_29 => p_source_29
83694          , x_transaction_coa_id       => l_adr_transaction_coa_id
83695          , x_accounting_coa_id        => l_adr_accounting_coa_id
83696          , x_value_type_code          => l_adr_value_type_code
83697          , p_side                     => 'NA'
83698    );
83699 
83700    xla_ae_lines_pkg.set_ccid(
83701     p_code_combination_id          => l_ccid
83702   , p_value_type_code              => l_adr_value_type_code
83703   , p_transaction_coa_id           => l_adr_transaction_coa_id
83704   , p_accounting_coa_id            => l_adr_accounting_coa_id
83705   , p_adr_code                     => 'AP_LIAB'
83706   , p_adr_type_code                => 'S'
83707   , p_component_type               => l_component_type
83708   , p_component_code               => l_component_code
83709   , p_component_type_code          => l_component_type_code
83710   , p_component_appl_id            => l_component_appl_id
83711   , p_amb_context_code             => l_amb_context_code
83712   , p_side                         => 'NA'
83713   );
83714 
83715 
83716    --
83717    --
83718    END IF;
83719 
83720        --
83721        -- Update the line information that should be overwritten
83722        --
83723        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83724                                          p_header_num   => 1);
83725        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83726 
83727        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83728 
83729        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83730           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83731        END IF;
83732 
83733       --
83734       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83735       --
83736       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83737           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83738       ELSE
83739           ---------------------------------------------------------------------------------------------------
83740           -- 4262811a Switch Sign
83741           ---------------------------------------------------------------------------------------------------
83742           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83743           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83744                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83745           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83749                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83746                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83747           -- 5132302
83748           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83750 
83751       END IF;
83752 
83753       -- 4955764
83754       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83755       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83756 
83757 
83758       XLA_AE_LINES_PKG.ValidateCurrentLine;
83759       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83760 
83761       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83762                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83763                ,p_balance_type_code => l_balance_type_code);
83764 
83765    END IF;
83766 
83767    -----------------------------------------------------------------------------------------
83768    -- 4262811 Multiperiod Accounting
83769    -----------------------------------------------------------------------------------------
83770      -- No MPA option is assigned.
83771 
83772 
83773 END IF;
83774 END IF;
83775 --
83776 
83777 --
83778 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83779    trace
83780       (p_msg      => 'END of AcctLineType_157'
83781       ,p_level    => C_LEVEL_PROCEDURE
83782       ,p_module   => l_log_module);
83783 END IF;
83784 --
83785 EXCEPTION
83786   WHEN xla_exceptions_pkg.application_exception THEN
83787       RAISE;
83788   WHEN OTHERS THEN
83789        xla_exceptions_pkg.raise_message
83790            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_157');
83791 END AcctLineType_157;
83792 --
83793 
83794 ---------------------------------------
83795 --
83796 -- PRIVATE FUNCTION
83797 --         AcctLineType_158
83798 --
83799 ---------------------------------------
83800 PROCEDURE AcctLineType_158 (
83801   p_application_id        IN NUMBER
83802  ,p_event_id              IN NUMBER
83803  ,p_calculate_acctd_flag  IN VARCHAR2
83804  ,p_calculate_g_l_flag    IN VARCHAR2
83805  ,p_actual_flag           IN OUT VARCHAR2
83806  ,p_balance_type_code     OUT VARCHAR2
83807  ,p_gain_or_loss_ref      OUT VARCHAR2
83808  
83809 --Invoice Distribution Description
83810  , p_source_1            IN VARCHAR2
83811 --Automatic Offsets Value
83812  , p_source_10            IN VARCHAR2
83813  , p_source_10_meaning    IN VARCHAR2
83814 --Invoice Distribution Ledger Amount
83815  , p_source_16            IN NUMBER
83816 --Invoice Liability Account
83817  , p_source_29            IN NUMBER
83818 --Accounting Reversal Indicator
83819  , p_source_58            IN VARCHAR2
83820 --Distribution Link Type
83821  , p_source_60            IN VARCHAR2
83822 --Allocation to Main Distribution Identifier
83823  , p_source_62            IN NUMBER
83824 --Invoice Identifier
83825  , p_source_63            IN NUMBER
83826 --Invoice Distribution Identifier
83827  , p_source_69            IN NUMBER
83828 --Payables Encumbrance Upgrade Credit Account
83829  , p_source_70            IN NUMBER
83830 --Payables Encumbrance Upgrade Credit Amount
83831  , p_source_71            IN NUMBER
83832 --Invoice Currency Code
83833  , p_source_72            IN VARCHAR2
83834 --Payables Encumbrance Upgrade Credit Base Amount
83835  , p_source_73            IN NUMBER
83836 --Payables Encumbrance Upgrade Debit Account
83837  , p_source_74            IN NUMBER
83838 --Payables Encumbrance Upgrade Debit Amount
83839  , p_source_75            IN NUMBER
83840 --Payables Encumbrance Upgrade Debit Base Amount
83841  , p_source_76            IN NUMBER
83842 --Payables Encumbrance Upgrade Option
83843  , p_source_77            IN VARCHAR2
83844 --Invoice Distribution Amount
83845  , p_source_78            IN NUMBER
83846 --Deferred Accounting End Date
83847  , p_source_82            IN DATE
83848 --Deferred Accounting Option
83849  , p_source_83            IN VARCHAR2
83850 --Deferred Accounting Start Date
83851  , p_source_84            IN DATE
83852 --Override Accounted Amount Indicator
83853  , p_source_85            IN VARCHAR2
83854  , p_source_85_meaning    IN VARCHAR2
83855 --Invoice Supplier Identifier
83856  , p_source_86            IN NUMBER
83857 --Invoice Supplier Site Identifier
83858  , p_source_87            IN NUMBER
83859 --Third Party Type
83860  , p_source_88            IN VARCHAR2
83861 --Parent Reversal Identifier
83862  , p_source_89            IN NUMBER
83863 --Invoice Distribution Statistical Amount
83864  , p_source_90            IN NUMBER
83865 --Invoice Distribution Tax Line Identifier
83866  , p_source_91            IN NUMBER
83867 --Invoice Distribution Tax Distribution Identifier from Tax
83868  , p_source_92            IN NUMBER
83869 --Invoice Distribution Summary Tax Line Identifier
83870  , p_source_93            IN NUMBER
83871 --Payables Upgrade Credit Encumbrance Type Identifier
83872  , p_source_94            IN NUMBER
83873 --Payables Upgrade Debit Encumbrance Type Identifier
83874  , p_source_95            IN NUMBER
83875 --Business Flow Accounts Payable Application Identifier
83876  , p_source_96            IN NUMBER
83877 --Business Flow Invoice Distribution Type
83878  , p_source_97            IN VARCHAR2
83879 --Business Flow Invoice Entity Code
83880  , p_source_98            IN VARCHAR2
83884  , p_source_100            IN NUMBER
83881 --Business Flow Invoice Distribution Identifier
83882  , p_source_99            IN NUMBER
83883 --Business Flow Invoice Identifier
83885 --Self-Assessed Tax Flag
83886  , p_source_145            IN VARCHAR2
83887  , p_source_145_meaning    IN VARCHAR2
83888 --Invoice Exchange Date
83889  , p_source_146            IN DATE
83890 --Invoice Exchange Rate
83891  , p_source_147            IN NUMBER
83892 --Invoice Exchange Rate Type
83893  , p_source_148            IN VARCHAR2
83894 )
83895 IS
83896 
83897 l_component_type              VARCHAR2(80);
83898 l_component_code              VARCHAR2(30);
83899 l_component_type_code         VARCHAR2(1);
83900 l_component_appl_id           INTEGER;
83901 l_amb_context_code            VARCHAR2(30);
83902 l_entity_code                 VARCHAR2(30);
83903 l_event_class_code            VARCHAR2(30);
83904 l_ae_header_id                NUMBER;
83905 l_event_type_code             VARCHAR2(30);
83906 l_line_definition_code        VARCHAR2(30);
83907 l_line_definition_owner_code  VARCHAR2(1);
83908 --
83909 -- adr variables
83910 l_segment                     VARCHAR2(30);
83911 l_ccid                        NUMBER;
83912 l_adr_transaction_coa_id      NUMBER;
83913 l_adr_accounting_coa_id       NUMBER;
83914 l_adr_flexfield_segment_code  VARCHAR2(30);
83915 l_adr_flex_value_set_id       NUMBER;
83916 l_adr_value_type_code         VARCHAR2(30);
83917 l_adr_value_combination_id    NUMBER;
83918 l_adr_value_segment_code      VARCHAR2(30);
83919 
83920 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83921 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83922 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83923 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83924 
83925 -- 4262811 Variables ------------------------------------------------------------------------------------------
83926 l_entered_amt_idx             NUMBER;
83927 l_accted_amt_idx              NUMBER;
83928 l_acc_rev_flag                VARCHAR2(1);
83929 l_accrual_line_num            NUMBER;
83930 l_tmp_amt                     NUMBER;
83931 l_acc_rev_natural_side_code   VARCHAR2(1);
83932 
83933 l_num_entries                 NUMBER;
83934 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83935 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83936 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83937 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83938 l_recog_line_1                NUMBER;
83939 l_recog_line_2                NUMBER;
83940 
83941 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83942 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83943 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83944 
83945 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83946 
83947 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83948 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83949 
83950 ---------------------------------------------------------------------------------------------------------------
83951 
83952 
83953 --
83954 -- bulk performance
83955 --
83956 l_balance_type_code           VARCHAR2(1);
83957 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83958 l_log_module                  VARCHAR2(240);
83959 
83960 --
83961 -- Upgrade strategy
83962 --
83963 l_actual_upg_option           VARCHAR2(1);
83964 l_enc_upg_option           VARCHAR2(1);
83965 
83966 --
83967 BEGIN
83968 --
83969 IF g_log_enabled THEN
83970       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
83971 END IF;
83972 --
83973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83974 
83975       trace
83976          (p_msg      => 'BEGIN of AcctLineType_158'
83977          ,p_level    => C_LEVEL_PROCEDURE
83978          ,p_module   => l_log_module);
83979 
83980 END IF;
83981 --
83982 l_component_type             := 'AMB_JLT';
83983 l_component_code             := 'AP_LIAB_CM_AOS_AS';
83984 l_component_type_code        := 'S';
83985 l_component_appl_id          :=  200;
83986 l_amb_context_code           := 'DEFAULT';
83987 l_entity_code                := 'AP_INVOICES';
83988 l_event_class_code           := 'CREDIT MEMOS';
83989 l_event_type_code            := 'CREDIT MEMOS_ALL';
83990 l_line_definition_owner_code := 'S';
83991 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
83992 --
83993 l_balance_type_code          := 'A';
83994 l_segment                     := NULL;
83995 l_ccid                        := NULL;
83996 l_adr_transaction_coa_id      := NULL;
83997 l_adr_accounting_coa_id       := NULL;
83998 l_adr_flexfield_segment_code  := NULL;
83999 l_adr_flex_value_set_id       := NULL;
84000 l_adr_value_type_code         := NULL;
84001 l_adr_value_combination_id    := NULL;
84002 l_adr_value_segment_code      := NULL;
84003 
84004 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
84005 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
84006 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84007 l_budgetary_control_flag     := 'N';
84008 
84009 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84013 l_acc_rev_flag               := NULL;          -- 4262811
84010 l_bflow_applied_to_amt       := NULL; -- 5132302
84011 l_entered_amt_idx            := NULL;          -- 4262811
84012 l_accted_amt_idx             := NULL;          -- 4262811
84014 l_accrual_line_num           := NULL;          -- 4262811
84015 l_tmp_amt                    := NULL;          -- 4262811
84016 --
84017  
84018 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84019     l_balance_type_code <> 'B' THEN
84020 IF NVL(p_source_10,'
84021 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
84022 NVL(p_source_145,'
84023 ') <>  'Y'
84024  THEN 
84025 
84026    --
84027    XLA_AE_LINES_PKG.SetNewLine;
84028 
84029    p_balance_type_code          := l_balance_type_code;
84030    -- set the flag so later we will know whether the gain loss line needs to be created
84031    
84032    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84033      p_actual_flag :='A';
84034    END IF;
84035 
84036    --
84037    -- bulk performance
84038    --
84039    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84040                                       p_header_num   => 0); -- 4262811
84041    --
84042    -- set accounting line options
84043    --
84044    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84045            p_natural_side_code          => 'C'
84046          , p_gain_or_loss_flag          => 'N'
84047          , p_gl_transfer_mode_code      => 'S'
84048          , p_acct_entry_type_code       => 'A'
84049          , p_switch_side_flag           => 'Y'
84050          , p_merge_duplicate_code       => 'A'
84051          );
84052    --
84053    l_acc_rev_natural_side_code := 'D';  -- 4262811
84054    -- 
84055    --
84056    -- set accounting line type info
84057    --
84058    xla_ae_lines_pkg.SetAcctLineType
84059       (p_component_type             => l_component_type
84060       ,p_event_type_code            => l_event_type_code
84061       ,p_line_definition_owner_code => l_line_definition_owner_code
84062       ,p_line_definition_code       => l_line_definition_code
84063       ,p_accounting_line_code       => l_component_code
84064       ,p_accounting_line_type_code  => l_component_type_code
84065       ,p_accounting_line_appl_id    => l_component_appl_id
84066       ,p_amb_context_code           => l_amb_context_code
84067       ,p_entity_code                => l_entity_code
84068       ,p_event_class_code           => l_event_class_code);
84069    --
84070    -- set accounting class
84071    --
84072    xla_ae_lines_pkg.SetAcctClass(
84073            p_accounting_class_code  => 'LIABILITY'
84074          , p_ae_header_id           => l_ae_header_id
84075          );
84076 
84077    --
84078    -- set rounding class
84079    --
84080    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84081                       'LIABILITY';
84082 
84083    --
84084    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84085    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84086    --
84087    -- bulk performance
84088    --
84089    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84090 
84091    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84092       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84093 
84094    -- 4955764
84095    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84097 
84098    -- 4458381 Public Sector Enh
84099    
84100    --
84101    -- set accounting attributes for the line type
84102    --
84103    l_entered_amt_idx := 23;
84104    l_accted_amt_idx  := 28;
84105    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84106    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84107    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
84108    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84109    l_rec_acct_attrs.array_num_value(2)  := 
84110 xla_ae_sources_pkg.GetSystemSourceNum(
84111    p_source_code           => 'XLA_EVENT_APPL_ID'
84112  , p_source_type_code      => 'Y'
84113  , p_source_application_id =>  602
84114 );
84115    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84116    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
84117    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84118    l_rec_acct_attrs.array_char_value(4)  := 
84119 xla_ae_sources_pkg.GetSystemSourceChar(
84120    p_source_code           => 'XLA_ENTITY_CODE'
84121  , p_source_type_code      => 'Y'
84122  , p_source_application_id =>  602
84123 );
84124    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84125    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
84126    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84127    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
84128    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84129    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
84130    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84134    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84131    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
84132    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84133    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
84135    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
84136    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84137    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
84138    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84139    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
84140    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84141    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
84142    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
84143    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
84144    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
84145    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
84146    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
84147    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
84148    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
84149    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
84150    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
84151    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
84152    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
84153    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
84154    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
84155    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
84156    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
84157    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
84158    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
84159    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
84160    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
84161    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
84162    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
84163    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
84164    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
84165    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
84166    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
84167    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
84168    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
84169    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
84170    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
84171    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
84172    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
84173    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
84174    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
84175    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
84176    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
84177    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
84178    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
84179    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
84180    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
84181    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
84182    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
84183    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
84184    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
84185    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
84186    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
84187    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
84188    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
84189    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
84190    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
84191    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
84192    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
84193    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
84194    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
84195    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
84196    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
84197    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
84198    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
84199    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
84200    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
84201    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
84202 
84203    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84204    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84205 
84206    ---------------------------------------------------------------------------------------------------------------
84207    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84208    ---------------------------------------------------------------------------------------------------------------
84209    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84210 
84211    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84215          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84212    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84213 
84214    IF xla_accounting_cache_pkg.GetValueChar
84216          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84217    AND l_bflow_method_code = 'PRIOR_ENTRY'
84218 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84219    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84220          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84221        )
84222    THEN
84223          xla_ae_lines_pkg.BflowUpgEntry
84224            (p_business_method_code    => l_bflow_method_code
84225            ,p_business_class_code     => l_bflow_class_code
84226            ,p_balance_type            => l_balance_type_code);
84227    ELSE
84228       NULL;
84229 XLA_AE_LINES_PKG.business_flow_validation(
84230                                 p_business_method_code     => l_bflow_method_code
84231                                ,p_business_class_code      => l_bflow_class_code
84232                                ,p_inherit_description_flag => l_inherit_desc_flag);
84233    END IF;
84234 
84235    --
84236    -- call analytical criteria
84237    --
84238    
84239    --
84240    -- call description
84241    --
84242    
84243 xla_ae_lines_pkg.SetLineDescription(
84244    p_ae_header_id => l_ae_header_id
84245   ,p_description  => Description_2 (
84246      p_application_id         => p_application_id
84247    , p_ae_header_id           => l_ae_header_id 
84248 , p_source_1 => p_source_1
84249    )
84250 );
84251 
84252 
84253    --
84254    -- call ADRs
84255    -- Bug 4922099
84256    --
84257    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84258         (NVL(l_actual_upg_option, 'N') = 'O') OR
84259         (NVL(l_enc_upg_option, 'N') = 'O')
84260       )
84261    THEN
84262    NULL;
84263    --
84264    --
84265    
84266    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
84267      p_code_combination_id      => TO_NUMBER(C_NUM)
84268    , p_value_type_code          => NULL
84269    , p_transaction_coa_id       => null
84270    , p_accounting_coa_id        => null
84271    , p_adr_code                 => NULL
84272    , p_adr_type_code            => NULL
84273    , p_component_type           => l_component_type
84274    , p_component_code           => l_component_code
84275    , p_component_type_code      => l_component_type_code
84276    , p_component_appl_id        => l_component_appl_id
84277    , p_amb_context_code         => l_amb_context_code
84278    , p_side                     => NULL
84279    );
84280 
84281    
84282   -- initialise segments
84283   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84284   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84285   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84286   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84287   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84288   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84289   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84290   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84291   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84292   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84293   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84294   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84295   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84296   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84297   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84298   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84299   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84300   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84301   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84302   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84303   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84304   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84305   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84306   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84307   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84308   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84309   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84310   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84311   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84312   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84313   --
84314 
84315    --
84316 
84317 
84318    l_segment := AcctDerRule_15(
84319            p_application_id           => p_application_id
84323          , x_accounting_coa_id        => l_adr_accounting_coa_id
84320          , p_ae_header_id             => l_ae_header_id 
84321 , p_source_29 => p_source_29
84322          , x_transaction_coa_id       => l_adr_transaction_coa_id
84324          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84325          , x_flex_value_set_id        => l_adr_flex_value_set_id
84326          , x_value_type_code          => l_adr_value_type_code
84327          , x_value_combination_id     => l_adr_value_combination_id
84328          , x_value_segment_code       => l_adr_value_segment_code
84329          , p_side                     => 'NA'
84330          , p_override_seg_flag        => 'Y'
84331    );
84332 
84333    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84334 
84335       xla_ae_lines_pkg.set_segment(
84336           p_to_segment_code         => 'GL_ACCOUNT'
84337         , p_segment_value           => l_segment
84338         , p_from_segment_code       => l_adr_value_segment_code
84339         , p_from_combination_id     => l_adr_value_combination_id
84340         , p_value_type_code         => l_adr_value_type_code
84341         , p_transaction_coa_id      => l_adr_transaction_coa_id
84342         , p_accounting_coa_id       => l_adr_accounting_coa_id
84343         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84344         , p_flex_value_set_id       => l_adr_flex_value_set_id
84345         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
84346         , p_adr_type_code           => 'S'
84347         , p_component_type          => l_component_type
84348         , p_component_code          => l_component_code
84349         , p_component_type_code     => l_component_type_code
84350         , p_component_appl_id       => l_component_appl_id
84351         , p_amb_context_code        => l_amb_context_code
84352         , p_entity_code             => 'AP_INVOICES'
84353         , p_event_class_code        => 'CREDIT MEMOS'
84354         , p_side                    => 'NA'
84355         );
84356 
84357   END IF;
84358 
84359    --
84360    --
84361    END IF;
84362    --
84363    -- Bug 4922099
84364    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84365           (NVL(l_enc_upg_option, 'N') = 'O')
84366         ) AND
84367         (l_bflow_method_code = 'PRIOR_ENTRY')
84368       )
84369    THEN
84370       IF
84371       --
84372       1 = 2
84373       --
84374       THEN
84375       xla_accounting_err_pkg.build_message
84376                                     (p_appli_s_name            => 'XLA'
84377                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84378                                     ,p_token_1                 => 'LINE_NUMBER'
84379                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84380                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84381                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84382                                                                              l_component_type
84383                                                                             ,l_component_code
84384                                                                             ,l_component_type_code
84385                                                                             ,l_component_appl_id
84386                                                                             ,l_amb_context_code
84387                                                                             ,l_entity_code
84388                                                                             ,l_event_class_code
84389                                                                            )
84390                                     ,p_token_3                 => 'OWNER'
84391                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84392                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84393                                                                           ,p_lookup_code    => l_component_type_code
84394                                                                          )
84395                                     ,p_token_4                 => 'PRODUCT_NAME'
84396                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84397                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84398                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84399                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84400                                     ,p_ae_header_id            =>  NULL
84401                                        );
84402 
84403         IF (C_LEVEL_ERROR>= g_log_level) THEN
84404                  trace
84405                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84406                       ,p_level    => C_LEVEL_ERROR
84407                       ,p_module   => l_log_module);
84408         END IF;
84409       END IF;
84410    END IF;
84411    --
84412    --
84413    ------------------------------------------------------------------------------------------------
84414    -- 4219869 Business Flow
84415    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84416    -- Prior Entry.  Currently, the following code is always generated.
84420    ------------------------------------------------------------------------------------
84417    ------------------------------------------------------------------------------------------------
84418    XLA_AE_LINES_PKG.ValidateCurrentLine;
84419 
84421    -- 4219869 Business Flow
84422    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84423    ------------------------------------------------------------------------------------
84424    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84425 
84426    ----------------------------------------------------------------------------------
84427    -- 4219869 Business Flow
84428    -- Update journal entry status -- Need to generate this within IF <condition>
84429    ----------------------------------------------------------------------------------
84430    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84431          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84432          ,p_balance_type_code => l_balance_type_code
84433          );
84434 
84435    -------------------------------------------------------------------------------------------
84436    -- 4262811 - Generate the Accrual Reversal lines
84437    -------------------------------------------------------------------------------------------
84438    BEGIN
84439       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84440                               (g_array_event(p_event_id).array_value_num('header_index'));
84441       IF l_acc_rev_flag IS NULL THEN
84442          l_acc_rev_flag := 'N';
84443       END IF;
84444    EXCEPTION
84445       WHEN OTHERS THEN
84446          l_acc_rev_flag := 'N';
84447    END;
84448    --
84449    IF (l_acc_rev_flag = 'Y') THEN
84450 
84451        -- 4645092  ------------------------------------------------------------------------------
84452        -- To allow MPA report to determine if it should generate report process
84453        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84454        ------------------------------------------------------------------------------------------
84455 
84456        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84457        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84458    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84459    -- call ADRs
84460    -- Bug 4922099
84461    --
84462    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84463         (NVL(l_actual_upg_option, 'N') = 'O') OR
84464         (NVL(l_enc_upg_option, 'N') = 'O')
84465       )
84466    THEN
84467    NULL;
84468    --
84469    --
84470    
84471    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
84472      p_code_combination_id      => TO_NUMBER(C_NUM)
84473    , p_value_type_code          => NULL
84474    , p_transaction_coa_id       => null
84475    , p_accounting_coa_id        => null
84476    , p_adr_code                 => NULL
84477    , p_adr_type_code            => NULL
84478    , p_component_type           => l_component_type
84479    , p_component_code           => l_component_code
84480    , p_component_type_code      => l_component_type_code
84481    , p_component_appl_id        => l_component_appl_id
84482    , p_amb_context_code         => l_amb_context_code
84483    , p_side                     => NULL
84484    );
84485 
84486    
84487   -- initialise segments
84488   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84489   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84490   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84491   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84492   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84493   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84494   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84495   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84496   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
84497   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84498   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84499   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84500   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84501   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84502   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84503   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84504   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84505   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84506   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84507   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84508   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84509   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84510   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84511   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84512   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84516   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84513   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84514   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84515   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84517   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
84518   --
84519 
84520    --
84521 
84522 
84523    l_segment := AcctDerRule_15(
84524            p_application_id           => p_application_id
84525          , p_ae_header_id             => l_ae_header_id 
84526 , p_source_29 => p_source_29
84527          , x_transaction_coa_id       => l_adr_transaction_coa_id
84528          , x_accounting_coa_id        => l_adr_accounting_coa_id
84529          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84530          , x_flex_value_set_id        => l_adr_flex_value_set_id
84531          , x_value_type_code          => l_adr_value_type_code
84532          , x_value_combination_id     => l_adr_value_combination_id
84533          , x_value_segment_code       => l_adr_value_segment_code
84534          , p_side                     => 'NA'
84535          , p_override_seg_flag        => 'Y'
84536    );
84537 
84538    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84539 
84540       xla_ae_lines_pkg.set_segment(
84541           p_to_segment_code         => 'GL_ACCOUNT'
84542         , p_segment_value           => l_segment
84543         , p_from_segment_code       => l_adr_value_segment_code
84544         , p_from_combination_id     => l_adr_value_combination_id
84545         , p_value_type_code         => l_adr_value_type_code
84546         , p_transaction_coa_id      => l_adr_transaction_coa_id
84547         , p_accounting_coa_id       => l_adr_accounting_coa_id
84548         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84549         , p_flex_value_set_id       => l_adr_flex_value_set_id
84550         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
84551         , p_adr_type_code           => 'S'
84552         , p_component_type          => l_component_type
84553         , p_component_code          => l_component_code
84554         , p_component_type_code     => l_component_type_code
84555         , p_component_appl_id       => l_component_appl_id
84556         , p_amb_context_code        => l_amb_context_code
84557         , p_entity_code             => 'AP_INVOICES'
84558         , p_event_class_code        => 'CREDIT MEMOS'
84559         , p_side                    => 'NA'
84560         );
84561 
84562   END IF;
84563 
84564    --
84565    --
84566    END IF;
84567 
84568        --
84569        -- Update the line information that should be overwritten
84570        --
84571        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84572                                          p_header_num   => 1);
84573        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84574 
84575        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84576 
84577        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84578           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84579        END IF;
84580 
84581       --
84582       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84583       --
84584       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84585           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84586       ELSE
84587           ---------------------------------------------------------------------------------------------------
84588           -- 4262811a Switch Sign
84589           ---------------------------------------------------------------------------------------------------
84590           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84591           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84592                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84593           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84594                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84595           -- 5132302
84596           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84597                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84598 
84599       END IF;
84600 
84601       -- 4955764
84602       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84603       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84604 
84605 
84606       XLA_AE_LINES_PKG.ValidateCurrentLine;
84607       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84608 
84609       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84610                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84611                ,p_balance_type_code => l_balance_type_code);
84612 
84613    END IF;
84614 
84615    -----------------------------------------------------------------------------------------
84619 
84616    -- 4262811 Multiperiod Accounting
84617    -----------------------------------------------------------------------------------------
84618      -- No MPA option is assigned.
84620 
84621 END IF;
84622 END IF;
84623 --
84624 
84625 --
84626 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84627    trace
84628       (p_msg      => 'END of AcctLineType_158'
84629       ,p_level    => C_LEVEL_PROCEDURE
84630       ,p_module   => l_log_module);
84631 END IF;
84632 --
84633 EXCEPTION
84634   WHEN xla_exceptions_pkg.application_exception THEN
84635       RAISE;
84636   WHEN OTHERS THEN
84637        xla_exceptions_pkg.raise_message
84638            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_158');
84639 END AcctLineType_158;
84640 --
84641 
84642 ---------------------------------------
84643 --
84644 -- PRIVATE FUNCTION
84645 --         AcctLineType_159
84646 --
84647 ---------------------------------------
84648 PROCEDURE AcctLineType_159 (
84649   p_application_id        IN NUMBER
84650  ,p_event_id              IN NUMBER
84651  ,p_calculate_acctd_flag  IN VARCHAR2
84652  ,p_calculate_g_l_flag    IN VARCHAR2
84653  ,p_actual_flag           IN OUT VARCHAR2
84654  ,p_balance_type_code     OUT VARCHAR2
84655  ,p_gain_or_loss_ref      OUT VARCHAR2
84656  
84657 --Invoice Distribution Description
84658  , p_source_1            IN VARCHAR2
84659 --Automatic Offsets Value
84660  , p_source_10            IN VARCHAR2
84661  , p_source_10_meaning    IN VARCHAR2
84662 --Invoice Distribution Ledger Amount
84663  , p_source_16            IN NUMBER
84664 --Invoice Liability Account
84665  , p_source_29            IN NUMBER
84666 --Accounting Reversal Indicator
84667  , p_source_58            IN VARCHAR2
84668 --Distribution Link Type
84669  , p_source_60            IN VARCHAR2
84670 --Allocation to Main Distribution Identifier
84671  , p_source_62            IN NUMBER
84672 --Invoice Identifier
84673  , p_source_63            IN NUMBER
84674 --Invoice Distribution Identifier
84675  , p_source_69            IN NUMBER
84676 --Payables Encumbrance Upgrade Credit Account
84677  , p_source_70            IN NUMBER
84678 --Payables Encumbrance Upgrade Credit Amount
84679  , p_source_71            IN NUMBER
84680 --Invoice Currency Code
84681  , p_source_72            IN VARCHAR2
84682 --Payables Encumbrance Upgrade Credit Base Amount
84683  , p_source_73            IN NUMBER
84684 --Payables Encumbrance Upgrade Debit Account
84685  , p_source_74            IN NUMBER
84686 --Payables Encumbrance Upgrade Debit Amount
84687  , p_source_75            IN NUMBER
84688 --Payables Encumbrance Upgrade Debit Base Amount
84689  , p_source_76            IN NUMBER
84690 --Payables Encumbrance Upgrade Option
84691  , p_source_77            IN VARCHAR2
84692 --Invoice Distribution Amount
84693  , p_source_78            IN NUMBER
84694 --Deferred Accounting End Date
84695  , p_source_82            IN DATE
84696 --Deferred Accounting Option
84697  , p_source_83            IN VARCHAR2
84698 --Deferred Accounting Start Date
84699  , p_source_84            IN DATE
84700 --Override Accounted Amount Indicator
84701  , p_source_85            IN VARCHAR2
84702  , p_source_85_meaning    IN VARCHAR2
84703 --Invoice Supplier Identifier
84704  , p_source_86            IN NUMBER
84705 --Invoice Supplier Site Identifier
84706  , p_source_87            IN NUMBER
84707 --Third Party Type
84708  , p_source_88            IN VARCHAR2
84709 --Parent Reversal Identifier
84710  , p_source_89            IN NUMBER
84711 --Invoice Distribution Statistical Amount
84712  , p_source_90            IN NUMBER
84713 --Invoice Distribution Tax Line Identifier
84714  , p_source_91            IN NUMBER
84715 --Invoice Distribution Tax Distribution Identifier from Tax
84716  , p_source_92            IN NUMBER
84717 --Invoice Distribution Summary Tax Line Identifier
84718  , p_source_93            IN NUMBER
84719 --Payables Upgrade Credit Encumbrance Type Identifier
84720  , p_source_94            IN NUMBER
84721 --Payables Upgrade Debit Encumbrance Type Identifier
84722  , p_source_95            IN NUMBER
84723 --Business Flow Accounts Payable Application Identifier
84724  , p_source_96            IN NUMBER
84725 --Business Flow Invoice Distribution Type
84726  , p_source_97            IN VARCHAR2
84727 --Business Flow Invoice Entity Code
84728  , p_source_98            IN VARCHAR2
84729 --Business Flow Invoice Distribution Identifier
84730  , p_source_99            IN NUMBER
84731 --Business Flow Invoice Identifier
84732  , p_source_100            IN NUMBER
84733 --Self-Assessed Tax Flag
84734  , p_source_145            IN VARCHAR2
84735  , p_source_145_meaning    IN VARCHAR2
84736 --Invoice Exchange Date
84737  , p_source_146            IN DATE
84738 --Invoice Exchange Rate
84739  , p_source_147            IN NUMBER
84740 --Invoice Exchange Rate Type
84741  , p_source_148            IN VARCHAR2
84742 )
84743 IS
84744 
84745 l_component_type              VARCHAR2(80);
84746 l_component_code              VARCHAR2(30);
84747 l_component_type_code         VARCHAR2(1);
84748 l_component_appl_id           INTEGER;
84749 l_amb_context_code            VARCHAR2(30);
84750 l_entity_code                 VARCHAR2(30);
84751 l_event_class_code            VARCHAR2(30);
84752 l_ae_header_id                NUMBER;
84756 --
84753 l_event_type_code             VARCHAR2(30);
84754 l_line_definition_code        VARCHAR2(30);
84755 l_line_definition_owner_code  VARCHAR2(1);
84757 -- adr variables
84758 l_segment                     VARCHAR2(30);
84759 l_ccid                        NUMBER;
84760 l_adr_transaction_coa_id      NUMBER;
84761 l_adr_accounting_coa_id       NUMBER;
84762 l_adr_flexfield_segment_code  VARCHAR2(30);
84763 l_adr_flex_value_set_id       NUMBER;
84764 l_adr_value_type_code         VARCHAR2(30);
84765 l_adr_value_combination_id    NUMBER;
84766 l_adr_value_segment_code      VARCHAR2(30);
84767 
84768 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84769 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84770 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84771 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84772 
84773 -- 4262811 Variables ------------------------------------------------------------------------------------------
84774 l_entered_amt_idx             NUMBER;
84775 l_accted_amt_idx              NUMBER;
84776 l_acc_rev_flag                VARCHAR2(1);
84777 l_accrual_line_num            NUMBER;
84778 l_tmp_amt                     NUMBER;
84779 l_acc_rev_natural_side_code   VARCHAR2(1);
84780 
84781 l_num_entries                 NUMBER;
84782 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84783 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84784 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84785 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84786 l_recog_line_1                NUMBER;
84787 l_recog_line_2                NUMBER;
84788 
84789 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84790 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84791 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84792 
84793 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84794 
84795 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84796 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84797 
84798 ---------------------------------------------------------------------------------------------------------------
84799 
84800 
84801 --
84802 -- bulk performance
84803 --
84804 l_balance_type_code           VARCHAR2(1);
84805 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84806 l_log_module                  VARCHAR2(240);
84807 
84808 --
84809 -- Upgrade strategy
84810 --
84811 l_actual_upg_option           VARCHAR2(1);
84812 l_enc_upg_option           VARCHAR2(1);
84813 
84814 --
84815 BEGIN
84816 --
84817 IF g_log_enabled THEN
84818       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
84819 END IF;
84820 --
84821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84822 
84823       trace
84824          (p_msg      => 'BEGIN of AcctLineType_159'
84825          ,p_level    => C_LEVEL_PROCEDURE
84826          ,p_module   => l_log_module);
84827 
84828 END IF;
84829 --
84830 l_component_type             := 'AMB_JLT';
84831 l_component_code             := 'AP_LIAB_CM_AOS_BS';
84832 l_component_type_code        := 'S';
84833 l_component_appl_id          :=  200;
84834 l_amb_context_code           := 'DEFAULT';
84835 l_entity_code                := 'AP_INVOICES';
84836 l_event_class_code           := 'CREDIT MEMOS';
84837 l_event_type_code            := 'CREDIT MEMOS_ALL';
84838 l_line_definition_owner_code := 'S';
84839 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
84840 --
84841 l_balance_type_code          := 'A';
84842 l_segment                     := NULL;
84843 l_ccid                        := NULL;
84844 l_adr_transaction_coa_id      := NULL;
84845 l_adr_accounting_coa_id       := NULL;
84846 l_adr_flexfield_segment_code  := NULL;
84847 l_adr_flex_value_set_id       := NULL;
84848 l_adr_value_type_code         := NULL;
84849 l_adr_value_combination_id    := NULL;
84850 l_adr_value_segment_code      := NULL;
84851 
84852 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
84853 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
84854 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84855 l_budgetary_control_flag     := 'N';
84856 
84857 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84858 l_bflow_applied_to_amt       := NULL; -- 5132302
84859 l_entered_amt_idx            := NULL;          -- 4262811
84860 l_accted_amt_idx             := NULL;          -- 4262811
84861 l_acc_rev_flag               := NULL;          -- 4262811
84862 l_accrual_line_num           := NULL;          -- 4262811
84863 l_tmp_amt                    := NULL;          -- 4262811
84864 --
84865  
84866 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84867     l_balance_type_code <> 'B' THEN
84868 IF NVL(p_source_10,'
84869 ') =  'BALANCING_SEGMENT' AND 
84870 NVL(p_source_145,'
84871 ') <>  'Y'
84872  THEN 
84873 
84874    --
84875    XLA_AE_LINES_PKG.SetNewLine;
84876 
84877    p_balance_type_code          := l_balance_type_code;
84878    -- set the flag so later we will know whether the gain loss line needs to be created
84879    
84883 
84880    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84881      p_actual_flag :='A';
84882    END IF;
84884    --
84885    -- bulk performance
84886    --
84887    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84888                                       p_header_num   => 0); -- 4262811
84889    --
84890    -- set accounting line options
84891    --
84892    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84893            p_natural_side_code          => 'C'
84894          , p_gain_or_loss_flag          => 'N'
84895          , p_gl_transfer_mode_code      => 'S'
84896          , p_acct_entry_type_code       => 'A'
84897          , p_switch_side_flag           => 'Y'
84898          , p_merge_duplicate_code       => 'A'
84899          );
84900    --
84901    l_acc_rev_natural_side_code := 'D';  -- 4262811
84902    -- 
84903    --
84904    -- set accounting line type info
84905    --
84906    xla_ae_lines_pkg.SetAcctLineType
84907       (p_component_type             => l_component_type
84908       ,p_event_type_code            => l_event_type_code
84909       ,p_line_definition_owner_code => l_line_definition_owner_code
84910       ,p_line_definition_code       => l_line_definition_code
84911       ,p_accounting_line_code       => l_component_code
84912       ,p_accounting_line_type_code  => l_component_type_code
84913       ,p_accounting_line_appl_id    => l_component_appl_id
84914       ,p_amb_context_code           => l_amb_context_code
84915       ,p_entity_code                => l_entity_code
84916       ,p_event_class_code           => l_event_class_code);
84917    --
84918    -- set accounting class
84919    --
84920    xla_ae_lines_pkg.SetAcctClass(
84921            p_accounting_class_code  => 'LIABILITY'
84922          , p_ae_header_id           => l_ae_header_id
84923          );
84924 
84925    --
84926    -- set rounding class
84927    --
84928    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84929                       'LIABILITY';
84930 
84931    --
84932    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84933    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84934    --
84935    -- bulk performance
84936    --
84937    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84938 
84939    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84940       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84941 
84942    -- 4955764
84943    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84944       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84945 
84946    -- 4458381 Public Sector Enh
84947    
84948    --
84949    -- set accounting attributes for the line type
84950    --
84951    l_entered_amt_idx := 23;
84952    l_accted_amt_idx  := 28;
84953    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84954    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84955    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
84956    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84957    l_rec_acct_attrs.array_num_value(2)  := 
84958 xla_ae_sources_pkg.GetSystemSourceNum(
84959    p_source_code           => 'XLA_EVENT_APPL_ID'
84960  , p_source_type_code      => 'Y'
84961  , p_source_application_id =>  602
84962 );
84963    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84964    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
84965    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84966    l_rec_acct_attrs.array_char_value(4)  := 
84967 xla_ae_sources_pkg.GetSystemSourceChar(
84968    p_source_code           => 'XLA_ENTITY_CODE'
84969  , p_source_type_code      => 'Y'
84970  , p_source_application_id =>  602
84971 );
84972    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84973    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
84974    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84975    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
84976    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84977    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
84978    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84979    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
84980    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84981    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
84982    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84983    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
84984    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84985    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
84986    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84987    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
84988    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84989    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
84990    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
84991    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
84992    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
84993    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
84997    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
84994    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
84995    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
84996    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
84998    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
84999    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
85000    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
85001    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
85002    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
85003    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
85004    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
85005    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
85006    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
85007    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
85008    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
85009    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
85010    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
85011    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
85012    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
85013    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
85014    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
85015    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
85016    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
85017    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
85018    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
85019    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
85020    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
85021    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
85022    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
85023    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
85024    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
85025    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
85026    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
85027    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
85028    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
85029    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
85030    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
85031    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
85032    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
85033    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
85034    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
85035    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
85036    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
85037    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
85038    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
85039    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
85040    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
85041    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
85042    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
85043    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
85044    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
85045    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
85046    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
85047    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
85048    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
85049    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
85050 
85051    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85052    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85053 
85054    ---------------------------------------------------------------------------------------------------------------
85055    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85056    ---------------------------------------------------------------------------------------------------------------
85057    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85058 
85059    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85060    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85061 
85062    IF xla_accounting_cache_pkg.GetValueChar
85063          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85064          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85065    AND l_bflow_method_code = 'PRIOR_ENTRY'
85066 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85067    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85068          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85069        )
85070    THEN
85071          xla_ae_lines_pkg.BflowUpgEntry
85072            (p_business_method_code    => l_bflow_method_code
85073            ,p_business_class_code     => l_bflow_class_code
85074            ,p_balance_type            => l_balance_type_code);
85075    ELSE
85076       NULL;
85077 XLA_AE_LINES_PKG.business_flow_validation(
85078                                 p_business_method_code     => l_bflow_method_code
85079                                ,p_business_class_code      => l_bflow_class_code
85083    --
85080                                ,p_inherit_description_flag => l_inherit_desc_flag);
85081    END IF;
85082 
85084    -- call analytical criteria
85085    --
85086    
85087    --
85088    -- call description
85089    --
85090    
85091 xla_ae_lines_pkg.SetLineDescription(
85092    p_ae_header_id => l_ae_header_id
85093   ,p_description  => Description_2 (
85094      p_application_id         => p_application_id
85095    , p_ae_header_id           => l_ae_header_id 
85096 , p_source_1 => p_source_1
85097    )
85098 );
85099 
85100 
85101    --
85102    -- call ADRs
85103    -- Bug 4922099
85104    --
85105    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85106         (NVL(l_actual_upg_option, 'N') = 'O') OR
85107         (NVL(l_enc_upg_option, 'N') = 'O')
85108       )
85109    THEN
85110    NULL;
85111    --
85112    --
85113    
85114   l_ccid := AcctDerRule_36(
85115            p_application_id           => p_application_id
85116          , p_ae_header_id             => l_ae_header_id 
85117 , p_source_29 => p_source_29
85118          , x_transaction_coa_id       => l_adr_transaction_coa_id
85119          , x_accounting_coa_id        => l_adr_accounting_coa_id
85120          , x_value_type_code          => l_adr_value_type_code
85121          , p_side                     => 'NA'
85122    );
85123 
85124    xla_ae_lines_pkg.set_ccid(
85125     p_code_combination_id          => l_ccid
85126   , p_value_type_code              => l_adr_value_type_code
85127   , p_transaction_coa_id           => l_adr_transaction_coa_id
85128   , p_accounting_coa_id            => l_adr_accounting_coa_id
85129   , p_adr_code                     => 'AP_LIAB'
85130   , p_adr_type_code                => 'S'
85131   , p_component_type               => l_component_type
85132   , p_component_code               => l_component_code
85133   , p_component_type_code          => l_component_type_code
85134   , p_component_appl_id            => l_component_appl_id
85135   , p_amb_context_code             => l_amb_context_code
85136   , p_side                         => 'NA'
85137   );
85138 
85139 
85140    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
85141      p_to_segment_code         => 'GL_BALANCING'
85142    , p_segment_value           => C_CHAR
85143    , p_from_segment_code       => NULL
85144    , p_from_combination_id     => NULL
85145    , p_value_type_code         => NULL
85146    , p_transaction_coa_id      => null
85147    , p_accounting_coa_id       => null
85148    , p_flexfield_segment_code  => NULL
85149    , p_flex_value_set_id       => NULL
85150    , p_adr_code                => NULL
85151    , p_adr_type_code           => NULL
85152    , p_component_type          => l_component_type
85153    , p_component_code          => l_component_code
85154    , p_component_type_code     => l_component_type_code
85155    , p_component_appl_id       => l_component_appl_id
85156    , p_amb_context_code        => l_amb_context_code
85157    , p_entity_code             => 'AP_INVOICES'
85158    , p_event_class_code        => 'CREDIT MEMOS'
85159    , p_side                    => 'NA'
85160    );
85161    --
85162 
85163 
85164    --
85165    --
85166    END IF;
85167    --
85168    -- Bug 4922099
85169    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85170           (NVL(l_enc_upg_option, 'N') = 'O')
85171         ) AND
85172         (l_bflow_method_code = 'PRIOR_ENTRY')
85173       )
85174    THEN
85175       IF
85176       --
85177       1 = 2
85178       --
85179       THEN
85180       xla_accounting_err_pkg.build_message
85181                                     (p_appli_s_name            => 'XLA'
85182                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85183                                     ,p_token_1                 => 'LINE_NUMBER'
85184                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85185                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85186                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85187                                                                              l_component_type
85188                                                                             ,l_component_code
85189                                                                             ,l_component_type_code
85190                                                                             ,l_component_appl_id
85191                                                                             ,l_amb_context_code
85192                                                                             ,l_entity_code
85193                                                                             ,l_event_class_code
85194                                                                            )
85195                                     ,p_token_3                 => 'OWNER'
85196                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85197                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85198                                                                           ,p_lookup_code    => l_component_type_code
85199                                                                          )
85200                                     ,p_token_4                 => 'PRODUCT_NAME'
85204                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85201                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85202                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85203                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85205                                     ,p_ae_header_id            =>  NULL
85206                                        );
85207 
85208         IF (C_LEVEL_ERROR>= g_log_level) THEN
85209                  trace
85210                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85211                       ,p_level    => C_LEVEL_ERROR
85212                       ,p_module   => l_log_module);
85213         END IF;
85214       END IF;
85215    END IF;
85216    --
85217    --
85218    ------------------------------------------------------------------------------------------------
85219    -- 4219869 Business Flow
85220    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85221    -- Prior Entry.  Currently, the following code is always generated.
85222    ------------------------------------------------------------------------------------------------
85223    XLA_AE_LINES_PKG.ValidateCurrentLine;
85224 
85225    ------------------------------------------------------------------------------------
85226    -- 4219869 Business Flow
85227    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85228    ------------------------------------------------------------------------------------
85229    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85230 
85231    ----------------------------------------------------------------------------------
85232    -- 4219869 Business Flow
85233    -- Update journal entry status -- Need to generate this within IF <condition>
85234    ----------------------------------------------------------------------------------
85235    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85236          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85237          ,p_balance_type_code => l_balance_type_code
85238          );
85239 
85240    -------------------------------------------------------------------------------------------
85241    -- 4262811 - Generate the Accrual Reversal lines
85242    -------------------------------------------------------------------------------------------
85243    BEGIN
85244       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85245                               (g_array_event(p_event_id).array_value_num('header_index'));
85246       IF l_acc_rev_flag IS NULL THEN
85247          l_acc_rev_flag := 'N';
85248       END IF;
85249    EXCEPTION
85250       WHEN OTHERS THEN
85251          l_acc_rev_flag := 'N';
85252    END;
85253    --
85254    IF (l_acc_rev_flag = 'Y') THEN
85255 
85256        -- 4645092  ------------------------------------------------------------------------------
85257        -- To allow MPA report to determine if it should generate report process
85258        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85259        ------------------------------------------------------------------------------------------
85260 
85261        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85262        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85263    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85264    -- call ADRs
85265    -- Bug 4922099
85266    --
85267    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85268         (NVL(l_actual_upg_option, 'N') = 'O') OR
85269         (NVL(l_enc_upg_option, 'N') = 'O')
85270       )
85271    THEN
85272    NULL;
85273    --
85274    --
85275    
85276   l_ccid := AcctDerRule_36(
85277            p_application_id           => p_application_id
85278          , p_ae_header_id             => l_ae_header_id 
85279 , p_source_29 => p_source_29
85280          , x_transaction_coa_id       => l_adr_transaction_coa_id
85281          , x_accounting_coa_id        => l_adr_accounting_coa_id
85282          , x_value_type_code          => l_adr_value_type_code
85283          , p_side                     => 'NA'
85284    );
85285 
85286    xla_ae_lines_pkg.set_ccid(
85287     p_code_combination_id          => l_ccid
85288   , p_value_type_code              => l_adr_value_type_code
85289   , p_transaction_coa_id           => l_adr_transaction_coa_id
85290   , p_accounting_coa_id            => l_adr_accounting_coa_id
85291   , p_adr_code                     => 'AP_LIAB'
85292   , p_adr_type_code                => 'S'
85293   , p_component_type               => l_component_type
85294   , p_component_code               => l_component_code
85295   , p_component_type_code          => l_component_type_code
85296   , p_component_appl_id            => l_component_appl_id
85297   , p_amb_context_code             => l_amb_context_code
85298   , p_side                         => 'NA'
85299   );
85300 
85301 
85302    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
85303      p_to_segment_code         => 'GL_BALANCING'
85304    , p_segment_value           => C_CHAR
85305    , p_from_segment_code       => NULL
85306    , p_from_combination_id     => NULL
85307    , p_value_type_code         => NULL
85308    , p_transaction_coa_id      => null
85309    , p_accounting_coa_id       => null
85313    , p_adr_type_code           => NULL
85310    , p_flexfield_segment_code  => NULL
85311    , p_flex_value_set_id       => NULL
85312    , p_adr_code                => NULL
85314    , p_component_type          => l_component_type
85315    , p_component_code          => l_component_code
85316    , p_component_type_code     => l_component_type_code
85317    , p_component_appl_id       => l_component_appl_id
85318    , p_amb_context_code        => l_amb_context_code
85319    , p_entity_code             => 'AP_INVOICES'
85320    , p_event_class_code        => 'CREDIT MEMOS'
85321    , p_side                    => 'NA'
85322    );
85323    --
85324 
85325 
85326    --
85327    --
85328    END IF;
85329 
85330        --
85331        -- Update the line information that should be overwritten
85332        --
85333        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85334                                          p_header_num   => 1);
85335        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85336 
85337        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85338 
85339        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85340           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85341        END IF;
85342 
85343       --
85344       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85345       --
85346       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85347           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85348       ELSE
85349           ---------------------------------------------------------------------------------------------------
85350           -- 4262811a Switch Sign
85351           ---------------------------------------------------------------------------------------------------
85352           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85353           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85354                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85355           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85356                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85357           -- 5132302
85358           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85359                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85360 
85361       END IF;
85362 
85363       -- 4955764
85364       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85365       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85366 
85367 
85368       XLA_AE_LINES_PKG.ValidateCurrentLine;
85369       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85370 
85371       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85372                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85373                ,p_balance_type_code => l_balance_type_code);
85374 
85375    END IF;
85376 
85377    -----------------------------------------------------------------------------------------
85378    -- 4262811 Multiperiod Accounting
85379    -----------------------------------------------------------------------------------------
85380      -- No MPA option is assigned.
85381 
85382 
85383 END IF;
85384 END IF;
85385 --
85386 
85387 --
85388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85389    trace
85390       (p_msg      => 'END of AcctLineType_159'
85391       ,p_level    => C_LEVEL_PROCEDURE
85392       ,p_module   => l_log_module);
85393 END IF;
85394 --
85395 EXCEPTION
85396   WHEN xla_exceptions_pkg.application_exception THEN
85397       RAISE;
85398   WHEN OTHERS THEN
85399        xla_exceptions_pkg.raise_message
85400            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_159');
85401 END AcctLineType_159;
85402 --
85403 
85404 ---------------------------------------
85405 --
85406 -- PRIVATE FUNCTION
85407 --         AcctLineType_160
85408 --
85409 ---------------------------------------
85410 PROCEDURE AcctLineType_160 (
85411   p_application_id        IN NUMBER
85412  ,p_event_id              IN NUMBER
85413  ,p_calculate_acctd_flag  IN VARCHAR2
85414  ,p_calculate_g_l_flag    IN VARCHAR2
85415  ,p_actual_flag           IN OUT VARCHAR2
85416  ,p_balance_type_code     OUT VARCHAR2
85417  ,p_gain_or_loss_ref      OUT VARCHAR2
85418  
85419 --Invoice Distribution Description
85420  , p_source_1            IN VARCHAR2
85421 --Automatic Offsets Value
85422  , p_source_10            IN VARCHAR2
85423  , p_source_10_meaning    IN VARCHAR2
85424 --Invoice Distribution Ledger Amount
85425  , p_source_16            IN NUMBER
85426 --Invoice Liability Account
85427  , p_source_29            IN NUMBER
85428 --Accounting Reversal Indicator
85429  , p_source_58            IN VARCHAR2
85430 --Distribution Link Type
85431  , p_source_60            IN VARCHAR2
85432 --Allocation to Main Distribution Identifier
85436 --Invoice Distribution Identifier
85433  , p_source_62            IN NUMBER
85434 --Invoice Identifier
85435  , p_source_63            IN NUMBER
85437  , p_source_69            IN NUMBER
85438 --Payables Encumbrance Upgrade Credit Account
85439  , p_source_70            IN NUMBER
85440 --Payables Encumbrance Upgrade Credit Amount
85441  , p_source_71            IN NUMBER
85442 --Invoice Currency Code
85443  , p_source_72            IN VARCHAR2
85444 --Payables Encumbrance Upgrade Credit Base Amount
85445  , p_source_73            IN NUMBER
85446 --Payables Encumbrance Upgrade Debit Account
85447  , p_source_74            IN NUMBER
85448 --Payables Encumbrance Upgrade Debit Amount
85449  , p_source_75            IN NUMBER
85450 --Payables Encumbrance Upgrade Debit Base Amount
85451  , p_source_76            IN NUMBER
85452 --Payables Encumbrance Upgrade Option
85453  , p_source_77            IN VARCHAR2
85454 --Invoice Distribution Amount
85455  , p_source_78            IN NUMBER
85456 --Deferred Accounting End Date
85457  , p_source_82            IN DATE
85458 --Deferred Accounting Option
85459  , p_source_83            IN VARCHAR2
85460 --Deferred Accounting Start Date
85461  , p_source_84            IN DATE
85462 --Override Accounted Amount Indicator
85463  , p_source_85            IN VARCHAR2
85464  , p_source_85_meaning    IN VARCHAR2
85465 --Invoice Supplier Identifier
85466  , p_source_86            IN NUMBER
85467 --Invoice Supplier Site Identifier
85468  , p_source_87            IN NUMBER
85469 --Third Party Type
85470  , p_source_88            IN VARCHAR2
85471 --Parent Reversal Identifier
85472  , p_source_89            IN NUMBER
85473 --Invoice Distribution Tax Line Identifier
85474  , p_source_91            IN NUMBER
85475 --Invoice Distribution Tax Distribution Identifier from Tax
85476  , p_source_92            IN NUMBER
85477 --Invoice Distribution Summary Tax Line Identifier
85478  , p_source_93            IN NUMBER
85479 --Payables Upgrade Credit Encumbrance Type Identifier
85480  , p_source_94            IN NUMBER
85481 --Payables Upgrade Debit Encumbrance Type Identifier
85482  , p_source_95            IN NUMBER
85483 --Business Flow Accounts Payable Application Identifier
85484  , p_source_96            IN NUMBER
85485 --Business Flow Invoice Distribution Type
85486  , p_source_97            IN VARCHAR2
85487 --Business Flow Invoice Entity Code
85488  , p_source_98            IN VARCHAR2
85489 --Business Flow Invoice Distribution Identifier
85490  , p_source_99            IN NUMBER
85491 --Business Flow Invoice Identifier
85492  , p_source_100            IN NUMBER
85493 --Self-Assessed Tax Flag
85494  , p_source_145            IN VARCHAR2
85495  , p_source_145_meaning    IN VARCHAR2
85496 --Invoice Exchange Date
85497  , p_source_146            IN DATE
85498 --Invoice Exchange Rate
85499  , p_source_147            IN NUMBER
85500 --Invoice Exchange Rate Type
85501  , p_source_148            IN VARCHAR2
85502 )
85503 IS
85504 
85505 l_component_type              VARCHAR2(80);
85506 l_component_code              VARCHAR2(30);
85507 l_component_type_code         VARCHAR2(1);
85508 l_component_appl_id           INTEGER;
85509 l_amb_context_code            VARCHAR2(30);
85510 l_entity_code                 VARCHAR2(30);
85511 l_event_class_code            VARCHAR2(30);
85512 l_ae_header_id                NUMBER;
85513 l_event_type_code             VARCHAR2(30);
85514 l_line_definition_code        VARCHAR2(30);
85515 l_line_definition_owner_code  VARCHAR2(1);
85516 --
85517 -- adr variables
85518 l_segment                     VARCHAR2(30);
85519 l_ccid                        NUMBER;
85520 l_adr_transaction_coa_id      NUMBER;
85521 l_adr_accounting_coa_id       NUMBER;
85522 l_adr_flexfield_segment_code  VARCHAR2(30);
85523 l_adr_flex_value_set_id       NUMBER;
85524 l_adr_value_type_code         VARCHAR2(30);
85525 l_adr_value_combination_id    NUMBER;
85526 l_adr_value_segment_code      VARCHAR2(30);
85527 
85528 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85529 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85530 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85531 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85532 
85533 -- 4262811 Variables ------------------------------------------------------------------------------------------
85534 l_entered_amt_idx             NUMBER;
85535 l_accted_amt_idx              NUMBER;
85536 l_acc_rev_flag                VARCHAR2(1);
85537 l_accrual_line_num            NUMBER;
85538 l_tmp_amt                     NUMBER;
85539 l_acc_rev_natural_side_code   VARCHAR2(1);
85540 
85541 l_num_entries                 NUMBER;
85542 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85543 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85544 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85545 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85546 l_recog_line_1                NUMBER;
85547 l_recog_line_2                NUMBER;
85548 
85549 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85550 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85551 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85552 
85553 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85554 
85558 ---------------------------------------------------------------------------------------------------------------
85555 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85556 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85557 
85559 
85560 
85561 --
85562 -- bulk performance
85563 --
85564 l_balance_type_code           VARCHAR2(1);
85565 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85566 l_log_module                  VARCHAR2(240);
85567 
85568 --
85569 -- Upgrade strategy
85570 --
85571 l_actual_upg_option           VARCHAR2(1);
85572 l_enc_upg_option           VARCHAR2(1);
85573 
85574 --
85575 BEGIN
85576 --
85577 IF g_log_enabled THEN
85578       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
85579 END IF;
85580 --
85581 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85582 
85583       trace
85584          (p_msg      => 'BEGIN of AcctLineType_160'
85585          ,p_level    => C_LEVEL_PROCEDURE
85586          ,p_module   => l_log_module);
85587 
85588 END IF;
85589 --
85590 l_component_type             := 'AMB_JLT';
85591 l_component_code             := 'AP_LIAB_DM';
85592 l_component_type_code        := 'S';
85593 l_component_appl_id          :=  200;
85594 l_amb_context_code           := 'DEFAULT';
85595 l_entity_code                := 'AP_INVOICES';
85596 l_event_class_code           := 'DEBIT MEMOS';
85597 l_event_type_code            := 'DEBIT MEMOS_ALL';
85598 l_line_definition_owner_code := 'S';
85599 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
85600 --
85601 l_balance_type_code          := 'A';
85602 l_segment                     := NULL;
85603 l_ccid                        := NULL;
85604 l_adr_transaction_coa_id      := NULL;
85605 l_adr_accounting_coa_id       := NULL;
85606 l_adr_flexfield_segment_code  := NULL;
85607 l_adr_flex_value_set_id       := NULL;
85608 l_adr_value_type_code         := NULL;
85609 l_adr_value_combination_id    := NULL;
85610 l_adr_value_segment_code      := NULL;
85611 
85612 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
85613 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
85614 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85615 l_budgetary_control_flag     := 'N';
85616 
85617 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85618 l_bflow_applied_to_amt       := NULL; -- 5132302
85619 l_entered_amt_idx            := NULL;          -- 4262811
85620 l_accted_amt_idx             := NULL;          -- 4262811
85621 l_acc_rev_flag               := NULL;          -- 4262811
85622 l_accrual_line_num           := NULL;          -- 4262811
85623 l_tmp_amt                    := NULL;          -- 4262811
85624 --
85625  
85626 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85627     l_balance_type_code <> 'B' THEN
85628 IF (NVL(p_source_10,'
85629 ') <>  'BALANCING_SEGMENT' AND 
85630 NVL(p_source_10,'
85631 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
85632 NVL(p_source_145,'
85633 ') <>  'Y'
85634  THEN 
85635 
85636    --
85637    XLA_AE_LINES_PKG.SetNewLine;
85638 
85639    p_balance_type_code          := l_balance_type_code;
85640    -- set the flag so later we will know whether the gain loss line needs to be created
85641    
85642    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85643      p_actual_flag :='A';
85644    END IF;
85645 
85646    --
85647    -- bulk performance
85648    --
85649    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85650                                       p_header_num   => 0); -- 4262811
85651    --
85652    -- set accounting line options
85653    --
85654    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85655            p_natural_side_code          => 'C'
85656          , p_gain_or_loss_flag          => 'N'
85657          , p_gl_transfer_mode_code      => 'S'
85658          , p_acct_entry_type_code       => 'A'
85659          , p_switch_side_flag           => 'Y'
85660          , p_merge_duplicate_code       => 'A'
85661          );
85662    --
85663    l_acc_rev_natural_side_code := 'D';  -- 4262811
85664    -- 
85665    --
85666    -- set accounting line type info
85667    --
85668    xla_ae_lines_pkg.SetAcctLineType
85669       (p_component_type             => l_component_type
85670       ,p_event_type_code            => l_event_type_code
85671       ,p_line_definition_owner_code => l_line_definition_owner_code
85672       ,p_line_definition_code       => l_line_definition_code
85673       ,p_accounting_line_code       => l_component_code
85674       ,p_accounting_line_type_code  => l_component_type_code
85675       ,p_accounting_line_appl_id    => l_component_appl_id
85676       ,p_amb_context_code           => l_amb_context_code
85677       ,p_entity_code                => l_entity_code
85678       ,p_event_class_code           => l_event_class_code);
85679    --
85680    -- set accounting class
85681    --
85682    xla_ae_lines_pkg.SetAcctClass(
85683            p_accounting_class_code  => 'LIABILITY'
85684          , p_ae_header_id           => l_ae_header_id
85685          );
85686 
85687    --
85688    -- set rounding class
85689    --
85690    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85691                       'LIABILITY';
85692 
85693    --
85697    -- bulk performance
85694    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85695    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85696    --
85698    --
85699    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85700 
85701    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85702       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85703 
85704    -- 4955764
85705    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85706       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85707 
85708    -- 4458381 Public Sector Enh
85709    
85710    --
85711    -- set accounting attributes for the line type
85712    --
85713    l_entered_amt_idx := 23;
85714    l_accted_amt_idx  := 28;
85715    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85716    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85717    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
85718    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85719    l_rec_acct_attrs.array_num_value(2)  := 
85720 xla_ae_sources_pkg.GetSystemSourceNum(
85721    p_source_code           => 'XLA_EVENT_APPL_ID'
85722  , p_source_type_code      => 'Y'
85723  , p_source_application_id =>  602
85724 );
85725    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85726    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
85727    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85728    l_rec_acct_attrs.array_char_value(4)  := 
85729 xla_ae_sources_pkg.GetSystemSourceChar(
85730    p_source_code           => 'XLA_ENTITY_CODE'
85731  , p_source_type_code      => 'Y'
85732  , p_source_application_id =>  602
85733 );
85734    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85735    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
85736    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85737    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
85738    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85739    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
85740    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85741    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
85742    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85743    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
85744    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85745    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
85746    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85747    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
85748    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
85749    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
85750    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
85751    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
85752    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
85753    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
85754    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
85755    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
85756    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
85757    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
85758    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
85759    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
85760    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
85761    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
85762    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
85763    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
85764    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
85765    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
85766    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
85767    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
85768    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
85769    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
85770    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
85771    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
85772    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
85773    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
85774    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
85775    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
85776    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
85777    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
85778    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
85779    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
85780    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
85781    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
85782    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
85783    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
85784    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
85785    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
85786    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
85787    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
85791    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
85788    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
85789    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
85790    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
85792    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
85793    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
85794    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
85795    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
85796    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
85797    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
85798    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
85799    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
85800    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
85801    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
85802    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
85803    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
85804    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
85805    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
85806    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
85807    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
85808    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
85809    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
85810 
85811    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85812    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85813 
85814    ---------------------------------------------------------------------------------------------------------------
85815    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85816    ---------------------------------------------------------------------------------------------------------------
85817    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85818 
85819    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85820    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85821 
85822    IF xla_accounting_cache_pkg.GetValueChar
85823          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85824          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85825    AND l_bflow_method_code = 'PRIOR_ENTRY'
85826 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85827    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85828          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85829        )
85830    THEN
85831          xla_ae_lines_pkg.BflowUpgEntry
85832            (p_business_method_code    => l_bflow_method_code
85833            ,p_business_class_code     => l_bflow_class_code
85834            ,p_balance_type            => l_balance_type_code);
85835    ELSE
85836       NULL;
85837 -- No business flow processing for business flow method of NONE.
85838    END IF;
85839 
85840    --
85841    -- call analytical criteria
85842    --
85843    
85844    --
85845    -- call description
85846    --
85847    
85848 xla_ae_lines_pkg.SetLineDescription(
85849    p_ae_header_id => l_ae_header_id
85850   ,p_description  => Description_2 (
85851      p_application_id         => p_application_id
85852    , p_ae_header_id           => l_ae_header_id 
85853 , p_source_1 => p_source_1
85854    )
85855 );
85856 
85857 
85858    --
85859    -- call ADRs
85860    -- Bug 4922099
85861    --
85862    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85863         (NVL(l_actual_upg_option, 'N') = 'O') OR
85864         (NVL(l_enc_upg_option, 'N') = 'O')
85865       )
85866    THEN
85867    NULL;
85868    --
85869    --
85870    
85871   l_ccid := AcctDerRule_36(
85872            p_application_id           => p_application_id
85873          , p_ae_header_id             => l_ae_header_id 
85874 , p_source_29 => p_source_29
85875          , x_transaction_coa_id       => l_adr_transaction_coa_id
85876          , x_accounting_coa_id        => l_adr_accounting_coa_id
85877          , x_value_type_code          => l_adr_value_type_code
85878          , p_side                     => 'NA'
85879    );
85880 
85881    xla_ae_lines_pkg.set_ccid(
85882     p_code_combination_id          => l_ccid
85883   , p_value_type_code              => l_adr_value_type_code
85884   , p_transaction_coa_id           => l_adr_transaction_coa_id
85885   , p_accounting_coa_id            => l_adr_accounting_coa_id
85886   , p_adr_code                     => 'AP_LIAB'
85887   , p_adr_type_code                => 'S'
85888   , p_component_type               => l_component_type
85889   , p_component_code               => l_component_code
85890   , p_component_type_code          => l_component_type_code
85891   , p_component_appl_id            => l_component_appl_id
85892   , p_amb_context_code             => l_amb_context_code
85893   , p_side                         => 'NA'
85894   );
85895 
85896 
85897    --
85898    --
85899    END IF;
85900    --
85901    -- Bug 4922099
85902    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85903           (NVL(l_enc_upg_option, 'N') = 'O')
85904         ) AND
85905         (l_bflow_method_code = 'PRIOR_ENTRY')
85906       )
85907    THEN
85908       IF
85912       THEN
85909       --
85910       1 = 2
85911       --
85913       xla_accounting_err_pkg.build_message
85914                                     (p_appli_s_name            => 'XLA'
85915                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85916                                     ,p_token_1                 => 'LINE_NUMBER'
85917                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85918                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85919                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85920                                                                              l_component_type
85921                                                                             ,l_component_code
85922                                                                             ,l_component_type_code
85923                                                                             ,l_component_appl_id
85924                                                                             ,l_amb_context_code
85925                                                                             ,l_entity_code
85926                                                                             ,l_event_class_code
85927                                                                            )
85928                                     ,p_token_3                 => 'OWNER'
85929                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85930                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85931                                                                           ,p_lookup_code    => l_component_type_code
85932                                                                          )
85933                                     ,p_token_4                 => 'PRODUCT_NAME'
85934                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85935                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85936                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85937                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85938                                     ,p_ae_header_id            =>  NULL
85939                                        );
85940 
85941         IF (C_LEVEL_ERROR>= g_log_level) THEN
85942                  trace
85943                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85944                       ,p_level    => C_LEVEL_ERROR
85945                       ,p_module   => l_log_module);
85946         END IF;
85947       END IF;
85948    END IF;
85949    --
85950    --
85951    ------------------------------------------------------------------------------------------------
85952    -- 4219869 Business Flow
85953    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85954    -- Prior Entry.  Currently, the following code is always generated.
85955    ------------------------------------------------------------------------------------------------
85956    XLA_AE_LINES_PKG.ValidateCurrentLine;
85957 
85958    ------------------------------------------------------------------------------------
85959    -- 4219869 Business Flow
85960    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85961    ------------------------------------------------------------------------------------
85962    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85963 
85964    ----------------------------------------------------------------------------------
85965    -- 4219869 Business Flow
85966    -- Update journal entry status -- Need to generate this within IF <condition>
85967    ----------------------------------------------------------------------------------
85968    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85969          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85970          ,p_balance_type_code => l_balance_type_code
85971          );
85972 
85973    -------------------------------------------------------------------------------------------
85974    -- 4262811 - Generate the Accrual Reversal lines
85975    -------------------------------------------------------------------------------------------
85976    BEGIN
85977       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85978                               (g_array_event(p_event_id).array_value_num('header_index'));
85979       IF l_acc_rev_flag IS NULL THEN
85980          l_acc_rev_flag := 'N';
85981       END IF;
85982    EXCEPTION
85983       WHEN OTHERS THEN
85984          l_acc_rev_flag := 'N';
85985    END;
85986    --
85987    IF (l_acc_rev_flag = 'Y') THEN
85988 
85989        -- 4645092  ------------------------------------------------------------------------------
85990        -- To allow MPA report to determine if it should generate report process
85991        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85992        ------------------------------------------------------------------------------------------
85993 
85994        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85995        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85996    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85997    -- call ADRs
85998    -- Bug 4922099
85999    --
86003       )
86000    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86001         (NVL(l_actual_upg_option, 'N') = 'O') OR
86002         (NVL(l_enc_upg_option, 'N') = 'O')
86004    THEN
86005    NULL;
86006    --
86007    --
86008    
86009   l_ccid := AcctDerRule_36(
86010            p_application_id           => p_application_id
86011          , p_ae_header_id             => l_ae_header_id 
86012 , p_source_29 => p_source_29
86013          , x_transaction_coa_id       => l_adr_transaction_coa_id
86014          , x_accounting_coa_id        => l_adr_accounting_coa_id
86015          , x_value_type_code          => l_adr_value_type_code
86016          , p_side                     => 'NA'
86017    );
86018 
86019    xla_ae_lines_pkg.set_ccid(
86020     p_code_combination_id          => l_ccid
86021   , p_value_type_code              => l_adr_value_type_code
86022   , p_transaction_coa_id           => l_adr_transaction_coa_id
86023   , p_accounting_coa_id            => l_adr_accounting_coa_id
86024   , p_adr_code                     => 'AP_LIAB'
86025   , p_adr_type_code                => 'S'
86026   , p_component_type               => l_component_type
86027   , p_component_code               => l_component_code
86028   , p_component_type_code          => l_component_type_code
86029   , p_component_appl_id            => l_component_appl_id
86030   , p_amb_context_code             => l_amb_context_code
86031   , p_side                         => 'NA'
86032   );
86033 
86034 
86035    --
86036    --
86037    END IF;
86038 
86039        --
86040        -- Update the line information that should be overwritten
86041        --
86042        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86043                                          p_header_num   => 1);
86044        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86045 
86046        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86047 
86048        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86049           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86050        END IF;
86051 
86052       --
86053       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86054       --
86055       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86056           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86057       ELSE
86058           ---------------------------------------------------------------------------------------------------
86059           -- 4262811a Switch Sign
86060           ---------------------------------------------------------------------------------------------------
86061           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86062           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86063                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86064           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86065                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86066           -- 5132302
86067           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86068                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86069 
86070       END IF;
86071 
86072       -- 4955764
86073       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86074       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86075 
86076 
86077       XLA_AE_LINES_PKG.ValidateCurrentLine;
86078       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86079 
86080       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86081                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86082                ,p_balance_type_code => l_balance_type_code);
86083 
86084    END IF;
86085 
86086    -----------------------------------------------------------------------------------------
86087    -- 4262811 Multiperiod Accounting
86088    -----------------------------------------------------------------------------------------
86089      -- No MPA option is assigned.
86090 
86091 
86092 END IF;
86093 END IF;
86094 --
86095 
86096 --
86097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86098    trace
86099       (p_msg      => 'END of AcctLineType_160'
86100       ,p_level    => C_LEVEL_PROCEDURE
86101       ,p_module   => l_log_module);
86102 END IF;
86103 --
86104 EXCEPTION
86105   WHEN xla_exceptions_pkg.application_exception THEN
86106       RAISE;
86107   WHEN OTHERS THEN
86108        xla_exceptions_pkg.raise_message
86109            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_160');
86110 END AcctLineType_160;
86111 --
86112 
86113 ---------------------------------------
86114 --
86115 -- PRIVATE FUNCTION
86116 --         AcctLineType_161
86117 --
86118 ---------------------------------------
86119 PROCEDURE AcctLineType_161 (
86120   p_application_id        IN NUMBER
86121  ,p_event_id              IN NUMBER
86125  ,p_balance_type_code     OUT VARCHAR2
86122  ,p_calculate_acctd_flag  IN VARCHAR2
86123  ,p_calculate_g_l_flag    IN VARCHAR2
86124  ,p_actual_flag           IN OUT VARCHAR2
86126  ,p_gain_or_loss_ref      OUT VARCHAR2
86127  
86128 --Invoice Distribution Description
86129  , p_source_1            IN VARCHAR2
86130 --Automatic Offsets Value
86131  , p_source_10            IN VARCHAR2
86132  , p_source_10_meaning    IN VARCHAR2
86133 --Invoice Distribution Ledger Amount
86134  , p_source_16            IN NUMBER
86135 --Invoice Liability Account
86136  , p_source_29            IN NUMBER
86137 --Accounting Reversal Indicator
86138  , p_source_58            IN VARCHAR2
86139 --Distribution Link Type
86140  , p_source_60            IN VARCHAR2
86141 --Allocation to Main Distribution Identifier
86142  , p_source_62            IN NUMBER
86143 --Invoice Identifier
86144  , p_source_63            IN NUMBER
86145 --Invoice Distribution Identifier
86146  , p_source_69            IN NUMBER
86147 --Payables Encumbrance Upgrade Credit Account
86148  , p_source_70            IN NUMBER
86149 --Payables Encumbrance Upgrade Credit Amount
86150  , p_source_71            IN NUMBER
86151 --Invoice Currency Code
86152  , p_source_72            IN VARCHAR2
86153 --Payables Encumbrance Upgrade Credit Base Amount
86154  , p_source_73            IN NUMBER
86155 --Payables Encumbrance Upgrade Debit Account
86156  , p_source_74            IN NUMBER
86157 --Payables Encumbrance Upgrade Debit Amount
86158  , p_source_75            IN NUMBER
86159 --Payables Encumbrance Upgrade Debit Base Amount
86160  , p_source_76            IN NUMBER
86161 --Payables Encumbrance Upgrade Option
86162  , p_source_77            IN VARCHAR2
86163 --Invoice Distribution Amount
86164  , p_source_78            IN NUMBER
86165 --Deferred Accounting End Date
86166  , p_source_82            IN DATE
86167 --Deferred Accounting Option
86168  , p_source_83            IN VARCHAR2
86169 --Deferred Accounting Start Date
86170  , p_source_84            IN DATE
86171 --Override Accounted Amount Indicator
86172  , p_source_85            IN VARCHAR2
86173  , p_source_85_meaning    IN VARCHAR2
86174 --Invoice Supplier Identifier
86175  , p_source_86            IN NUMBER
86176 --Invoice Supplier Site Identifier
86177  , p_source_87            IN NUMBER
86178 --Third Party Type
86179  , p_source_88            IN VARCHAR2
86180 --Parent Reversal Identifier
86181  , p_source_89            IN NUMBER
86182 --Invoice Distribution Tax Line Identifier
86183  , p_source_91            IN NUMBER
86184 --Invoice Distribution Tax Distribution Identifier from Tax
86185  , p_source_92            IN NUMBER
86186 --Invoice Distribution Summary Tax Line Identifier
86187  , p_source_93            IN NUMBER
86188 --Payables Upgrade Credit Encumbrance Type Identifier
86189  , p_source_94            IN NUMBER
86190 --Payables Upgrade Debit Encumbrance Type Identifier
86191  , p_source_95            IN NUMBER
86192 --Business Flow Accounts Payable Application Identifier
86193  , p_source_96            IN NUMBER
86194 --Business Flow Invoice Distribution Type
86195  , p_source_97            IN VARCHAR2
86196 --Business Flow Invoice Entity Code
86197  , p_source_98            IN VARCHAR2
86198 --Business Flow Invoice Distribution Identifier
86199  , p_source_99            IN NUMBER
86200 --Business Flow Invoice Identifier
86201  , p_source_100            IN NUMBER
86202 --Self-Assessed Tax Flag
86203  , p_source_145            IN VARCHAR2
86204  , p_source_145_meaning    IN VARCHAR2
86205 --Invoice Exchange Date
86206  , p_source_146            IN DATE
86207 --Invoice Exchange Rate
86208  , p_source_147            IN NUMBER
86209 --Invoice Exchange Rate Type
86210  , p_source_148            IN VARCHAR2
86211 )
86212 IS
86213 
86214 l_component_type              VARCHAR2(80);
86215 l_component_code              VARCHAR2(30);
86216 l_component_type_code         VARCHAR2(1);
86217 l_component_appl_id           INTEGER;
86218 l_amb_context_code            VARCHAR2(30);
86219 l_entity_code                 VARCHAR2(30);
86220 l_event_class_code            VARCHAR2(30);
86221 l_ae_header_id                NUMBER;
86222 l_event_type_code             VARCHAR2(30);
86223 l_line_definition_code        VARCHAR2(30);
86224 l_line_definition_owner_code  VARCHAR2(1);
86225 --
86226 -- adr variables
86227 l_segment                     VARCHAR2(30);
86228 l_ccid                        NUMBER;
86229 l_adr_transaction_coa_id      NUMBER;
86230 l_adr_accounting_coa_id       NUMBER;
86231 l_adr_flexfield_segment_code  VARCHAR2(30);
86232 l_adr_flex_value_set_id       NUMBER;
86233 l_adr_value_type_code         VARCHAR2(30);
86234 l_adr_value_combination_id    NUMBER;
86235 l_adr_value_segment_code      VARCHAR2(30);
86236 
86237 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86238 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86239 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86240 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86241 
86242 -- 4262811 Variables ------------------------------------------------------------------------------------------
86243 l_entered_amt_idx             NUMBER;
86244 l_accted_amt_idx              NUMBER;
86245 l_acc_rev_flag                VARCHAR2(1);
86246 l_accrual_line_num            NUMBER;
86247 l_tmp_amt                     NUMBER;
86251 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86248 l_acc_rev_natural_side_code   VARCHAR2(1);
86249 
86250 l_num_entries                 NUMBER;
86252 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86253 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86254 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86255 l_recog_line_1                NUMBER;
86256 l_recog_line_2                NUMBER;
86257 
86258 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86259 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86260 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86261 
86262 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86263 
86264 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86265 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86266 
86267 ---------------------------------------------------------------------------------------------------------------
86268 
86269 
86270 --
86271 -- bulk performance
86272 --
86273 l_balance_type_code           VARCHAR2(1);
86274 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86275 l_log_module                  VARCHAR2(240);
86276 
86277 --
86278 -- Upgrade strategy
86279 --
86280 l_actual_upg_option           VARCHAR2(1);
86281 l_enc_upg_option           VARCHAR2(1);
86282 
86283 --
86284 BEGIN
86285 --
86286 IF g_log_enabled THEN
86287       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
86288 END IF;
86289 --
86290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86291 
86292       trace
86293          (p_msg      => 'BEGIN of AcctLineType_161'
86294          ,p_level    => C_LEVEL_PROCEDURE
86295          ,p_module   => l_log_module);
86296 
86297 END IF;
86298 --
86299 l_component_type             := 'AMB_JLT';
86300 l_component_code             := 'AP_LIAB_DM_AOS_AS';
86301 l_component_type_code        := 'S';
86302 l_component_appl_id          :=  200;
86303 l_amb_context_code           := 'DEFAULT';
86304 l_entity_code                := 'AP_INVOICES';
86305 l_event_class_code           := 'DEBIT MEMOS';
86306 l_event_type_code            := 'DEBIT MEMOS_ALL';
86307 l_line_definition_owner_code := 'S';
86308 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
86309 --
86310 l_balance_type_code          := 'A';
86311 l_segment                     := NULL;
86312 l_ccid                        := NULL;
86313 l_adr_transaction_coa_id      := NULL;
86314 l_adr_accounting_coa_id       := NULL;
86315 l_adr_flexfield_segment_code  := NULL;
86316 l_adr_flex_value_set_id       := NULL;
86317 l_adr_value_type_code         := NULL;
86318 l_adr_value_combination_id    := NULL;
86319 l_adr_value_segment_code      := NULL;
86320 
86321 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
86322 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
86323 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86324 l_budgetary_control_flag     := 'N';
86325 
86326 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86327 l_bflow_applied_to_amt       := NULL; -- 5132302
86328 l_entered_amt_idx            := NULL;          -- 4262811
86329 l_accted_amt_idx             := NULL;          -- 4262811
86330 l_acc_rev_flag               := NULL;          -- 4262811
86331 l_accrual_line_num           := NULL;          -- 4262811
86332 l_tmp_amt                    := NULL;          -- 4262811
86333 --
86334  
86335 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86336     l_balance_type_code <> 'B' THEN
86337 IF NVL(p_source_10,'
86338 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
86339 NVL(p_source_145,'
86340 ') <>  'Y'
86341  THEN 
86342 
86343    --
86344    XLA_AE_LINES_PKG.SetNewLine;
86345 
86346    p_balance_type_code          := l_balance_type_code;
86347    -- set the flag so later we will know whether the gain loss line needs to be created
86348    
86349    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86350      p_actual_flag :='A';
86351    END IF;
86352 
86353    --
86354    -- bulk performance
86355    --
86356    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86357                                       p_header_num   => 0); -- 4262811
86358    --
86359    -- set accounting line options
86360    --
86361    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86362            p_natural_side_code          => 'C'
86363          , p_gain_or_loss_flag          => 'N'
86364          , p_gl_transfer_mode_code      => 'S'
86365          , p_acct_entry_type_code       => 'A'
86366          , p_switch_side_flag           => 'Y'
86367          , p_merge_duplicate_code       => 'A'
86368          );
86369    --
86370    l_acc_rev_natural_side_code := 'D';  -- 4262811
86371    -- 
86372    --
86373    -- set accounting line type info
86374    --
86375    xla_ae_lines_pkg.SetAcctLineType
86376       (p_component_type             => l_component_type
86377       ,p_event_type_code            => l_event_type_code
86378       ,p_line_definition_owner_code => l_line_definition_owner_code
86379       ,p_line_definition_code       => l_line_definition_code
86380       ,p_accounting_line_code       => l_component_code
86381       ,p_accounting_line_type_code  => l_component_type_code
86385       ,p_event_class_code           => l_event_class_code);
86382       ,p_accounting_line_appl_id    => l_component_appl_id
86383       ,p_amb_context_code           => l_amb_context_code
86384       ,p_entity_code                => l_entity_code
86386    --
86387    -- set accounting class
86388    --
86389    xla_ae_lines_pkg.SetAcctClass(
86390            p_accounting_class_code  => 'LIABILITY'
86391          , p_ae_header_id           => l_ae_header_id
86392          );
86393 
86394    --
86395    -- set rounding class
86396    --
86397    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86398                       'LIABILITY';
86399 
86400    --
86401    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86402    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86403    --
86404    -- bulk performance
86405    --
86406    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86407 
86408    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86409       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86410 
86411    -- 4955764
86412    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86413       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86414 
86415    -- 4458381 Public Sector Enh
86416    
86417    --
86418    -- set accounting attributes for the line type
86419    --
86420    l_entered_amt_idx := 23;
86421    l_accted_amt_idx  := 28;
86422    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
86423    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86424    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
86425    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
86426    l_rec_acct_attrs.array_num_value(2)  := 
86427 xla_ae_sources_pkg.GetSystemSourceNum(
86428    p_source_code           => 'XLA_EVENT_APPL_ID'
86429  , p_source_type_code      => 'Y'
86430  , p_source_application_id =>  602
86431 );
86432    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
86433    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
86434    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
86435    l_rec_acct_attrs.array_char_value(4)  := 
86436 xla_ae_sources_pkg.GetSystemSourceChar(
86437    p_source_code           => 'XLA_ENTITY_CODE'
86438  , p_source_type_code      => 'Y'
86439  , p_source_application_id =>  602
86440 );
86441    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
86442    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
86443    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
86444    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
86445    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
86446    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
86447    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86448    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
86449    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
86450    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
86451    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
86452    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
86453    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86454    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
86455    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
86456    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
86457    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
86458    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
86459    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
86460    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
86461    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
86462    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
86463    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
86464    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
86465    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
86466    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
86467    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
86468    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
86469    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
86470    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
86471    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
86472    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
86473    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
86474    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
86475    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
86476    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
86477    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
86478    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
86479    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
86480    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
86481    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
86482    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
86486    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
86483    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
86484    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
86485    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
86487    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
86488    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
86489    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
86490    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
86491    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
86492    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
86493    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
86494    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
86495    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
86496    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
86497    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
86498    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
86499    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
86500    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
86501    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
86502    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
86503    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
86504    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
86505    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
86506    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
86507    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
86508    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
86509    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
86510    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
86511    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
86512    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
86513    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
86514    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
86515    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
86516    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
86517 
86518    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86519    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86520 
86521    ---------------------------------------------------------------------------------------------------------------
86522    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86523    ---------------------------------------------------------------------------------------------------------------
86524    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86525 
86526    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86527    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86528 
86529    IF xla_accounting_cache_pkg.GetValueChar
86530          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86531          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86532    AND l_bflow_method_code = 'PRIOR_ENTRY'
86533 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86534    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86535          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86536        )
86537    THEN
86538          xla_ae_lines_pkg.BflowUpgEntry
86539            (p_business_method_code    => l_bflow_method_code
86540            ,p_business_class_code     => l_bflow_class_code
86541            ,p_balance_type            => l_balance_type_code);
86542    ELSE
86543       NULL;
86544 XLA_AE_LINES_PKG.business_flow_validation(
86545                                 p_business_method_code     => l_bflow_method_code
86546                                ,p_business_class_code      => l_bflow_class_code
86547                                ,p_inherit_description_flag => l_inherit_desc_flag);
86548    END IF;
86549 
86550    --
86551    -- call analytical criteria
86552    --
86553    
86554    --
86555    -- call description
86556    --
86557    
86558 xla_ae_lines_pkg.SetLineDescription(
86559    p_ae_header_id => l_ae_header_id
86560   ,p_description  => Description_2 (
86561      p_application_id         => p_application_id
86562    , p_ae_header_id           => l_ae_header_id 
86563 , p_source_1 => p_source_1
86564    )
86565 );
86566 
86567 
86568    --
86569    -- call ADRs
86570    -- Bug 4922099
86571    --
86572    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86573         (NVL(l_actual_upg_option, 'N') = 'O') OR
86574         (NVL(l_enc_upg_option, 'N') = 'O')
86575       )
86576    THEN
86577    NULL;
86578    --
86579    --
86580    
86581    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
86582      p_code_combination_id      => TO_NUMBER(C_NUM)
86583    , p_value_type_code          => NULL
86584    , p_transaction_coa_id       => null
86585    , p_accounting_coa_id        => null
86586    , p_adr_code                 => NULL
86587    , p_adr_type_code            => NULL
86588    , p_component_type           => l_component_type
86589    , p_component_code           => l_component_code
86593    , p_side                     => NULL
86590    , p_component_type_code      => l_component_type_code
86591    , p_component_appl_id        => l_component_appl_id
86592    , p_amb_context_code         => l_amb_context_code
86594    );
86595 
86596    
86597   -- initialise segments
86598   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86599   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86600   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86601   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86602   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86603   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86604   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86605   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86606   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86607   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86608   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86609   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86610   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86611   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86612   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86613   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86614   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86615   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86616   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86617   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86618   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86619   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86620   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86621   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86622   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86623   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86624   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86625   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86626   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86627   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86628   --
86629 
86630    --
86631 
86632 
86633    l_segment := AcctDerRule_15(
86634            p_application_id           => p_application_id
86635          , p_ae_header_id             => l_ae_header_id 
86636 , p_source_29 => p_source_29
86637          , x_transaction_coa_id       => l_adr_transaction_coa_id
86638          , x_accounting_coa_id        => l_adr_accounting_coa_id
86639          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86640          , x_flex_value_set_id        => l_adr_flex_value_set_id
86641          , x_value_type_code          => l_adr_value_type_code
86642          , x_value_combination_id     => l_adr_value_combination_id
86643          , x_value_segment_code       => l_adr_value_segment_code
86644          , p_side                     => 'NA'
86645          , p_override_seg_flag        => 'Y'
86646    );
86647 
86648    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86649 
86650       xla_ae_lines_pkg.set_segment(
86651           p_to_segment_code         => 'GL_ACCOUNT'
86652         , p_segment_value           => l_segment
86653         , p_from_segment_code       => l_adr_value_segment_code
86654         , p_from_combination_id     => l_adr_value_combination_id
86655         , p_value_type_code         => l_adr_value_type_code
86656         , p_transaction_coa_id      => l_adr_transaction_coa_id
86657         , p_accounting_coa_id       => l_adr_accounting_coa_id
86658         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86659         , p_flex_value_set_id       => l_adr_flex_value_set_id
86660         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
86661         , p_adr_type_code           => 'S'
86662         , p_component_type          => l_component_type
86663         , p_component_code          => l_component_code
86664         , p_component_type_code     => l_component_type_code
86665         , p_component_appl_id       => l_component_appl_id
86666         , p_amb_context_code        => l_amb_context_code
86667         , p_entity_code             => 'AP_INVOICES'
86668         , p_event_class_code        => 'DEBIT MEMOS'
86669         , p_side                    => 'NA'
86670         );
86671 
86672   END IF;
86673 
86674    --
86675    --
86676    END IF;
86677    --
86678    -- Bug 4922099
86679    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86680           (NVL(l_enc_upg_option, 'N') = 'O')
86681         ) AND
86682         (l_bflow_method_code = 'PRIOR_ENTRY')
86683       )
86684    THEN
86685       IF
86686       --
86687       1 = 2
86688       --
86689       THEN
86690       xla_accounting_err_pkg.build_message
86694                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86691                                     (p_appli_s_name            => 'XLA'
86692                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86693                                     ,p_token_1                 => 'LINE_NUMBER'
86695                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86696                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86697                                                                              l_component_type
86698                                                                             ,l_component_code
86699                                                                             ,l_component_type_code
86700                                                                             ,l_component_appl_id
86701                                                                             ,l_amb_context_code
86702                                                                             ,l_entity_code
86703                                                                             ,l_event_class_code
86704                                                                            )
86705                                     ,p_token_3                 => 'OWNER'
86706                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86707                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86708                                                                           ,p_lookup_code    => l_component_type_code
86709                                                                          )
86710                                     ,p_token_4                 => 'PRODUCT_NAME'
86711                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86712                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86713                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86714                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86715                                     ,p_ae_header_id            =>  NULL
86716                                        );
86717 
86718         IF (C_LEVEL_ERROR>= g_log_level) THEN
86719                  trace
86720                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86721                       ,p_level    => C_LEVEL_ERROR
86722                       ,p_module   => l_log_module);
86723         END IF;
86724       END IF;
86725    END IF;
86726    --
86727    --
86728    ------------------------------------------------------------------------------------------------
86729    -- 4219869 Business Flow
86730    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86731    -- Prior Entry.  Currently, the following code is always generated.
86732    ------------------------------------------------------------------------------------------------
86733    XLA_AE_LINES_PKG.ValidateCurrentLine;
86734 
86735    ------------------------------------------------------------------------------------
86736    -- 4219869 Business Flow
86737    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86738    ------------------------------------------------------------------------------------
86739    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86740 
86741    ----------------------------------------------------------------------------------
86742    -- 4219869 Business Flow
86743    -- Update journal entry status -- Need to generate this within IF <condition>
86744    ----------------------------------------------------------------------------------
86745    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86746          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86747          ,p_balance_type_code => l_balance_type_code
86748          );
86749 
86750    -------------------------------------------------------------------------------------------
86751    -- 4262811 - Generate the Accrual Reversal lines
86752    -------------------------------------------------------------------------------------------
86753    BEGIN
86754       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86755                               (g_array_event(p_event_id).array_value_num('header_index'));
86756       IF l_acc_rev_flag IS NULL THEN
86757          l_acc_rev_flag := 'N';
86758       END IF;
86759    EXCEPTION
86760       WHEN OTHERS THEN
86761          l_acc_rev_flag := 'N';
86762    END;
86763    --
86764    IF (l_acc_rev_flag = 'Y') THEN
86765 
86766        -- 4645092  ------------------------------------------------------------------------------
86767        -- To allow MPA report to determine if it should generate report process
86768        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86769        ------------------------------------------------------------------------------------------
86770 
86771        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86772        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86773    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86774    -- call ADRs
86775    -- Bug 4922099
86776    --
86777    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86781    THEN
86778         (NVL(l_actual_upg_option, 'N') = 'O') OR
86779         (NVL(l_enc_upg_option, 'N') = 'O')
86780       )
86782    NULL;
86783    --
86784    --
86785    
86786    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
86787      p_code_combination_id      => TO_NUMBER(C_NUM)
86788    , p_value_type_code          => NULL
86789    , p_transaction_coa_id       => null
86790    , p_accounting_coa_id        => null
86791    , p_adr_code                 => NULL
86792    , p_adr_type_code            => NULL
86793    , p_component_type           => l_component_type
86794    , p_component_code           => l_component_code
86795    , p_component_type_code      => l_component_type_code
86796    , p_component_appl_id        => l_component_appl_id
86797    , p_amb_context_code         => l_amb_context_code
86798    , p_side                     => NULL
86799    );
86800 
86801    
86802   -- initialise segments
86803   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86804   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86805   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86806   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86807   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86808   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86809   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86810   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86811   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86812   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86813   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86814   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86815   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86816   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86817   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86818   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86819   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86820   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86821   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86822   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86823   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86824   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86825   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86826   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86827   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86828   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86829   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86830   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86831   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86832   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86833   --
86834 
86835    --
86836 
86837 
86838    l_segment := AcctDerRule_15(
86839            p_application_id           => p_application_id
86840          , p_ae_header_id             => l_ae_header_id 
86841 , p_source_29 => p_source_29
86842          , x_transaction_coa_id       => l_adr_transaction_coa_id
86843          , x_accounting_coa_id        => l_adr_accounting_coa_id
86844          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86845          , x_flex_value_set_id        => l_adr_flex_value_set_id
86846          , x_value_type_code          => l_adr_value_type_code
86847          , x_value_combination_id     => l_adr_value_combination_id
86848          , x_value_segment_code       => l_adr_value_segment_code
86849          , p_side                     => 'NA'
86850          , p_override_seg_flag        => 'Y'
86851    );
86852 
86853    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86854 
86855       xla_ae_lines_pkg.set_segment(
86856           p_to_segment_code         => 'GL_ACCOUNT'
86857         , p_segment_value           => l_segment
86858         , p_from_segment_code       => l_adr_value_segment_code
86859         , p_from_combination_id     => l_adr_value_combination_id
86860         , p_value_type_code         => l_adr_value_type_code
86861         , p_transaction_coa_id      => l_adr_transaction_coa_id
86862         , p_accounting_coa_id       => l_adr_accounting_coa_id
86863         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86864         , p_flex_value_set_id       => l_adr_flex_value_set_id
86865         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
86866         , p_adr_type_code           => 'S'
86867         , p_component_type          => l_component_type
86868         , p_component_code          => l_component_code
86869         , p_component_type_code     => l_component_type_code
86870         , p_component_appl_id       => l_component_appl_id
86874         , p_side                    => 'NA'
86871         , p_amb_context_code        => l_amb_context_code
86872         , p_entity_code             => 'AP_INVOICES'
86873         , p_event_class_code        => 'DEBIT MEMOS'
86875         );
86876 
86877   END IF;
86878 
86879    --
86880    --
86881    END IF;
86882 
86883        --
86884        -- Update the line information that should be overwritten
86885        --
86886        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86887                                          p_header_num   => 1);
86888        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86889 
86890        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86891 
86892        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86893           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86894        END IF;
86895 
86896       --
86897       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86898       --
86899       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86900           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86901       ELSE
86902           ---------------------------------------------------------------------------------------------------
86903           -- 4262811a Switch Sign
86904           ---------------------------------------------------------------------------------------------------
86905           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86906           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86907                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86908           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86909                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86910           -- 5132302
86911           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86912                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86913 
86914       END IF;
86915 
86916       -- 4955764
86917       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86918       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86919 
86920 
86921       XLA_AE_LINES_PKG.ValidateCurrentLine;
86922       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86923 
86924       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86925                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86926                ,p_balance_type_code => l_balance_type_code);
86927 
86928    END IF;
86929 
86930    -----------------------------------------------------------------------------------------
86931    -- 4262811 Multiperiod Accounting
86932    -----------------------------------------------------------------------------------------
86933      -- No MPA option is assigned.
86934 
86935 
86936 END IF;
86937 END IF;
86938 --
86939 
86940 --
86941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86942    trace
86943       (p_msg      => 'END of AcctLineType_161'
86944       ,p_level    => C_LEVEL_PROCEDURE
86945       ,p_module   => l_log_module);
86946 END IF;
86947 --
86948 EXCEPTION
86949   WHEN xla_exceptions_pkg.application_exception THEN
86950       RAISE;
86951   WHEN OTHERS THEN
86952        xla_exceptions_pkg.raise_message
86953            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_161');
86954 END AcctLineType_161;
86955 --
86956 
86957 ---------------------------------------
86958 --
86959 -- PRIVATE FUNCTION
86960 --         AcctLineType_162
86961 --
86962 ---------------------------------------
86963 PROCEDURE AcctLineType_162 (
86964   p_application_id        IN NUMBER
86965  ,p_event_id              IN NUMBER
86966  ,p_calculate_acctd_flag  IN VARCHAR2
86967  ,p_calculate_g_l_flag    IN VARCHAR2
86968  ,p_actual_flag           IN OUT VARCHAR2
86969  ,p_balance_type_code     OUT VARCHAR2
86970  ,p_gain_or_loss_ref      OUT VARCHAR2
86971  
86972 --Invoice Distribution Description
86973  , p_source_1            IN VARCHAR2
86974 --Automatic Offsets Value
86975  , p_source_10            IN VARCHAR2
86976  , p_source_10_meaning    IN VARCHAR2
86977 --Invoice Distribution Ledger Amount
86978  , p_source_16            IN NUMBER
86979 --Invoice Liability Account
86980  , p_source_29            IN NUMBER
86981 --Accounting Reversal Indicator
86982  , p_source_58            IN VARCHAR2
86983 --Distribution Link Type
86984  , p_source_60            IN VARCHAR2
86985 --Allocation to Main Distribution Identifier
86986  , p_source_62            IN NUMBER
86987 --Invoice Identifier
86988  , p_source_63            IN NUMBER
86989 --Invoice Distribution Identifier
86990  , p_source_69            IN NUMBER
86991 --Payables Encumbrance Upgrade Credit Account
86992  , p_source_70            IN NUMBER
86993 --Payables Encumbrance Upgrade Credit Amount
86994  , p_source_71            IN NUMBER
86995 --Invoice Currency Code
86996  , p_source_72            IN VARCHAR2
87000  , p_source_74            IN NUMBER
86997 --Payables Encumbrance Upgrade Credit Base Amount
86998  , p_source_73            IN NUMBER
86999 --Payables Encumbrance Upgrade Debit Account
87001 --Payables Encumbrance Upgrade Debit Amount
87002  , p_source_75            IN NUMBER
87003 --Payables Encumbrance Upgrade Debit Base Amount
87004  , p_source_76            IN NUMBER
87005 --Payables Encumbrance Upgrade Option
87006  , p_source_77            IN VARCHAR2
87007 --Invoice Distribution Amount
87008  , p_source_78            IN NUMBER
87009 --Deferred Accounting End Date
87010  , p_source_82            IN DATE
87011 --Deferred Accounting Option
87012  , p_source_83            IN VARCHAR2
87013 --Deferred Accounting Start Date
87014  , p_source_84            IN DATE
87015 --Override Accounted Amount Indicator
87016  , p_source_85            IN VARCHAR2
87017  , p_source_85_meaning    IN VARCHAR2
87018 --Invoice Supplier Identifier
87019  , p_source_86            IN NUMBER
87020 --Invoice Supplier Site Identifier
87021  , p_source_87            IN NUMBER
87022 --Third Party Type
87023  , p_source_88            IN VARCHAR2
87024 --Parent Reversal Identifier
87025  , p_source_89            IN NUMBER
87026 --Invoice Distribution Tax Line Identifier
87027  , p_source_91            IN NUMBER
87028 --Invoice Distribution Tax Distribution Identifier from Tax
87029  , p_source_92            IN NUMBER
87030 --Invoice Distribution Summary Tax Line Identifier
87031  , p_source_93            IN NUMBER
87032 --Payables Upgrade Credit Encumbrance Type Identifier
87033  , p_source_94            IN NUMBER
87034 --Payables Upgrade Debit Encumbrance Type Identifier
87035  , p_source_95            IN NUMBER
87036 --Business Flow Accounts Payable Application Identifier
87037  , p_source_96            IN NUMBER
87038 --Business Flow Invoice Distribution Type
87039  , p_source_97            IN VARCHAR2
87040 --Business Flow Invoice Entity Code
87041  , p_source_98            IN VARCHAR2
87042 --Business Flow Invoice Distribution Identifier
87043  , p_source_99            IN NUMBER
87044 --Business Flow Invoice Identifier
87045  , p_source_100            IN NUMBER
87046 --Self-Assessed Tax Flag
87047  , p_source_145            IN VARCHAR2
87048  , p_source_145_meaning    IN VARCHAR2
87049 --Invoice Exchange Date
87050  , p_source_146            IN DATE
87051 --Invoice Exchange Rate
87052  , p_source_147            IN NUMBER
87053 --Invoice Exchange Rate Type
87054  , p_source_148            IN VARCHAR2
87055 )
87056 IS
87057 
87058 l_component_type              VARCHAR2(80);
87059 l_component_code              VARCHAR2(30);
87060 l_component_type_code         VARCHAR2(1);
87061 l_component_appl_id           INTEGER;
87062 l_amb_context_code            VARCHAR2(30);
87063 l_entity_code                 VARCHAR2(30);
87064 l_event_class_code            VARCHAR2(30);
87065 l_ae_header_id                NUMBER;
87066 l_event_type_code             VARCHAR2(30);
87067 l_line_definition_code        VARCHAR2(30);
87068 l_line_definition_owner_code  VARCHAR2(1);
87069 --
87070 -- adr variables
87071 l_segment                     VARCHAR2(30);
87072 l_ccid                        NUMBER;
87073 l_adr_transaction_coa_id      NUMBER;
87074 l_adr_accounting_coa_id       NUMBER;
87075 l_adr_flexfield_segment_code  VARCHAR2(30);
87076 l_adr_flex_value_set_id       NUMBER;
87077 l_adr_value_type_code         VARCHAR2(30);
87078 l_adr_value_combination_id    NUMBER;
87079 l_adr_value_segment_code      VARCHAR2(30);
87080 
87081 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87082 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87083 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87084 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87085 
87086 -- 4262811 Variables ------------------------------------------------------------------------------------------
87087 l_entered_amt_idx             NUMBER;
87088 l_accted_amt_idx              NUMBER;
87089 l_acc_rev_flag                VARCHAR2(1);
87090 l_accrual_line_num            NUMBER;
87091 l_tmp_amt                     NUMBER;
87092 l_acc_rev_natural_side_code   VARCHAR2(1);
87093 
87094 l_num_entries                 NUMBER;
87095 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87096 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87097 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87098 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87099 l_recog_line_1                NUMBER;
87100 l_recog_line_2                NUMBER;
87101 
87102 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87103 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87104 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87105 
87106 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87107 
87108 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87109 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87110 
87111 ---------------------------------------------------------------------------------------------------------------
87112 
87113 
87114 --
87115 -- bulk performance
87116 --
87117 l_balance_type_code           VARCHAR2(1);
87118 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87119 l_log_module                  VARCHAR2(240);
87120 
87124 l_actual_upg_option           VARCHAR2(1);
87121 --
87122 -- Upgrade strategy
87123 --
87125 l_enc_upg_option           VARCHAR2(1);
87126 
87127 --
87128 BEGIN
87129 --
87130 IF g_log_enabled THEN
87131       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
87132 END IF;
87133 --
87134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87135 
87136       trace
87137          (p_msg      => 'BEGIN of AcctLineType_162'
87138          ,p_level    => C_LEVEL_PROCEDURE
87139          ,p_module   => l_log_module);
87140 
87141 END IF;
87142 --
87143 l_component_type             := 'AMB_JLT';
87144 l_component_code             := 'AP_LIAB_DM_AOS_BS';
87145 l_component_type_code        := 'S';
87146 l_component_appl_id          :=  200;
87147 l_amb_context_code           := 'DEFAULT';
87148 l_entity_code                := 'AP_INVOICES';
87149 l_event_class_code           := 'DEBIT MEMOS';
87150 l_event_type_code            := 'DEBIT MEMOS_ALL';
87151 l_line_definition_owner_code := 'S';
87152 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
87153 --
87154 l_balance_type_code          := 'A';
87155 l_segment                     := NULL;
87156 l_ccid                        := NULL;
87157 l_adr_transaction_coa_id      := NULL;
87158 l_adr_accounting_coa_id       := NULL;
87159 l_adr_flexfield_segment_code  := NULL;
87160 l_adr_flex_value_set_id       := NULL;
87161 l_adr_value_type_code         := NULL;
87162 l_adr_value_combination_id    := NULL;
87163 l_adr_value_segment_code      := NULL;
87164 
87165 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
87166 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
87167 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87168 l_budgetary_control_flag     := 'N';
87169 
87170 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87171 l_bflow_applied_to_amt       := NULL; -- 5132302
87172 l_entered_amt_idx            := NULL;          -- 4262811
87173 l_accted_amt_idx             := NULL;          -- 4262811
87174 l_acc_rev_flag               := NULL;          -- 4262811
87175 l_accrual_line_num           := NULL;          -- 4262811
87176 l_tmp_amt                    := NULL;          -- 4262811
87177 --
87178  
87179 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87180     l_balance_type_code <> 'B' THEN
87181 IF NVL(p_source_10,'
87182 ') =  'BALANCING_SEGMENT' AND 
87183 NVL(p_source_145,'
87184 ') <>  'Y'
87185  THEN 
87186 
87187    --
87188    XLA_AE_LINES_PKG.SetNewLine;
87189 
87190    p_balance_type_code          := l_balance_type_code;
87191    -- set the flag so later we will know whether the gain loss line needs to be created
87192    
87193    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87194      p_actual_flag :='A';
87195    END IF;
87196 
87197    --
87198    -- bulk performance
87199    --
87200    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87201                                       p_header_num   => 0); -- 4262811
87202    --
87203    -- set accounting line options
87204    --
87205    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87206            p_natural_side_code          => 'C'
87207          , p_gain_or_loss_flag          => 'N'
87208          , p_gl_transfer_mode_code      => 'S'
87209          , p_acct_entry_type_code       => 'A'
87210          , p_switch_side_flag           => 'Y'
87211          , p_merge_duplicate_code       => 'A'
87212          );
87213    --
87214    l_acc_rev_natural_side_code := 'D';  -- 4262811
87215    -- 
87216    --
87217    -- set accounting line type info
87218    --
87219    xla_ae_lines_pkg.SetAcctLineType
87220       (p_component_type             => l_component_type
87221       ,p_event_type_code            => l_event_type_code
87222       ,p_line_definition_owner_code => l_line_definition_owner_code
87223       ,p_line_definition_code       => l_line_definition_code
87224       ,p_accounting_line_code       => l_component_code
87225       ,p_accounting_line_type_code  => l_component_type_code
87226       ,p_accounting_line_appl_id    => l_component_appl_id
87227       ,p_amb_context_code           => l_amb_context_code
87228       ,p_entity_code                => l_entity_code
87229       ,p_event_class_code           => l_event_class_code);
87230    --
87231    -- set accounting class
87232    --
87233    xla_ae_lines_pkg.SetAcctClass(
87234            p_accounting_class_code  => 'LIABILITY'
87235          , p_ae_header_id           => l_ae_header_id
87236          );
87237 
87238    --
87239    -- set rounding class
87240    --
87241    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87242                       'LIABILITY';
87243 
87244    --
87245    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87246    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87247    --
87248    -- bulk performance
87249    --
87250    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87251 
87252    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87253       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87254 
87255    -- 4955764
87259    -- 4458381 Public Sector Enh
87256    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87257       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87258 
87260    
87261    --
87262    -- set accounting attributes for the line type
87263    --
87264    l_entered_amt_idx := 23;
87265    l_accted_amt_idx  := 28;
87266    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
87267    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87268    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
87269    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
87270    l_rec_acct_attrs.array_num_value(2)  := 
87271 xla_ae_sources_pkg.GetSystemSourceNum(
87272    p_source_code           => 'XLA_EVENT_APPL_ID'
87273  , p_source_type_code      => 'Y'
87274  , p_source_application_id =>  602
87275 );
87276    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
87277    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
87278    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
87279    l_rec_acct_attrs.array_char_value(4)  := 
87280 xla_ae_sources_pkg.GetSystemSourceChar(
87281    p_source_code           => 'XLA_ENTITY_CODE'
87282  , p_source_type_code      => 'Y'
87283  , p_source_application_id =>  602
87284 );
87285    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
87286    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
87287    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
87288    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
87289    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
87290    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
87291    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87292    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
87293    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
87294    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
87295    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
87296    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
87297    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87298    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
87299    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
87300    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
87301    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
87302    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
87303    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
87304    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
87305    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
87306    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
87307    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
87308    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
87309    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
87310    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
87311    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
87312    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
87313    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
87314    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
87315    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
87316    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
87317    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
87318    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
87319    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
87320    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
87321    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
87322    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
87323    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
87324    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
87325    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
87326    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
87327    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
87328    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
87329    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
87330    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
87331    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
87332    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
87333    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
87334    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
87335    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
87336    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
87337    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
87338    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
87339    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
87340    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
87341    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
87342    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
87343    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
87344    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
87345    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
87346    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
87350    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
87347    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
87348    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
87349    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
87351    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
87352    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
87353    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
87354    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
87355    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
87356    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
87357    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
87358    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
87359    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
87360    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
87361 
87362    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87363    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87364 
87365    ---------------------------------------------------------------------------------------------------------------
87366    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87367    ---------------------------------------------------------------------------------------------------------------
87368    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87369 
87370    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87371    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87372 
87373    IF xla_accounting_cache_pkg.GetValueChar
87374          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87375          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87376    AND l_bflow_method_code = 'PRIOR_ENTRY'
87377 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87378    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87379          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87380        )
87381    THEN
87382          xla_ae_lines_pkg.BflowUpgEntry
87383            (p_business_method_code    => l_bflow_method_code
87384            ,p_business_class_code     => l_bflow_class_code
87385            ,p_balance_type            => l_balance_type_code);
87386    ELSE
87387       NULL;
87388 XLA_AE_LINES_PKG.business_flow_validation(
87389                                 p_business_method_code     => l_bflow_method_code
87390                                ,p_business_class_code      => l_bflow_class_code
87391                                ,p_inherit_description_flag => l_inherit_desc_flag);
87392    END IF;
87393 
87394    --
87395    -- call analytical criteria
87396    --
87397    
87398    --
87399    -- call description
87400    --
87401    
87402 xla_ae_lines_pkg.SetLineDescription(
87403    p_ae_header_id => l_ae_header_id
87404   ,p_description  => Description_2 (
87405      p_application_id         => p_application_id
87406    , p_ae_header_id           => l_ae_header_id 
87407 , p_source_1 => p_source_1
87408    )
87409 );
87410 
87411 
87412    --
87413    -- call ADRs
87414    -- Bug 4922099
87415    --
87416    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87417         (NVL(l_actual_upg_option, 'N') = 'O') OR
87418         (NVL(l_enc_upg_option, 'N') = 'O')
87419       )
87420    THEN
87421    NULL;
87422    --
87423    --
87424    
87425   l_ccid := AcctDerRule_36(
87426            p_application_id           => p_application_id
87427          , p_ae_header_id             => l_ae_header_id 
87428 , p_source_29 => p_source_29
87429          , x_transaction_coa_id       => l_adr_transaction_coa_id
87430          , x_accounting_coa_id        => l_adr_accounting_coa_id
87431          , x_value_type_code          => l_adr_value_type_code
87432          , p_side                     => 'NA'
87433    );
87434 
87435    xla_ae_lines_pkg.set_ccid(
87436     p_code_combination_id          => l_ccid
87437   , p_value_type_code              => l_adr_value_type_code
87438   , p_transaction_coa_id           => l_adr_transaction_coa_id
87439   , p_accounting_coa_id            => l_adr_accounting_coa_id
87440   , p_adr_code                     => 'AP_LIAB'
87441   , p_adr_type_code                => 'S'
87442   , p_component_type               => l_component_type
87443   , p_component_code               => l_component_code
87444   , p_component_type_code          => l_component_type_code
87445   , p_component_appl_id            => l_component_appl_id
87446   , p_amb_context_code             => l_amb_context_code
87447   , p_side                         => 'NA'
87448   );
87449 
87450 
87451    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
87452      p_to_segment_code         => 'GL_BALANCING'
87453    , p_segment_value           => C_CHAR
87454    , p_from_segment_code       => NULL
87455    , p_from_combination_id     => NULL
87456    , p_value_type_code         => NULL
87457    , p_transaction_coa_id      => null
87458    , p_accounting_coa_id       => null
87459    , p_flexfield_segment_code  => NULL
87460    , p_flex_value_set_id       => NULL
87461    , p_adr_code                => NULL
87462    , p_adr_type_code           => NULL
87466    , p_component_appl_id       => l_component_appl_id
87463    , p_component_type          => l_component_type
87464    , p_component_code          => l_component_code
87465    , p_component_type_code     => l_component_type_code
87467    , p_amb_context_code        => l_amb_context_code
87468    , p_entity_code             => 'AP_INVOICES'
87469    , p_event_class_code        => 'DEBIT MEMOS'
87470    , p_side                    => 'NA'
87471    );
87472    --
87473 
87474 
87475    --
87476    --
87477    END IF;
87478    --
87479    -- Bug 4922099
87480    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87481           (NVL(l_enc_upg_option, 'N') = 'O')
87482         ) AND
87483         (l_bflow_method_code = 'PRIOR_ENTRY')
87484       )
87485    THEN
87486       IF
87487       --
87488       1 = 2
87489       --
87490       THEN
87491       xla_accounting_err_pkg.build_message
87492                                     (p_appli_s_name            => 'XLA'
87493                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87494                                     ,p_token_1                 => 'LINE_NUMBER'
87495                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87496                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87497                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87498                                                                              l_component_type
87499                                                                             ,l_component_code
87500                                                                             ,l_component_type_code
87501                                                                             ,l_component_appl_id
87502                                                                             ,l_amb_context_code
87503                                                                             ,l_entity_code
87504                                                                             ,l_event_class_code
87505                                                                            )
87506                                     ,p_token_3                 => 'OWNER'
87507                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87508                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87509                                                                           ,p_lookup_code    => l_component_type_code
87510                                                                          )
87511                                     ,p_token_4                 => 'PRODUCT_NAME'
87512                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87513                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87514                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87515                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87516                                     ,p_ae_header_id            =>  NULL
87517                                        );
87518 
87519         IF (C_LEVEL_ERROR>= g_log_level) THEN
87520                  trace
87521                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87522                       ,p_level    => C_LEVEL_ERROR
87523                       ,p_module   => l_log_module);
87524         END IF;
87525       END IF;
87526    END IF;
87527    --
87528    --
87529    ------------------------------------------------------------------------------------------------
87530    -- 4219869 Business Flow
87531    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87532    -- Prior Entry.  Currently, the following code is always generated.
87533    ------------------------------------------------------------------------------------------------
87534    XLA_AE_LINES_PKG.ValidateCurrentLine;
87535 
87536    ------------------------------------------------------------------------------------
87537    -- 4219869 Business Flow
87538    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87539    ------------------------------------------------------------------------------------
87540    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87541 
87542    ----------------------------------------------------------------------------------
87543    -- 4219869 Business Flow
87544    -- Update journal entry status -- Need to generate this within IF <condition>
87545    ----------------------------------------------------------------------------------
87546    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87547          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87548          ,p_balance_type_code => l_balance_type_code
87549          );
87550 
87551    -------------------------------------------------------------------------------------------
87552    -- 4262811 - Generate the Accrual Reversal lines
87553    -------------------------------------------------------------------------------------------
87554    BEGIN
87555       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87556                               (g_array_event(p_event_id).array_value_num('header_index'));
87557       IF l_acc_rev_flag IS NULL THEN
87558          l_acc_rev_flag := 'N';
87562          l_acc_rev_flag := 'N';
87559       END IF;
87560    EXCEPTION
87561       WHEN OTHERS THEN
87563    END;
87564    --
87565    IF (l_acc_rev_flag = 'Y') THEN
87566 
87567        -- 4645092  ------------------------------------------------------------------------------
87568        -- To allow MPA report to determine if it should generate report process
87569        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87570        ------------------------------------------------------------------------------------------
87571 
87572        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87573        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87574    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87575    -- call ADRs
87576    -- Bug 4922099
87577    --
87578    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87579         (NVL(l_actual_upg_option, 'N') = 'O') OR
87580         (NVL(l_enc_upg_option, 'N') = 'O')
87581       )
87582    THEN
87583    NULL;
87584    --
87585    --
87586    
87587   l_ccid := AcctDerRule_36(
87588            p_application_id           => p_application_id
87589          , p_ae_header_id             => l_ae_header_id 
87590 , p_source_29 => p_source_29
87591          , x_transaction_coa_id       => l_adr_transaction_coa_id
87592          , x_accounting_coa_id        => l_adr_accounting_coa_id
87593          , x_value_type_code          => l_adr_value_type_code
87594          , p_side                     => 'NA'
87595    );
87596 
87597    xla_ae_lines_pkg.set_ccid(
87598     p_code_combination_id          => l_ccid
87599   , p_value_type_code              => l_adr_value_type_code
87600   , p_transaction_coa_id           => l_adr_transaction_coa_id
87601   , p_accounting_coa_id            => l_adr_accounting_coa_id
87602   , p_adr_code                     => 'AP_LIAB'
87603   , p_adr_type_code                => 'S'
87604   , p_component_type               => l_component_type
87605   , p_component_code               => l_component_code
87606   , p_component_type_code          => l_component_type_code
87607   , p_component_appl_id            => l_component_appl_id
87608   , p_amb_context_code             => l_amb_context_code
87609   , p_side                         => 'NA'
87610   );
87611 
87612 
87613    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
87614      p_to_segment_code         => 'GL_BALANCING'
87615    , p_segment_value           => C_CHAR
87616    , p_from_segment_code       => NULL
87617    , p_from_combination_id     => NULL
87618    , p_value_type_code         => NULL
87619    , p_transaction_coa_id      => null
87620    , p_accounting_coa_id       => null
87621    , p_flexfield_segment_code  => NULL
87622    , p_flex_value_set_id       => NULL
87623    , p_adr_code                => NULL
87624    , p_adr_type_code           => NULL
87625    , p_component_type          => l_component_type
87626    , p_component_code          => l_component_code
87627    , p_component_type_code     => l_component_type_code
87628    , p_component_appl_id       => l_component_appl_id
87629    , p_amb_context_code        => l_amb_context_code
87630    , p_entity_code             => 'AP_INVOICES'
87631    , p_event_class_code        => 'DEBIT MEMOS'
87632    , p_side                    => 'NA'
87633    );
87634    --
87635 
87636 
87637    --
87638    --
87639    END IF;
87640 
87641        --
87642        -- Update the line information that should be overwritten
87643        --
87644        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87645                                          p_header_num   => 1);
87646        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87647 
87648        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87649 
87650        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87651           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87652        END IF;
87653 
87654       --
87655       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87656       --
87657       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87658           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87659       ELSE
87660           ---------------------------------------------------------------------------------------------------
87661           -- 4262811a Switch Sign
87662           ---------------------------------------------------------------------------------------------------
87663           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87664           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87665                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87666           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87667                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87668           -- 5132302
87669           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87670                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87671 
87672       END IF;
87676       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87673 
87674       -- 4955764
87675       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87677 
87678 
87679       XLA_AE_LINES_PKG.ValidateCurrentLine;
87680       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87681 
87682       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87683                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87684                ,p_balance_type_code => l_balance_type_code);
87685 
87686    END IF;
87687 
87688    -----------------------------------------------------------------------------------------
87689    -- 4262811 Multiperiod Accounting
87690    -----------------------------------------------------------------------------------------
87691      -- No MPA option is assigned.
87692 
87693 
87694 END IF;
87695 END IF;
87696 --
87697 
87698 --
87699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87700    trace
87701       (p_msg      => 'END of AcctLineType_162'
87702       ,p_level    => C_LEVEL_PROCEDURE
87703       ,p_module   => l_log_module);
87704 END IF;
87705 --
87706 EXCEPTION
87707   WHEN xla_exceptions_pkg.application_exception THEN
87708       RAISE;
87709   WHEN OTHERS THEN
87710        xla_exceptions_pkg.raise_message
87711            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_162');
87712 END AcctLineType_162;
87713 --
87714 
87715 ---------------------------------------
87716 --
87717 -- PRIVATE FUNCTION
87718 --         AcctLineType_163
87719 --
87720 ---------------------------------------
87721 PROCEDURE AcctLineType_163 (
87722   p_application_id        IN NUMBER
87723  ,p_event_id              IN NUMBER
87724  ,p_calculate_acctd_flag  IN VARCHAR2
87725  ,p_calculate_g_l_flag    IN VARCHAR2
87726  ,p_actual_flag           IN OUT VARCHAR2
87727  ,p_balance_type_code     OUT VARCHAR2
87728  ,p_gain_or_loss_ref      OUT VARCHAR2
87729  
87730 --Invoice Distribution Description
87731  , p_source_1            IN VARCHAR2
87732 --Automatic Offsets Value
87733  , p_source_10            IN VARCHAR2
87734  , p_source_10_meaning    IN VARCHAR2
87735 --Invoice Distribution Ledger Amount
87736  , p_source_16            IN NUMBER
87737 --Invoice Liability Account
87738  , p_source_29            IN NUMBER
87739 --Accounting Reversal Indicator
87740  , p_source_58            IN VARCHAR2
87741 --Distribution Link Type
87742  , p_source_60            IN VARCHAR2
87743 --Allocation to Main Distribution Identifier
87744  , p_source_62            IN NUMBER
87745 --Invoice Identifier
87746  , p_source_63            IN NUMBER
87747 --Invoice Distribution Identifier
87748  , p_source_69            IN NUMBER
87749 --Payables Encumbrance Upgrade Credit Account
87750  , p_source_70            IN NUMBER
87751 --Payables Encumbrance Upgrade Credit Amount
87752  , p_source_71            IN NUMBER
87753 --Invoice Currency Code
87754  , p_source_72            IN VARCHAR2
87755 --Payables Encumbrance Upgrade Credit Base Amount
87756  , p_source_73            IN NUMBER
87757 --Payables Encumbrance Upgrade Debit Account
87758  , p_source_74            IN NUMBER
87759 --Payables Encumbrance Upgrade Debit Amount
87760  , p_source_75            IN NUMBER
87761 --Payables Encumbrance Upgrade Debit Base Amount
87762  , p_source_76            IN NUMBER
87763 --Payables Encumbrance Upgrade Option
87764  , p_source_77            IN VARCHAR2
87765 --Invoice Distribution Amount
87766  , p_source_78            IN NUMBER
87767 --Deferred Accounting End Date
87768  , p_source_82            IN DATE
87769 --Deferred Accounting Option
87770  , p_source_83            IN VARCHAR2
87771 --Deferred Accounting Start Date
87772  , p_source_84            IN DATE
87773 --Override Accounted Amount Indicator
87774  , p_source_85            IN VARCHAR2
87775  , p_source_85_meaning    IN VARCHAR2
87776 --Invoice Supplier Identifier
87777  , p_source_86            IN NUMBER
87778 --Invoice Supplier Site Identifier
87779  , p_source_87            IN NUMBER
87780 --Third Party Type
87781  , p_source_88            IN VARCHAR2
87782 --Parent Reversal Identifier
87783  , p_source_89            IN NUMBER
87784 --Invoice Distribution Statistical Amount
87785  , p_source_90            IN NUMBER
87786 --Invoice Distribution Tax Line Identifier
87787  , p_source_91            IN NUMBER
87788 --Invoice Distribution Tax Distribution Identifier from Tax
87789  , p_source_92            IN NUMBER
87790 --Invoice Distribution Summary Tax Line Identifier
87791  , p_source_93            IN NUMBER
87792 --Payables Upgrade Credit Encumbrance Type Identifier
87793  , p_source_94            IN NUMBER
87794 --Payables Upgrade Debit Encumbrance Type Identifier
87795  , p_source_95            IN NUMBER
87796 --Business Flow Accounts Payable Application Identifier
87797  , p_source_96            IN NUMBER
87798 --Business Flow Invoice Distribution Type
87799  , p_source_97            IN VARCHAR2
87800 --Business Flow Invoice Entity Code
87801  , p_source_98            IN VARCHAR2
87802 --Business Flow Invoice Distribution Identifier
87803  , p_source_99            IN NUMBER
87804 --Business Flow Invoice Identifier
87805  , p_source_100            IN NUMBER
87806 --Self-Assessed Tax Flag
87807  , p_source_145            IN VARCHAR2
87808  , p_source_145_meaning    IN VARCHAR2
87812  , p_source_147            IN NUMBER
87809 --Invoice Exchange Date
87810  , p_source_146            IN DATE
87811 --Invoice Exchange Rate
87813 --Invoice Exchange Rate Type
87814  , p_source_148            IN VARCHAR2
87815 --Invoice Type
87816  , p_source_167            IN VARCHAR2
87817  , p_source_167_meaning    IN VARCHAR2
87818 )
87819 IS
87820 
87821 l_component_type              VARCHAR2(80);
87822 l_component_code              VARCHAR2(30);
87823 l_component_type_code         VARCHAR2(1);
87824 l_component_appl_id           INTEGER;
87825 l_amb_context_code            VARCHAR2(30);
87826 l_entity_code                 VARCHAR2(30);
87827 l_event_class_code            VARCHAR2(30);
87828 l_ae_header_id                NUMBER;
87829 l_event_type_code             VARCHAR2(30);
87830 l_line_definition_code        VARCHAR2(30);
87831 l_line_definition_owner_code  VARCHAR2(1);
87832 --
87833 -- adr variables
87834 l_segment                     VARCHAR2(30);
87835 l_ccid                        NUMBER;
87836 l_adr_transaction_coa_id      NUMBER;
87837 l_adr_accounting_coa_id       NUMBER;
87838 l_adr_flexfield_segment_code  VARCHAR2(30);
87839 l_adr_flex_value_set_id       NUMBER;
87840 l_adr_value_type_code         VARCHAR2(30);
87841 l_adr_value_combination_id    NUMBER;
87842 l_adr_value_segment_code      VARCHAR2(30);
87843 
87844 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87845 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87846 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87847 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87848 
87849 -- 4262811 Variables ------------------------------------------------------------------------------------------
87850 l_entered_amt_idx             NUMBER;
87851 l_accted_amt_idx              NUMBER;
87852 l_acc_rev_flag                VARCHAR2(1);
87853 l_accrual_line_num            NUMBER;
87854 l_tmp_amt                     NUMBER;
87855 l_acc_rev_natural_side_code   VARCHAR2(1);
87856 
87857 l_num_entries                 NUMBER;
87858 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87859 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87860 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87861 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87862 l_recog_line_1                NUMBER;
87863 l_recog_line_2                NUMBER;
87864 
87865 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87866 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87867 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87868 
87869 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87870 
87871 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87872 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87873 
87874 ---------------------------------------------------------------------------------------------------------------
87875 
87876 
87877 --
87878 -- bulk performance
87879 --
87880 l_balance_type_code           VARCHAR2(1);
87881 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87882 l_log_module                  VARCHAR2(240);
87883 
87884 --
87885 -- Upgrade strategy
87886 --
87887 l_actual_upg_option           VARCHAR2(1);
87888 l_enc_upg_option           VARCHAR2(1);
87889 
87890 --
87891 BEGIN
87892 --
87893 IF g_log_enabled THEN
87894       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
87895 END IF;
87896 --
87897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87898 
87899       trace
87900          (p_msg      => 'BEGIN of AcctLineType_163'
87901          ,p_level    => C_LEVEL_PROCEDURE
87902          ,p_module   => l_log_module);
87903 
87904 END IF;
87905 --
87906 l_component_type             := 'AMB_JLT';
87907 l_component_code             := 'AP_LIAB_INV';
87908 l_component_type_code        := 'S';
87909 l_component_appl_id          :=  200;
87910 l_amb_context_code           := 'DEFAULT';
87911 l_entity_code                := 'AP_INVOICES';
87912 l_event_class_code           := 'INVOICES';
87913 l_event_type_code            := 'INVOICES_ALL';
87914 l_line_definition_owner_code := 'S';
87915 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
87916 --
87917 l_balance_type_code          := 'A';
87918 l_segment                     := NULL;
87919 l_ccid                        := NULL;
87920 l_adr_transaction_coa_id      := NULL;
87921 l_adr_accounting_coa_id       := NULL;
87922 l_adr_flexfield_segment_code  := NULL;
87923 l_adr_flex_value_set_id       := NULL;
87924 l_adr_value_type_code         := NULL;
87925 l_adr_value_combination_id    := NULL;
87926 l_adr_value_segment_code      := NULL;
87927 
87928 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
87929 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
87930 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87931 l_budgetary_control_flag     := 'N';
87932 
87933 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87934 l_bflow_applied_to_amt       := NULL; -- 5132302
87935 l_entered_amt_idx            := NULL;          -- 4262811
87936 l_accted_amt_idx             := NULL;          -- 4262811
87937 l_acc_rev_flag               := NULL;          -- 4262811
87938 l_accrual_line_num           := NULL;          -- 4262811
87942 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87939 l_tmp_amt                    := NULL;          -- 4262811
87940 --
87941  
87943     l_balance_type_code <> 'B' THEN
87944 IF (NVL(p_source_10,'
87945 ') <>  'BALANCING_SEGMENT' AND 
87946 NVL(p_source_10,'
87947 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
87948 (NVL(p_source_167,'
87949 ') =  'STANDARD' OR 
87950 NVL(p_source_167,'
87951 ') =  'MIXED' OR 
87952 NVL(p_source_167,'
87953 ') =  'AWT' OR 
87954 NVL(p_source_167,'
87955 ') =  'PO PRICE ADJUST' OR 
87956 NVL(p_source_167,'
87957 ') =  'EXPENSE REPORT' OR 
87958 NVL(p_source_167,'
87959 ') =  'PAYMENT REQUEST' OR 
87960 NVL(p_source_167,'
87961 ') =  'RETAINAGE RELEASE') AND 
87962 NVL(p_source_145,'
87963 ') <>  'Y'
87964  THEN 
87965 
87966    --
87967    XLA_AE_LINES_PKG.SetNewLine;
87968 
87969    p_balance_type_code          := l_balance_type_code;
87970    -- set the flag so later we will know whether the gain loss line needs to be created
87971    
87972    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87973      p_actual_flag :='A';
87974    END IF;
87975 
87976    --
87977    -- bulk performance
87978    --
87979    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87980                                       p_header_num   => 0); -- 4262811
87981    --
87982    -- set accounting line options
87983    --
87984    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87985            p_natural_side_code          => 'C'
87986          , p_gain_or_loss_flag          => 'N'
87987          , p_gl_transfer_mode_code      => 'S'
87988          , p_acct_entry_type_code       => 'A'
87989          , p_switch_side_flag           => 'Y'
87990          , p_merge_duplicate_code       => 'A'
87991          );
87992    --
87993    l_acc_rev_natural_side_code := 'D';  -- 4262811
87994    -- 
87995    --
87996    -- set accounting line type info
87997    --
87998    xla_ae_lines_pkg.SetAcctLineType
87999       (p_component_type             => l_component_type
88000       ,p_event_type_code            => l_event_type_code
88001       ,p_line_definition_owner_code => l_line_definition_owner_code
88002       ,p_line_definition_code       => l_line_definition_code
88003       ,p_accounting_line_code       => l_component_code
88004       ,p_accounting_line_type_code  => l_component_type_code
88005       ,p_accounting_line_appl_id    => l_component_appl_id
88006       ,p_amb_context_code           => l_amb_context_code
88007       ,p_entity_code                => l_entity_code
88008       ,p_event_class_code           => l_event_class_code);
88009    --
88010    -- set accounting class
88011    --
88012    xla_ae_lines_pkg.SetAcctClass(
88013            p_accounting_class_code  => 'LIABILITY'
88014          , p_ae_header_id           => l_ae_header_id
88015          );
88016 
88017    --
88018    -- set rounding class
88019    --
88020    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88021                       'LIABILITY';
88022 
88023    --
88024    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88025    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88026    --
88027    -- bulk performance
88028    --
88029    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88030 
88031    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88032       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88033 
88034    -- 4955764
88035    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88036       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88037 
88038    -- 4458381 Public Sector Enh
88039    
88040    --
88041    -- set accounting attributes for the line type
88042    --
88043    l_entered_amt_idx := 24;
88044    l_accted_amt_idx  := 29;
88045    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
88046    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88047    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
88048    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88049    l_rec_acct_attrs.array_num_value(2)  := 
88050 xla_ae_sources_pkg.GetSystemSourceNum(
88051    p_source_code           => 'XLA_EVENT_APPL_ID'
88052  , p_source_type_code      => 'Y'
88053  , p_source_application_id =>  602
88054 );
88055    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88056    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
88057    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88058    l_rec_acct_attrs.array_char_value(4)  := 
88059 xla_ae_sources_pkg.GetSystemSourceChar(
88060    p_source_code           => 'XLA_ENTITY_CODE'
88061  , p_source_type_code      => 'Y'
88062  , p_source_application_id =>  602
88063 );
88064    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88065    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
88066    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88067    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
88068    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
88072    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88069    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
88070    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
88071    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
88073    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
88074    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
88075    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
88076    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
88077    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
88078    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88079    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
88080    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
88081    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
88082    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
88083    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
88084    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
88085    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
88086    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
88087    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
88088    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
88089    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
88090    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
88091    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
88092    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
88093    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
88094    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
88095    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
88096    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
88097    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
88098    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
88099    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
88100    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
88101    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
88102    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
88103    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
88104    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
88105    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
88106    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
88107    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
88108    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
88109    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
88110    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
88111    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
88112    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
88113    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
88114    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
88115    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
88116    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
88117    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
88118    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
88119    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
88120    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
88121    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
88122    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
88123    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
88124    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
88125    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
88126    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
88127    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
88128    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
88129    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
88130    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
88131    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
88132    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
88133    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
88134    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
88135    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
88136    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
88137    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
88138    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
88139    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
88140    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
88141    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
88142    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
88143    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
88144 
88145    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88146    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88147 
88148    ---------------------------------------------------------------------------------------------------------------
88149    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88150    ---------------------------------------------------------------------------------------------------------------
88154    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88151    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88152 
88153    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88155 
88156    IF xla_accounting_cache_pkg.GetValueChar
88157          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88158          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88159    AND l_bflow_method_code = 'PRIOR_ENTRY'
88160 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88161    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88162          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88163        )
88164    THEN
88165          xla_ae_lines_pkg.BflowUpgEntry
88166            (p_business_method_code    => l_bflow_method_code
88167            ,p_business_class_code     => l_bflow_class_code
88168            ,p_balance_type            => l_balance_type_code);
88169    ELSE
88170       NULL;
88171 -- No business flow processing for business flow method of NONE.
88172    END IF;
88173 
88174    --
88175    -- call analytical criteria
88176    --
88177    
88178    --
88179    -- call description
88180    --
88181    
88182 xla_ae_lines_pkg.SetLineDescription(
88183    p_ae_header_id => l_ae_header_id
88184   ,p_description  => Description_2 (
88185      p_application_id         => p_application_id
88186    , p_ae_header_id           => l_ae_header_id 
88187 , p_source_1 => p_source_1
88188    )
88189 );
88190 
88191 
88192    --
88193    -- call ADRs
88194    -- Bug 4922099
88195    --
88196    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88197         (NVL(l_actual_upg_option, 'N') = 'O') OR
88198         (NVL(l_enc_upg_option, 'N') = 'O')
88199       )
88200    THEN
88201    NULL;
88202    --
88203    --
88204    
88205   l_ccid := AcctDerRule_36(
88206            p_application_id           => p_application_id
88207          , p_ae_header_id             => l_ae_header_id 
88208 , p_source_29 => p_source_29
88209          , x_transaction_coa_id       => l_adr_transaction_coa_id
88210          , x_accounting_coa_id        => l_adr_accounting_coa_id
88211          , x_value_type_code          => l_adr_value_type_code
88212          , p_side                     => 'NA'
88213    );
88214 
88215    xla_ae_lines_pkg.set_ccid(
88216     p_code_combination_id          => l_ccid
88217   , p_value_type_code              => l_adr_value_type_code
88218   , p_transaction_coa_id           => l_adr_transaction_coa_id
88219   , p_accounting_coa_id            => l_adr_accounting_coa_id
88220   , p_adr_code                     => 'AP_LIAB'
88221   , p_adr_type_code                => 'S'
88222   , p_component_type               => l_component_type
88223   , p_component_code               => l_component_code
88224   , p_component_type_code          => l_component_type_code
88225   , p_component_appl_id            => l_component_appl_id
88226   , p_amb_context_code             => l_amb_context_code
88227   , p_side                         => 'NA'
88228   );
88229 
88230 
88231    --
88232    --
88233    END IF;
88234    --
88235    -- Bug 4922099
88236    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88237           (NVL(l_enc_upg_option, 'N') = 'O')
88238         ) AND
88239         (l_bflow_method_code = 'PRIOR_ENTRY')
88240       )
88241    THEN
88242       IF
88243       --
88244       1 = 2
88245       --
88246       THEN
88247       xla_accounting_err_pkg.build_message
88248                                     (p_appli_s_name            => 'XLA'
88249                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88250                                     ,p_token_1                 => 'LINE_NUMBER'
88251                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88252                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88253                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88254                                                                              l_component_type
88255                                                                             ,l_component_code
88256                                                                             ,l_component_type_code
88257                                                                             ,l_component_appl_id
88258                                                                             ,l_amb_context_code
88259                                                                             ,l_entity_code
88260                                                                             ,l_event_class_code
88261                                                                            )
88262                                     ,p_token_3                 => 'OWNER'
88263                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88264                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88265                                                                           ,p_lookup_code    => l_component_type_code
88266                                                                          )
88267                                     ,p_token_4                 => 'PRODUCT_NAME'
88271                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88268                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88269                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88270                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88272                                     ,p_ae_header_id            =>  NULL
88273                                        );
88274 
88275         IF (C_LEVEL_ERROR>= g_log_level) THEN
88276                  trace
88277                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88278                       ,p_level    => C_LEVEL_ERROR
88279                       ,p_module   => l_log_module);
88280         END IF;
88281       END IF;
88282    END IF;
88283    --
88284    --
88285    ------------------------------------------------------------------------------------------------
88286    -- 4219869 Business Flow
88287    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88288    -- Prior Entry.  Currently, the following code is always generated.
88289    ------------------------------------------------------------------------------------------------
88290    XLA_AE_LINES_PKG.ValidateCurrentLine;
88291 
88292    ------------------------------------------------------------------------------------
88293    -- 4219869 Business Flow
88294    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88295    ------------------------------------------------------------------------------------
88296    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88297 
88298    ----------------------------------------------------------------------------------
88299    -- 4219869 Business Flow
88300    -- Update journal entry status -- Need to generate this within IF <condition>
88301    ----------------------------------------------------------------------------------
88302    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88303          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88304          ,p_balance_type_code => l_balance_type_code
88305          );
88306 
88307    -------------------------------------------------------------------------------------------
88308    -- 4262811 - Generate the Accrual Reversal lines
88309    -------------------------------------------------------------------------------------------
88310    BEGIN
88311       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88312                               (g_array_event(p_event_id).array_value_num('header_index'));
88313       IF l_acc_rev_flag IS NULL THEN
88314          l_acc_rev_flag := 'N';
88315       END IF;
88316    EXCEPTION
88317       WHEN OTHERS THEN
88318          l_acc_rev_flag := 'N';
88319    END;
88320    --
88321    IF (l_acc_rev_flag = 'Y') THEN
88322 
88323        -- 4645092  ------------------------------------------------------------------------------
88324        -- To allow MPA report to determine if it should generate report process
88325        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88326        ------------------------------------------------------------------------------------------
88327 
88328        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88329        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88330    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88331    -- call ADRs
88332    -- Bug 4922099
88333    --
88334    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88335         (NVL(l_actual_upg_option, 'N') = 'O') OR
88336         (NVL(l_enc_upg_option, 'N') = 'O')
88337       )
88338    THEN
88339    NULL;
88340    --
88341    --
88342    
88343   l_ccid := AcctDerRule_36(
88344            p_application_id           => p_application_id
88345          , p_ae_header_id             => l_ae_header_id 
88346 , p_source_29 => p_source_29
88347          , x_transaction_coa_id       => l_adr_transaction_coa_id
88348          , x_accounting_coa_id        => l_adr_accounting_coa_id
88349          , x_value_type_code          => l_adr_value_type_code
88350          , p_side                     => 'NA'
88351    );
88352 
88353    xla_ae_lines_pkg.set_ccid(
88354     p_code_combination_id          => l_ccid
88355   , p_value_type_code              => l_adr_value_type_code
88356   , p_transaction_coa_id           => l_adr_transaction_coa_id
88357   , p_accounting_coa_id            => l_adr_accounting_coa_id
88358   , p_adr_code                     => 'AP_LIAB'
88359   , p_adr_type_code                => 'S'
88360   , p_component_type               => l_component_type
88361   , p_component_code               => l_component_code
88362   , p_component_type_code          => l_component_type_code
88363   , p_component_appl_id            => l_component_appl_id
88364   , p_amb_context_code             => l_amb_context_code
88365   , p_side                         => 'NA'
88366   );
88367 
88368 
88369    --
88370    --
88371    END IF;
88372 
88373        --
88374        -- Update the line information that should be overwritten
88375        --
88376        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88377                                          p_header_num   => 1);
88378        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88379 
88383           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88380        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88381 
88382        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88384        END IF;
88385 
88386       --
88387       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88388       --
88389       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88390           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88391       ELSE
88392           ---------------------------------------------------------------------------------------------------
88393           -- 4262811a Switch Sign
88394           ---------------------------------------------------------------------------------------------------
88395           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88396           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88397                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88398           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88399                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88400           -- 5132302
88401           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88402                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88403 
88404       END IF;
88405 
88406       -- 4955764
88407       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88408       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88409 
88410 
88411       XLA_AE_LINES_PKG.ValidateCurrentLine;
88412       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88413 
88414       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88415                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88416                ,p_balance_type_code => l_balance_type_code);
88417 
88418    END IF;
88419 
88420    -----------------------------------------------------------------------------------------
88421    -- 4262811 Multiperiod Accounting
88422    -----------------------------------------------------------------------------------------
88423      -- No MPA option is assigned.
88424 
88425 
88426 END IF;
88427 END IF;
88428 --
88429 
88430 --
88431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88432    trace
88433       (p_msg      => 'END of AcctLineType_163'
88434       ,p_level    => C_LEVEL_PROCEDURE
88435       ,p_module   => l_log_module);
88436 END IF;
88437 --
88438 EXCEPTION
88439   WHEN xla_exceptions_pkg.application_exception THEN
88440       RAISE;
88441   WHEN OTHERS THEN
88442        xla_exceptions_pkg.raise_message
88443            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_163');
88444 END AcctLineType_163;
88445 --
88446 
88447 ---------------------------------------
88448 --
88449 -- PRIVATE FUNCTION
88450 --         AcctLineType_164
88451 --
88452 ---------------------------------------
88453 PROCEDURE AcctLineType_164 (
88454   p_application_id        IN NUMBER
88455  ,p_event_id              IN NUMBER
88456  ,p_calculate_acctd_flag  IN VARCHAR2
88457  ,p_calculate_g_l_flag    IN VARCHAR2
88458  ,p_actual_flag           IN OUT VARCHAR2
88459  ,p_balance_type_code     OUT VARCHAR2
88460  ,p_gain_or_loss_ref      OUT VARCHAR2
88461  
88462 --Invoice Distribution Description
88463  , p_source_1            IN VARCHAR2
88464 --Automatic Offsets Value
88465  , p_source_10            IN VARCHAR2
88466  , p_source_10_meaning    IN VARCHAR2
88467 --Invoice Distribution Ledger Amount
88468  , p_source_16            IN NUMBER
88469 --Invoice Liability Account
88470  , p_source_29            IN NUMBER
88471 --Accounting Reversal Indicator
88472  , p_source_58            IN VARCHAR2
88473 --Distribution Link Type
88474  , p_source_60            IN VARCHAR2
88475 --Allocation to Main Distribution Identifier
88476  , p_source_62            IN NUMBER
88477 --Invoice Identifier
88478  , p_source_63            IN NUMBER
88479 --Invoice Distribution Identifier
88480  , p_source_69            IN NUMBER
88481 --Payables Encumbrance Upgrade Credit Account
88482  , p_source_70            IN NUMBER
88483 --Payables Encumbrance Upgrade Credit Amount
88484  , p_source_71            IN NUMBER
88485 --Invoice Currency Code
88486  , p_source_72            IN VARCHAR2
88487 --Payables Encumbrance Upgrade Credit Base Amount
88488  , p_source_73            IN NUMBER
88489 --Payables Encumbrance Upgrade Debit Account
88490  , p_source_74            IN NUMBER
88491 --Payables Encumbrance Upgrade Debit Amount
88492  , p_source_75            IN NUMBER
88493 --Payables Encumbrance Upgrade Debit Base Amount
88494  , p_source_76            IN NUMBER
88495 --Payables Encumbrance Upgrade Option
88496  , p_source_77            IN VARCHAR2
88497 --Invoice Distribution Amount
88498  , p_source_78            IN NUMBER
88499 --Deferred Accounting End Date
88500  , p_source_82            IN DATE
88504  , p_source_84            IN DATE
88501 --Deferred Accounting Option
88502  , p_source_83            IN VARCHAR2
88503 --Deferred Accounting Start Date
88505 --Override Accounted Amount Indicator
88506  , p_source_85            IN VARCHAR2
88507  , p_source_85_meaning    IN VARCHAR2
88508 --Invoice Supplier Identifier
88509  , p_source_86            IN NUMBER
88510 --Invoice Supplier Site Identifier
88511  , p_source_87            IN NUMBER
88512 --Third Party Type
88513  , p_source_88            IN VARCHAR2
88514 --Parent Reversal Identifier
88515  , p_source_89            IN NUMBER
88516 --Invoice Distribution Statistical Amount
88517  , p_source_90            IN NUMBER
88518 --Invoice Distribution Tax Line Identifier
88519  , p_source_91            IN NUMBER
88520 --Invoice Distribution Tax Distribution Identifier from Tax
88521  , p_source_92            IN NUMBER
88522 --Invoice Distribution Summary Tax Line Identifier
88523  , p_source_93            IN NUMBER
88524 --Payables Upgrade Credit Encumbrance Type Identifier
88525  , p_source_94            IN NUMBER
88526 --Payables Upgrade Debit Encumbrance Type Identifier
88527  , p_source_95            IN NUMBER
88528 --Business Flow Accounts Payable Application Identifier
88529  , p_source_96            IN NUMBER
88530 --Business Flow Invoice Distribution Type
88531  , p_source_97            IN VARCHAR2
88532 --Business Flow Invoice Entity Code
88533  , p_source_98            IN VARCHAR2
88534 --Business Flow Invoice Distribution Identifier
88535  , p_source_99            IN NUMBER
88536 --Business Flow Invoice Identifier
88537  , p_source_100            IN NUMBER
88538 --Self-Assessed Tax Flag
88539  , p_source_145            IN VARCHAR2
88540  , p_source_145_meaning    IN VARCHAR2
88541 --Invoice Exchange Date
88542  , p_source_146            IN DATE
88543 --Invoice Exchange Rate
88544  , p_source_147            IN NUMBER
88545 --Invoice Exchange Rate Type
88546  , p_source_148            IN VARCHAR2
88547 --Invoice Type
88548  , p_source_167            IN VARCHAR2
88549  , p_source_167_meaning    IN VARCHAR2
88550 )
88551 IS
88552 
88553 l_component_type              VARCHAR2(80);
88554 l_component_code              VARCHAR2(30);
88555 l_component_type_code         VARCHAR2(1);
88556 l_component_appl_id           INTEGER;
88557 l_amb_context_code            VARCHAR2(30);
88558 l_entity_code                 VARCHAR2(30);
88559 l_event_class_code            VARCHAR2(30);
88560 l_ae_header_id                NUMBER;
88561 l_event_type_code             VARCHAR2(30);
88562 l_line_definition_code        VARCHAR2(30);
88563 l_line_definition_owner_code  VARCHAR2(1);
88564 --
88565 -- adr variables
88566 l_segment                     VARCHAR2(30);
88567 l_ccid                        NUMBER;
88568 l_adr_transaction_coa_id      NUMBER;
88569 l_adr_accounting_coa_id       NUMBER;
88570 l_adr_flexfield_segment_code  VARCHAR2(30);
88571 l_adr_flex_value_set_id       NUMBER;
88572 l_adr_value_type_code         VARCHAR2(30);
88573 l_adr_value_combination_id    NUMBER;
88574 l_adr_value_segment_code      VARCHAR2(30);
88575 
88576 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88577 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88578 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88579 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88580 
88581 -- 4262811 Variables ------------------------------------------------------------------------------------------
88582 l_entered_amt_idx             NUMBER;
88583 l_accted_amt_idx              NUMBER;
88584 l_acc_rev_flag                VARCHAR2(1);
88585 l_accrual_line_num            NUMBER;
88586 l_tmp_amt                     NUMBER;
88587 l_acc_rev_natural_side_code   VARCHAR2(1);
88588 
88589 l_num_entries                 NUMBER;
88590 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88591 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88592 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88593 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88594 l_recog_line_1                NUMBER;
88595 l_recog_line_2                NUMBER;
88596 
88597 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88598 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88599 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88600 
88601 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88602 
88603 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88604 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88605 
88606 ---------------------------------------------------------------------------------------------------------------
88607 
88608 
88609 --
88610 -- bulk performance
88611 --
88612 l_balance_type_code           VARCHAR2(1);
88613 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88614 l_log_module                  VARCHAR2(240);
88615 
88616 --
88617 -- Upgrade strategy
88618 --
88619 l_actual_upg_option           VARCHAR2(1);
88620 l_enc_upg_option           VARCHAR2(1);
88621 
88622 --
88623 BEGIN
88624 --
88625 IF g_log_enabled THEN
88626       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
88627 END IF;
88628 --
88629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88630 
88631       trace
88635 
88632          (p_msg      => 'BEGIN of AcctLineType_164'
88633          ,p_level    => C_LEVEL_PROCEDURE
88634          ,p_module   => l_log_module);
88636 END IF;
88637 --
88638 l_component_type             := 'AMB_JLT';
88639 l_component_code             := 'AP_LIAB_INV_AOS_AS';
88640 l_component_type_code        := 'S';
88641 l_component_appl_id          :=  200;
88642 l_amb_context_code           := 'DEFAULT';
88643 l_entity_code                := 'AP_INVOICES';
88644 l_event_class_code           := 'INVOICES';
88645 l_event_type_code            := 'INVOICES_ALL';
88646 l_line_definition_owner_code := 'S';
88647 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
88648 --
88649 l_balance_type_code          := 'A';
88650 l_segment                     := NULL;
88651 l_ccid                        := NULL;
88652 l_adr_transaction_coa_id      := NULL;
88653 l_adr_accounting_coa_id       := NULL;
88654 l_adr_flexfield_segment_code  := NULL;
88655 l_adr_flex_value_set_id       := NULL;
88656 l_adr_value_type_code         := NULL;
88657 l_adr_value_combination_id    := NULL;
88658 l_adr_value_segment_code      := NULL;
88659 
88660 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
88661 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
88662 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88663 l_budgetary_control_flag     := 'N';
88664 
88665 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88666 l_bflow_applied_to_amt       := NULL; -- 5132302
88667 l_entered_amt_idx            := NULL;          -- 4262811
88668 l_accted_amt_idx             := NULL;          -- 4262811
88669 l_acc_rev_flag               := NULL;          -- 4262811
88670 l_accrual_line_num           := NULL;          -- 4262811
88671 l_tmp_amt                    := NULL;          -- 4262811
88672 --
88673  
88674 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88675     l_balance_type_code <> 'B' THEN
88676 IF NVL(p_source_10,'
88677 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
88678 (NVL(p_source_167,'
88679 ') =  'STANDARD' OR 
88680 NVL(p_source_167,'
88681 ') =  'MIXED' OR 
88682 NVL(p_source_167,'
88683 ') =  'AWT' OR 
88684 NVL(p_source_167,'
88685 ') =  'PO PRICE ADJUST' OR 
88686 NVL(p_source_167,'
88687 ') =  'EXPENSE REPORT' OR 
88688 NVL(p_source_167,'
88689 ') =  'PAYMENT REQUEST' OR 
88690 NVL(p_source_167,'
88691 ') =  'RETAINAGE RELEASE') AND 
88692 NVL(p_source_145,'
88693 ') <>  'Y'
88694  THEN 
88695 
88696    --
88697    XLA_AE_LINES_PKG.SetNewLine;
88698 
88699    p_balance_type_code          := l_balance_type_code;
88700    -- set the flag so later we will know whether the gain loss line needs to be created
88701    
88702    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88703      p_actual_flag :='A';
88704    END IF;
88705 
88706    --
88707    -- bulk performance
88708    --
88709    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88710                                       p_header_num   => 0); -- 4262811
88711    --
88712    -- set accounting line options
88713    --
88714    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88715            p_natural_side_code          => 'C'
88716          , p_gain_or_loss_flag          => 'N'
88717          , p_gl_transfer_mode_code      => 'S'
88718          , p_acct_entry_type_code       => 'A'
88719          , p_switch_side_flag           => 'Y'
88720          , p_merge_duplicate_code       => 'A'
88721          );
88722    --
88723    l_acc_rev_natural_side_code := 'D';  -- 4262811
88724    -- 
88725    --
88726    -- set accounting line type info
88727    --
88728    xla_ae_lines_pkg.SetAcctLineType
88729       (p_component_type             => l_component_type
88730       ,p_event_type_code            => l_event_type_code
88731       ,p_line_definition_owner_code => l_line_definition_owner_code
88732       ,p_line_definition_code       => l_line_definition_code
88733       ,p_accounting_line_code       => l_component_code
88734       ,p_accounting_line_type_code  => l_component_type_code
88735       ,p_accounting_line_appl_id    => l_component_appl_id
88736       ,p_amb_context_code           => l_amb_context_code
88737       ,p_entity_code                => l_entity_code
88738       ,p_event_class_code           => l_event_class_code);
88739    --
88740    -- set accounting class
88741    --
88742    xla_ae_lines_pkg.SetAcctClass(
88743            p_accounting_class_code  => 'LIABILITY'
88744          , p_ae_header_id           => l_ae_header_id
88745          );
88746 
88747    --
88748    -- set rounding class
88749    --
88750    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88751                       'LIABILITY';
88752 
88753    --
88754    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88755    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88756    --
88757    -- bulk performance
88758    --
88759    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88760 
88761    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88762       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88763 
88764    -- 4955764
88768    -- 4458381 Public Sector Enh
88765    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88766       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88767 
88769    
88770    --
88771    -- set accounting attributes for the line type
88772    --
88773    l_entered_amt_idx := 24;
88774    l_accted_amt_idx  := 29;
88775    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
88776    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88777    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
88778    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88779    l_rec_acct_attrs.array_num_value(2)  := 
88780 xla_ae_sources_pkg.GetSystemSourceNum(
88781    p_source_code           => 'XLA_EVENT_APPL_ID'
88782  , p_source_type_code      => 'Y'
88783  , p_source_application_id =>  602
88784 );
88785    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88786    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
88787    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88788    l_rec_acct_attrs.array_char_value(4)  := 
88789 xla_ae_sources_pkg.GetSystemSourceChar(
88790    p_source_code           => 'XLA_ENTITY_CODE'
88791  , p_source_type_code      => 'Y'
88792  , p_source_application_id =>  602
88793 );
88794    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88795    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
88796    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88797    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
88798    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
88799    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
88800    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
88801    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
88802    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88803    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
88804    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
88805    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
88806    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
88807    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
88808    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88809    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
88810    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
88811    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
88812    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
88813    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
88814    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
88815    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
88816    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
88817    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
88818    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
88819    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
88820    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
88821    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
88822    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
88823    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
88824    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
88825    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
88826    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
88827    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
88828    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
88829    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
88830    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
88831    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
88832    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
88833    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
88834    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
88835    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
88836    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
88837    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
88838    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
88839    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
88840    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
88841    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
88842    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
88843    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
88844    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
88845    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
88846    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
88847    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
88848    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
88849    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
88850    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
88851    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
88852    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
88853    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
88854    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
88855    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
88859    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
88856    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
88857    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
88858    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
88860    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
88861    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
88862    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
88863    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
88864    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
88865    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
88866    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
88867    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
88868    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
88869    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
88870    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
88871    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
88872    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
88873    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
88874 
88875    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88876    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88877 
88878    ---------------------------------------------------------------------------------------------------------------
88879    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88880    ---------------------------------------------------------------------------------------------------------------
88881    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88882 
88883    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88884    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88885 
88886    IF xla_accounting_cache_pkg.GetValueChar
88887          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88888          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88889    AND l_bflow_method_code = 'PRIOR_ENTRY'
88890 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88891    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88892          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88893        )
88894    THEN
88895          xla_ae_lines_pkg.BflowUpgEntry
88896            (p_business_method_code    => l_bflow_method_code
88897            ,p_business_class_code     => l_bflow_class_code
88898            ,p_balance_type            => l_balance_type_code);
88899    ELSE
88900       NULL;
88901 XLA_AE_LINES_PKG.business_flow_validation(
88902                                 p_business_method_code     => l_bflow_method_code
88903                                ,p_business_class_code      => l_bflow_class_code
88904                                ,p_inherit_description_flag => l_inherit_desc_flag);
88905    END IF;
88906 
88907    --
88908    -- call analytical criteria
88909    --
88910    
88911    --
88912    -- call description
88913    --
88914    
88915 xla_ae_lines_pkg.SetLineDescription(
88916    p_ae_header_id => l_ae_header_id
88917   ,p_description  => Description_2 (
88918      p_application_id         => p_application_id
88919    , p_ae_header_id           => l_ae_header_id 
88920 , p_source_1 => p_source_1
88921    )
88922 );
88923 
88924 
88925    --
88926    -- call ADRs
88927    -- Bug 4922099
88928    --
88929    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88930         (NVL(l_actual_upg_option, 'N') = 'O') OR
88931         (NVL(l_enc_upg_option, 'N') = 'O')
88932       )
88933    THEN
88934    NULL;
88935    --
88936    --
88937    
88938    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
88939      p_code_combination_id      => TO_NUMBER(C_NUM)
88940    , p_value_type_code          => NULL
88941    , p_transaction_coa_id       => null
88942    , p_accounting_coa_id        => null
88943    , p_adr_code                 => NULL
88944    , p_adr_type_code            => NULL
88945    , p_component_type           => l_component_type
88946    , p_component_code           => l_component_code
88947    , p_component_type_code      => l_component_type_code
88948    , p_component_appl_id        => l_component_appl_id
88949    , p_amb_context_code         => l_amb_context_code
88950    , p_side                     => NULL
88951    );
88952 
88953    
88954   -- initialise segments
88955   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88956   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88957   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88958   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88959   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88960   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88961   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88962   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88963   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88964   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88968   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88965   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88966   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88967   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88969   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88970   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88971   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88972   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88973   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88974   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88975   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88976   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88977   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88978   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88979   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88980   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88981   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88982   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88983   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88984   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88985   --
88986 
88987    --
88988 
88989 
88990    l_segment := AcctDerRule_15(
88991            p_application_id           => p_application_id
88992          , p_ae_header_id             => l_ae_header_id 
88993 , p_source_29 => p_source_29
88994          , x_transaction_coa_id       => l_adr_transaction_coa_id
88995          , x_accounting_coa_id        => l_adr_accounting_coa_id
88996          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
88997          , x_flex_value_set_id        => l_adr_flex_value_set_id
88998          , x_value_type_code          => l_adr_value_type_code
88999          , x_value_combination_id     => l_adr_value_combination_id
89000          , x_value_segment_code       => l_adr_value_segment_code
89001          , p_side                     => 'NA'
89002          , p_override_seg_flag        => 'Y'
89003    );
89004 
89005    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
89006 
89007       xla_ae_lines_pkg.set_segment(
89008           p_to_segment_code         => 'GL_ACCOUNT'
89009         , p_segment_value           => l_segment
89010         , p_from_segment_code       => l_adr_value_segment_code
89011         , p_from_combination_id     => l_adr_value_combination_id
89012         , p_value_type_code         => l_adr_value_type_code
89013         , p_transaction_coa_id      => l_adr_transaction_coa_id
89014         , p_accounting_coa_id       => l_adr_accounting_coa_id
89015         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
89016         , p_flex_value_set_id       => l_adr_flex_value_set_id
89017         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
89018         , p_adr_type_code           => 'S'
89019         , p_component_type          => l_component_type
89020         , p_component_code          => l_component_code
89021         , p_component_type_code     => l_component_type_code
89022         , p_component_appl_id       => l_component_appl_id
89023         , p_amb_context_code        => l_amb_context_code
89024         , p_entity_code             => 'AP_INVOICES'
89025         , p_event_class_code        => 'INVOICES'
89026         , p_side                    => 'NA'
89027         );
89028 
89029   END IF;
89030 
89031    --
89032    --
89033    END IF;
89034    --
89035    -- Bug 4922099
89036    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89037           (NVL(l_enc_upg_option, 'N') = 'O')
89038         ) AND
89039         (l_bflow_method_code = 'PRIOR_ENTRY')
89040       )
89041    THEN
89042       IF
89043       --
89044       1 = 2
89045       --
89046       THEN
89047       xla_accounting_err_pkg.build_message
89048                                     (p_appli_s_name            => 'XLA'
89049                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89050                                     ,p_token_1                 => 'LINE_NUMBER'
89051                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89052                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89053                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89054                                                                              l_component_type
89055                                                                             ,l_component_code
89056                                                                             ,l_component_type_code
89057                                                                             ,l_component_appl_id
89058                                                                             ,l_amb_context_code
89062                                     ,p_token_3                 => 'OWNER'
89059                                                                             ,l_entity_code
89060                                                                             ,l_event_class_code
89061                                                                            )
89063                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89064                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89065                                                                           ,p_lookup_code    => l_component_type_code
89066                                                                          )
89067                                     ,p_token_4                 => 'PRODUCT_NAME'
89068                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89069                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89070                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89071                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89072                                     ,p_ae_header_id            =>  NULL
89073                                        );
89074 
89075         IF (C_LEVEL_ERROR>= g_log_level) THEN
89076                  trace
89077                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89078                       ,p_level    => C_LEVEL_ERROR
89079                       ,p_module   => l_log_module);
89080         END IF;
89081       END IF;
89082    END IF;
89083    --
89084    --
89085    ------------------------------------------------------------------------------------------------
89086    -- 4219869 Business Flow
89087    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89088    -- Prior Entry.  Currently, the following code is always generated.
89089    ------------------------------------------------------------------------------------------------
89090    XLA_AE_LINES_PKG.ValidateCurrentLine;
89091 
89092    ------------------------------------------------------------------------------------
89093    -- 4219869 Business Flow
89094    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89095    ------------------------------------------------------------------------------------
89096    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89097 
89098    ----------------------------------------------------------------------------------
89099    -- 4219869 Business Flow
89100    -- Update journal entry status -- Need to generate this within IF <condition>
89101    ----------------------------------------------------------------------------------
89102    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89103          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89104          ,p_balance_type_code => l_balance_type_code
89105          );
89106 
89107    -------------------------------------------------------------------------------------------
89108    -- 4262811 - Generate the Accrual Reversal lines
89109    -------------------------------------------------------------------------------------------
89110    BEGIN
89111       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89112                               (g_array_event(p_event_id).array_value_num('header_index'));
89113       IF l_acc_rev_flag IS NULL THEN
89114          l_acc_rev_flag := 'N';
89115       END IF;
89116    EXCEPTION
89117       WHEN OTHERS THEN
89118          l_acc_rev_flag := 'N';
89119    END;
89120    --
89121    IF (l_acc_rev_flag = 'Y') THEN
89122 
89123        -- 4645092  ------------------------------------------------------------------------------
89124        -- To allow MPA report to determine if it should generate report process
89125        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89126        ------------------------------------------------------------------------------------------
89127 
89128        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89129        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89130    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89131    -- call ADRs
89132    -- Bug 4922099
89133    --
89134    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89135         (NVL(l_actual_upg_option, 'N') = 'O') OR
89136         (NVL(l_enc_upg_option, 'N') = 'O')
89137       )
89138    THEN
89139    NULL;
89140    --
89141    --
89142    
89143    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
89144      p_code_combination_id      => TO_NUMBER(C_NUM)
89145    , p_value_type_code          => NULL
89146    , p_transaction_coa_id       => null
89147    , p_accounting_coa_id        => null
89148    , p_adr_code                 => NULL
89149    , p_adr_type_code            => NULL
89150    , p_component_type           => l_component_type
89151    , p_component_code           => l_component_code
89152    , p_component_type_code      => l_component_type_code
89153    , p_component_appl_id        => l_component_appl_id
89154    , p_amb_context_code         => l_amb_context_code
89155    , p_side                     => NULL
89156    );
89157 
89158    
89159   -- initialise segments
89163   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89160   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89161   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89162   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89164   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89165   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89166   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89167   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89168   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
89169   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89170   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89171   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89172   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89173   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89174   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89175   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89176   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89177   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89178   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89179   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89180   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89181   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89182   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89183   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89184   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89185   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89186   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89187   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89188   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89189   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
89190   --
89191 
89192    --
89193 
89194 
89195    l_segment := AcctDerRule_15(
89196            p_application_id           => p_application_id
89197          , p_ae_header_id             => l_ae_header_id 
89198 , p_source_29 => p_source_29
89199          , x_transaction_coa_id       => l_adr_transaction_coa_id
89200          , x_accounting_coa_id        => l_adr_accounting_coa_id
89201          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
89202          , x_flex_value_set_id        => l_adr_flex_value_set_id
89203          , x_value_type_code          => l_adr_value_type_code
89204          , x_value_combination_id     => l_adr_value_combination_id
89205          , x_value_segment_code       => l_adr_value_segment_code
89206          , p_side                     => 'NA'
89207          , p_override_seg_flag        => 'Y'
89208    );
89209 
89210    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
89211 
89212       xla_ae_lines_pkg.set_segment(
89213           p_to_segment_code         => 'GL_ACCOUNT'
89214         , p_segment_value           => l_segment
89215         , p_from_segment_code       => l_adr_value_segment_code
89216         , p_from_combination_id     => l_adr_value_combination_id
89217         , p_value_type_code         => l_adr_value_type_code
89218         , p_transaction_coa_id      => l_adr_transaction_coa_id
89219         , p_accounting_coa_id       => l_adr_accounting_coa_id
89220         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
89221         , p_flex_value_set_id       => l_adr_flex_value_set_id
89222         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
89223         , p_adr_type_code           => 'S'
89224         , p_component_type          => l_component_type
89225         , p_component_code          => l_component_code
89226         , p_component_type_code     => l_component_type_code
89227         , p_component_appl_id       => l_component_appl_id
89228         , p_amb_context_code        => l_amb_context_code
89229         , p_entity_code             => 'AP_INVOICES'
89230         , p_event_class_code        => 'INVOICES'
89231         , p_side                    => 'NA'
89232         );
89233 
89234   END IF;
89235 
89236    --
89237    --
89238    END IF;
89239 
89240        --
89241        -- Update the line information that should be overwritten
89242        --
89243        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89244                                          p_header_num   => 1);
89245        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89246 
89247        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89248 
89249        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89250           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89251        END IF;
89252 
89253       --
89257           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89254       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89255       --
89256       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89258       ELSE
89259           ---------------------------------------------------------------------------------------------------
89260           -- 4262811a Switch Sign
89261           ---------------------------------------------------------------------------------------------------
89262           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89263           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89264                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89265           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89266                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89267           -- 5132302
89268           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89269                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89270 
89271       END IF;
89272 
89273       -- 4955764
89274       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89275       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89276 
89277 
89278       XLA_AE_LINES_PKG.ValidateCurrentLine;
89279       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89280 
89281       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89282                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89283                ,p_balance_type_code => l_balance_type_code);
89284 
89285    END IF;
89286 
89287    -----------------------------------------------------------------------------------------
89288    -- 4262811 Multiperiod Accounting
89289    -----------------------------------------------------------------------------------------
89290      -- No MPA option is assigned.
89291 
89292 
89293 END IF;
89294 END IF;
89295 --
89296 
89297 --
89298 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89299    trace
89300       (p_msg      => 'END of AcctLineType_164'
89301       ,p_level    => C_LEVEL_PROCEDURE
89302       ,p_module   => l_log_module);
89303 END IF;
89304 --
89305 EXCEPTION
89306   WHEN xla_exceptions_pkg.application_exception THEN
89307       RAISE;
89308   WHEN OTHERS THEN
89309        xla_exceptions_pkg.raise_message
89310            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_164');
89311 END AcctLineType_164;
89312 --
89313 
89314 ---------------------------------------
89315 --
89316 -- PRIVATE FUNCTION
89317 --         AcctLineType_165
89318 --
89319 ---------------------------------------
89320 PROCEDURE AcctLineType_165 (
89321   p_application_id        IN NUMBER
89322  ,p_event_id              IN NUMBER
89323  ,p_calculate_acctd_flag  IN VARCHAR2
89324  ,p_calculate_g_l_flag    IN VARCHAR2
89325  ,p_actual_flag           IN OUT VARCHAR2
89326  ,p_balance_type_code     OUT VARCHAR2
89327  ,p_gain_or_loss_ref      OUT VARCHAR2
89328  
89329 --Invoice Distribution Description
89330  , p_source_1            IN VARCHAR2
89331 --Automatic Offsets Value
89332  , p_source_10            IN VARCHAR2
89333  , p_source_10_meaning    IN VARCHAR2
89334 --Invoice Distribution Ledger Amount
89335  , p_source_16            IN NUMBER
89336 --Invoice Liability Account
89337  , p_source_29            IN NUMBER
89338 --Accounting Reversal Indicator
89339  , p_source_58            IN VARCHAR2
89340 --Distribution Link Type
89341  , p_source_60            IN VARCHAR2
89342 --Allocation to Main Distribution Identifier
89343  , p_source_62            IN NUMBER
89344 --Invoice Identifier
89345  , p_source_63            IN NUMBER
89346 --Invoice Distribution Identifier
89347  , p_source_69            IN NUMBER
89348 --Payables Encumbrance Upgrade Credit Account
89349  , p_source_70            IN NUMBER
89350 --Payables Encumbrance Upgrade Credit Amount
89351  , p_source_71            IN NUMBER
89352 --Invoice Currency Code
89353  , p_source_72            IN VARCHAR2
89354 --Payables Encumbrance Upgrade Credit Base Amount
89355  , p_source_73            IN NUMBER
89356 --Payables Encumbrance Upgrade Debit Account
89357  , p_source_74            IN NUMBER
89358 --Payables Encumbrance Upgrade Debit Amount
89359  , p_source_75            IN NUMBER
89360 --Payables Encumbrance Upgrade Debit Base Amount
89361  , p_source_76            IN NUMBER
89362 --Payables Encumbrance Upgrade Option
89363  , p_source_77            IN VARCHAR2
89364 --Invoice Distribution Amount
89365  , p_source_78            IN NUMBER
89366 --Deferred Accounting End Date
89367  , p_source_82            IN DATE
89368 --Deferred Accounting Option
89369  , p_source_83            IN VARCHAR2
89370 --Deferred Accounting Start Date
89371  , p_source_84            IN DATE
89372 --Override Accounted Amount Indicator
89373  , p_source_85            IN VARCHAR2
89374  , p_source_85_meaning    IN VARCHAR2
89375 --Invoice Supplier Identifier
89376  , p_source_86            IN NUMBER
89377 --Invoice Supplier Site Identifier
89378  , p_source_87            IN NUMBER
89379 --Third Party Type
89383 --Invoice Distribution Statistical Amount
89380  , p_source_88            IN VARCHAR2
89381 --Parent Reversal Identifier
89382  , p_source_89            IN NUMBER
89384  , p_source_90            IN NUMBER
89385 --Invoice Distribution Tax Line Identifier
89386  , p_source_91            IN NUMBER
89387 --Invoice Distribution Tax Distribution Identifier from Tax
89388  , p_source_92            IN NUMBER
89389 --Invoice Distribution Summary Tax Line Identifier
89390  , p_source_93            IN NUMBER
89391 --Payables Upgrade Credit Encumbrance Type Identifier
89392  , p_source_94            IN NUMBER
89393 --Payables Upgrade Debit Encumbrance Type Identifier
89394  , p_source_95            IN NUMBER
89395 --Business Flow Accounts Payable Application Identifier
89396  , p_source_96            IN NUMBER
89397 --Business Flow Invoice Distribution Type
89398  , p_source_97            IN VARCHAR2
89399 --Business Flow Invoice Entity Code
89400  , p_source_98            IN VARCHAR2
89401 --Business Flow Invoice Distribution Identifier
89402  , p_source_99            IN NUMBER
89403 --Business Flow Invoice Identifier
89404  , p_source_100            IN NUMBER
89405 --Self-Assessed Tax Flag
89406  , p_source_145            IN VARCHAR2
89407  , p_source_145_meaning    IN VARCHAR2
89408 --Invoice Exchange Date
89409  , p_source_146            IN DATE
89410 --Invoice Exchange Rate
89411  , p_source_147            IN NUMBER
89412 --Invoice Exchange Rate Type
89413  , p_source_148            IN VARCHAR2
89414 --Invoice Type
89415  , p_source_167            IN VARCHAR2
89416  , p_source_167_meaning    IN VARCHAR2
89417 )
89418 IS
89419 
89420 l_component_type              VARCHAR2(80);
89421 l_component_code              VARCHAR2(30);
89422 l_component_type_code         VARCHAR2(1);
89423 l_component_appl_id           INTEGER;
89424 l_amb_context_code            VARCHAR2(30);
89425 l_entity_code                 VARCHAR2(30);
89426 l_event_class_code            VARCHAR2(30);
89427 l_ae_header_id                NUMBER;
89428 l_event_type_code             VARCHAR2(30);
89429 l_line_definition_code        VARCHAR2(30);
89430 l_line_definition_owner_code  VARCHAR2(1);
89431 --
89432 -- adr variables
89433 l_segment                     VARCHAR2(30);
89434 l_ccid                        NUMBER;
89435 l_adr_transaction_coa_id      NUMBER;
89436 l_adr_accounting_coa_id       NUMBER;
89437 l_adr_flexfield_segment_code  VARCHAR2(30);
89438 l_adr_flex_value_set_id       NUMBER;
89439 l_adr_value_type_code         VARCHAR2(30);
89440 l_adr_value_combination_id    NUMBER;
89441 l_adr_value_segment_code      VARCHAR2(30);
89442 
89443 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89444 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89445 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89446 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89447 
89448 -- 4262811 Variables ------------------------------------------------------------------------------------------
89449 l_entered_amt_idx             NUMBER;
89450 l_accted_amt_idx              NUMBER;
89451 l_acc_rev_flag                VARCHAR2(1);
89452 l_accrual_line_num            NUMBER;
89453 l_tmp_amt                     NUMBER;
89454 l_acc_rev_natural_side_code   VARCHAR2(1);
89455 
89456 l_num_entries                 NUMBER;
89457 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89458 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89459 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89460 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89461 l_recog_line_1                NUMBER;
89462 l_recog_line_2                NUMBER;
89463 
89464 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89465 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89466 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89467 
89468 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89469 
89470 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89471 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89472 
89473 ---------------------------------------------------------------------------------------------------------------
89474 
89475 
89476 --
89477 -- bulk performance
89478 --
89479 l_balance_type_code           VARCHAR2(1);
89480 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89481 l_log_module                  VARCHAR2(240);
89482 
89483 --
89484 -- Upgrade strategy
89485 --
89486 l_actual_upg_option           VARCHAR2(1);
89487 l_enc_upg_option           VARCHAR2(1);
89488 
89489 --
89490 BEGIN
89491 --
89492 IF g_log_enabled THEN
89493       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
89494 END IF;
89495 --
89496 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89497 
89498       trace
89499          (p_msg      => 'BEGIN of AcctLineType_165'
89500          ,p_level    => C_LEVEL_PROCEDURE
89501          ,p_module   => l_log_module);
89502 
89503 END IF;
89504 --
89505 l_component_type             := 'AMB_JLT';
89506 l_component_code             := 'AP_LIAB_INV_AOS_BS';
89507 l_component_type_code        := 'S';
89508 l_component_appl_id          :=  200;
89512 l_event_type_code            := 'INVOICES_ALL';
89509 l_amb_context_code           := 'DEFAULT';
89510 l_entity_code                := 'AP_INVOICES';
89511 l_event_class_code           := 'INVOICES';
89513 l_line_definition_owner_code := 'S';
89514 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
89515 --
89516 l_balance_type_code          := 'A';
89517 l_segment                     := NULL;
89518 l_ccid                        := NULL;
89519 l_adr_transaction_coa_id      := NULL;
89520 l_adr_accounting_coa_id       := NULL;
89521 l_adr_flexfield_segment_code  := NULL;
89522 l_adr_flex_value_set_id       := NULL;
89523 l_adr_value_type_code         := NULL;
89524 l_adr_value_combination_id    := NULL;
89525 l_adr_value_segment_code      := NULL;
89526 
89527 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
89528 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
89529 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89530 l_budgetary_control_flag     := 'N';
89531 
89532 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89533 l_bflow_applied_to_amt       := NULL; -- 5132302
89534 l_entered_amt_idx            := NULL;          -- 4262811
89535 l_accted_amt_idx             := NULL;          -- 4262811
89536 l_acc_rev_flag               := NULL;          -- 4262811
89537 l_accrual_line_num           := NULL;          -- 4262811
89538 l_tmp_amt                    := NULL;          -- 4262811
89539 --
89540  
89541 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89542     l_balance_type_code <> 'B' THEN
89543 IF NVL(p_source_10,'
89544 ') =  'BALANCING_SEGMENT' AND 
89545 (NVL(p_source_167,'
89546 ') =  'STANDARD' OR 
89547 NVL(p_source_167,'
89548 ') =  'MIXED' OR 
89549 NVL(p_source_167,'
89550 ') =  'AWT' OR 
89551 NVL(p_source_167,'
89552 ') =  'PO PRICE ADJUST' OR 
89553 NVL(p_source_167,'
89554 ') =  'EXPENSE REPORT' OR 
89555 NVL(p_source_167,'
89556 ') =  'PAYMENT REQUEST' OR 
89557 NVL(p_source_167,'
89558 ') =  'RETAINAGE RELEASE') AND 
89559 NVL(p_source_145,'
89560 ') <>  'Y'
89561  THEN 
89562 
89563    --
89564    XLA_AE_LINES_PKG.SetNewLine;
89565 
89566    p_balance_type_code          := l_balance_type_code;
89567    -- set the flag so later we will know whether the gain loss line needs to be created
89568    
89569    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89570      p_actual_flag :='A';
89571    END IF;
89572 
89573    --
89574    -- bulk performance
89575    --
89576    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89577                                       p_header_num   => 0); -- 4262811
89578    --
89579    -- set accounting line options
89580    --
89581    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89582            p_natural_side_code          => 'C'
89583          , p_gain_or_loss_flag          => 'N'
89584          , p_gl_transfer_mode_code      => 'S'
89585          , p_acct_entry_type_code       => 'A'
89586          , p_switch_side_flag           => 'Y'
89587          , p_merge_duplicate_code       => 'A'
89588          );
89589    --
89590    l_acc_rev_natural_side_code := 'D';  -- 4262811
89591    -- 
89592    --
89593    -- set accounting line type info
89594    --
89595    xla_ae_lines_pkg.SetAcctLineType
89596       (p_component_type             => l_component_type
89597       ,p_event_type_code            => l_event_type_code
89598       ,p_line_definition_owner_code => l_line_definition_owner_code
89599       ,p_line_definition_code       => l_line_definition_code
89600       ,p_accounting_line_code       => l_component_code
89601       ,p_accounting_line_type_code  => l_component_type_code
89602       ,p_accounting_line_appl_id    => l_component_appl_id
89603       ,p_amb_context_code           => l_amb_context_code
89604       ,p_entity_code                => l_entity_code
89605       ,p_event_class_code           => l_event_class_code);
89606    --
89607    -- set accounting class
89608    --
89609    xla_ae_lines_pkg.SetAcctClass(
89610            p_accounting_class_code  => 'LIABILITY'
89611          , p_ae_header_id           => l_ae_header_id
89612          );
89613 
89614    --
89615    -- set rounding class
89616    --
89617    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89618                       'LIABILITY';
89619 
89620    --
89621    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89622    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89623    --
89624    -- bulk performance
89625    --
89626    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89627 
89628    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89629       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89630 
89631    -- 4955764
89632    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89633       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89634 
89635    -- 4458381 Public Sector Enh
89636    
89637    --
89638    -- set accounting attributes for the line type
89639    --
89640    l_entered_amt_idx := 24;
89641    l_accted_amt_idx  := 29;
89642    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
89646    l_rec_acct_attrs.array_num_value(2)  := 
89643    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89644    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
89645    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
89647 xla_ae_sources_pkg.GetSystemSourceNum(
89648    p_source_code           => 'XLA_EVENT_APPL_ID'
89649  , p_source_type_code      => 'Y'
89650  , p_source_application_id =>  602
89651 );
89652    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
89653    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
89654    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
89655    l_rec_acct_attrs.array_char_value(4)  := 
89656 xla_ae_sources_pkg.GetSystemSourceChar(
89657    p_source_code           => 'XLA_ENTITY_CODE'
89658  , p_source_type_code      => 'Y'
89659  , p_source_application_id =>  602
89660 );
89661    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
89662    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
89663    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
89664    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
89665    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
89666    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
89667    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
89668    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
89669    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89670    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
89671    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
89672    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
89673    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
89674    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
89675    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89676    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
89677    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
89678    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
89679    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
89680    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
89681    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
89682    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
89683    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
89684    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
89685    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
89686    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
89687    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
89688    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
89689    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
89690    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
89691    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
89692    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
89693    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
89694    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
89695    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
89696    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
89697    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
89698    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
89699    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
89700    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
89701    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
89702    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
89703    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
89704    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
89705    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
89706    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
89707    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
89708    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
89709    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
89710    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
89711    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
89712    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
89713    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
89714    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
89715    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
89716    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
89717    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
89718    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
89719    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
89720    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
89721    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
89722    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
89723    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
89724    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
89725    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
89726    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
89727    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
89728    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
89732    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
89729    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
89730    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
89731    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
89733    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
89734    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
89735    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
89736    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
89737    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
89738    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
89739    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
89740    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
89741 
89742    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89743    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89744 
89745    ---------------------------------------------------------------------------------------------------------------
89746    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89747    ---------------------------------------------------------------------------------------------------------------
89748    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89749 
89750    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89751    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89752 
89753    IF xla_accounting_cache_pkg.GetValueChar
89754          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89755          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89756    AND l_bflow_method_code = 'PRIOR_ENTRY'
89757 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89758    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89759          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89760        )
89761    THEN
89762          xla_ae_lines_pkg.BflowUpgEntry
89763            (p_business_method_code    => l_bflow_method_code
89764            ,p_business_class_code     => l_bflow_class_code
89765            ,p_balance_type            => l_balance_type_code);
89766    ELSE
89767       NULL;
89768 XLA_AE_LINES_PKG.business_flow_validation(
89769                                 p_business_method_code     => l_bflow_method_code
89770                                ,p_business_class_code      => l_bflow_class_code
89771                                ,p_inherit_description_flag => l_inherit_desc_flag);
89772    END IF;
89773 
89774    --
89775    -- call analytical criteria
89776    --
89777    
89778    --
89779    -- call description
89780    --
89781    
89782 xla_ae_lines_pkg.SetLineDescription(
89783    p_ae_header_id => l_ae_header_id
89784   ,p_description  => Description_2 (
89785      p_application_id         => p_application_id
89786    , p_ae_header_id           => l_ae_header_id 
89787 , p_source_1 => p_source_1
89788    )
89789 );
89790 
89791 
89792    --
89793    -- call ADRs
89794    -- Bug 4922099
89795    --
89796    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89797         (NVL(l_actual_upg_option, 'N') = 'O') OR
89798         (NVL(l_enc_upg_option, 'N') = 'O')
89799       )
89800    THEN
89801    NULL;
89802    --
89803    --
89804    
89805   l_ccid := AcctDerRule_36(
89806            p_application_id           => p_application_id
89807          , p_ae_header_id             => l_ae_header_id 
89808 , p_source_29 => p_source_29
89809          , x_transaction_coa_id       => l_adr_transaction_coa_id
89810          , x_accounting_coa_id        => l_adr_accounting_coa_id
89811          , x_value_type_code          => l_adr_value_type_code
89812          , p_side                     => 'NA'
89813    );
89814 
89815    xla_ae_lines_pkg.set_ccid(
89816     p_code_combination_id          => l_ccid
89817   , p_value_type_code              => l_adr_value_type_code
89818   , p_transaction_coa_id           => l_adr_transaction_coa_id
89819   , p_accounting_coa_id            => l_adr_accounting_coa_id
89820   , p_adr_code                     => 'AP_LIAB'
89821   , p_adr_type_code                => 'S'
89822   , p_component_type               => l_component_type
89823   , p_component_code               => l_component_code
89824   , p_component_type_code          => l_component_type_code
89825   , p_component_appl_id            => l_component_appl_id
89826   , p_amb_context_code             => l_amb_context_code
89827   , p_side                         => 'NA'
89828   );
89829 
89830 
89831    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
89832      p_to_segment_code         => 'GL_BALANCING'
89833    , p_segment_value           => C_CHAR
89834    , p_from_segment_code       => NULL
89835    , p_from_combination_id     => NULL
89836    , p_value_type_code         => NULL
89837    , p_transaction_coa_id      => null
89838    , p_accounting_coa_id       => null
89839    , p_flexfield_segment_code  => NULL
89840    , p_flex_value_set_id       => NULL
89841    , p_adr_code                => NULL
89842    , p_adr_type_code           => NULL
89843    , p_component_type          => l_component_type
89847    , p_amb_context_code        => l_amb_context_code
89844    , p_component_code          => l_component_code
89845    , p_component_type_code     => l_component_type_code
89846    , p_component_appl_id       => l_component_appl_id
89848    , p_entity_code             => 'AP_INVOICES'
89849    , p_event_class_code        => 'INVOICES'
89850    , p_side                    => 'NA'
89851    );
89852    --
89853 
89854 
89855    --
89856    --
89857    END IF;
89858    --
89859    -- Bug 4922099
89860    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89861           (NVL(l_enc_upg_option, 'N') = 'O')
89862         ) AND
89863         (l_bflow_method_code = 'PRIOR_ENTRY')
89864       )
89865    THEN
89866       IF
89867       --
89868       1 = 2
89869       --
89870       THEN
89871       xla_accounting_err_pkg.build_message
89872                                     (p_appli_s_name            => 'XLA'
89873                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89874                                     ,p_token_1                 => 'LINE_NUMBER'
89875                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89876                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89877                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89878                                                                              l_component_type
89879                                                                             ,l_component_code
89880                                                                             ,l_component_type_code
89881                                                                             ,l_component_appl_id
89882                                                                             ,l_amb_context_code
89883                                                                             ,l_entity_code
89884                                                                             ,l_event_class_code
89885                                                                            )
89886                                     ,p_token_3                 => 'OWNER'
89887                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89888                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89889                                                                           ,p_lookup_code    => l_component_type_code
89890                                                                          )
89891                                     ,p_token_4                 => 'PRODUCT_NAME'
89892                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89893                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89894                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89895                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89896                                     ,p_ae_header_id            =>  NULL
89897                                        );
89898 
89899         IF (C_LEVEL_ERROR>= g_log_level) THEN
89900                  trace
89901                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89902                       ,p_level    => C_LEVEL_ERROR
89903                       ,p_module   => l_log_module);
89904         END IF;
89905       END IF;
89906    END IF;
89907    --
89908    --
89909    ------------------------------------------------------------------------------------------------
89910    -- 4219869 Business Flow
89911    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89912    -- Prior Entry.  Currently, the following code is always generated.
89913    ------------------------------------------------------------------------------------------------
89914    XLA_AE_LINES_PKG.ValidateCurrentLine;
89915 
89916    ------------------------------------------------------------------------------------
89917    -- 4219869 Business Flow
89918    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89919    ------------------------------------------------------------------------------------
89920    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89921 
89922    ----------------------------------------------------------------------------------
89923    -- 4219869 Business Flow
89924    -- Update journal entry status -- Need to generate this within IF <condition>
89925    ----------------------------------------------------------------------------------
89926    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89927          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89928          ,p_balance_type_code => l_balance_type_code
89929          );
89930 
89931    -------------------------------------------------------------------------------------------
89932    -- 4262811 - Generate the Accrual Reversal lines
89933    -------------------------------------------------------------------------------------------
89934    BEGIN
89935       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89936                               (g_array_event(p_event_id).array_value_num('header_index'));
89937       IF l_acc_rev_flag IS NULL THEN
89938          l_acc_rev_flag := 'N';
89939       END IF;
89940    EXCEPTION
89941       WHEN OTHERS THEN
89942          l_acc_rev_flag := 'N';
89943    END;
89947        -- 4645092  ------------------------------------------------------------------------------
89944    --
89945    IF (l_acc_rev_flag = 'Y') THEN
89946 
89948        -- To allow MPA report to determine if it should generate report process
89949        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89950        ------------------------------------------------------------------------------------------
89951 
89952        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89953        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89954    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89955    -- call ADRs
89956    -- Bug 4922099
89957    --
89958    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89959         (NVL(l_actual_upg_option, 'N') = 'O') OR
89960         (NVL(l_enc_upg_option, 'N') = 'O')
89961       )
89962    THEN
89963    NULL;
89964    --
89965    --
89966    
89967   l_ccid := AcctDerRule_36(
89968            p_application_id           => p_application_id
89969          , p_ae_header_id             => l_ae_header_id 
89970 , p_source_29 => p_source_29
89971          , x_transaction_coa_id       => l_adr_transaction_coa_id
89972          , x_accounting_coa_id        => l_adr_accounting_coa_id
89973          , x_value_type_code          => l_adr_value_type_code
89974          , p_side                     => 'NA'
89975    );
89976 
89977    xla_ae_lines_pkg.set_ccid(
89978     p_code_combination_id          => l_ccid
89979   , p_value_type_code              => l_adr_value_type_code
89980   , p_transaction_coa_id           => l_adr_transaction_coa_id
89981   , p_accounting_coa_id            => l_adr_accounting_coa_id
89982   , p_adr_code                     => 'AP_LIAB'
89983   , p_adr_type_code                => 'S'
89984   , p_component_type               => l_component_type
89985   , p_component_code               => l_component_code
89986   , p_component_type_code          => l_component_type_code
89987   , p_component_appl_id            => l_component_appl_id
89988   , p_amb_context_code             => l_amb_context_code
89989   , p_side                         => 'NA'
89990   );
89991 
89992 
89993    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
89994      p_to_segment_code         => 'GL_BALANCING'
89995    , p_segment_value           => C_CHAR
89996    , p_from_segment_code       => NULL
89997    , p_from_combination_id     => NULL
89998    , p_value_type_code         => NULL
89999    , p_transaction_coa_id      => null
90000    , p_accounting_coa_id       => null
90001    , p_flexfield_segment_code  => NULL
90002    , p_flex_value_set_id       => NULL
90003    , p_adr_code                => NULL
90004    , p_adr_type_code           => NULL
90005    , p_component_type          => l_component_type
90006    , p_component_code          => l_component_code
90007    , p_component_type_code     => l_component_type_code
90008    , p_component_appl_id       => l_component_appl_id
90009    , p_amb_context_code        => l_amb_context_code
90010    , p_entity_code             => 'AP_INVOICES'
90011    , p_event_class_code        => 'INVOICES'
90012    , p_side                    => 'NA'
90013    );
90014    --
90015 
90016 
90017    --
90018    --
90019    END IF;
90020 
90021        --
90022        -- Update the line information that should be overwritten
90023        --
90024        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90025                                          p_header_num   => 1);
90026        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90027 
90028        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90029 
90030        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90031           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90032        END IF;
90033 
90034       --
90035       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90036       --
90037       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90038           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90039       ELSE
90040           ---------------------------------------------------------------------------------------------------
90041           -- 4262811a Switch Sign
90042           ---------------------------------------------------------------------------------------------------
90043           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90044           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90045                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90046           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90047                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90048           -- 5132302
90049           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90050                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90051 
90052       END IF;
90053 
90054       -- 4955764
90055       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90059       XLA_AE_LINES_PKG.ValidateCurrentLine;
90056       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90057 
90058 
90060       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90061 
90062       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90063                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90064                ,p_balance_type_code => l_balance_type_code);
90065 
90066    END IF;
90067 
90068    -----------------------------------------------------------------------------------------
90069    -- 4262811 Multiperiod Accounting
90070    -----------------------------------------------------------------------------------------
90071      -- No MPA option is assigned.
90072 
90073 
90074 END IF;
90075 END IF;
90076 --
90077 
90078 --
90079 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90080    trace
90081       (p_msg      => 'END of AcctLineType_165'
90082       ,p_level    => C_LEVEL_PROCEDURE
90083       ,p_module   => l_log_module);
90084 END IF;
90085 --
90086 EXCEPTION
90087   WHEN xla_exceptions_pkg.application_exception THEN
90088       RAISE;
90089   WHEN OTHERS THEN
90090        xla_exceptions_pkg.raise_message
90091            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_165');
90092 END AcctLineType_165;
90093 --
90094 
90095 ---------------------------------------
90096 --
90097 -- PRIVATE FUNCTION
90098 --         AcctLineType_166
90099 --
90100 ---------------------------------------
90101 PROCEDURE AcctLineType_166 (
90102   p_application_id        IN NUMBER
90103  ,p_event_id              IN NUMBER
90104  ,p_calculate_acctd_flag  IN VARCHAR2
90105  ,p_calculate_g_l_flag    IN VARCHAR2
90106  ,p_actual_flag           IN OUT VARCHAR2
90107  ,p_balance_type_code     OUT VARCHAR2
90108  ,p_gain_or_loss_ref      OUT VARCHAR2
90109  
90110 --Payment Currency Code
90111  , p_source_8            IN VARCHAR2
90112 --Invoice Type Paid
90113  , p_source_56            IN VARCHAR2
90114  , p_source_56_meaning    IN VARCHAR2
90115 --When to Account for Payment Option
90116  , p_source_57            IN VARCHAR2
90117 --Accounting Reversal Indicator
90118  , p_source_58            IN VARCHAR2
90119 --Distribution Link Type
90120  , p_source_60            IN VARCHAR2
90121 --Override Accounted Amount Indicator
90122  , p_source_85            IN VARCHAR2
90123  , p_source_85_meaning    IN VARCHAR2
90124 --Third Party Type
90125  , p_source_88            IN VARCHAR2
90126 --Invoice Distribution Tax Line Identifier
90127  , p_source_91            IN NUMBER
90128 --Invoice Distribution Tax Distribution Identifier from Tax
90129  , p_source_92            IN NUMBER
90130 --Invoice Distribution Summary Tax Line Identifier
90131  , p_source_93            IN NUMBER
90132 --Business Flow Accounts Payable Application Identifier
90133  , p_source_96            IN NUMBER
90134 --Business Flow Invoice Distribution Type
90135  , p_source_97            IN VARCHAR2
90136 --Business Flow Invoice Entity Code
90137  , p_source_98            IN VARCHAR2
90138 --Business Flow Invoice Distribution Identifier
90139  , p_source_99            IN NUMBER
90140 --Business Flow Invoice Identifier
90141  , p_source_100            IN NUMBER
90142 --Payment Distribution Type
90143  , p_source_101            IN VARCHAR2
90144  , p_source_101_meaning    IN VARCHAR2
90145 --Payment Distribution Amount
90146  , p_source_102            IN NUMBER
90147 --Payment Distribution Identifier
90148  , p_source_107            IN NUMBER
90149 --Payment Distribution Reversed Identifier
90150  , p_source_115            IN NUMBER
90151 --Payment Distribution (Invoice Rate) Ledger Amount
90152  , p_source_119            IN NUMBER
90153 --Payment Type
90154  , p_source_125            IN VARCHAR2
90155  , p_source_125_meaning    IN VARCHAR2
90156 --Invoice Distribution Amount of the Payment Distribution
90157  , p_source_127            IN NUMBER
90158 )
90159 IS
90160 
90161 l_component_type              VARCHAR2(80);
90162 l_component_code              VARCHAR2(30);
90163 l_component_type_code         VARCHAR2(1);
90164 l_component_appl_id           INTEGER;
90165 l_amb_context_code            VARCHAR2(30);
90166 l_entity_code                 VARCHAR2(30);
90167 l_event_class_code            VARCHAR2(30);
90168 l_ae_header_id                NUMBER;
90169 l_event_type_code             VARCHAR2(30);
90170 l_line_definition_code        VARCHAR2(30);
90171 l_line_definition_owner_code  VARCHAR2(1);
90172 --
90173 -- adr variables
90174 l_segment                     VARCHAR2(30);
90175 l_ccid                        NUMBER;
90176 l_adr_transaction_coa_id      NUMBER;
90177 l_adr_accounting_coa_id       NUMBER;
90178 l_adr_flexfield_segment_code  VARCHAR2(30);
90179 l_adr_flex_value_set_id       NUMBER;
90180 l_adr_value_type_code         VARCHAR2(30);
90181 l_adr_value_combination_id    NUMBER;
90182 l_adr_value_segment_code      VARCHAR2(30);
90183 
90184 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90185 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90186 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90187 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90188 
90189 -- 4262811 Variables ------------------------------------------------------------------------------------------
90190 l_entered_amt_idx             NUMBER;
90191 l_accted_amt_idx              NUMBER;
90195 l_acc_rev_natural_side_code   VARCHAR2(1);
90192 l_acc_rev_flag                VARCHAR2(1);
90193 l_accrual_line_num            NUMBER;
90194 l_tmp_amt                     NUMBER;
90196 
90197 l_num_entries                 NUMBER;
90198 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90199 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90200 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90201 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90202 l_recog_line_1                NUMBER;
90203 l_recog_line_2                NUMBER;
90204 
90205 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90206 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90207 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90208 
90209 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90210 
90211 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90212 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90213 
90214 ---------------------------------------------------------------------------------------------------------------
90215 
90216 
90217 --
90218 -- bulk performance
90219 --
90220 l_balance_type_code           VARCHAR2(1);
90221 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90222 l_log_module                  VARCHAR2(240);
90223 
90224 --
90225 -- Upgrade strategy
90226 --
90227 l_actual_upg_option           VARCHAR2(1);
90228 l_enc_upg_option           VARCHAR2(1);
90229 
90230 --
90231 BEGIN
90232 --
90233 IF g_log_enabled THEN
90234       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_166';
90235 END IF;
90236 --
90237 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90238 
90239       trace
90240          (p_msg      => 'BEGIN of AcctLineType_166'
90241          ,p_level    => C_LEVEL_PROCEDURE
90242          ,p_module   => l_log_module);
90243 
90244 END IF;
90245 --
90246 l_component_type             := 'AMB_JLT';
90247 l_component_code             := 'AP_LIAB_PMT';
90248 l_component_type_code        := 'S';
90249 l_component_appl_id          :=  200;
90250 l_amb_context_code           := 'DEFAULT';
90251 l_entity_code                := 'AP_PAYMENTS';
90252 l_event_class_code           := 'PAYMENTS';
90253 l_event_type_code            := 'PAYMENTS_ALL';
90254 l_line_definition_owner_code := 'S';
90255 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
90256 --
90257 l_balance_type_code          := 'A';
90258 l_segment                     := NULL;
90259 l_ccid                        := NULL;
90260 l_adr_transaction_coa_id      := NULL;
90261 l_adr_accounting_coa_id       := NULL;
90262 l_adr_flexfield_segment_code  := NULL;
90263 l_adr_flex_value_set_id       := NULL;
90264 l_adr_value_type_code         := NULL;
90265 l_adr_value_combination_id    := NULL;
90266 l_adr_value_segment_code      := NULL;
90267 
90268 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
90269 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
90270 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90271 l_budgetary_control_flag     := 'N';
90272 
90273 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90274 l_bflow_applied_to_amt       := NULL; -- 5132302
90275 l_entered_amt_idx            := NULL;          -- 4262811
90276 l_accted_amt_idx             := NULL;          -- 4262811
90277 l_acc_rev_flag               := NULL;          -- 4262811
90278 l_accrual_line_num           := NULL;          -- 4262811
90279 l_tmp_amt                    := NULL;          -- 4262811
90280 --
90281  
90282 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90283     l_balance_type_code <> 'B' THEN
90284 IF NVL(p_source_57,'
90285 ') <>  'CLEAR_CLEAR' AND 
90286 NVL(p_source_56,'
90287 ') <>  'INTEREST' AND 
90288 (NVL(p_source_101,'
90289 ') =  'ROUNDING' OR 
90290 NVL(p_source_101,'
90291 ') =  'CASH' OR 
90292 NVL(p_source_101,'
90293 ') =  'DISCOUNT') AND 
90294 NVL(p_source_125,'
90295 ') <>  'R'
90296  THEN 
90297 
90298    --
90299    XLA_AE_LINES_PKG.SetNewLine;
90300 
90301    p_balance_type_code          := l_balance_type_code;
90302    -- set the flag so later we will know whether the gain loss line needs to be created
90303    
90304    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90305      p_actual_flag :='A';
90306    END IF;
90307 
90308    --
90309    -- bulk performance
90310    --
90311    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90312                                       p_header_num   => 0); -- 4262811
90313    --
90314    -- set accounting line options
90315    --
90316    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90317            p_natural_side_code          => 'D'
90318          , p_gain_or_loss_flag          => 'N'
90319          , p_gl_transfer_mode_code      => 'S'
90320          , p_acct_entry_type_code       => 'A'
90321          , p_switch_side_flag           => 'Y'
90322          , p_merge_duplicate_code       => 'A'
90323          );
90324    --
90325    l_acc_rev_natural_side_code := 'C';  -- 4262811
90326    -- 
90327    --
90331       (p_component_type             => l_component_type
90328    -- set accounting line type info
90329    --
90330    xla_ae_lines_pkg.SetAcctLineType
90332       ,p_event_type_code            => l_event_type_code
90333       ,p_line_definition_owner_code => l_line_definition_owner_code
90334       ,p_line_definition_code       => l_line_definition_code
90335       ,p_accounting_line_code       => l_component_code
90336       ,p_accounting_line_type_code  => l_component_type_code
90337       ,p_accounting_line_appl_id    => l_component_appl_id
90338       ,p_amb_context_code           => l_amb_context_code
90339       ,p_entity_code                => l_entity_code
90340       ,p_event_class_code           => l_event_class_code);
90341    --
90342    -- set accounting class
90343    --
90344    xla_ae_lines_pkg.SetAcctClass(
90345            p_accounting_class_code  => 'LIABILITY'
90346          , p_ae_header_id           => l_ae_header_id
90347          );
90348 
90349    --
90350    -- set rounding class
90351    --
90352    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90353                       'LIABILITY';
90354 
90355    --
90356    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90357    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90358    --
90359    -- bulk performance
90360    --
90361    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90362 
90363    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90364       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90365 
90366    -- 4955764
90367    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90368       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90369 
90370    -- 4458381 Public Sector Enh
90371    
90372    --
90373    -- set accounting attributes for the line type
90374    --
90375    l_entered_amt_idx := 10;
90376    l_accted_amt_idx  := 12;
90377    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
90378    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90379    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
90380    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
90381    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
90382    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
90383    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
90384    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90385    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
90386    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
90387    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
90388    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
90389    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
90390    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90391    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
90392    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
90393    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
90394    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
90395    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
90396    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
90397    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
90398    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
90399    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
90400    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
90401    l_rec_acct_attrs.array_num_value(12)  := p_source_119;
90402    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
90403    l_rec_acct_attrs.array_char_value(13)  := p_source_85;
90404    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
90405    l_rec_acct_attrs.array_char_value(14)  := p_source_88;
90406    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
90407    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_115);
90408    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
90409    l_rec_acct_attrs.array_char_value(16)  := p_source_60;
90410    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
90411    l_rec_acct_attrs.array_num_value(17)  := p_source_91;
90412    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
90413    l_rec_acct_attrs.array_num_value(18)  := p_source_92;
90414    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
90415    l_rec_acct_attrs.array_num_value(19)  := p_source_93;
90416 
90417    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90418    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90419 
90420    ---------------------------------------------------------------------------------------------------------------
90421    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90422    ---------------------------------------------------------------------------------------------------------------
90423    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90424 
90428    IF xla_accounting_cache_pkg.GetValueChar
90425    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90426    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90427 
90429          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90430          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90431    AND l_bflow_method_code = 'PRIOR_ENTRY'
90432 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90433    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90434          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90435        )
90436    THEN
90437          xla_ae_lines_pkg.BflowUpgEntry
90438            (p_business_method_code    => l_bflow_method_code
90439            ,p_business_class_code     => l_bflow_class_code
90440            ,p_balance_type            => l_balance_type_code);
90441    ELSE
90442       NULL;
90443 XLA_AE_LINES_PKG.business_flow_validation(
90444                                 p_business_method_code     => l_bflow_method_code
90445                                ,p_business_class_code      => l_bflow_class_code
90446                                ,p_inherit_description_flag => l_inherit_desc_flag);
90447    END IF;
90448 
90449    --
90450    -- call analytical criteria
90451    --
90452    -- Inherited Analytical Criteria for business flow method of Prior Entry.
90453    --
90454    -- call description
90455    --
90456    -- No description or it is inherited.
90457    --
90458    -- call ADRs
90459    -- Bug 4922099
90460    --
90461    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90462         (NVL(l_actual_upg_option, 'N') = 'O') OR
90463         (NVL(l_enc_upg_option, 'N') = 'O')
90464       )
90465    THEN
90466    NULL;
90467    --
90468    --
90469    
90470    --
90471    --
90472    END IF;
90473    --
90474    -- Bug 4922099
90475    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90476           (NVL(l_enc_upg_option, 'N') = 'O')
90477         ) AND
90478         (l_bflow_method_code = 'PRIOR_ENTRY')
90479       )
90480    THEN
90481       IF
90482       --
90483       1 = 1
90484       --
90485       THEN
90486       xla_accounting_err_pkg.build_message
90487                                     (p_appli_s_name            => 'XLA'
90488                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90489                                     ,p_token_1                 => 'LINE_NUMBER'
90490                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90491                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90492                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90493                                                                              l_component_type
90494                                                                             ,l_component_code
90495                                                                             ,l_component_type_code
90496                                                                             ,l_component_appl_id
90497                                                                             ,l_amb_context_code
90498                                                                             ,l_entity_code
90499                                                                             ,l_event_class_code
90500                                                                            )
90501                                     ,p_token_3                 => 'OWNER'
90502                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90503                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90504                                                                           ,p_lookup_code    => l_component_type_code
90505                                                                          )
90506                                     ,p_token_4                 => 'PRODUCT_NAME'
90507                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90508                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90509                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90510                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90511                                     ,p_ae_header_id            =>  NULL
90512                                        );
90513 
90514         IF (C_LEVEL_ERROR>= g_log_level) THEN
90515                  trace
90516                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90517                       ,p_level    => C_LEVEL_ERROR
90518                       ,p_module   => l_log_module);
90519         END IF;
90520       END IF;
90521    END IF;
90522    --
90523    --
90524    ------------------------------------------------------------------------------------------------
90525    -- 4219869 Business Flow
90526    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90527    -- Prior Entry.  Currently, the following code is always generated.
90528    ------------------------------------------------------------------------------------------------
90529    -- No ValidateCurrentLine for business flow method of Prior Entry
90530 
90534    ------------------------------------------------------------------------------------
90531    ------------------------------------------------------------------------------------
90532    -- 4219869 Business Flow
90533    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90535    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90536 
90537    ----------------------------------------------------------------------------------
90538    -- 4219869 Business Flow
90539    -- Update journal entry status -- Need to generate this within IF <condition>
90540    ----------------------------------------------------------------------------------
90541    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90542          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90543          ,p_balance_type_code => l_balance_type_code
90544          );
90545 
90546    -------------------------------------------------------------------------------------------
90547    -- 4262811 - Generate the Accrual Reversal lines
90548    -------------------------------------------------------------------------------------------
90549    BEGIN
90550       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90551                               (g_array_event(p_event_id).array_value_num('header_index'));
90552       IF l_acc_rev_flag IS NULL THEN
90553          l_acc_rev_flag := 'N';
90554       END IF;
90555    EXCEPTION
90556       WHEN OTHERS THEN
90557          l_acc_rev_flag := 'N';
90558    END;
90559    --
90560    IF (l_acc_rev_flag = 'Y') THEN
90561 
90562        -- 4645092  ------------------------------------------------------------------------------
90563        -- To allow MPA report to determine if it should generate report process
90564        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90565        ------------------------------------------------------------------------------------------
90566 
90567        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90568        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90569    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90570    -- call ADRs
90571    -- Bug 4922099
90572    --
90573    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90574         (NVL(l_actual_upg_option, 'N') = 'O') OR
90575         (NVL(l_enc_upg_option, 'N') = 'O')
90576       )
90577    THEN
90578    NULL;
90579    --
90580    --
90581    
90582    --
90583    --
90584    END IF;
90585 
90586        --
90587        -- Update the line information that should be overwritten
90588        --
90589        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90590                                          p_header_num   => 1);
90591        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90592 
90593        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90594 
90595        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90596           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90597        END IF;
90598 
90599       --
90600       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90601       --
90602       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90603           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90604       ELSE
90605           ---------------------------------------------------------------------------------------------------
90606           -- 4262811a Switch Sign
90607           ---------------------------------------------------------------------------------------------------
90608           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90609           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90610                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90611           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90612                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90613           -- 5132302
90614           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90615                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90616 
90617       END IF;
90618 
90619       -- 4955764
90620       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90621       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90622 
90623 
90624       XLA_AE_LINES_PKG.ValidateCurrentLine;
90625       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90626 
90627       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90628                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90629                ,p_balance_type_code => l_balance_type_code);
90630 
90631    END IF;
90632 
90633    -----------------------------------------------------------------------------------------
90634    -- 4262811 Multiperiod Accounting
90635    -----------------------------------------------------------------------------------------
90636      -- No MPA option is assigned.
90637 
90638 
90639 END IF;
90640 END IF;
90641 --
90645    trace
90642 
90643 --
90644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90646       (p_msg      => 'END of AcctLineType_166'
90647       ,p_level    => C_LEVEL_PROCEDURE
90648       ,p_module   => l_log_module);
90649 END IF;
90650 --
90651 EXCEPTION
90652   WHEN xla_exceptions_pkg.application_exception THEN
90653       RAISE;
90654   WHEN OTHERS THEN
90655        xla_exceptions_pkg.raise_message
90656            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_166');
90657 END AcctLineType_166;
90658 --
90659 
90660 ---------------------------------------
90661 --
90662 -- PRIVATE FUNCTION
90663 --         AcctLineType_167
90664 --
90665 ---------------------------------------
90666 PROCEDURE AcctLineType_167 (
90667   p_application_id        IN NUMBER
90668  ,p_event_id              IN NUMBER
90669  ,p_calculate_acctd_flag  IN VARCHAR2
90670  ,p_calculate_g_l_flag    IN VARCHAR2
90671  ,p_actual_flag           IN OUT VARCHAR2
90672  ,p_balance_type_code     OUT VARCHAR2
90673  ,p_gain_or_loss_ref      OUT VARCHAR2
90674  
90675 --Invoice Distribution Description
90676  , p_source_1            IN VARCHAR2
90677 --Automatic Offsets Value
90678  , p_source_10            IN VARCHAR2
90679  , p_source_10_meaning    IN VARCHAR2
90680 --Invoice Distribution Ledger Amount
90681  , p_source_16            IN NUMBER
90682 --Invoice Liability Account
90683  , p_source_29            IN NUMBER
90684 --Accounting Reversal Indicator
90685  , p_source_58            IN VARCHAR2
90686 --Distribution Link Type
90687  , p_source_60            IN VARCHAR2
90688 --Allocation to Main Distribution Identifier
90689  , p_source_62            IN NUMBER
90690 --Invoice Identifier
90691  , p_source_63            IN NUMBER
90692 --Invoice Distribution Identifier
90693  , p_source_69            IN NUMBER
90694 --Payables Encumbrance Upgrade Credit Account
90695  , p_source_70            IN NUMBER
90696 --Payables Encumbrance Upgrade Credit Amount
90697  , p_source_71            IN NUMBER
90698 --Invoice Currency Code
90699  , p_source_72            IN VARCHAR2
90700 --Payables Encumbrance Upgrade Credit Base Amount
90701  , p_source_73            IN NUMBER
90702 --Payables Encumbrance Upgrade Debit Account
90703  , p_source_74            IN NUMBER
90704 --Payables Encumbrance Upgrade Debit Amount
90705  , p_source_75            IN NUMBER
90706 --Payables Encumbrance Upgrade Debit Base Amount
90707  , p_source_76            IN NUMBER
90708 --Payables Encumbrance Upgrade Option
90709  , p_source_77            IN VARCHAR2
90710 --Invoice Distribution Amount
90711  , p_source_78            IN NUMBER
90712 --Deferred Accounting End Date
90713  , p_source_82            IN DATE
90714 --Deferred Accounting Option
90715  , p_source_83            IN VARCHAR2
90716 --Deferred Accounting Start Date
90717  , p_source_84            IN DATE
90718 --Override Accounted Amount Indicator
90719  , p_source_85            IN VARCHAR2
90720  , p_source_85_meaning    IN VARCHAR2
90721 --Invoice Supplier Identifier
90722  , p_source_86            IN NUMBER
90723 --Invoice Supplier Site Identifier
90724  , p_source_87            IN NUMBER
90725 --Third Party Type
90726  , p_source_88            IN VARCHAR2
90727 --Parent Reversal Identifier
90728  , p_source_89            IN NUMBER
90729 --Invoice Distribution Statistical Amount
90730  , p_source_90            IN NUMBER
90731 --Invoice Distribution Tax Line Identifier
90732  , p_source_91            IN NUMBER
90733 --Invoice Distribution Tax Distribution Identifier from Tax
90734  , p_source_92            IN NUMBER
90735 --Invoice Distribution Summary Tax Line Identifier
90736  , p_source_93            IN NUMBER
90737 --Payables Upgrade Credit Encumbrance Type Identifier
90738  , p_source_94            IN NUMBER
90739 --Payables Upgrade Debit Encumbrance Type Identifier
90740  , p_source_95            IN NUMBER
90741 --Business Flow Accounts Payable Application Identifier
90742  , p_source_96            IN NUMBER
90743 --Business Flow Invoice Distribution Type
90744  , p_source_97            IN VARCHAR2
90745 --Business Flow Invoice Entity Code
90746  , p_source_98            IN VARCHAR2
90747 --Business Flow Invoice Distribution Identifier
90748  , p_source_99            IN NUMBER
90749 --Business Flow Invoice Identifier
90750  , p_source_100            IN NUMBER
90751 --Self-Assessed Tax Flag
90752  , p_source_145            IN VARCHAR2
90753  , p_source_145_meaning    IN VARCHAR2
90754 --Invoice Exchange Date
90755  , p_source_146            IN DATE
90756 --Invoice Exchange Rate
90757  , p_source_147            IN NUMBER
90758 --Invoice Exchange Rate Type
90759  , p_source_148            IN VARCHAR2
90760 )
90761 IS
90762 
90763 l_component_type              VARCHAR2(80);
90764 l_component_code              VARCHAR2(30);
90765 l_component_type_code         VARCHAR2(1);
90766 l_component_appl_id           INTEGER;
90767 l_amb_context_code            VARCHAR2(30);
90768 l_entity_code                 VARCHAR2(30);
90769 l_event_class_code            VARCHAR2(30);
90770 l_ae_header_id                NUMBER;
90771 l_event_type_code             VARCHAR2(30);
90772 l_line_definition_code        VARCHAR2(30);
90773 l_line_definition_owner_code  VARCHAR2(1);
90774 --
90775 -- adr variables
90776 l_segment                     VARCHAR2(30);
90777 l_ccid                        NUMBER;
90778 l_adr_transaction_coa_id      NUMBER;
90782 l_adr_value_type_code         VARCHAR2(30);
90779 l_adr_accounting_coa_id       NUMBER;
90780 l_adr_flexfield_segment_code  VARCHAR2(30);
90781 l_adr_flex_value_set_id       NUMBER;
90783 l_adr_value_combination_id    NUMBER;
90784 l_adr_value_segment_code      VARCHAR2(30);
90785 
90786 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90787 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90788 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90789 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90790 
90791 -- 4262811 Variables ------------------------------------------------------------------------------------------
90792 l_entered_amt_idx             NUMBER;
90793 l_accted_amt_idx              NUMBER;
90794 l_acc_rev_flag                VARCHAR2(1);
90795 l_accrual_line_num            NUMBER;
90796 l_tmp_amt                     NUMBER;
90797 l_acc_rev_natural_side_code   VARCHAR2(1);
90798 
90799 l_num_entries                 NUMBER;
90800 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90801 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90802 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90803 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90804 l_recog_line_1                NUMBER;
90805 l_recog_line_2                NUMBER;
90806 
90807 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90808 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90809 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90810 
90811 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90812 
90813 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90814 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90815 
90816 ---------------------------------------------------------------------------------------------------------------
90817 
90818 
90819 --
90820 -- bulk performance
90821 --
90822 l_balance_type_code           VARCHAR2(1);
90823 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90824 l_log_module                  VARCHAR2(240);
90825 
90826 --
90827 -- Upgrade strategy
90828 --
90829 l_actual_upg_option           VARCHAR2(1);
90830 l_enc_upg_option           VARCHAR2(1);
90831 
90832 --
90833 BEGIN
90834 --
90835 IF g_log_enabled THEN
90836       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_167';
90837 END IF;
90838 --
90839 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90840 
90841       trace
90842          (p_msg      => 'BEGIN of AcctLineType_167'
90843          ,p_level    => C_LEVEL_PROCEDURE
90844          ,p_module   => l_log_module);
90845 
90846 END IF;
90847 --
90848 l_component_type             := 'AMB_JLT';
90849 l_component_code             := 'AP_LIAB_PREPAY';
90850 l_component_type_code        := 'S';
90851 l_component_appl_id          :=  200;
90852 l_amb_context_code           := 'DEFAULT';
90853 l_entity_code                := 'AP_INVOICES';
90854 l_event_class_code           := 'PREPAYMENTS';
90855 l_event_type_code            := 'PREPAYMENTS_ALL';
90856 l_line_definition_owner_code := 'S';
90857 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
90858 --
90859 l_balance_type_code          := 'A';
90860 l_segment                     := NULL;
90861 l_ccid                        := NULL;
90862 l_adr_transaction_coa_id      := NULL;
90863 l_adr_accounting_coa_id       := NULL;
90864 l_adr_flexfield_segment_code  := NULL;
90865 l_adr_flex_value_set_id       := NULL;
90866 l_adr_value_type_code         := NULL;
90867 l_adr_value_combination_id    := NULL;
90868 l_adr_value_segment_code      := NULL;
90869 
90870 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
90871 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
90872 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90873 l_budgetary_control_flag     := 'N';
90874 
90875 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90876 l_bflow_applied_to_amt       := NULL; -- 5132302
90877 l_entered_amt_idx            := NULL;          -- 4262811
90878 l_accted_amt_idx             := NULL;          -- 4262811
90879 l_acc_rev_flag               := NULL;          -- 4262811
90880 l_accrual_line_num           := NULL;          -- 4262811
90881 l_tmp_amt                    := NULL;          -- 4262811
90882 --
90883  
90884 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90885     l_balance_type_code <> 'B' THEN
90886 IF (NVL(p_source_10,'
90887 ') <>  'BALANCING_SEGMENT' AND 
90888 NVL(p_source_10,'
90889 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
90890 NVL(p_source_145,'
90891 ') <>  'Y'
90892  THEN 
90893 
90894    --
90895    XLA_AE_LINES_PKG.SetNewLine;
90896 
90897    p_balance_type_code          := l_balance_type_code;
90898    -- set the flag so later we will know whether the gain loss line needs to be created
90899    
90900    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90901      p_actual_flag :='A';
90902    END IF;
90903 
90904    --
90905    -- bulk performance
90906    --
90907    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90911    --
90908                                       p_header_num   => 0); -- 4262811
90909    --
90910    -- set accounting line options
90912    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90913            p_natural_side_code          => 'C'
90914          , p_gain_or_loss_flag          => 'N'
90915          , p_gl_transfer_mode_code      => 'S'
90916          , p_acct_entry_type_code       => 'A'
90917          , p_switch_side_flag           => 'Y'
90918          , p_merge_duplicate_code       => 'A'
90919          );
90920    --
90921    l_acc_rev_natural_side_code := 'D';  -- 4262811
90922    -- 
90923    --
90924    -- set accounting line type info
90925    --
90926    xla_ae_lines_pkg.SetAcctLineType
90927       (p_component_type             => l_component_type
90928       ,p_event_type_code            => l_event_type_code
90929       ,p_line_definition_owner_code => l_line_definition_owner_code
90930       ,p_line_definition_code       => l_line_definition_code
90931       ,p_accounting_line_code       => l_component_code
90932       ,p_accounting_line_type_code  => l_component_type_code
90933       ,p_accounting_line_appl_id    => l_component_appl_id
90934       ,p_amb_context_code           => l_amb_context_code
90935       ,p_entity_code                => l_entity_code
90936       ,p_event_class_code           => l_event_class_code);
90937    --
90938    -- set accounting class
90939    --
90940    xla_ae_lines_pkg.SetAcctClass(
90941            p_accounting_class_code  => 'LIABILITY'
90942          , p_ae_header_id           => l_ae_header_id
90943          );
90944 
90945    --
90946    -- set rounding class
90947    --
90948    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90949                       'LIABILITY';
90950 
90951    --
90952    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90953    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90954    --
90955    -- bulk performance
90956    --
90957    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90958 
90959    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90960       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90961 
90962    -- 4955764
90963    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90964       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90965 
90966    -- 4458381 Public Sector Enh
90967    
90968    --
90969    -- set accounting attributes for the line type
90970    --
90971    l_entered_amt_idx := 23;
90972    l_accted_amt_idx  := 28;
90973    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
90974    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90975    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
90976    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90977    l_rec_acct_attrs.array_num_value(2)  := 
90978 xla_ae_sources_pkg.GetSystemSourceNum(
90979    p_source_code           => 'XLA_EVENT_APPL_ID'
90980  , p_source_type_code      => 'Y'
90981  , p_source_application_id =>  602
90982 );
90983    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90984    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
90985    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90986    l_rec_acct_attrs.array_char_value(4)  := 
90987 xla_ae_sources_pkg.GetSystemSourceChar(
90988    p_source_code           => 'XLA_ENTITY_CODE'
90989  , p_source_type_code      => 'Y'
90990  , p_source_application_id =>  602
90991 );
90992    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90993    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
90994    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90995    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
90996    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
90997    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
90998    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90999    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
91000    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
91001    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
91002    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
91003    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
91004    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91005    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
91006    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
91007    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
91008    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
91009    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
91010    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
91011    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
91012    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
91013    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
91014    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
91015    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
91019    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
91016    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
91017    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
91018    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
91020    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
91021    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
91022    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
91023    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
91024    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
91025    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
91026    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
91027    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
91028    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
91029    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
91030    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
91031    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
91032    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
91033    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
91034    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
91035    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
91036    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
91037    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
91038    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
91039    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
91040    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
91041    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
91042    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
91043    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
91044    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
91045    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
91046    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
91047    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
91048    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
91049    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
91050    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
91051    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
91052    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
91053    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
91054    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
91055    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
91056    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
91057    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
91058    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
91059    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
91060    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
91061    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
91062    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
91063    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
91064    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
91065    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
91066    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
91067    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
91068    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
91069    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
91070 
91071    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91072    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91073 
91074    ---------------------------------------------------------------------------------------------------------------
91075    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91076    ---------------------------------------------------------------------------------------------------------------
91077    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91078 
91079    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91080    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91081 
91082    IF xla_accounting_cache_pkg.GetValueChar
91083          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91084          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91085    AND l_bflow_method_code = 'PRIOR_ENTRY'
91086 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91087    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91088          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91089        )
91090    THEN
91091          xla_ae_lines_pkg.BflowUpgEntry
91092            (p_business_method_code    => l_bflow_method_code
91093            ,p_business_class_code     => l_bflow_class_code
91094            ,p_balance_type            => l_balance_type_code);
91095    ELSE
91096       NULL;
91097 -- No business flow processing for business flow method of NONE.
91098    END IF;
91099 
91100    --
91101    -- call analytical criteria
91102    --
91103    
91104    --
91105    -- call description
91106    --
91107    
91108 xla_ae_lines_pkg.SetLineDescription(
91109    p_ae_header_id => l_ae_header_id
91110   ,p_description  => Description_2 (
91111      p_application_id         => p_application_id
91115 );
91112    , p_ae_header_id           => l_ae_header_id 
91113 , p_source_1 => p_source_1
91114    )
91116 
91117 
91118    --
91119    -- call ADRs
91120    -- Bug 4922099
91121    --
91122    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91123         (NVL(l_actual_upg_option, 'N') = 'O') OR
91124         (NVL(l_enc_upg_option, 'N') = 'O')
91125       )
91126    THEN
91127    NULL;
91128    --
91129    --
91130    
91131   l_ccid := AcctDerRule_36(
91132            p_application_id           => p_application_id
91133          , p_ae_header_id             => l_ae_header_id 
91134 , p_source_29 => p_source_29
91135          , x_transaction_coa_id       => l_adr_transaction_coa_id
91136          , x_accounting_coa_id        => l_adr_accounting_coa_id
91137          , x_value_type_code          => l_adr_value_type_code
91138          , p_side                     => 'NA'
91139    );
91140 
91141    xla_ae_lines_pkg.set_ccid(
91142     p_code_combination_id          => l_ccid
91143   , p_value_type_code              => l_adr_value_type_code
91144   , p_transaction_coa_id           => l_adr_transaction_coa_id
91145   , p_accounting_coa_id            => l_adr_accounting_coa_id
91146   , p_adr_code                     => 'AP_LIAB'
91147   , p_adr_type_code                => 'S'
91148   , p_component_type               => l_component_type
91149   , p_component_code               => l_component_code
91150   , p_component_type_code          => l_component_type_code
91151   , p_component_appl_id            => l_component_appl_id
91152   , p_amb_context_code             => l_amb_context_code
91153   , p_side                         => 'NA'
91154   );
91155 
91156 
91157    --
91158    --
91159    END IF;
91160    --
91161    -- Bug 4922099
91162    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91163           (NVL(l_enc_upg_option, 'N') = 'O')
91164         ) AND
91165         (l_bflow_method_code = 'PRIOR_ENTRY')
91166       )
91167    THEN
91168       IF
91169       --
91170       1 = 2
91171       --
91172       THEN
91173       xla_accounting_err_pkg.build_message
91174                                     (p_appli_s_name            => 'XLA'
91175                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91176                                     ,p_token_1                 => 'LINE_NUMBER'
91177                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91178                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91179                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91180                                                                              l_component_type
91181                                                                             ,l_component_code
91182                                                                             ,l_component_type_code
91183                                                                             ,l_component_appl_id
91184                                                                             ,l_amb_context_code
91185                                                                             ,l_entity_code
91186                                                                             ,l_event_class_code
91187                                                                            )
91188                                     ,p_token_3                 => 'OWNER'
91189                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91190                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91191                                                                           ,p_lookup_code    => l_component_type_code
91192                                                                          )
91193                                     ,p_token_4                 => 'PRODUCT_NAME'
91194                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91195                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91196                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91197                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91198                                     ,p_ae_header_id            =>  NULL
91199                                        );
91200 
91201         IF (C_LEVEL_ERROR>= g_log_level) THEN
91202                  trace
91203                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91204                       ,p_level    => C_LEVEL_ERROR
91205                       ,p_module   => l_log_module);
91206         END IF;
91207       END IF;
91208    END IF;
91209    --
91210    --
91211    ------------------------------------------------------------------------------------------------
91212    -- 4219869 Business Flow
91213    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91214    -- Prior Entry.  Currently, the following code is always generated.
91215    ------------------------------------------------------------------------------------------------
91216    XLA_AE_LINES_PKG.ValidateCurrentLine;
91217 
91218    ------------------------------------------------------------------------------------
91219    -- 4219869 Business Flow
91223 
91220    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91221    ------------------------------------------------------------------------------------
91222    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91224    ----------------------------------------------------------------------------------
91225    -- 4219869 Business Flow
91226    -- Update journal entry status -- Need to generate this within IF <condition>
91227    ----------------------------------------------------------------------------------
91228    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91229          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91230          ,p_balance_type_code => l_balance_type_code
91231          );
91232 
91233    -------------------------------------------------------------------------------------------
91234    -- 4262811 - Generate the Accrual Reversal lines
91235    -------------------------------------------------------------------------------------------
91236    BEGIN
91237       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91238                               (g_array_event(p_event_id).array_value_num('header_index'));
91239       IF l_acc_rev_flag IS NULL THEN
91240          l_acc_rev_flag := 'N';
91241       END IF;
91242    EXCEPTION
91243       WHEN OTHERS THEN
91244          l_acc_rev_flag := 'N';
91245    END;
91246    --
91247    IF (l_acc_rev_flag = 'Y') THEN
91248 
91249        -- 4645092  ------------------------------------------------------------------------------
91250        -- To allow MPA report to determine if it should generate report process
91251        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91252        ------------------------------------------------------------------------------------------
91253 
91254        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91255        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91256    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91257    -- call ADRs
91258    -- Bug 4922099
91259    --
91260    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91261         (NVL(l_actual_upg_option, 'N') = 'O') OR
91262         (NVL(l_enc_upg_option, 'N') = 'O')
91263       )
91264    THEN
91265    NULL;
91266    --
91267    --
91268    
91269   l_ccid := AcctDerRule_36(
91270            p_application_id           => p_application_id
91271          , p_ae_header_id             => l_ae_header_id 
91272 , p_source_29 => p_source_29
91273          , x_transaction_coa_id       => l_adr_transaction_coa_id
91274          , x_accounting_coa_id        => l_adr_accounting_coa_id
91275          , x_value_type_code          => l_adr_value_type_code
91276          , p_side                     => 'NA'
91277    );
91278 
91279    xla_ae_lines_pkg.set_ccid(
91280     p_code_combination_id          => l_ccid
91281   , p_value_type_code              => l_adr_value_type_code
91282   , p_transaction_coa_id           => l_adr_transaction_coa_id
91283   , p_accounting_coa_id            => l_adr_accounting_coa_id
91284   , p_adr_code                     => 'AP_LIAB'
91285   , p_adr_type_code                => 'S'
91286   , p_component_type               => l_component_type
91287   , p_component_code               => l_component_code
91288   , p_component_type_code          => l_component_type_code
91289   , p_component_appl_id            => l_component_appl_id
91290   , p_amb_context_code             => l_amb_context_code
91291   , p_side                         => 'NA'
91292   );
91293 
91294 
91295    --
91296    --
91297    END IF;
91298 
91299        --
91300        -- Update the line information that should be overwritten
91301        --
91302        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91303                                          p_header_num   => 1);
91304        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91305 
91306        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91307 
91308        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91309           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91310        END IF;
91311 
91312       --
91313       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91314       --
91315       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91316           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91317       ELSE
91318           ---------------------------------------------------------------------------------------------------
91319           -- 4262811a Switch Sign
91320           ---------------------------------------------------------------------------------------------------
91321           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91322           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91323                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91324           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91325                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91326           -- 5132302
91327           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91331 
91328                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91329 
91330       END IF;
91332       -- 4955764
91333       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91334       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91335 
91336 
91337       XLA_AE_LINES_PKG.ValidateCurrentLine;
91338       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91339 
91340       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91341                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91342                ,p_balance_type_code => l_balance_type_code);
91343 
91344    END IF;
91345 
91346    -----------------------------------------------------------------------------------------
91347    -- 4262811 Multiperiod Accounting
91348    -----------------------------------------------------------------------------------------
91349      -- No MPA option is assigned.
91350 
91351 
91352 END IF;
91353 END IF;
91354 --
91355 
91356 --
91357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91358    trace
91359       (p_msg      => 'END of AcctLineType_167'
91360       ,p_level    => C_LEVEL_PROCEDURE
91361       ,p_module   => l_log_module);
91362 END IF;
91363 --
91364 EXCEPTION
91365   WHEN xla_exceptions_pkg.application_exception THEN
91366       RAISE;
91367   WHEN OTHERS THEN
91368        xla_exceptions_pkg.raise_message
91369            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_167');
91370 END AcctLineType_167;
91371 --
91372 
91373 ---------------------------------------
91374 --
91375 -- PRIVATE FUNCTION
91376 --         AcctLineType_168
91377 --
91378 ---------------------------------------
91379 PROCEDURE AcctLineType_168 (
91380   p_application_id        IN NUMBER
91381  ,p_event_id              IN NUMBER
91382  ,p_calculate_acctd_flag  IN VARCHAR2
91383  ,p_calculate_g_l_flag    IN VARCHAR2
91384  ,p_actual_flag           IN OUT VARCHAR2
91385  ,p_balance_type_code     OUT VARCHAR2
91386  ,p_gain_or_loss_ref      OUT VARCHAR2
91387  
91388 --Invoice Distribution Description
91389  , p_source_1            IN VARCHAR2
91390 --Automatic Offsets Value
91391  , p_source_10            IN VARCHAR2
91392  , p_source_10_meaning    IN VARCHAR2
91393 --Invoice Distribution Ledger Amount
91394  , p_source_16            IN NUMBER
91395 --Invoice Liability Account
91396  , p_source_29            IN NUMBER
91397 --Accounting Reversal Indicator
91398  , p_source_58            IN VARCHAR2
91399 --Distribution Link Type
91400  , p_source_60            IN VARCHAR2
91401 --Allocation to Main Distribution Identifier
91402  , p_source_62            IN NUMBER
91403 --Invoice Identifier
91404  , p_source_63            IN NUMBER
91405 --Invoice Distribution Identifier
91406  , p_source_69            IN NUMBER
91407 --Payables Encumbrance Upgrade Credit Account
91408  , p_source_70            IN NUMBER
91409 --Payables Encumbrance Upgrade Credit Amount
91410  , p_source_71            IN NUMBER
91411 --Invoice Currency Code
91412  , p_source_72            IN VARCHAR2
91413 --Payables Encumbrance Upgrade Credit Base Amount
91414  , p_source_73            IN NUMBER
91415 --Payables Encumbrance Upgrade Debit Account
91416  , p_source_74            IN NUMBER
91417 --Payables Encumbrance Upgrade Debit Amount
91418  , p_source_75            IN NUMBER
91419 --Payables Encumbrance Upgrade Debit Base Amount
91420  , p_source_76            IN NUMBER
91421 --Payables Encumbrance Upgrade Option
91422  , p_source_77            IN VARCHAR2
91423 --Invoice Distribution Amount
91424  , p_source_78            IN NUMBER
91425 --Deferred Accounting End Date
91426  , p_source_82            IN DATE
91427 --Deferred Accounting Option
91428  , p_source_83            IN VARCHAR2
91429 --Deferred Accounting Start Date
91430  , p_source_84            IN DATE
91431 --Override Accounted Amount Indicator
91432  , p_source_85            IN VARCHAR2
91433  , p_source_85_meaning    IN VARCHAR2
91434 --Invoice Supplier Identifier
91435  , p_source_86            IN NUMBER
91436 --Invoice Supplier Site Identifier
91437  , p_source_87            IN NUMBER
91438 --Third Party Type
91439  , p_source_88            IN VARCHAR2
91440 --Parent Reversal Identifier
91441  , p_source_89            IN NUMBER
91442 --Invoice Distribution Statistical Amount
91443  , p_source_90            IN NUMBER
91444 --Invoice Distribution Tax Line Identifier
91445  , p_source_91            IN NUMBER
91446 --Invoice Distribution Tax Distribution Identifier from Tax
91447  , p_source_92            IN NUMBER
91448 --Invoice Distribution Summary Tax Line Identifier
91449  , p_source_93            IN NUMBER
91450 --Payables Upgrade Credit Encumbrance Type Identifier
91451  , p_source_94            IN NUMBER
91452 --Payables Upgrade Debit Encumbrance Type Identifier
91453  , p_source_95            IN NUMBER
91454 --Business Flow Accounts Payable Application Identifier
91455  , p_source_96            IN NUMBER
91456 --Business Flow Invoice Distribution Type
91457  , p_source_97            IN VARCHAR2
91458 --Business Flow Invoice Entity Code
91459  , p_source_98            IN VARCHAR2
91460 --Business Flow Invoice Distribution Identifier
91461  , p_source_99            IN NUMBER
91465  , p_source_145            IN VARCHAR2
91462 --Business Flow Invoice Identifier
91463  , p_source_100            IN NUMBER
91464 --Self-Assessed Tax Flag
91466  , p_source_145_meaning    IN VARCHAR2
91467 --Invoice Exchange Date
91468  , p_source_146            IN DATE
91469 --Invoice Exchange Rate
91470  , p_source_147            IN NUMBER
91471 --Invoice Exchange Rate Type
91472  , p_source_148            IN VARCHAR2
91473 )
91474 IS
91475 
91476 l_component_type              VARCHAR2(80);
91477 l_component_code              VARCHAR2(30);
91478 l_component_type_code         VARCHAR2(1);
91479 l_component_appl_id           INTEGER;
91480 l_amb_context_code            VARCHAR2(30);
91481 l_entity_code                 VARCHAR2(30);
91482 l_event_class_code            VARCHAR2(30);
91483 l_ae_header_id                NUMBER;
91484 l_event_type_code             VARCHAR2(30);
91485 l_line_definition_code        VARCHAR2(30);
91486 l_line_definition_owner_code  VARCHAR2(1);
91487 --
91488 -- adr variables
91489 l_segment                     VARCHAR2(30);
91490 l_ccid                        NUMBER;
91491 l_adr_transaction_coa_id      NUMBER;
91492 l_adr_accounting_coa_id       NUMBER;
91493 l_adr_flexfield_segment_code  VARCHAR2(30);
91494 l_adr_flex_value_set_id       NUMBER;
91495 l_adr_value_type_code         VARCHAR2(30);
91496 l_adr_value_combination_id    NUMBER;
91497 l_adr_value_segment_code      VARCHAR2(30);
91498 
91499 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91500 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91501 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91502 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91503 
91504 -- 4262811 Variables ------------------------------------------------------------------------------------------
91505 l_entered_amt_idx             NUMBER;
91506 l_accted_amt_idx              NUMBER;
91507 l_acc_rev_flag                VARCHAR2(1);
91508 l_accrual_line_num            NUMBER;
91509 l_tmp_amt                     NUMBER;
91510 l_acc_rev_natural_side_code   VARCHAR2(1);
91511 
91512 l_num_entries                 NUMBER;
91513 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91514 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91515 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91516 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91517 l_recog_line_1                NUMBER;
91518 l_recog_line_2                NUMBER;
91519 
91520 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91521 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91522 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91523 
91524 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91525 
91526 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91527 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91528 
91529 ---------------------------------------------------------------------------------------------------------------
91530 
91531 
91532 --
91533 -- bulk performance
91534 --
91535 l_balance_type_code           VARCHAR2(1);
91536 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
91537 l_log_module                  VARCHAR2(240);
91538 
91539 --
91540 -- Upgrade strategy
91541 --
91542 l_actual_upg_option           VARCHAR2(1);
91543 l_enc_upg_option           VARCHAR2(1);
91544 
91545 --
91546 BEGIN
91547 --
91548 IF g_log_enabled THEN
91549       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_168';
91550 END IF;
91551 --
91552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91553 
91554       trace
91555          (p_msg      => 'BEGIN of AcctLineType_168'
91556          ,p_level    => C_LEVEL_PROCEDURE
91557          ,p_module   => l_log_module);
91558 
91559 END IF;
91560 --
91561 l_component_type             := 'AMB_JLT';
91562 l_component_code             := 'AP_LIAB_PREPAY_AOS_AS';
91563 l_component_type_code        := 'S';
91564 l_component_appl_id          :=  200;
91565 l_amb_context_code           := 'DEFAULT';
91566 l_entity_code                := 'AP_INVOICES';
91567 l_event_class_code           := 'PREPAYMENTS';
91568 l_event_type_code            := 'PREPAYMENTS_ALL';
91569 l_line_definition_owner_code := 'S';
91570 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
91571 --
91572 l_balance_type_code          := 'A';
91573 l_segment                     := NULL;
91574 l_ccid                        := NULL;
91575 l_adr_transaction_coa_id      := NULL;
91576 l_adr_accounting_coa_id       := NULL;
91577 l_adr_flexfield_segment_code  := NULL;
91578 l_adr_flex_value_set_id       := NULL;
91579 l_adr_value_type_code         := NULL;
91580 l_adr_value_combination_id    := NULL;
91581 l_adr_value_segment_code      := NULL;
91582 
91583 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
91584 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
91585 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
91586 l_budgetary_control_flag     := 'N';
91587 
91588 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
91589 l_bflow_applied_to_amt       := NULL; -- 5132302
91593 l_accrual_line_num           := NULL;          -- 4262811
91590 l_entered_amt_idx            := NULL;          -- 4262811
91591 l_accted_amt_idx             := NULL;          -- 4262811
91592 l_acc_rev_flag               := NULL;          -- 4262811
91594 l_tmp_amt                    := NULL;          -- 4262811
91595 --
91596  
91597 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91598     l_balance_type_code <> 'B' THEN
91599 IF NVL(p_source_10,'
91600 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
91601 NVL(p_source_145,'
91602 ') <>  'Y'
91603  THEN 
91604 
91605    --
91606    XLA_AE_LINES_PKG.SetNewLine;
91607 
91608    p_balance_type_code          := l_balance_type_code;
91609    -- set the flag so later we will know whether the gain loss line needs to be created
91610    
91611    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
91612      p_actual_flag :='A';
91613    END IF;
91614 
91615    --
91616    -- bulk performance
91617    --
91618    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91619                                       p_header_num   => 0); -- 4262811
91620    --
91621    -- set accounting line options
91622    --
91623    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91624            p_natural_side_code          => 'C'
91625          , p_gain_or_loss_flag          => 'N'
91626          , p_gl_transfer_mode_code      => 'S'
91627          , p_acct_entry_type_code       => 'A'
91628          , p_switch_side_flag           => 'Y'
91629          , p_merge_duplicate_code       => 'A'
91630          );
91631    --
91632    l_acc_rev_natural_side_code := 'D';  -- 4262811
91633    -- 
91634    --
91635    -- set accounting line type info
91636    --
91637    xla_ae_lines_pkg.SetAcctLineType
91638       (p_component_type             => l_component_type
91639       ,p_event_type_code            => l_event_type_code
91640       ,p_line_definition_owner_code => l_line_definition_owner_code
91641       ,p_line_definition_code       => l_line_definition_code
91642       ,p_accounting_line_code       => l_component_code
91643       ,p_accounting_line_type_code  => l_component_type_code
91644       ,p_accounting_line_appl_id    => l_component_appl_id
91645       ,p_amb_context_code           => l_amb_context_code
91646       ,p_entity_code                => l_entity_code
91647       ,p_event_class_code           => l_event_class_code);
91648    --
91649    -- set accounting class
91650    --
91651    xla_ae_lines_pkg.SetAcctClass(
91652            p_accounting_class_code  => 'LIABILITY'
91653          , p_ae_header_id           => l_ae_header_id
91654          );
91655 
91656    --
91657    -- set rounding class
91658    --
91659    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91660                       'LIABILITY';
91661 
91662    --
91663    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91664    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91665    --
91666    -- bulk performance
91667    --
91668    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91669 
91670    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91671       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91672 
91673    -- 4955764
91674    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91675       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91676 
91677    -- 4458381 Public Sector Enh
91678    
91679    --
91680    -- set accounting attributes for the line type
91681    --
91682    l_entered_amt_idx := 23;
91683    l_accted_amt_idx  := 28;
91684    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
91685    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91686    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
91687    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
91688    l_rec_acct_attrs.array_num_value(2)  := 
91689 xla_ae_sources_pkg.GetSystemSourceNum(
91690    p_source_code           => 'XLA_EVENT_APPL_ID'
91691  , p_source_type_code      => 'Y'
91692  , p_source_application_id =>  602
91693 );
91694    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
91695    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
91696    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
91697    l_rec_acct_attrs.array_char_value(4)  := 
91698 xla_ae_sources_pkg.GetSystemSourceChar(
91699    p_source_code           => 'XLA_ENTITY_CODE'
91700  , p_source_type_code      => 'Y'
91701  , p_source_application_id =>  602
91702 );
91703    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
91704    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
91705    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
91706    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
91707    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
91708    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
91709    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91710    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
91714    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
91711    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
91712    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
91713    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
91715    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91716    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
91717    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
91718    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
91719    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
91720    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
91721    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
91722    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
91723    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
91724    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
91725    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
91726    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
91727    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
91728    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
91729    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
91730    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
91731    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
91732    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
91733    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
91734    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
91735    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
91736    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
91737    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
91738    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
91739    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
91740    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
91741    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
91742    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
91743    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
91744    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
91745    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
91746    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
91747    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
91748    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
91749    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
91750    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
91751    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
91752    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
91753    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
91754    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
91755    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
91756    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
91757    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
91758    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
91759    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
91760    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
91761    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
91762    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
91763    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
91764    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
91765    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
91766    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
91767    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
91768    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
91769    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
91770    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
91771    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
91772    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
91773    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
91774    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
91775    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
91776    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
91777    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
91778    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
91779    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
91780    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
91781 
91782    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91783    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91784 
91785    ---------------------------------------------------------------------------------------------------------------
91786    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91787    ---------------------------------------------------------------------------------------------------------------
91788    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91789 
91790    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91791    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91792 
91793    IF xla_accounting_cache_pkg.GetValueChar
91794          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91798    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91795          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91796    AND l_bflow_method_code = 'PRIOR_ENTRY'
91797 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91799          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91800        )
91801    THEN
91802          xla_ae_lines_pkg.BflowUpgEntry
91803            (p_business_method_code    => l_bflow_method_code
91804            ,p_business_class_code     => l_bflow_class_code
91805            ,p_balance_type            => l_balance_type_code);
91806    ELSE
91807       NULL;
91808 XLA_AE_LINES_PKG.business_flow_validation(
91809                                 p_business_method_code     => l_bflow_method_code
91810                                ,p_business_class_code      => l_bflow_class_code
91811                                ,p_inherit_description_flag => l_inherit_desc_flag);
91812    END IF;
91813 
91814    --
91815    -- call analytical criteria
91816    --
91817    
91818    --
91819    -- call description
91820    --
91821    
91822 xla_ae_lines_pkg.SetLineDescription(
91823    p_ae_header_id => l_ae_header_id
91824   ,p_description  => Description_2 (
91825      p_application_id         => p_application_id
91826    , p_ae_header_id           => l_ae_header_id 
91827 , p_source_1 => p_source_1
91828    )
91829 );
91830 
91831 
91832    --
91833    -- call ADRs
91834    -- Bug 4922099
91835    --
91836    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91837         (NVL(l_actual_upg_option, 'N') = 'O') OR
91838         (NVL(l_enc_upg_option, 'N') = 'O')
91839       )
91840    THEN
91841    NULL;
91842    --
91843    --
91844    
91845    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
91846      p_code_combination_id      => TO_NUMBER(C_NUM)
91847    , p_value_type_code          => NULL
91848    , p_transaction_coa_id       => null
91849    , p_accounting_coa_id        => null
91850    , p_adr_code                 => NULL
91851    , p_adr_type_code            => NULL
91852    , p_component_type           => l_component_type
91853    , p_component_code           => l_component_code
91854    , p_component_type_code      => l_component_type_code
91855    , p_component_appl_id        => l_component_appl_id
91856    , p_amb_context_code         => l_amb_context_code
91857    , p_side                     => NULL
91858    );
91859 
91860    
91861   -- initialise segments
91862   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91863   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91864   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91865   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91866   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91867   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91868   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91869   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91870   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91871   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91872   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91873   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91874   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91875   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91876   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91877   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91878   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91879   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91880   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91881   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91882   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91883   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91884   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91885   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91886   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91887   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91888   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91889   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91890   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91891   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91892   --
91893 
91894    --
91895 
91896 
91897    l_segment := AcctDerRule_15(
91898            p_application_id           => p_application_id
91899          , p_ae_header_id             => l_ae_header_id 
91900 , p_source_29 => p_source_29
91901          , x_transaction_coa_id       => l_adr_transaction_coa_id
91905          , x_value_type_code          => l_adr_value_type_code
91902          , x_accounting_coa_id        => l_adr_accounting_coa_id
91903          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91904          , x_flex_value_set_id        => l_adr_flex_value_set_id
91906          , x_value_combination_id     => l_adr_value_combination_id
91907          , x_value_segment_code       => l_adr_value_segment_code
91908          , p_side                     => 'NA'
91909          , p_override_seg_flag        => 'Y'
91910    );
91911 
91912    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91913 
91914       xla_ae_lines_pkg.set_segment(
91915           p_to_segment_code         => 'GL_ACCOUNT'
91916         , p_segment_value           => l_segment
91917         , p_from_segment_code       => l_adr_value_segment_code
91918         , p_from_combination_id     => l_adr_value_combination_id
91919         , p_value_type_code         => l_adr_value_type_code
91920         , p_transaction_coa_id      => l_adr_transaction_coa_id
91921         , p_accounting_coa_id       => l_adr_accounting_coa_id
91922         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91923         , p_flex_value_set_id       => l_adr_flex_value_set_id
91924         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
91925         , p_adr_type_code           => 'S'
91926         , p_component_type          => l_component_type
91927         , p_component_code          => l_component_code
91928         , p_component_type_code     => l_component_type_code
91929         , p_component_appl_id       => l_component_appl_id
91930         , p_amb_context_code        => l_amb_context_code
91931         , p_entity_code             => 'AP_INVOICES'
91932         , p_event_class_code        => 'PREPAYMENTS'
91933         , p_side                    => 'NA'
91934         );
91935 
91936   END IF;
91937 
91938    --
91939    --
91940    END IF;
91941    --
91942    -- Bug 4922099
91943    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91944           (NVL(l_enc_upg_option, 'N') = 'O')
91945         ) AND
91946         (l_bflow_method_code = 'PRIOR_ENTRY')
91947       )
91948    THEN
91949       IF
91950       --
91951       1 = 2
91952       --
91953       THEN
91954       xla_accounting_err_pkg.build_message
91955                                     (p_appli_s_name            => 'XLA'
91956                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91957                                     ,p_token_1                 => 'LINE_NUMBER'
91958                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91959                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91960                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91961                                                                              l_component_type
91962                                                                             ,l_component_code
91963                                                                             ,l_component_type_code
91964                                                                             ,l_component_appl_id
91965                                                                             ,l_amb_context_code
91966                                                                             ,l_entity_code
91967                                                                             ,l_event_class_code
91968                                                                            )
91969                                     ,p_token_3                 => 'OWNER'
91970                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91971                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91972                                                                           ,p_lookup_code    => l_component_type_code
91973                                                                          )
91974                                     ,p_token_4                 => 'PRODUCT_NAME'
91975                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91976                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91977                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91978                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91979                                     ,p_ae_header_id            =>  NULL
91980                                        );
91981 
91982         IF (C_LEVEL_ERROR>= g_log_level) THEN
91983                  trace
91984                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91985                       ,p_level    => C_LEVEL_ERROR
91986                       ,p_module   => l_log_module);
91987         END IF;
91988       END IF;
91989    END IF;
91990    --
91991    --
91992    ------------------------------------------------------------------------------------------------
91993    -- 4219869 Business Flow
91994    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91995    -- Prior Entry.  Currently, the following code is always generated.
91996    ------------------------------------------------------------------------------------------------
91997    XLA_AE_LINES_PKG.ValidateCurrentLine;
91998 
91999    ------------------------------------------------------------------------------------
92003    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92000    -- 4219869 Business Flow
92001    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92002    ------------------------------------------------------------------------------------
92004 
92005    ----------------------------------------------------------------------------------
92006    -- 4219869 Business Flow
92007    -- Update journal entry status -- Need to generate this within IF <condition>
92008    ----------------------------------------------------------------------------------
92009    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92010          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92011          ,p_balance_type_code => l_balance_type_code
92012          );
92013 
92014    -------------------------------------------------------------------------------------------
92015    -- 4262811 - Generate the Accrual Reversal lines
92016    -------------------------------------------------------------------------------------------
92017    BEGIN
92018       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92019                               (g_array_event(p_event_id).array_value_num('header_index'));
92020       IF l_acc_rev_flag IS NULL THEN
92021          l_acc_rev_flag := 'N';
92022       END IF;
92023    EXCEPTION
92024       WHEN OTHERS THEN
92025          l_acc_rev_flag := 'N';
92026    END;
92027    --
92028    IF (l_acc_rev_flag = 'Y') THEN
92029 
92030        -- 4645092  ------------------------------------------------------------------------------
92031        -- To allow MPA report to determine if it should generate report process
92032        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92033        ------------------------------------------------------------------------------------------
92034 
92035        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92036        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92037    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92038    -- call ADRs
92039    -- Bug 4922099
92040    --
92041    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92042         (NVL(l_actual_upg_option, 'N') = 'O') OR
92043         (NVL(l_enc_upg_option, 'N') = 'O')
92044       )
92045    THEN
92046    NULL;
92047    --
92048    --
92049    
92050    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
92051      p_code_combination_id      => TO_NUMBER(C_NUM)
92052    , p_value_type_code          => NULL
92053    , p_transaction_coa_id       => null
92054    , p_accounting_coa_id        => null
92055    , p_adr_code                 => NULL
92056    , p_adr_type_code            => NULL
92057    , p_component_type           => l_component_type
92058    , p_component_code           => l_component_code
92059    , p_component_type_code      => l_component_type_code
92060    , p_component_appl_id        => l_component_appl_id
92061    , p_amb_context_code         => l_amb_context_code
92062    , p_side                     => NULL
92063    );
92064 
92065    
92066   -- initialise segments
92067   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92068   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92069   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92070   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92071   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92072   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92073   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92074   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92075   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
92076   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92077   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92078   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92079   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92080   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92081   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92082   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92083   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92084   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92085   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92086   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92087   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92088   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92089   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92090   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92091   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92092   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92096   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92093   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92094   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92095   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
92097   --
92098 
92099    --
92100 
92101 
92102    l_segment := AcctDerRule_15(
92103            p_application_id           => p_application_id
92104          , p_ae_header_id             => l_ae_header_id 
92105 , p_source_29 => p_source_29
92106          , x_transaction_coa_id       => l_adr_transaction_coa_id
92107          , x_accounting_coa_id        => l_adr_accounting_coa_id
92108          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
92109          , x_flex_value_set_id        => l_adr_flex_value_set_id
92110          , x_value_type_code          => l_adr_value_type_code
92111          , x_value_combination_id     => l_adr_value_combination_id
92112          , x_value_segment_code       => l_adr_value_segment_code
92113          , p_side                     => 'NA'
92114          , p_override_seg_flag        => 'Y'
92115    );
92116 
92117    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
92118 
92119       xla_ae_lines_pkg.set_segment(
92120           p_to_segment_code         => 'GL_ACCOUNT'
92121         , p_segment_value           => l_segment
92122         , p_from_segment_code       => l_adr_value_segment_code
92123         , p_from_combination_id     => l_adr_value_combination_id
92124         , p_value_type_code         => l_adr_value_type_code
92125         , p_transaction_coa_id      => l_adr_transaction_coa_id
92126         , p_accounting_coa_id       => l_adr_accounting_coa_id
92127         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
92128         , p_flex_value_set_id       => l_adr_flex_value_set_id
92129         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
92130         , p_adr_type_code           => 'S'
92131         , p_component_type          => l_component_type
92132         , p_component_code          => l_component_code
92133         , p_component_type_code     => l_component_type_code
92134         , p_component_appl_id       => l_component_appl_id
92135         , p_amb_context_code        => l_amb_context_code
92136         , p_entity_code             => 'AP_INVOICES'
92137         , p_event_class_code        => 'PREPAYMENTS'
92138         , p_side                    => 'NA'
92139         );
92140 
92141   END IF;
92142 
92143    --
92144    --
92145    END IF;
92146 
92147        --
92148        -- Update the line information that should be overwritten
92149        --
92150        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92151                                          p_header_num   => 1);
92152        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92153 
92154        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92155 
92156        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92157           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92158        END IF;
92159 
92160       --
92161       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92162       --
92163       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92164           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92165       ELSE
92166           ---------------------------------------------------------------------------------------------------
92167           -- 4262811a Switch Sign
92168           ---------------------------------------------------------------------------------------------------
92169           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92170           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92171                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92172           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92173                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92174           -- 5132302
92175           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92176                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92177 
92178       END IF;
92179 
92180       -- 4955764
92181       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92182       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92183 
92184 
92185       XLA_AE_LINES_PKG.ValidateCurrentLine;
92186       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92187 
92188       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92189                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92190                ,p_balance_type_code => l_balance_type_code);
92191 
92192    END IF;
92193 
92194    -----------------------------------------------------------------------------------------
92195    -- 4262811 Multiperiod Accounting
92199 
92196    -----------------------------------------------------------------------------------------
92197      -- No MPA option is assigned.
92198 
92200 END IF;
92201 END IF;
92202 --
92203 
92204 --
92205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92206    trace
92207       (p_msg      => 'END of AcctLineType_168'
92208       ,p_level    => C_LEVEL_PROCEDURE
92209       ,p_module   => l_log_module);
92210 END IF;
92211 --
92212 EXCEPTION
92213   WHEN xla_exceptions_pkg.application_exception THEN
92214       RAISE;
92215   WHEN OTHERS THEN
92216        xla_exceptions_pkg.raise_message
92217            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_168');
92218 END AcctLineType_168;
92219 --
92220 
92221 ---------------------------------------
92222 --
92223 -- PRIVATE FUNCTION
92224 --         AcctLineType_169
92225 --
92226 ---------------------------------------
92227 PROCEDURE AcctLineType_169 (
92228   p_application_id        IN NUMBER
92229  ,p_event_id              IN NUMBER
92230  ,p_calculate_acctd_flag  IN VARCHAR2
92231  ,p_calculate_g_l_flag    IN VARCHAR2
92232  ,p_actual_flag           IN OUT VARCHAR2
92233  ,p_balance_type_code     OUT VARCHAR2
92234  ,p_gain_or_loss_ref      OUT VARCHAR2
92235  
92236 --Invoice Distribution Description
92237  , p_source_1            IN VARCHAR2
92238 --Automatic Offsets Value
92239  , p_source_10            IN VARCHAR2
92240  , p_source_10_meaning    IN VARCHAR2
92241 --Invoice Distribution Ledger Amount
92242  , p_source_16            IN NUMBER
92243 --Invoice Liability Account
92244  , p_source_29            IN NUMBER
92245 --Accounting Reversal Indicator
92246  , p_source_58            IN VARCHAR2
92247 --Distribution Link Type
92248  , p_source_60            IN VARCHAR2
92249 --Allocation to Main Distribution Identifier
92250  , p_source_62            IN NUMBER
92251 --Invoice Identifier
92252  , p_source_63            IN NUMBER
92253 --Invoice Distribution Identifier
92254  , p_source_69            IN NUMBER
92255 --Payables Encumbrance Upgrade Credit Account
92256  , p_source_70            IN NUMBER
92257 --Payables Encumbrance Upgrade Credit Amount
92258  , p_source_71            IN NUMBER
92259 --Invoice Currency Code
92260  , p_source_72            IN VARCHAR2
92261 --Payables Encumbrance Upgrade Credit Base Amount
92262  , p_source_73            IN NUMBER
92263 --Payables Encumbrance Upgrade Debit Account
92264  , p_source_74            IN NUMBER
92265 --Payables Encumbrance Upgrade Debit Amount
92266  , p_source_75            IN NUMBER
92267 --Payables Encumbrance Upgrade Debit Base Amount
92268  , p_source_76            IN NUMBER
92269 --Payables Encumbrance Upgrade Option
92270  , p_source_77            IN VARCHAR2
92271 --Invoice Distribution Amount
92272  , p_source_78            IN NUMBER
92273 --Deferred Accounting End Date
92274  , p_source_82            IN DATE
92275 --Deferred Accounting Option
92276  , p_source_83            IN VARCHAR2
92277 --Deferred Accounting Start Date
92278  , p_source_84            IN DATE
92279 --Override Accounted Amount Indicator
92280  , p_source_85            IN VARCHAR2
92281  , p_source_85_meaning    IN VARCHAR2
92282 --Invoice Supplier Identifier
92283  , p_source_86            IN NUMBER
92284 --Invoice Supplier Site Identifier
92285  , p_source_87            IN NUMBER
92286 --Third Party Type
92287  , p_source_88            IN VARCHAR2
92288 --Parent Reversal Identifier
92289  , p_source_89            IN NUMBER
92290 --Invoice Distribution Statistical Amount
92291  , p_source_90            IN NUMBER
92292 --Invoice Distribution Tax Line Identifier
92293  , p_source_91            IN NUMBER
92294 --Invoice Distribution Tax Distribution Identifier from Tax
92295  , p_source_92            IN NUMBER
92296 --Invoice Distribution Summary Tax Line Identifier
92297  , p_source_93            IN NUMBER
92298 --Payables Upgrade Credit Encumbrance Type Identifier
92299  , p_source_94            IN NUMBER
92300 --Payables Upgrade Debit Encumbrance Type Identifier
92301  , p_source_95            IN NUMBER
92302 --Business Flow Accounts Payable Application Identifier
92303  , p_source_96            IN NUMBER
92304 --Business Flow Invoice Distribution Type
92305  , p_source_97            IN VARCHAR2
92306 --Business Flow Invoice Entity Code
92307  , p_source_98            IN VARCHAR2
92308 --Business Flow Invoice Distribution Identifier
92309  , p_source_99            IN NUMBER
92310 --Business Flow Invoice Identifier
92311  , p_source_100            IN NUMBER
92312 --Self-Assessed Tax Flag
92313  , p_source_145            IN VARCHAR2
92314  , p_source_145_meaning    IN VARCHAR2
92315 --Invoice Exchange Date
92316  , p_source_146            IN DATE
92317 --Invoice Exchange Rate
92318  , p_source_147            IN NUMBER
92319 --Invoice Exchange Rate Type
92320  , p_source_148            IN VARCHAR2
92321 )
92322 IS
92323 
92324 l_component_type              VARCHAR2(80);
92325 l_component_code              VARCHAR2(30);
92326 l_component_type_code         VARCHAR2(1);
92327 l_component_appl_id           INTEGER;
92328 l_amb_context_code            VARCHAR2(30);
92329 l_entity_code                 VARCHAR2(30);
92330 l_event_class_code            VARCHAR2(30);
92331 l_ae_header_id                NUMBER;
92332 l_event_type_code             VARCHAR2(30);
92333 l_line_definition_code        VARCHAR2(30);
92337 l_segment                     VARCHAR2(30);
92334 l_line_definition_owner_code  VARCHAR2(1);
92335 --
92336 -- adr variables
92338 l_ccid                        NUMBER;
92339 l_adr_transaction_coa_id      NUMBER;
92340 l_adr_accounting_coa_id       NUMBER;
92341 l_adr_flexfield_segment_code  VARCHAR2(30);
92342 l_adr_flex_value_set_id       NUMBER;
92343 l_adr_value_type_code         VARCHAR2(30);
92344 l_adr_value_combination_id    NUMBER;
92345 l_adr_value_segment_code      VARCHAR2(30);
92346 
92347 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92348 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92349 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92350 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92351 
92352 -- 4262811 Variables ------------------------------------------------------------------------------------------
92353 l_entered_amt_idx             NUMBER;
92354 l_accted_amt_idx              NUMBER;
92355 l_acc_rev_flag                VARCHAR2(1);
92356 l_accrual_line_num            NUMBER;
92357 l_tmp_amt                     NUMBER;
92358 l_acc_rev_natural_side_code   VARCHAR2(1);
92359 
92360 l_num_entries                 NUMBER;
92361 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92362 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92363 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92364 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92365 l_recog_line_1                NUMBER;
92366 l_recog_line_2                NUMBER;
92367 
92368 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92369 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92370 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92371 
92372 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92373 
92374 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92375 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92376 
92377 ---------------------------------------------------------------------------------------------------------------
92378 
92379 
92380 --
92381 -- bulk performance
92382 --
92383 l_balance_type_code           VARCHAR2(1);
92384 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92385 l_log_module                  VARCHAR2(240);
92386 
92387 --
92388 -- Upgrade strategy
92389 --
92390 l_actual_upg_option           VARCHAR2(1);
92391 l_enc_upg_option           VARCHAR2(1);
92392 
92393 --
92394 BEGIN
92395 --
92396 IF g_log_enabled THEN
92397       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_169';
92398 END IF;
92399 --
92400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92401 
92402       trace
92403          (p_msg      => 'BEGIN of AcctLineType_169'
92404          ,p_level    => C_LEVEL_PROCEDURE
92405          ,p_module   => l_log_module);
92406 
92407 END IF;
92408 --
92409 l_component_type             := 'AMB_JLT';
92410 l_component_code             := 'AP_LIAB_PREPAY_AOS_BS';
92411 l_component_type_code        := 'S';
92412 l_component_appl_id          :=  200;
92413 l_amb_context_code           := 'DEFAULT';
92414 l_entity_code                := 'AP_INVOICES';
92415 l_event_class_code           := 'PREPAYMENTS';
92416 l_event_type_code            := 'PREPAYMENTS_ALL';
92417 l_line_definition_owner_code := 'S';
92418 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
92419 --
92420 l_balance_type_code          := 'A';
92421 l_segment                     := NULL;
92422 l_ccid                        := NULL;
92423 l_adr_transaction_coa_id      := NULL;
92424 l_adr_accounting_coa_id       := NULL;
92425 l_adr_flexfield_segment_code  := NULL;
92426 l_adr_flex_value_set_id       := NULL;
92427 l_adr_value_type_code         := NULL;
92428 l_adr_value_combination_id    := NULL;
92429 l_adr_value_segment_code      := NULL;
92430 
92431 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
92432 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
92433 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92434 l_budgetary_control_flag     := 'N';
92435 
92436 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92437 l_bflow_applied_to_amt       := NULL; -- 5132302
92438 l_entered_amt_idx            := NULL;          -- 4262811
92439 l_accted_amt_idx             := NULL;          -- 4262811
92440 l_acc_rev_flag               := NULL;          -- 4262811
92441 l_accrual_line_num           := NULL;          -- 4262811
92442 l_tmp_amt                    := NULL;          -- 4262811
92443 --
92444  
92445 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92446     l_balance_type_code <> 'B' THEN
92447 IF NVL(p_source_10,'
92448 ') =  'BALANCING_SEGMENT' AND 
92449 NVL(p_source_145,'
92450 ') <>  'Y'
92451  THEN 
92452 
92453    --
92454    XLA_AE_LINES_PKG.SetNewLine;
92455 
92456    p_balance_type_code          := l_balance_type_code;
92457    -- set the flag so later we will know whether the gain loss line needs to be created
92458    
92459    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92460      p_actual_flag :='A';
92461    END IF;
92462 
92463    --
92464    -- bulk performance
92465    --
92469    -- set accounting line options
92466    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92467                                       p_header_num   => 0); -- 4262811
92468    --
92470    --
92471    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92472            p_natural_side_code          => 'C'
92473          , p_gain_or_loss_flag          => 'N'
92474          , p_gl_transfer_mode_code      => 'S'
92475          , p_acct_entry_type_code       => 'A'
92476          , p_switch_side_flag           => 'Y'
92477          , p_merge_duplicate_code       => 'A'
92478          );
92479    --
92480    l_acc_rev_natural_side_code := 'D';  -- 4262811
92481    -- 
92482    --
92483    -- set accounting line type info
92484    --
92485    xla_ae_lines_pkg.SetAcctLineType
92486       (p_component_type             => l_component_type
92487       ,p_event_type_code            => l_event_type_code
92488       ,p_line_definition_owner_code => l_line_definition_owner_code
92489       ,p_line_definition_code       => l_line_definition_code
92490       ,p_accounting_line_code       => l_component_code
92491       ,p_accounting_line_type_code  => l_component_type_code
92492       ,p_accounting_line_appl_id    => l_component_appl_id
92493       ,p_amb_context_code           => l_amb_context_code
92494       ,p_entity_code                => l_entity_code
92495       ,p_event_class_code           => l_event_class_code);
92496    --
92497    -- set accounting class
92498    --
92499    xla_ae_lines_pkg.SetAcctClass(
92500            p_accounting_class_code  => 'LIABILITY'
92501          , p_ae_header_id           => l_ae_header_id
92502          );
92503 
92504    --
92505    -- set rounding class
92506    --
92507    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92508                       'LIABILITY';
92509 
92510    --
92511    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92512    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92513    --
92514    -- bulk performance
92515    --
92516    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92517 
92518    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92519       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92520 
92521    -- 4955764
92522    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92523       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92524 
92525    -- 4458381 Public Sector Enh
92526    
92527    --
92528    -- set accounting attributes for the line type
92529    --
92530    l_entered_amt_idx := 23;
92531    l_accted_amt_idx  := 28;
92532    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
92533    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92534    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
92535    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
92536    l_rec_acct_attrs.array_num_value(2)  := 
92537 xla_ae_sources_pkg.GetSystemSourceNum(
92538    p_source_code           => 'XLA_EVENT_APPL_ID'
92539  , p_source_type_code      => 'Y'
92540  , p_source_application_id =>  602
92541 );
92542    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
92543    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
92544    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
92545    l_rec_acct_attrs.array_char_value(4)  := 
92546 xla_ae_sources_pkg.GetSystemSourceChar(
92547    p_source_code           => 'XLA_ENTITY_CODE'
92548  , p_source_type_code      => 'Y'
92549  , p_source_application_id =>  602
92550 );
92551    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
92552    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
92553    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
92554    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
92555    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
92556    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
92557    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92558    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
92559    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
92560    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
92561    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
92562    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
92563    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92564    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
92565    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
92566    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
92567    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
92568    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
92569    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
92570    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
92571    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
92572    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
92573    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
92574    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
92575    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
92579    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
92576    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
92577    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
92578    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
92580    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
92581    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
92582    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
92583    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
92584    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
92585    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
92586    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
92587    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
92588    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
92589    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
92590    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
92591    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
92592    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
92593    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
92594    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
92595    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
92596    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
92597    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
92598    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
92599    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
92600    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
92601    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
92602    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
92603    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
92604    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
92605    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
92606    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
92607    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
92608    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
92609    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
92610    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
92611    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
92612    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
92613    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
92614    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
92615    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
92616    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
92617    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
92618    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
92619    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
92620    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
92621    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
92622    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
92623    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
92624    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
92625    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
92626    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
92627    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
92628    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
92629 
92630    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92631    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92632 
92633    ---------------------------------------------------------------------------------------------------------------
92634    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92635    ---------------------------------------------------------------------------------------------------------------
92636    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92637 
92638    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92639    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92640 
92641    IF xla_accounting_cache_pkg.GetValueChar
92642          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92643          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92644    AND l_bflow_method_code = 'PRIOR_ENTRY'
92645 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92646    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92647          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92648        )
92649    THEN
92650          xla_ae_lines_pkg.BflowUpgEntry
92651            (p_business_method_code    => l_bflow_method_code
92652            ,p_business_class_code     => l_bflow_class_code
92653            ,p_balance_type            => l_balance_type_code);
92654    ELSE
92655       NULL;
92656 XLA_AE_LINES_PKG.business_flow_validation(
92657                                 p_business_method_code     => l_bflow_method_code
92658                                ,p_business_class_code      => l_bflow_class_code
92659                                ,p_inherit_description_flag => l_inherit_desc_flag);
92660    END IF;
92661 
92662    --
92663    -- call analytical criteria
92664    --
92665    
92666    --
92670 xla_ae_lines_pkg.SetLineDescription(
92667    -- call description
92668    --
92669    
92671    p_ae_header_id => l_ae_header_id
92672   ,p_description  => Description_2 (
92673      p_application_id         => p_application_id
92674    , p_ae_header_id           => l_ae_header_id 
92675 , p_source_1 => p_source_1
92676    )
92677 );
92678 
92679 
92680    --
92681    -- call ADRs
92682    -- Bug 4922099
92683    --
92684    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92685         (NVL(l_actual_upg_option, 'N') = 'O') OR
92686         (NVL(l_enc_upg_option, 'N') = 'O')
92687       )
92688    THEN
92689    NULL;
92690    --
92691    --
92692    
92693   l_ccid := AcctDerRule_36(
92694            p_application_id           => p_application_id
92695          , p_ae_header_id             => l_ae_header_id 
92696 , p_source_29 => p_source_29
92697          , x_transaction_coa_id       => l_adr_transaction_coa_id
92698          , x_accounting_coa_id        => l_adr_accounting_coa_id
92699          , x_value_type_code          => l_adr_value_type_code
92700          , p_side                     => 'NA'
92701    );
92702 
92703    xla_ae_lines_pkg.set_ccid(
92704     p_code_combination_id          => l_ccid
92705   , p_value_type_code              => l_adr_value_type_code
92706   , p_transaction_coa_id           => l_adr_transaction_coa_id
92707   , p_accounting_coa_id            => l_adr_accounting_coa_id
92708   , p_adr_code                     => 'AP_LIAB'
92709   , p_adr_type_code                => 'S'
92710   , p_component_type               => l_component_type
92711   , p_component_code               => l_component_code
92712   , p_component_type_code          => l_component_type_code
92713   , p_component_appl_id            => l_component_appl_id
92714   , p_amb_context_code             => l_amb_context_code
92715   , p_side                         => 'NA'
92716   );
92717 
92718 
92719    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
92720      p_to_segment_code         => 'GL_BALANCING'
92721    , p_segment_value           => C_CHAR
92722    , p_from_segment_code       => NULL
92723    , p_from_combination_id     => NULL
92724    , p_value_type_code         => NULL
92725    , p_transaction_coa_id      => null
92726    , p_accounting_coa_id       => null
92727    , p_flexfield_segment_code  => NULL
92728    , p_flex_value_set_id       => NULL
92729    , p_adr_code                => NULL
92730    , p_adr_type_code           => NULL
92731    , p_component_type          => l_component_type
92732    , p_component_code          => l_component_code
92733    , p_component_type_code     => l_component_type_code
92734    , p_component_appl_id       => l_component_appl_id
92735    , p_amb_context_code        => l_amb_context_code
92736    , p_entity_code             => 'AP_INVOICES'
92737    , p_event_class_code        => 'PREPAYMENTS'
92738    , p_side                    => 'NA'
92739    );
92740    --
92741 
92742 
92743    --
92744    --
92745    END IF;
92746    --
92747    -- Bug 4922099
92748    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92749           (NVL(l_enc_upg_option, 'N') = 'O')
92750         ) AND
92751         (l_bflow_method_code = 'PRIOR_ENTRY')
92752       )
92753    THEN
92754       IF
92755       --
92756       1 = 2
92757       --
92758       THEN
92759       xla_accounting_err_pkg.build_message
92760                                     (p_appli_s_name            => 'XLA'
92761                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92762                                     ,p_token_1                 => 'LINE_NUMBER'
92763                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92764                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92765                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92766                                                                              l_component_type
92767                                                                             ,l_component_code
92768                                                                             ,l_component_type_code
92769                                                                             ,l_component_appl_id
92770                                                                             ,l_amb_context_code
92771                                                                             ,l_entity_code
92772                                                                             ,l_event_class_code
92773                                                                            )
92774                                     ,p_token_3                 => 'OWNER'
92775                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92776                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92777                                                                           ,p_lookup_code    => l_component_type_code
92778                                                                          )
92779                                     ,p_token_4                 => 'PRODUCT_NAME'
92780                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92784                                     ,p_ae_header_id            =>  NULL
92781                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92782                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92783                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92785                                        );
92786 
92787         IF (C_LEVEL_ERROR>= g_log_level) THEN
92788                  trace
92789                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92790                       ,p_level    => C_LEVEL_ERROR
92791                       ,p_module   => l_log_module);
92792         END IF;
92793       END IF;
92794    END IF;
92795    --
92796    --
92797    ------------------------------------------------------------------------------------------------
92798    -- 4219869 Business Flow
92799    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92800    -- Prior Entry.  Currently, the following code is always generated.
92801    ------------------------------------------------------------------------------------------------
92802    XLA_AE_LINES_PKG.ValidateCurrentLine;
92803 
92804    ------------------------------------------------------------------------------------
92805    -- 4219869 Business Flow
92806    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92807    ------------------------------------------------------------------------------------
92808    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92809 
92810    ----------------------------------------------------------------------------------
92811    -- 4219869 Business Flow
92812    -- Update journal entry status -- Need to generate this within IF <condition>
92813    ----------------------------------------------------------------------------------
92814    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92815          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92816          ,p_balance_type_code => l_balance_type_code
92817          );
92818 
92819    -------------------------------------------------------------------------------------------
92820    -- 4262811 - Generate the Accrual Reversal lines
92821    -------------------------------------------------------------------------------------------
92822    BEGIN
92823       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92824                               (g_array_event(p_event_id).array_value_num('header_index'));
92825       IF l_acc_rev_flag IS NULL THEN
92826          l_acc_rev_flag := 'N';
92827       END IF;
92828    EXCEPTION
92829       WHEN OTHERS THEN
92830          l_acc_rev_flag := 'N';
92831    END;
92832    --
92833    IF (l_acc_rev_flag = 'Y') THEN
92834 
92835        -- 4645092  ------------------------------------------------------------------------------
92836        -- To allow MPA report to determine if it should generate report process
92837        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92838        ------------------------------------------------------------------------------------------
92839 
92840        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92841        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92842    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92843    -- call ADRs
92844    -- Bug 4922099
92845    --
92846    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92847         (NVL(l_actual_upg_option, 'N') = 'O') OR
92848         (NVL(l_enc_upg_option, 'N') = 'O')
92849       )
92850    THEN
92851    NULL;
92852    --
92853    --
92854    
92855   l_ccid := AcctDerRule_36(
92856            p_application_id           => p_application_id
92857          , p_ae_header_id             => l_ae_header_id 
92858 , p_source_29 => p_source_29
92859          , x_transaction_coa_id       => l_adr_transaction_coa_id
92860          , x_accounting_coa_id        => l_adr_accounting_coa_id
92861          , x_value_type_code          => l_adr_value_type_code
92862          , p_side                     => 'NA'
92863    );
92864 
92865    xla_ae_lines_pkg.set_ccid(
92866     p_code_combination_id          => l_ccid
92867   , p_value_type_code              => l_adr_value_type_code
92868   , p_transaction_coa_id           => l_adr_transaction_coa_id
92869   , p_accounting_coa_id            => l_adr_accounting_coa_id
92870   , p_adr_code                     => 'AP_LIAB'
92871   , p_adr_type_code                => 'S'
92872   , p_component_type               => l_component_type
92873   , p_component_code               => l_component_code
92874   , p_component_type_code          => l_component_type_code
92875   , p_component_appl_id            => l_component_appl_id
92876   , p_amb_context_code             => l_amb_context_code
92877   , p_side                         => 'NA'
92878   );
92879 
92880 
92881    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
92882      p_to_segment_code         => 'GL_BALANCING'
92883    , p_segment_value           => C_CHAR
92884    , p_from_segment_code       => NULL
92885    , p_from_combination_id     => NULL
92886    , p_value_type_code         => NULL
92887    , p_transaction_coa_id      => null
92888    , p_accounting_coa_id       => null
92889    , p_flexfield_segment_code  => NULL
92890    , p_flex_value_set_id       => NULL
92894    , p_component_code          => l_component_code
92891    , p_adr_code                => NULL
92892    , p_adr_type_code           => NULL
92893    , p_component_type          => l_component_type
92895    , p_component_type_code     => l_component_type_code
92896    , p_component_appl_id       => l_component_appl_id
92897    , p_amb_context_code        => l_amb_context_code
92898    , p_entity_code             => 'AP_INVOICES'
92899    , p_event_class_code        => 'PREPAYMENTS'
92900    , p_side                    => 'NA'
92901    );
92902    --
92903 
92904 
92905    --
92906    --
92907    END IF;
92908 
92909        --
92910        -- Update the line information that should be overwritten
92911        --
92912        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92913                                          p_header_num   => 1);
92914        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92915 
92916        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92917 
92918        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92919           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92920        END IF;
92921 
92922       --
92923       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92924       --
92925       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92926           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92927       ELSE
92928           ---------------------------------------------------------------------------------------------------
92929           -- 4262811a Switch Sign
92930           ---------------------------------------------------------------------------------------------------
92931           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92932           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92933                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92934           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92935                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92936           -- 5132302
92937           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92938                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92939 
92940       END IF;
92941 
92942       -- 4955764
92943       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92944       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92945 
92946 
92947       XLA_AE_LINES_PKG.ValidateCurrentLine;
92948       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92949 
92950       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92951                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92952                ,p_balance_type_code => l_balance_type_code);
92953 
92954    END IF;
92955 
92956    -----------------------------------------------------------------------------------------
92957    -- 4262811 Multiperiod Accounting
92958    -----------------------------------------------------------------------------------------
92959      -- No MPA option is assigned.
92960 
92961 
92962 END IF;
92963 END IF;
92964 --
92965 
92966 --
92967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92968    trace
92969       (p_msg      => 'END of AcctLineType_169'
92970       ,p_level    => C_LEVEL_PROCEDURE
92971       ,p_module   => l_log_module);
92972 END IF;
92973 --
92974 EXCEPTION
92975   WHEN xla_exceptions_pkg.application_exception THEN
92976       RAISE;
92977   WHEN OTHERS THEN
92978        xla_exceptions_pkg.raise_message
92979            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_169');
92980 END AcctLineType_169;
92981 --
92982 
92983 ---------------------------------------
92984 --
92985 -- PRIVATE FUNCTION
92986 --         AcctLineType_170
92987 --
92988 ---------------------------------------
92989 PROCEDURE AcctLineType_170 (
92990   p_application_id        IN NUMBER
92991  ,p_event_id              IN NUMBER
92992  ,p_calculate_acctd_flag  IN VARCHAR2
92993  ,p_calculate_g_l_flag    IN VARCHAR2
92994  ,p_actual_flag           IN OUT VARCHAR2
92995  ,p_balance_type_code     OUT VARCHAR2
92996  ,p_gain_or_loss_ref      OUT VARCHAR2
92997  
92998 --Accounting Reversal Indicator
92999  , p_source_58            IN VARCHAR2
93000 --Distribution Link Type
93001  , p_source_60            IN VARCHAR2
93002 --Invoice Identifier
93003  , p_source_63            IN NUMBER
93004 --Payables Encumbrance Upgrade Credit Account
93005  , p_source_70            IN NUMBER
93006 --Payables Encumbrance Upgrade Credit Amount
93007  , p_source_71            IN NUMBER
93008 --Invoice Currency Code
93009  , p_source_72            IN VARCHAR2
93010 --Payables Encumbrance Upgrade Credit Base Amount
93011  , p_source_73            IN NUMBER
93012 --Payables Encumbrance Upgrade Debit Account
93013  , p_source_74            IN NUMBER
93014 --Payables Encumbrance Upgrade Debit Amount
93015  , p_source_75            IN NUMBER
93019  , p_source_77            IN VARCHAR2
93016 --Payables Encumbrance Upgrade Debit Base Amount
93017  , p_source_76            IN NUMBER
93018 --Payables Encumbrance Upgrade Option
93020 --Deferred Accounting End Date
93021  , p_source_82            IN DATE
93022 --Deferred Accounting Option
93023  , p_source_83            IN VARCHAR2
93024 --Deferred Accounting Start Date
93025  , p_source_84            IN DATE
93026 --Override Accounted Amount Indicator
93027  , p_source_85            IN VARCHAR2
93028  , p_source_85_meaning    IN VARCHAR2
93029 --Third Party Type
93030  , p_source_88            IN VARCHAR2
93031 --Invoice Distribution Tax Line Identifier
93032  , p_source_91            IN NUMBER
93033 --Invoice Distribution Tax Distribution Identifier from Tax
93034  , p_source_92            IN NUMBER
93035 --Invoice Distribution Summary Tax Line Identifier
93036  , p_source_93            IN NUMBER
93037 --Payables Upgrade Credit Encumbrance Type Identifier
93038  , p_source_94            IN NUMBER
93039 --Payables Upgrade Debit Encumbrance Type Identifier
93040  , p_source_95            IN NUMBER
93041 --Business Flow Accounts Payable Application Identifier
93042  , p_source_96            IN NUMBER
93043 --Prepayment Distribution Type
93044  , p_source_128            IN VARCHAR2
93045 --Prepayment Application Distribution Identifier
93046  , p_source_130            IN NUMBER
93047 --Upgrade Encumbrance Credit Account Class
93048  , p_source_135            IN VARCHAR2
93049 --Upgrade Encumbrance Debit Account Class
93050  , p_source_136            IN VARCHAR2
93051 --Prepayment Distribution Amount
93052  , p_source_137            IN NUMBER
93053 --Identifier of the Prepayment Application Reversed
93054  , p_source_139            IN NUMBER
93055 --Business Flow Recipient Invoice Distribution Identifier
93056  , p_source_142            IN NUMBER
93057 --Business Flow Recipient Invoice Identifier
93058  , p_source_143            IN NUMBER
93059 --Prepayment Distribution (Invoice Rate) Ledger Amount
93060  , p_source_144            IN NUMBER
93061 --Business Flow Prepayment Invoice Distribution Type
93062  , p_source_149            IN VARCHAR2
93063 --Business Flow Prepayment Invoice Entity Code
93064  , p_source_150            IN VARCHAR2
93065 )
93066 IS
93067 
93068 l_component_type              VARCHAR2(80);
93069 l_component_code              VARCHAR2(30);
93070 l_component_type_code         VARCHAR2(1);
93071 l_component_appl_id           INTEGER;
93072 l_amb_context_code            VARCHAR2(30);
93073 l_entity_code                 VARCHAR2(30);
93074 l_event_class_code            VARCHAR2(30);
93075 l_ae_header_id                NUMBER;
93076 l_event_type_code             VARCHAR2(30);
93077 l_line_definition_code        VARCHAR2(30);
93078 l_line_definition_owner_code  VARCHAR2(1);
93079 --
93080 -- adr variables
93081 l_segment                     VARCHAR2(30);
93082 l_ccid                        NUMBER;
93083 l_adr_transaction_coa_id      NUMBER;
93084 l_adr_accounting_coa_id       NUMBER;
93085 l_adr_flexfield_segment_code  VARCHAR2(30);
93086 l_adr_flex_value_set_id       NUMBER;
93087 l_adr_value_type_code         VARCHAR2(30);
93088 l_adr_value_combination_id    NUMBER;
93089 l_adr_value_segment_code      VARCHAR2(30);
93090 
93091 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93092 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93093 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93094 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93095 
93096 -- 4262811 Variables ------------------------------------------------------------------------------------------
93097 l_entered_amt_idx             NUMBER;
93098 l_accted_amt_idx              NUMBER;
93099 l_acc_rev_flag                VARCHAR2(1);
93100 l_accrual_line_num            NUMBER;
93101 l_tmp_amt                     NUMBER;
93102 l_acc_rev_natural_side_code   VARCHAR2(1);
93103 
93104 l_num_entries                 NUMBER;
93105 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93106 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93107 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93108 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93109 l_recog_line_1                NUMBER;
93110 l_recog_line_2                NUMBER;
93111 
93112 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93113 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93114 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93115 
93116 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93117 
93118 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93119 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93120 
93121 ---------------------------------------------------------------------------------------------------------------
93122 
93123 
93124 --
93125 -- bulk performance
93126 --
93127 l_balance_type_code           VARCHAR2(1);
93128 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93129 l_log_module                  VARCHAR2(240);
93130 
93131 --
93132 -- Upgrade strategy
93133 --
93134 l_actual_upg_option           VARCHAR2(1);
93135 l_enc_upg_option           VARCHAR2(1);
93136 
93137 --
93138 BEGIN
93139 --
93143 --
93140 IF g_log_enabled THEN
93141       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_170';
93142 END IF;
93144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93145 
93146       trace
93147          (p_msg      => 'BEGIN of AcctLineType_170'
93148          ,p_level    => C_LEVEL_PROCEDURE
93149          ,p_module   => l_log_module);
93150 
93151 END IF;
93152 --
93153 l_component_type             := 'AMB_JLT';
93154 l_component_code             := 'AP_LIAB_PREPAY_APP';
93155 l_component_type_code        := 'S';
93156 l_component_appl_id          :=  200;
93157 l_amb_context_code           := 'DEFAULT';
93158 l_entity_code                := 'AP_INVOICES';
93159 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
93160 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
93161 l_line_definition_owner_code := 'S';
93162 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
93163 --
93164 l_balance_type_code          := 'A';
93165 l_segment                     := NULL;
93166 l_ccid                        := NULL;
93167 l_adr_transaction_coa_id      := NULL;
93168 l_adr_accounting_coa_id       := NULL;
93169 l_adr_flexfield_segment_code  := NULL;
93170 l_adr_flex_value_set_id       := NULL;
93171 l_adr_value_type_code         := NULL;
93172 l_adr_value_combination_id    := NULL;
93173 l_adr_value_segment_code      := NULL;
93174 
93175 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
93176 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
93177 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93178 l_budgetary_control_flag     := 'N';
93179 
93180 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93181 l_bflow_applied_to_amt       := NULL; -- 5132302
93182 l_entered_amt_idx            := NULL;          -- 4262811
93183 l_accted_amt_idx             := NULL;          -- 4262811
93184 l_acc_rev_flag               := NULL;          -- 4262811
93185 l_accrual_line_num           := NULL;          -- 4262811
93186 l_tmp_amt                    := NULL;          -- 4262811
93187 --
93188  
93189 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93190     l_balance_type_code <> 'B' THEN
93191 IF NVL(p_source_128,'
93192 ') =  'PREPAY APPL' OR 
93193 NVL(p_source_128,'
93194 ') =  'FINAL PAYMENT ROUNDING' OR 
93195 NVL(p_source_128,'
93196 ') =  'PREPAY APPL REC TAX' OR 
93197 NVL(p_source_128,'
93198 ') =  'PREPAY APPL NONREC TAX'
93199  THEN 
93200 
93201    --
93202    XLA_AE_LINES_PKG.SetNewLine;
93203 
93204    p_balance_type_code          := l_balance_type_code;
93205    -- set the flag so later we will know whether the gain loss line needs to be created
93206    
93207    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93208      p_actual_flag :='A';
93209    END IF;
93210 
93211    --
93212    -- bulk performance
93213    --
93214    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93215                                       p_header_num   => 0); -- 4262811
93216    --
93217    -- set accounting line options
93218    --
93219    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93220            p_natural_side_code          => 'C'
93221          , p_gain_or_loss_flag          => 'N'
93222          , p_gl_transfer_mode_code      => 'S'
93223          , p_acct_entry_type_code       => 'A'
93224          , p_switch_side_flag           => 'Y'
93225          , p_merge_duplicate_code       => 'A'
93226          );
93227    --
93228    l_acc_rev_natural_side_code := 'D';  -- 4262811
93229    -- 
93230    --
93231    -- set accounting line type info
93232    --
93233    xla_ae_lines_pkg.SetAcctLineType
93234       (p_component_type             => l_component_type
93235       ,p_event_type_code            => l_event_type_code
93236       ,p_line_definition_owner_code => l_line_definition_owner_code
93237       ,p_line_definition_code       => l_line_definition_code
93238       ,p_accounting_line_code       => l_component_code
93239       ,p_accounting_line_type_code  => l_component_type_code
93240       ,p_accounting_line_appl_id    => l_component_appl_id
93241       ,p_amb_context_code           => l_amb_context_code
93242       ,p_entity_code                => l_entity_code
93243       ,p_event_class_code           => l_event_class_code);
93244    --
93245    -- set accounting class
93246    --
93247    xla_ae_lines_pkg.SetAcctClass(
93248            p_accounting_class_code  => 'LIABILITY'
93249          , p_ae_header_id           => l_ae_header_id
93250          );
93251 
93252    --
93253    -- set rounding class
93254    --
93255    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93256                       'LIABILITY';
93257 
93258    --
93259    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93260    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93261    --
93262    -- bulk performance
93263    --
93264    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93265 
93266    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93267       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93268 
93269    -- 4955764
93270    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93274    
93271       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93272 
93273    -- 4458381 Public Sector Enh
93275    --
93276    -- set accounting attributes for the line type
93277    --
93278    l_entered_amt_idx := 25;
93279    l_accted_amt_idx  := 27;
93280    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93281    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93282    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
93283    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93284    l_rec_acct_attrs.array_num_value(2)  := 
93285 xla_ae_sources_pkg.GetSystemSourceNum(
93286    p_source_code           => 'XLA_EVENT_APPL_ID'
93287  , p_source_type_code      => 'Y'
93288  , p_source_application_id =>  602
93289 );
93290    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93291    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
93292    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93293    l_rec_acct_attrs.array_char_value(4)  := 
93294 xla_ae_sources_pkg.GetSystemSourceChar(
93295    p_source_code           => 'XLA_ENTITY_CODE'
93296  , p_source_type_code      => 'Y'
93297  , p_source_application_id =>  602
93298 );
93299    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93300    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
93301    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93302    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
93303    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93304    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
93305    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93306    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
93307    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93308    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
93309    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93310    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_142);
93311    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93312    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_143);
93313    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93314    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
93315    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93316    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
93317    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93318    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
93319    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93320    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
93321    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93322    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
93323    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93324    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
93325    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93326    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
93327    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93328    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
93329    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93330    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
93331    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93332    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
93333    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93334    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
93335    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93336    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
93337    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93338    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
93339    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93340    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
93341    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93342    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
93343    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
93344    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
93345    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
93346    l_rec_acct_attrs.array_date_value(28)  := p_source_82;
93347    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
93348    l_rec_acct_attrs.array_char_value(29)  := p_source_83;
93349    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
93350    l_rec_acct_attrs.array_date_value(30)  := p_source_84;
93351    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
93352    l_rec_acct_attrs.array_char_value(31)  := p_source_85;
93353    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
93354    l_rec_acct_attrs.array_char_value(32)  := p_source_88;
93355    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
93356    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_139);
93357    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
93358    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
93359    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
93360    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
93364    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
93361    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
93362    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
93363    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
93365    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
93366    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
93367    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
93368    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
93369 
93370    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93371    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93372 
93373    ---------------------------------------------------------------------------------------------------------------
93374    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93375    ---------------------------------------------------------------------------------------------------------------
93376    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93377 
93378    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93379    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93380 
93381    IF xla_accounting_cache_pkg.GetValueChar
93382          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93383          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93384    AND l_bflow_method_code = 'PRIOR_ENTRY'
93385 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93386    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93387          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93388        )
93389    THEN
93390          xla_ae_lines_pkg.BflowUpgEntry
93391            (p_business_method_code    => l_bflow_method_code
93392            ,p_business_class_code     => l_bflow_class_code
93393            ,p_balance_type            => l_balance_type_code);
93394    ELSE
93395       NULL;
93396 XLA_AE_LINES_PKG.business_flow_validation(
93397                                 p_business_method_code     => l_bflow_method_code
93398                                ,p_business_class_code      => l_bflow_class_code
93399                                ,p_inherit_description_flag => l_inherit_desc_flag);
93400    END IF;
93401 
93402    --
93403    -- call analytical criteria
93404    --
93405    -- Inherited Analytical Criteria for business flow method of Prior Entry.
93406    --
93407    -- call description
93408    --
93409    -- No description or it is inherited.
93410    --
93411    -- call ADRs
93412    -- Bug 4922099
93413    --
93414    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93415         (NVL(l_actual_upg_option, 'N') = 'O') OR
93416         (NVL(l_enc_upg_option, 'N') = 'O')
93417       )
93418    THEN
93419    NULL;
93420    --
93421    --
93422    
93423    --
93424    --
93425    END IF;
93426    --
93427    -- Bug 4922099
93428    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93429           (NVL(l_enc_upg_option, 'N') = 'O')
93430         ) AND
93431         (l_bflow_method_code = 'PRIOR_ENTRY')
93432       )
93433    THEN
93434       IF
93435       --
93436       1 = 1
93437       --
93438       THEN
93439       xla_accounting_err_pkg.build_message
93440                                     (p_appli_s_name            => 'XLA'
93441                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93442                                     ,p_token_1                 => 'LINE_NUMBER'
93443                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93444                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93445                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93446                                                                              l_component_type
93447                                                                             ,l_component_code
93448                                                                             ,l_component_type_code
93449                                                                             ,l_component_appl_id
93450                                                                             ,l_amb_context_code
93451                                                                             ,l_entity_code
93452                                                                             ,l_event_class_code
93453                                                                            )
93454                                     ,p_token_3                 => 'OWNER'
93455                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93456                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93457                                                                           ,p_lookup_code    => l_component_type_code
93458                                                                          )
93459                                     ,p_token_4                 => 'PRODUCT_NAME'
93460                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93464                                     ,p_ae_header_id            =>  NULL
93461                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93462                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93463                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93465                                        );
93466 
93467         IF (C_LEVEL_ERROR>= g_log_level) THEN
93468                  trace
93469                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93470                       ,p_level    => C_LEVEL_ERROR
93471                       ,p_module   => l_log_module);
93472         END IF;
93473       END IF;
93474    END IF;
93475    --
93476    --
93477    ------------------------------------------------------------------------------------------------
93478    -- 4219869 Business Flow
93479    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93480    -- Prior Entry.  Currently, the following code is always generated.
93481    ------------------------------------------------------------------------------------------------
93482    -- No ValidateCurrentLine for business flow method of Prior Entry
93483 
93484    ------------------------------------------------------------------------------------
93485    -- 4219869 Business Flow
93486    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93487    ------------------------------------------------------------------------------------
93488    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93489 
93490    ----------------------------------------------------------------------------------
93491    -- 4219869 Business Flow
93492    -- Update journal entry status -- Need to generate this within IF <condition>
93493    ----------------------------------------------------------------------------------
93494    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93495          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93496          ,p_balance_type_code => l_balance_type_code
93497          );
93498 
93499    -------------------------------------------------------------------------------------------
93500    -- 4262811 - Generate the Accrual Reversal lines
93501    -------------------------------------------------------------------------------------------
93502    BEGIN
93503       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93504                               (g_array_event(p_event_id).array_value_num('header_index'));
93505       IF l_acc_rev_flag IS NULL THEN
93506          l_acc_rev_flag := 'N';
93507       END IF;
93508    EXCEPTION
93509       WHEN OTHERS THEN
93510          l_acc_rev_flag := 'N';
93511    END;
93512    --
93513    IF (l_acc_rev_flag = 'Y') THEN
93514 
93515        -- 4645092  ------------------------------------------------------------------------------
93516        -- To allow MPA report to determine if it should generate report process
93517        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93518        ------------------------------------------------------------------------------------------
93519 
93520        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93521        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93522    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93523    -- call ADRs
93524    -- Bug 4922099
93525    --
93526    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93527         (NVL(l_actual_upg_option, 'N') = 'O') OR
93528         (NVL(l_enc_upg_option, 'N') = 'O')
93529       )
93530    THEN
93531    NULL;
93532    --
93533    --
93534    
93535    --
93536    --
93537    END IF;
93538 
93539        --
93540        -- Update the line information that should be overwritten
93541        --
93542        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93543                                          p_header_num   => 1);
93544        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93545 
93546        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93547 
93548        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93549           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93550        END IF;
93551 
93552       --
93553       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93554       --
93555       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93556           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93557       ELSE
93558           ---------------------------------------------------------------------------------------------------
93559           -- 4262811a Switch Sign
93560           ---------------------------------------------------------------------------------------------------
93561           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93562           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93563                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93567           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93564           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93565                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93566           -- 5132302
93568                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93569 
93570       END IF;
93571 
93572       -- 4955764
93573       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93574       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93575 
93576 
93577       XLA_AE_LINES_PKG.ValidateCurrentLine;
93578       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93579 
93580       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93581                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93582                ,p_balance_type_code => l_balance_type_code);
93583 
93584    END IF;
93585 
93586    -----------------------------------------------------------------------------------------
93587    -- 4262811 Multiperiod Accounting
93588    -----------------------------------------------------------------------------------------
93589      -- No MPA option is assigned.
93590 
93591 
93592 END IF;
93593 END IF;
93594 --
93595 
93596 --
93597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93598    trace
93599       (p_msg      => 'END of AcctLineType_170'
93600       ,p_level    => C_LEVEL_PROCEDURE
93601       ,p_module   => l_log_module);
93602 END IF;
93603 --
93604 EXCEPTION
93605   WHEN xla_exceptions_pkg.application_exception THEN
93606       RAISE;
93607   WHEN OTHERS THEN
93608        xla_exceptions_pkg.raise_message
93609            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_170');
93610 END AcctLineType_170;
93611 --
93612 
93613 ---------------------------------------
93614 --
93615 -- PRIVATE FUNCTION
93616 --         AcctLineType_171
93617 --
93618 ---------------------------------------
93619 PROCEDURE AcctLineType_171 (
93620   p_application_id        IN NUMBER
93621  ,p_event_id              IN NUMBER
93622  ,p_calculate_acctd_flag  IN VARCHAR2
93623  ,p_calculate_g_l_flag    IN VARCHAR2
93624  ,p_actual_flag           IN OUT VARCHAR2
93625  ,p_balance_type_code     OUT VARCHAR2
93626  ,p_gain_or_loss_ref      OUT VARCHAR2
93627  
93628 --Payment Currency Code
93629  , p_source_8            IN VARCHAR2
93630 --When to Account for Payment Option
93631  , p_source_57            IN VARCHAR2
93632 --Accounting Reversal Indicator
93633  , p_source_58            IN VARCHAR2
93634 --Distribution Link Type
93635  , p_source_60            IN VARCHAR2
93636 --Override Accounted Amount Indicator
93637  , p_source_85            IN VARCHAR2
93638  , p_source_85_meaning    IN VARCHAR2
93639 --Third Party Type
93640  , p_source_88            IN VARCHAR2
93641 --Invoice Distribution Tax Line Identifier
93642  , p_source_91            IN NUMBER
93643 --Invoice Distribution Tax Distribution Identifier from Tax
93644  , p_source_92            IN NUMBER
93645 --Invoice Distribution Summary Tax Line Identifier
93646  , p_source_93            IN NUMBER
93647 --Business Flow Accounts Payable Application Identifier
93648  , p_source_96            IN NUMBER
93649 --Business Flow Invoice Distribution Type
93650  , p_source_97            IN VARCHAR2
93651 --Business Flow Invoice Entity Code
93652  , p_source_98            IN VARCHAR2
93653 --Business Flow Invoice Distribution Identifier
93654  , p_source_99            IN NUMBER
93655 --Business Flow Invoice Identifier
93656  , p_source_100            IN NUMBER
93657 --Payment Distribution Type
93658  , p_source_101            IN VARCHAR2
93659  , p_source_101_meaning    IN VARCHAR2
93660 --Payment Distribution Amount
93661  , p_source_102            IN NUMBER
93662 --Payment Distribution Identifier
93663  , p_source_107            IN NUMBER
93664 --Payment Distribution Reversed Identifier
93665  , p_source_115            IN NUMBER
93666 --Payment Distribution (Invoice Rate) Ledger Amount
93667  , p_source_119            IN NUMBER
93668 --Payment Type
93669  , p_source_125            IN VARCHAR2
93670  , p_source_125_meaning    IN VARCHAR2
93671 )
93672 IS
93673 
93674 l_component_type              VARCHAR2(80);
93675 l_component_code              VARCHAR2(30);
93676 l_component_type_code         VARCHAR2(1);
93677 l_component_appl_id           INTEGER;
93678 l_amb_context_code            VARCHAR2(30);
93679 l_entity_code                 VARCHAR2(30);
93680 l_event_class_code            VARCHAR2(30);
93681 l_ae_header_id                NUMBER;
93682 l_event_type_code             VARCHAR2(30);
93683 l_line_definition_code        VARCHAR2(30);
93684 l_line_definition_owner_code  VARCHAR2(1);
93685 --
93686 -- adr variables
93687 l_segment                     VARCHAR2(30);
93688 l_ccid                        NUMBER;
93689 l_adr_transaction_coa_id      NUMBER;
93690 l_adr_accounting_coa_id       NUMBER;
93691 l_adr_flexfield_segment_code  VARCHAR2(30);
93692 l_adr_flex_value_set_id       NUMBER;
93693 l_adr_value_type_code         VARCHAR2(30);
93694 l_adr_value_combination_id    NUMBER;
93695 l_adr_value_segment_code      VARCHAR2(30);
93696 
93697 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93698 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93702 -- 4262811 Variables ------------------------------------------------------------------------------------------
93699 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93700 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93701 
93703 l_entered_amt_idx             NUMBER;
93704 l_accted_amt_idx              NUMBER;
93705 l_acc_rev_flag                VARCHAR2(1);
93706 l_accrual_line_num            NUMBER;
93707 l_tmp_amt                     NUMBER;
93708 l_acc_rev_natural_side_code   VARCHAR2(1);
93709 
93710 l_num_entries                 NUMBER;
93711 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93712 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93713 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93714 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93715 l_recog_line_1                NUMBER;
93716 l_recog_line_2                NUMBER;
93717 
93718 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93719 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93720 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93721 
93722 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93723 
93724 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93725 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93726 
93727 ---------------------------------------------------------------------------------------------------------------
93728 
93729 
93730 --
93731 -- bulk performance
93732 --
93733 l_balance_type_code           VARCHAR2(1);
93734 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93735 l_log_module                  VARCHAR2(240);
93736 
93737 --
93738 -- Upgrade strategy
93739 --
93740 l_actual_upg_option           VARCHAR2(1);
93741 l_enc_upg_option           VARCHAR2(1);
93742 
93743 --
93744 BEGIN
93745 --
93746 IF g_log_enabled THEN
93747       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_171';
93748 END IF;
93749 --
93750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93751 
93752       trace
93753          (p_msg      => 'BEGIN of AcctLineType_171'
93754          ,p_level    => C_LEVEL_PROCEDURE
93755          ,p_module   => l_log_module);
93756 
93757 END IF;
93758 --
93759 l_component_type             := 'AMB_JLT';
93760 l_component_code             := 'AP_LIAB_REF';
93761 l_component_type_code        := 'S';
93762 l_component_appl_id          :=  200;
93763 l_amb_context_code           := 'DEFAULT';
93764 l_entity_code                := 'AP_PAYMENTS';
93765 l_event_class_code           := 'REFUNDS';
93766 l_event_type_code            := 'REFUNDS_ALL';
93767 l_line_definition_owner_code := 'S';
93768 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
93769 --
93770 l_balance_type_code          := 'A';
93771 l_segment                     := NULL;
93772 l_ccid                        := NULL;
93773 l_adr_transaction_coa_id      := NULL;
93774 l_adr_accounting_coa_id       := NULL;
93775 l_adr_flexfield_segment_code  := NULL;
93776 l_adr_flex_value_set_id       := NULL;
93777 l_adr_value_type_code         := NULL;
93778 l_adr_value_combination_id    := NULL;
93779 l_adr_value_segment_code      := NULL;
93780 
93781 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
93782 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
93783 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93784 l_budgetary_control_flag     := 'N';
93785 
93786 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93787 l_bflow_applied_to_amt       := NULL; -- 5132302
93788 l_entered_amt_idx            := NULL;          -- 4262811
93789 l_accted_amt_idx             := NULL;          -- 4262811
93790 l_acc_rev_flag               := NULL;          -- 4262811
93791 l_accrual_line_num           := NULL;          -- 4262811
93792 l_tmp_amt                    := NULL;          -- 4262811
93793 --
93794  
93795 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93796     l_balance_type_code <> 'B' THEN
93797 IF NVL(p_source_57,'
93798 ') <>  'CLEAR_CLEAR' AND 
93799 (NVL(p_source_101,'
93800 ') =  'ROUNDING' OR 
93801 NVL(p_source_101,'
93802 ') =  'CASH' OR 
93803 NVL(p_source_101,'
93804 ') =  'DISCOUNT') AND 
93805 NVL(p_source_125,'
93806 ') =  'R'
93807  THEN 
93808 
93809    --
93810    XLA_AE_LINES_PKG.SetNewLine;
93811 
93812    p_balance_type_code          := l_balance_type_code;
93813    -- set the flag so later we will know whether the gain loss line needs to be created
93814    
93815    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93816      p_actual_flag :='A';
93817    END IF;
93818 
93819    --
93820    -- bulk performance
93821    --
93822    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93823                                       p_header_num   => 0); -- 4262811
93824    --
93825    -- set accounting line options
93826    --
93827    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93828            p_natural_side_code          => 'D'
93829          , p_gain_or_loss_flag          => 'N'
93830          , p_gl_transfer_mode_code      => 'S'
93831          , p_acct_entry_type_code       => 'A'
93835    --
93832          , p_switch_side_flag           => 'Y'
93833          , p_merge_duplicate_code       => 'A'
93834          );
93836    l_acc_rev_natural_side_code := 'C';  -- 4262811
93837    -- 
93838    --
93839    -- set accounting line type info
93840    --
93841    xla_ae_lines_pkg.SetAcctLineType
93842       (p_component_type             => l_component_type
93843       ,p_event_type_code            => l_event_type_code
93844       ,p_line_definition_owner_code => l_line_definition_owner_code
93845       ,p_line_definition_code       => l_line_definition_code
93846       ,p_accounting_line_code       => l_component_code
93847       ,p_accounting_line_type_code  => l_component_type_code
93848       ,p_accounting_line_appl_id    => l_component_appl_id
93849       ,p_amb_context_code           => l_amb_context_code
93850       ,p_entity_code                => l_entity_code
93851       ,p_event_class_code           => l_event_class_code);
93852    --
93853    -- set accounting class
93854    --
93855    xla_ae_lines_pkg.SetAcctClass(
93856            p_accounting_class_code  => 'LIABILITY'
93857          , p_ae_header_id           => l_ae_header_id
93858          );
93859 
93860    --
93861    -- set rounding class
93862    --
93863    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93864                       'LIABILITY';
93865 
93866    --
93867    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93868    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93869    --
93870    -- bulk performance
93871    --
93872    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93873 
93874    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93875       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93876 
93877    -- 4955764
93878    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93879       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93880 
93881    -- 4458381 Public Sector Enh
93882    
93883    --
93884    -- set accounting attributes for the line type
93885    --
93886    l_entered_amt_idx := 9;
93887    l_accted_amt_idx  := 11;
93888    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93889    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93890    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
93891    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
93892    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
93893    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93894    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
93895    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
93896    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
93897    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
93898    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
93899    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93900    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
93901    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
93902    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
93903    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
93904    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
93905    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
93906    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
93907    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
93908    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
93909    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
93910    l_rec_acct_attrs.array_num_value(11)  := p_source_119;
93911    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
93912    l_rec_acct_attrs.array_char_value(12)  := p_source_85;
93913    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
93914    l_rec_acct_attrs.array_char_value(13)  := p_source_88;
93915    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
93916    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_115);
93917    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
93918    l_rec_acct_attrs.array_char_value(15)  := p_source_60;
93919    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
93920    l_rec_acct_attrs.array_num_value(16)  := p_source_91;
93921    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
93922    l_rec_acct_attrs.array_num_value(17)  := p_source_92;
93923    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
93924    l_rec_acct_attrs.array_num_value(18)  := p_source_93;
93925 
93926    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93927    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93928 
93929    ---------------------------------------------------------------------------------------------------------------
93930    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93931    ---------------------------------------------------------------------------------------------------------------
93932    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93933 
93937    IF xla_accounting_cache_pkg.GetValueChar
93934    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93935    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93936 
93938          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93939          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93940    AND l_bflow_method_code = 'PRIOR_ENTRY'
93941 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93942    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93943          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93944        )
93945    THEN
93946          xla_ae_lines_pkg.BflowUpgEntry
93947            (p_business_method_code    => l_bflow_method_code
93948            ,p_business_class_code     => l_bflow_class_code
93949            ,p_balance_type            => l_balance_type_code);
93950    ELSE
93951       NULL;
93952 XLA_AE_LINES_PKG.business_flow_validation(
93953                                 p_business_method_code     => l_bflow_method_code
93954                                ,p_business_class_code      => l_bflow_class_code
93955                                ,p_inherit_description_flag => l_inherit_desc_flag);
93956    END IF;
93957 
93958    --
93959    -- call analytical criteria
93960    --
93961    -- Inherited Analytical Criteria for business flow method of Prior Entry.
93962    --
93963    -- call description
93964    --
93965    -- No description or it is inherited.
93966    --
93967    -- call ADRs
93968    -- Bug 4922099
93969    --
93970    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93971         (NVL(l_actual_upg_option, 'N') = 'O') OR
93972         (NVL(l_enc_upg_option, 'N') = 'O')
93973       )
93974    THEN
93975    NULL;
93976    --
93977    --
93978    
93979    --
93980    --
93981    END IF;
93982    --
93983    -- Bug 4922099
93984    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93985           (NVL(l_enc_upg_option, 'N') = 'O')
93986         ) AND
93987         (l_bflow_method_code = 'PRIOR_ENTRY')
93988       )
93989    THEN
93990       IF
93991       --
93992       1 = 1
93993       --
93994       THEN
93995       xla_accounting_err_pkg.build_message
93996                                     (p_appli_s_name            => 'XLA'
93997                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93998                                     ,p_token_1                 => 'LINE_NUMBER'
93999                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94000                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94001                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94002                                                                              l_component_type
94003                                                                             ,l_component_code
94004                                                                             ,l_component_type_code
94005                                                                             ,l_component_appl_id
94006                                                                             ,l_amb_context_code
94007                                                                             ,l_entity_code
94008                                                                             ,l_event_class_code
94009                                                                            )
94010                                     ,p_token_3                 => 'OWNER'
94011                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94012                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94013                                                                           ,p_lookup_code    => l_component_type_code
94014                                                                          )
94015                                     ,p_token_4                 => 'PRODUCT_NAME'
94016                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94017                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94018                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94019                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94020                                     ,p_ae_header_id            =>  NULL
94021                                        );
94022 
94023         IF (C_LEVEL_ERROR>= g_log_level) THEN
94024                  trace
94025                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94026                       ,p_level    => C_LEVEL_ERROR
94027                       ,p_module   => l_log_module);
94028         END IF;
94029       END IF;
94030    END IF;
94031    --
94032    --
94033    ------------------------------------------------------------------------------------------------
94034    -- 4219869 Business Flow
94035    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94036    -- Prior Entry.  Currently, the following code is always generated.
94040    ------------------------------------------------------------------------------------
94037    ------------------------------------------------------------------------------------------------
94038    -- No ValidateCurrentLine for business flow method of Prior Entry
94039 
94041    -- 4219869 Business Flow
94042    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94043    ------------------------------------------------------------------------------------
94044    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94045 
94046    ----------------------------------------------------------------------------------
94047    -- 4219869 Business Flow
94048    -- Update journal entry status -- Need to generate this within IF <condition>
94049    ----------------------------------------------------------------------------------
94050    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94051          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94052          ,p_balance_type_code => l_balance_type_code
94053          );
94054 
94055    -------------------------------------------------------------------------------------------
94056    -- 4262811 - Generate the Accrual Reversal lines
94057    -------------------------------------------------------------------------------------------
94058    BEGIN
94059       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94060                               (g_array_event(p_event_id).array_value_num('header_index'));
94061       IF l_acc_rev_flag IS NULL THEN
94062          l_acc_rev_flag := 'N';
94063       END IF;
94064    EXCEPTION
94065       WHEN OTHERS THEN
94066          l_acc_rev_flag := 'N';
94067    END;
94068    --
94069    IF (l_acc_rev_flag = 'Y') THEN
94070 
94071        -- 4645092  ------------------------------------------------------------------------------
94072        -- To allow MPA report to determine if it should generate report process
94073        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94074        ------------------------------------------------------------------------------------------
94075 
94076        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94077        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94078    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94079    -- call ADRs
94080    -- Bug 4922099
94081    --
94082    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94083         (NVL(l_actual_upg_option, 'N') = 'O') OR
94084         (NVL(l_enc_upg_option, 'N') = 'O')
94085       )
94086    THEN
94087    NULL;
94088    --
94089    --
94090    
94091    --
94092    --
94093    END IF;
94094 
94095        --
94096        -- Update the line information that should be overwritten
94097        --
94098        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94099                                          p_header_num   => 1);
94100        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94101 
94102        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94103 
94104        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94105           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94106        END IF;
94107 
94108       --
94109       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94110       --
94111       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94112           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94113       ELSE
94114           ---------------------------------------------------------------------------------------------------
94115           -- 4262811a Switch Sign
94116           ---------------------------------------------------------------------------------------------------
94117           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94118           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94119                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94120           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94121                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94122           -- 5132302
94123           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94124                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94125 
94126       END IF;
94127 
94128       -- 4955764
94129       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94130       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94131 
94132 
94133       XLA_AE_LINES_PKG.ValidateCurrentLine;
94134       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94135 
94136       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94137                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94138                ,p_balance_type_code => l_balance_type_code);
94139 
94140    END IF;
94141 
94145      -- No MPA option is assigned.
94142    -----------------------------------------------------------------------------------------
94143    -- 4262811 Multiperiod Accounting
94144    -----------------------------------------------------------------------------------------
94146 
94147 
94148 END IF;
94149 END IF;
94150 --
94151 
94152 --
94153 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94154    trace
94155       (p_msg      => 'END of AcctLineType_171'
94156       ,p_level    => C_LEVEL_PROCEDURE
94157       ,p_module   => l_log_module);
94158 END IF;
94159 --
94160 EXCEPTION
94161   WHEN xla_exceptions_pkg.application_exception THEN
94162       RAISE;
94163   WHEN OTHERS THEN
94164        xla_exceptions_pkg.raise_message
94165            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_171');
94166 END AcctLineType_171;
94167 --
94168 
94169 ---------------------------------------
94170 --
94171 -- PRIVATE FUNCTION
94172 --         AcctLineType_172
94173 --
94174 ---------------------------------------
94175 PROCEDURE AcctLineType_172 (
94176   p_application_id        IN NUMBER
94177  ,p_event_id              IN NUMBER
94178  ,p_calculate_acctd_flag  IN VARCHAR2
94179  ,p_calculate_g_l_flag    IN VARCHAR2
94180  ,p_actual_flag           IN OUT VARCHAR2
94181  ,p_balance_type_code     OUT VARCHAR2
94182  ,p_gain_or_loss_ref      OUT VARCHAR2
94183  
94184 --Payment Currency Code
94185  , p_source_8            IN VARCHAR2
94186 --Automatic Offsets Value
94187  , p_source_10            IN VARCHAR2
94188  , p_source_10_meaning    IN VARCHAR2
94189 --Invoice Distribution Account
94190  , p_source_25            IN NUMBER
94191 --Internal Realized Loss Account
94192  , p_source_33            IN NUMBER
94193 --Bank Loss Account
94194  , p_source_34            IN NUMBER
94195 --When to Account for Payment Option
94196  , p_source_57            IN VARCHAR2
94197 --Accounting Reversal Indicator
94198  , p_source_58            IN VARCHAR2
94199 --Distribution Link Type
94200  , p_source_60            IN VARCHAR2
94201 --Override Accounted Amount Indicator
94202  , p_source_85            IN VARCHAR2
94203  , p_source_85_meaning    IN VARCHAR2
94204 --Third Party Type
94205  , p_source_88            IN VARCHAR2
94206 --Invoice Distribution Tax Line Identifier
94207  , p_source_91            IN NUMBER
94208 --Invoice Distribution Summary Tax Line Identifier
94209  , p_source_93            IN NUMBER
94210 --Business Flow Accounts Payable Application Identifier
94211  , p_source_96            IN NUMBER
94212 --Payment Distribution Type
94213  , p_source_101            IN VARCHAR2
94214  , p_source_101_meaning    IN VARCHAR2
94215 --Payment Distribution Amount
94216  , p_source_102            IN NUMBER
94217 --Business Flow Payment Distribution Type
94218  , p_source_103            IN VARCHAR2
94219 --Business Flow Payment Entity Code
94220  , p_source_104            IN VARCHAR2
94221 --Business Flow Payment Distribution Identifier
94222  , p_source_105            IN NUMBER
94223 --Business Flow Payment Identifier
94224  , p_source_106            IN NUMBER
94225 --Payment Distribution Identifier
94226  , p_source_107            IN NUMBER
94227 --Cleared Exchange Date
94228  , p_source_109            IN DATE
94229 --Cleared Exchange Rate
94230  , p_source_110            IN NUMBER
94231 --Cleared Exchange Rate Type
94232  , p_source_111            IN VARCHAR2
94233 --Payment Supplier Identifier
94234  , p_source_113            IN NUMBER
94235 --Payment Supplier Site Identifier
94236  , p_source_114            IN NUMBER
94237 --Payment Distribution Reversed Identifier
94238  , p_source_115            IN NUMBER
94239 --Gain or Loss Indicator between Invoice and Clearing
94240  , p_source_154            IN VARCHAR2
94241 --Invoice/Clearing Ledger Amount Difference
94242  , p_source_155            IN NUMBER
94243 )
94244 IS
94245 
94246 l_component_type              VARCHAR2(80);
94247 l_component_code              VARCHAR2(30);
94248 l_component_type_code         VARCHAR2(1);
94249 l_component_appl_id           INTEGER;
94250 l_amb_context_code            VARCHAR2(30);
94251 l_entity_code                 VARCHAR2(30);
94252 l_event_class_code            VARCHAR2(30);
94253 l_ae_header_id                NUMBER;
94254 l_event_type_code             VARCHAR2(30);
94255 l_line_definition_code        VARCHAR2(30);
94256 l_line_definition_owner_code  VARCHAR2(1);
94257 --
94258 -- adr variables
94259 l_segment                     VARCHAR2(30);
94260 l_ccid                        NUMBER;
94261 l_adr_transaction_coa_id      NUMBER;
94262 l_adr_accounting_coa_id       NUMBER;
94263 l_adr_flexfield_segment_code  VARCHAR2(30);
94264 l_adr_flex_value_set_id       NUMBER;
94265 l_adr_value_type_code         VARCHAR2(30);
94266 l_adr_value_combination_id    NUMBER;
94267 l_adr_value_segment_code      VARCHAR2(30);
94268 
94269 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94270 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94271 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94272 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94273 
94274 -- 4262811 Variables ------------------------------------------------------------------------------------------
94275 l_entered_amt_idx             NUMBER;
94276 l_accted_amt_idx              NUMBER;
94280 l_acc_rev_natural_side_code   VARCHAR2(1);
94277 l_acc_rev_flag                VARCHAR2(1);
94278 l_accrual_line_num            NUMBER;
94279 l_tmp_amt                     NUMBER;
94281 
94282 l_num_entries                 NUMBER;
94283 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94284 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94285 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94286 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94287 l_recog_line_1                NUMBER;
94288 l_recog_line_2                NUMBER;
94289 
94290 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94291 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94292 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94293 
94294 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94295 
94296 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94297 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94298 
94299 ---------------------------------------------------------------------------------------------------------------
94300 
94301 
94302 --
94303 -- bulk performance
94304 --
94305 l_balance_type_code           VARCHAR2(1);
94306 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94307 l_log_module                  VARCHAR2(240);
94308 
94309 --
94310 -- Upgrade strategy
94311 --
94312 l_actual_upg_option           VARCHAR2(1);
94313 l_enc_upg_option           VARCHAR2(1);
94314 
94315 --
94316 BEGIN
94317 --
94318 IF g_log_enabled THEN
94319       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_172';
94320 END IF;
94321 --
94322 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94323 
94324       trace
94325          (p_msg      => 'BEGIN of AcctLineType_172'
94326          ,p_level    => C_LEVEL_PROCEDURE
94327          ,p_module   => l_log_module);
94328 
94329 END IF;
94330 --
94331 l_component_type             := 'AMB_JLT';
94332 l_component_code             := 'AP_LOSS_INV_CLEAR';
94333 l_component_type_code        := 'S';
94334 l_component_appl_id          :=  200;
94335 l_amb_context_code           := 'DEFAULT';
94336 l_entity_code                := 'AP_PAYMENTS';
94337 l_event_class_code           := 'RECONCILED PAYMENTS';
94338 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
94339 l_line_definition_owner_code := 'S';
94340 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
94341 --
94342 l_balance_type_code          := 'A';
94343 l_segment                     := NULL;
94344 l_ccid                        := NULL;
94345 l_adr_transaction_coa_id      := NULL;
94346 l_adr_accounting_coa_id       := NULL;
94347 l_adr_flexfield_segment_code  := NULL;
94348 l_adr_flex_value_set_id       := NULL;
94349 l_adr_value_type_code         := NULL;
94350 l_adr_value_combination_id    := NULL;
94351 l_adr_value_segment_code      := NULL;
94352 
94353 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94354 l_bflow_class_code           := '';    -- 4219869 Business Flow
94355 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94356 l_budgetary_control_flag     := 'N';
94357 
94358 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94359 l_bflow_applied_to_amt       := NULL; -- 5132302
94360 l_entered_amt_idx            := NULL;          -- 4262811
94361 l_accted_amt_idx             := NULL;          -- 4262811
94362 l_acc_rev_flag               := NULL;          -- 4262811
94363 l_accrual_line_num           := NULL;          -- 4262811
94364 l_tmp_amt                    := NULL;          -- 4262811
94365 --
94366 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
94367             (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
94368                return;
94369   END IF;
94370   
94371 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94372     l_balance_type_code <> 'B' THEN
94373 IF (NVL(p_source_57,'
94374 ') =  'CLEAR_CLEAR' OR 
94375 NVL(p_source_57,'
94376 ') =  'ALWAYS_CLEAR') AND 
94377 NVL(p_source_154,'
94378 ') =  'LOSS' AND 
94379 NVL(p_source_101,'
94380 ') <>  'EXCHANGE RATE VARIANCE' AND 
94381 NVL(p_source_101,'
94382 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
94383 NVL(p_source_101,'
94384 ') <>  'BANK CHARGE' AND 
94385 NVL(p_source_101,'
94386 ') <>  'BANK ERROR' AND 
94387 NVL(p_source_101,'
94388 ') <>  'AWT'
94389  THEN 
94390 
94391    --
94392    XLA_AE_LINES_PKG.SetNewLine;
94393 
94394    p_balance_type_code          := l_balance_type_code;
94395    -- set the flag so later we will know whether the gain loss line needs to be created
94396    
94397    IF(l_balance_type_code = 'A' ) THEN
94398      p_actual_flag :='G';
94399    END IF;
94400 
94401    --
94402    -- bulk performance
94403    --
94404    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94405                                       p_header_num   => 0); -- 4262811
94406    --
94407    -- set accounting line options
94408    --
94409    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94410            p_natural_side_code          => 'C'
94411          , p_gain_or_loss_flag          => 'Y'
94415          , p_merge_duplicate_code       => 'A'
94412          , p_gl_transfer_mode_code      => 'S'
94413          , p_acct_entry_type_code       => 'A'
94414          , p_switch_side_flag           => 'Y'
94416          );
94417    --
94418    l_acc_rev_natural_side_code := 'D';  -- 4262811
94419    -- 
94420    --
94421    -- set accounting line type info
94422    --
94423    xla_ae_lines_pkg.SetAcctLineType
94424       (p_component_type             => l_component_type
94425       ,p_event_type_code            => l_event_type_code
94426       ,p_line_definition_owner_code => l_line_definition_owner_code
94427       ,p_line_definition_code       => l_line_definition_code
94428       ,p_accounting_line_code       => l_component_code
94429       ,p_accounting_line_type_code  => l_component_type_code
94430       ,p_accounting_line_appl_id    => l_component_appl_id
94431       ,p_amb_context_code           => l_amb_context_code
94432       ,p_entity_code                => l_entity_code
94433       ,p_event_class_code           => l_event_class_code);
94434    --
94435    -- set accounting class
94436    --
94437    xla_ae_lines_pkg.SetAcctClass(
94438            p_accounting_class_code  => 'LOSS'
94439          , p_ae_header_id           => l_ae_header_id
94440          );
94441 
94442    --
94443    -- set rounding class
94444    --
94445    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94446                       'LOSS';
94447 
94448    --
94449    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94450    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94451    --
94452    -- bulk performance
94453    --
94454    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94455 
94456    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94457       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94458 
94459    -- 4955764
94460    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94461       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94462 
94463    -- 4458381 Public Sector Enh
94464    
94465    --
94466    -- set accounting attributes for the line type
94467    --
94468    l_entered_amt_idx := 10;
94469    l_accted_amt_idx  := 15;
94470    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
94471    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94472    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
94473    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
94474    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
94475    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
94476    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
94477    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94478    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
94479    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
94480    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
94481    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
94482    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
94483    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94484    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
94485    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
94486    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
94487    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
94488    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
94489    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
94490    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
94491    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
94492    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
94493    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
94494    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
94495    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
94496    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
94497    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
94498    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
94499    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
94500    l_rec_acct_attrs.array_num_value(15)  := p_source_155;
94501    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
94502    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
94503    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
94504    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
94505    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
94506    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
94507    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
94508    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
94509    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
94510    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
94511    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
94512    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
94513    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
94514    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
94518    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
94515    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
94516    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
94517    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
94519 
94520    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94521    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94522 
94523    ---------------------------------------------------------------------------------------------------------------
94524    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94525    ---------------------------------------------------------------------------------------------------------------
94526    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94527 
94528    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94529    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94530 
94531    IF xla_accounting_cache_pkg.GetValueChar
94532          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94533          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94534    AND l_bflow_method_code = 'PRIOR_ENTRY'
94535 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94536    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94537          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94538        )
94539    THEN
94540          xla_ae_lines_pkg.BflowUpgEntry
94541            (p_business_method_code    => l_bflow_method_code
94542            ,p_business_class_code     => l_bflow_class_code
94543            ,p_balance_type            => l_balance_type_code);
94544    ELSE
94545       NULL;
94546 -- No business flow processing for business flow method of NONE.
94547    END IF;
94548 
94549    --
94550    -- call analytical criteria
94551    --
94552    
94553    --
94554    -- call description
94555    --
94556    -- No description or it is inherited.
94557    --
94558    -- call ADRs
94559    -- Bug 4922099
94560    --
94561    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94562         (NVL(l_actual_upg_option, 'N') = 'O') OR
94563         (NVL(l_enc_upg_option, 'N') = 'O')
94564       )
94565    THEN
94566    NULL;
94567    --
94568    --
94569    
94570   l_ccid := AcctDerRule_41(
94571            p_application_id           => p_application_id
94572          , p_ae_header_id             => l_ae_header_id 
94573 , p_source_10 => p_source_10
94574 , p_source_10_meaning => p_source_10_meaning
94575 , p_source_25 => p_source_25
94576 , p_source_33 => p_source_33
94577 , p_source_34 => p_source_34
94578          , x_transaction_coa_id       => l_adr_transaction_coa_id
94579          , x_accounting_coa_id        => l_adr_accounting_coa_id
94580          , x_value_type_code          => l_adr_value_type_code
94581          , p_side                     => 'NA'
94582    );
94583 
94584    xla_ae_lines_pkg.set_ccid(
94585     p_code_combination_id          => l_ccid
94586   , p_value_type_code              => l_adr_value_type_code
94587   , p_transaction_coa_id           => l_adr_transaction_coa_id
94588   , p_accounting_coa_id            => l_adr_accounting_coa_id
94589   , p_adr_code                     => 'AP_REAL_LOSS'
94590   , p_adr_type_code                => 'S'
94591   , p_component_type               => l_component_type
94592   , p_component_code               => l_component_code
94593   , p_component_type_code          => l_component_type_code
94594   , p_component_appl_id            => l_component_appl_id
94595   , p_amb_context_code             => l_amb_context_code
94596   , p_side                         => 'NA'
94597   );
94598 
94599 
94600    l_segment := AcctDerRule_23(
94601            p_application_id           => p_application_id
94602          , p_ae_header_id             => l_ae_header_id 
94603 , p_source_10 => p_source_10
94604 , p_source_10_meaning => p_source_10_meaning
94605 , p_source_25 => p_source_25
94606          , x_transaction_coa_id       => l_adr_transaction_coa_id
94607          , x_accounting_coa_id        => l_adr_accounting_coa_id
94608          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94609          , x_flex_value_set_id        => l_adr_flex_value_set_id
94610          , x_value_type_code          => l_adr_value_type_code
94611          , x_value_combination_id     => l_adr_value_combination_id
94612          , x_value_segment_code       => l_adr_value_segment_code
94613          , p_side                     => 'NA'
94614          , p_override_seg_flag        => 'Y'
94615    );
94616 
94617    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94618 
94619       xla_ae_lines_pkg.set_segment(
94620           p_to_segment_code         => 'GL_BALANCING'
94621         , p_segment_value           => l_segment
94622         , p_from_segment_code       => l_adr_value_segment_code
94623         , p_from_combination_id     => l_adr_value_combination_id
94624         , p_value_type_code         => l_adr_value_type_code
94625         , p_transaction_coa_id      => l_adr_transaction_coa_id
94626         , p_accounting_coa_id       => l_adr_accounting_coa_id
94627         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94628         , p_flex_value_set_id       => l_adr_flex_value_set_id
94632         , p_component_code          => l_component_code
94629         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
94630         , p_adr_type_code           => 'S'
94631         , p_component_type          => l_component_type
94633         , p_component_type_code     => l_component_type_code
94634         , p_component_appl_id       => l_component_appl_id
94635         , p_amb_context_code        => l_amb_context_code
94636         , p_entity_code             => 'AP_PAYMENTS'
94637         , p_event_class_code        => 'RECONCILED PAYMENTS'
94638         , p_side                    => 'NA'
94639         );
94640 
94641   END IF;
94642 
94643    l_segment := AcctDerRule_18(
94644            p_application_id           => p_application_id
94645          , p_ae_header_id             => l_ae_header_id 
94646 , p_source_10 => p_source_10
94647 , p_source_10_meaning => p_source_10_meaning
94648 , p_source_33 => p_source_33
94649 , p_source_34 => p_source_34
94650          , x_transaction_coa_id       => l_adr_transaction_coa_id
94651          , x_accounting_coa_id        => l_adr_accounting_coa_id
94652          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94653          , x_flex_value_set_id        => l_adr_flex_value_set_id
94654          , x_value_type_code          => l_adr_value_type_code
94655          , x_value_combination_id     => l_adr_value_combination_id
94656          , x_value_segment_code       => l_adr_value_segment_code
94657          , p_side                     => 'NA'
94658          , p_override_seg_flag        => 'Y'
94659    );
94660 
94661    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94662 
94663       xla_ae_lines_pkg.set_segment(
94664           p_to_segment_code         => 'GL_ACCOUNT'
94665         , p_segment_value           => l_segment
94666         , p_from_segment_code       => l_adr_value_segment_code
94667         , p_from_combination_id     => l_adr_value_combination_id
94668         , p_value_type_code         => l_adr_value_type_code
94669         , p_transaction_coa_id      => l_adr_transaction_coa_id
94670         , p_accounting_coa_id       => l_adr_accounting_coa_id
94671         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94672         , p_flex_value_set_id       => l_adr_flex_value_set_id
94673         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
94674         , p_adr_type_code           => 'S'
94675         , p_component_type          => l_component_type
94676         , p_component_code          => l_component_code
94677         , p_component_type_code     => l_component_type_code
94678         , p_component_appl_id       => l_component_appl_id
94679         , p_amb_context_code        => l_amb_context_code
94680         , p_entity_code             => 'AP_PAYMENTS'
94681         , p_event_class_code        => 'RECONCILED PAYMENTS'
94682         , p_side                    => 'NA'
94683         );
94684 
94685   END IF;
94686 
94687    --
94688    --
94689    END IF;
94690    --
94691    -- Bug 4922099
94692    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94693           (NVL(l_enc_upg_option, 'N') = 'O')
94694         ) AND
94695         (l_bflow_method_code = 'PRIOR_ENTRY')
94696       )
94697    THEN
94698       IF
94699       --
94700       1 = 2
94701       --
94702       THEN
94703       xla_accounting_err_pkg.build_message
94704                                     (p_appli_s_name            => 'XLA'
94705                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94706                                     ,p_token_1                 => 'LINE_NUMBER'
94707                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94708                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94709                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94710                                                                              l_component_type
94711                                                                             ,l_component_code
94712                                                                             ,l_component_type_code
94713                                                                             ,l_component_appl_id
94714                                                                             ,l_amb_context_code
94715                                                                             ,l_entity_code
94716                                                                             ,l_event_class_code
94717                                                                            )
94718                                     ,p_token_3                 => 'OWNER'
94719                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94720                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94721                                                                           ,p_lookup_code    => l_component_type_code
94722                                                                          )
94723                                     ,p_token_4                 => 'PRODUCT_NAME'
94724                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94725                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94729                                        );
94726                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94727                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94728                                     ,p_ae_header_id            =>  NULL
94730 
94731         IF (C_LEVEL_ERROR>= g_log_level) THEN
94732                  trace
94733                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94734                       ,p_level    => C_LEVEL_ERROR
94735                       ,p_module   => l_log_module);
94736         END IF;
94737       END IF;
94738    END IF;
94739    --
94740    --
94741    ------------------------------------------------------------------------------------------------
94742    -- 4219869 Business Flow
94743    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94744    -- Prior Entry.  Currently, the following code is always generated.
94745    ------------------------------------------------------------------------------------------------
94746    XLA_AE_LINES_PKG.ValidateCurrentLine;
94747 
94748    ------------------------------------------------------------------------------------
94749    -- 4219869 Business Flow
94750    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94751    ------------------------------------------------------------------------------------
94752    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94753 
94754    ----------------------------------------------------------------------------------
94755    -- 4219869 Business Flow
94756    -- Update journal entry status -- Need to generate this within IF <condition>
94757    ----------------------------------------------------------------------------------
94758    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94759          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94760          ,p_balance_type_code => l_balance_type_code
94761          );
94762 
94763    -------------------------------------------------------------------------------------------
94764    -- 4262811 - Generate the Accrual Reversal lines
94765    -------------------------------------------------------------------------------------------
94766    BEGIN
94767       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94768                               (g_array_event(p_event_id).array_value_num('header_index'));
94769       IF l_acc_rev_flag IS NULL THEN
94770          l_acc_rev_flag := 'N';
94771       END IF;
94772    EXCEPTION
94773       WHEN OTHERS THEN
94774          l_acc_rev_flag := 'N';
94775    END;
94776    --
94777    IF (l_acc_rev_flag = 'Y') THEN
94778 
94779        -- 4645092  ------------------------------------------------------------------------------
94780        -- To allow MPA report to determine if it should generate report process
94781        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94782        ------------------------------------------------------------------------------------------
94783 
94784        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94785        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94786    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94787    -- call ADRs
94788    -- Bug 4922099
94789    --
94790    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94791         (NVL(l_actual_upg_option, 'N') = 'O') OR
94792         (NVL(l_enc_upg_option, 'N') = 'O')
94793       )
94794    THEN
94795    NULL;
94796    --
94797    --
94798    
94799   l_ccid := AcctDerRule_41(
94800            p_application_id           => p_application_id
94801          , p_ae_header_id             => l_ae_header_id 
94802 , p_source_10 => p_source_10
94803 , p_source_10_meaning => p_source_10_meaning
94804 , p_source_25 => p_source_25
94805 , p_source_33 => p_source_33
94806 , p_source_34 => p_source_34
94807          , x_transaction_coa_id       => l_adr_transaction_coa_id
94808          , x_accounting_coa_id        => l_adr_accounting_coa_id
94809          , x_value_type_code          => l_adr_value_type_code
94810          , p_side                     => 'NA'
94811    );
94812 
94813    xla_ae_lines_pkg.set_ccid(
94814     p_code_combination_id          => l_ccid
94815   , p_value_type_code              => l_adr_value_type_code
94816   , p_transaction_coa_id           => l_adr_transaction_coa_id
94817   , p_accounting_coa_id            => l_adr_accounting_coa_id
94818   , p_adr_code                     => 'AP_REAL_LOSS'
94819   , p_adr_type_code                => 'S'
94820   , p_component_type               => l_component_type
94821   , p_component_code               => l_component_code
94822   , p_component_type_code          => l_component_type_code
94823   , p_component_appl_id            => l_component_appl_id
94824   , p_amb_context_code             => l_amb_context_code
94825   , p_side                         => 'NA'
94826   );
94827 
94828 
94829    l_segment := AcctDerRule_23(
94830            p_application_id           => p_application_id
94831          , p_ae_header_id             => l_ae_header_id 
94832 , p_source_10 => p_source_10
94833 , p_source_10_meaning => p_source_10_meaning
94834 , p_source_25 => p_source_25
94835          , x_transaction_coa_id       => l_adr_transaction_coa_id
94836          , x_accounting_coa_id        => l_adr_accounting_coa_id
94840          , x_value_combination_id     => l_adr_value_combination_id
94837          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94838          , x_flex_value_set_id        => l_adr_flex_value_set_id
94839          , x_value_type_code          => l_adr_value_type_code
94841          , x_value_segment_code       => l_adr_value_segment_code
94842          , p_side                     => 'NA'
94843          , p_override_seg_flag        => 'Y'
94844    );
94845 
94846    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94847 
94848       xla_ae_lines_pkg.set_segment(
94849           p_to_segment_code         => 'GL_BALANCING'
94850         , p_segment_value           => l_segment
94851         , p_from_segment_code       => l_adr_value_segment_code
94852         , p_from_combination_id     => l_adr_value_combination_id
94853         , p_value_type_code         => l_adr_value_type_code
94854         , p_transaction_coa_id      => l_adr_transaction_coa_id
94855         , p_accounting_coa_id       => l_adr_accounting_coa_id
94856         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94857         , p_flex_value_set_id       => l_adr_flex_value_set_id
94858         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
94859         , p_adr_type_code           => 'S'
94860         , p_component_type          => l_component_type
94861         , p_component_code          => l_component_code
94862         , p_component_type_code     => l_component_type_code
94863         , p_component_appl_id       => l_component_appl_id
94864         , p_amb_context_code        => l_amb_context_code
94865         , p_entity_code             => 'AP_PAYMENTS'
94866         , p_event_class_code        => 'RECONCILED PAYMENTS'
94867         , p_side                    => 'NA'
94868         );
94869 
94870   END IF;
94871 
94872    l_segment := AcctDerRule_18(
94873            p_application_id           => p_application_id
94874          , p_ae_header_id             => l_ae_header_id 
94875 , p_source_10 => p_source_10
94876 , p_source_10_meaning => p_source_10_meaning
94877 , p_source_33 => p_source_33
94878 , p_source_34 => p_source_34
94879          , x_transaction_coa_id       => l_adr_transaction_coa_id
94880          , x_accounting_coa_id        => l_adr_accounting_coa_id
94881          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94882          , x_flex_value_set_id        => l_adr_flex_value_set_id
94883          , x_value_type_code          => l_adr_value_type_code
94884          , x_value_combination_id     => l_adr_value_combination_id
94885          , x_value_segment_code       => l_adr_value_segment_code
94886          , p_side                     => 'NA'
94887          , p_override_seg_flag        => 'Y'
94888    );
94889 
94890    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94891 
94892       xla_ae_lines_pkg.set_segment(
94893           p_to_segment_code         => 'GL_ACCOUNT'
94894         , p_segment_value           => l_segment
94895         , p_from_segment_code       => l_adr_value_segment_code
94896         , p_from_combination_id     => l_adr_value_combination_id
94897         , p_value_type_code         => l_adr_value_type_code
94898         , p_transaction_coa_id      => l_adr_transaction_coa_id
94899         , p_accounting_coa_id       => l_adr_accounting_coa_id
94900         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94901         , p_flex_value_set_id       => l_adr_flex_value_set_id
94902         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
94903         , p_adr_type_code           => 'S'
94904         , p_component_type          => l_component_type
94905         , p_component_code          => l_component_code
94906         , p_component_type_code     => l_component_type_code
94907         , p_component_appl_id       => l_component_appl_id
94908         , p_amb_context_code        => l_amb_context_code
94909         , p_entity_code             => 'AP_PAYMENTS'
94910         , p_event_class_code        => 'RECONCILED PAYMENTS'
94911         , p_side                    => 'NA'
94912         );
94913 
94914   END IF;
94915 
94916    --
94917    --
94918    END IF;
94919 
94920        --
94921        -- Update the line information that should be overwritten
94922        --
94923        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94924                                          p_header_num   => 1);
94925        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94926 
94927        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94928 
94929        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94930           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94931        END IF;
94932 
94933       --
94934       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94935       --
94936       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94937           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94938       ELSE
94939           ---------------------------------------------------------------------------------------------------
94940           -- 4262811a Switch Sign
94941           ---------------------------------------------------------------------------------------------------
94942           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94943           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94947           -- 5132302
94944                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94945           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94946                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94948           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94949                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94950 
94951       END IF;
94952 
94953       -- 4955764
94954       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94955       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94956 
94957 
94958       XLA_AE_LINES_PKG.ValidateCurrentLine;
94959       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94960 
94961       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94962                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94963                ,p_balance_type_code => l_balance_type_code);
94964 
94965    END IF;
94966 
94967    -----------------------------------------------------------------------------------------
94968    -- 4262811 Multiperiod Accounting
94969    -----------------------------------------------------------------------------------------
94970      -- No MPA option is assigned.
94971 
94972 
94973 END IF;
94974 END IF;
94975 --
94976 
94977 --
94978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94979    trace
94980       (p_msg      => 'END of AcctLineType_172'
94981       ,p_level    => C_LEVEL_PROCEDURE
94982       ,p_module   => l_log_module);
94983 END IF;
94984 --
94985 EXCEPTION
94986   WHEN xla_exceptions_pkg.application_exception THEN
94987       RAISE;
94988   WHEN OTHERS THEN
94989        xla_exceptions_pkg.raise_message
94990            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_172');
94991 END AcctLineType_172;
94992 --
94993 
94994 ---------------------------------------
94995 --
94996 -- PRIVATE FUNCTION
94997 --         AcctLineType_173
94998 --
94999 ---------------------------------------
95000 PROCEDURE AcctLineType_173 (
95001   p_application_id        IN NUMBER
95002  ,p_event_id              IN NUMBER
95003  ,p_calculate_acctd_flag  IN VARCHAR2
95004  ,p_calculate_g_l_flag    IN VARCHAR2
95005  ,p_actual_flag           IN OUT VARCHAR2
95006  ,p_balance_type_code     OUT VARCHAR2
95007  ,p_gain_or_loss_ref      OUT VARCHAR2
95008  
95009 --Payment Currency Code
95010  , p_source_8            IN VARCHAR2
95011 --Automatic Offsets Value
95012  , p_source_10            IN VARCHAR2
95013  , p_source_10_meaning    IN VARCHAR2
95014 --Invoice Distribution Account
95015  , p_source_25            IN NUMBER
95016 --Internal Realized Loss Account
95017  , p_source_33            IN NUMBER
95018 --Bank Loss Account
95019  , p_source_34            IN NUMBER
95020 --When to Account for Payment Option
95021  , p_source_57            IN VARCHAR2
95022 --Accounting Reversal Indicator
95023  , p_source_58            IN VARCHAR2
95024 --Distribution Link Type
95025  , p_source_60            IN VARCHAR2
95026 --Override Accounted Amount Indicator
95027  , p_source_85            IN VARCHAR2
95028  , p_source_85_meaning    IN VARCHAR2
95029 --Third Party Type
95030  , p_source_88            IN VARCHAR2
95031 --Invoice Distribution Tax Line Identifier
95032  , p_source_91            IN NUMBER
95033 --Invoice Distribution Summary Tax Line Identifier
95034  , p_source_93            IN NUMBER
95035 --Business Flow Accounts Payable Application Identifier
95036  , p_source_96            IN NUMBER
95037 --Payment Distribution Type
95038  , p_source_101            IN VARCHAR2
95039  , p_source_101_meaning    IN VARCHAR2
95040 --Payment Distribution Amount
95041  , p_source_102            IN NUMBER
95042 --Business Flow Payment Distribution Type
95043  , p_source_103            IN VARCHAR2
95044 --Business Flow Payment Entity Code
95045  , p_source_104            IN VARCHAR2
95046 --Business Flow Payment Distribution Identifier
95047  , p_source_105            IN NUMBER
95048 --Business Flow Payment Identifier
95049  , p_source_106            IN NUMBER
95050 --Payment Distribution Identifier
95051  , p_source_107            IN NUMBER
95052 --Cleared Exchange Date
95053  , p_source_109            IN DATE
95054 --Cleared Exchange Rate
95055  , p_source_110            IN NUMBER
95056 --Cleared Exchange Rate Type
95057  , p_source_111            IN VARCHAR2
95058 --Payment Supplier Identifier
95059  , p_source_113            IN NUMBER
95060 --Payment Supplier Site Identifier
95061  , p_source_114            IN NUMBER
95062 --Payment Distribution Reversed Identifier
95063  , p_source_115            IN NUMBER
95064 --Payment Maturity Date
95065  , p_source_117            IN DATE
95066 --Gain or Loss Indicator between Maturity and Clearing
95067  , p_source_159            IN VARCHAR2
95068 --Maturity/Clearing Ledger Amount Difference
95069  , p_source_160            IN NUMBER
95070 )
95071 IS
95072 
95073 l_component_type              VARCHAR2(80);
95074 l_component_code              VARCHAR2(30);
95075 l_component_type_code         VARCHAR2(1);
95076 l_component_appl_id           INTEGER;
95077 l_amb_context_code            VARCHAR2(30);
95081 l_event_type_code             VARCHAR2(30);
95078 l_entity_code                 VARCHAR2(30);
95079 l_event_class_code            VARCHAR2(30);
95080 l_ae_header_id                NUMBER;
95082 l_line_definition_code        VARCHAR2(30);
95083 l_line_definition_owner_code  VARCHAR2(1);
95084 --
95085 -- adr variables
95086 l_segment                     VARCHAR2(30);
95087 l_ccid                        NUMBER;
95088 l_adr_transaction_coa_id      NUMBER;
95089 l_adr_accounting_coa_id       NUMBER;
95090 l_adr_flexfield_segment_code  VARCHAR2(30);
95091 l_adr_flex_value_set_id       NUMBER;
95092 l_adr_value_type_code         VARCHAR2(30);
95093 l_adr_value_combination_id    NUMBER;
95094 l_adr_value_segment_code      VARCHAR2(30);
95095 
95096 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95097 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95098 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95099 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95100 
95101 -- 4262811 Variables ------------------------------------------------------------------------------------------
95102 l_entered_amt_idx             NUMBER;
95103 l_accted_amt_idx              NUMBER;
95104 l_acc_rev_flag                VARCHAR2(1);
95105 l_accrual_line_num            NUMBER;
95106 l_tmp_amt                     NUMBER;
95107 l_acc_rev_natural_side_code   VARCHAR2(1);
95108 
95109 l_num_entries                 NUMBER;
95110 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95111 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95112 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95113 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95114 l_recog_line_1                NUMBER;
95115 l_recog_line_2                NUMBER;
95116 
95117 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95118 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95119 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95120 
95121 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95122 
95123 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95124 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95125 
95126 ---------------------------------------------------------------------------------------------------------------
95127 
95128 
95129 --
95130 -- bulk performance
95131 --
95132 l_balance_type_code           VARCHAR2(1);
95133 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95134 l_log_module                  VARCHAR2(240);
95135 
95136 --
95137 -- Upgrade strategy
95138 --
95139 l_actual_upg_option           VARCHAR2(1);
95140 l_enc_upg_option           VARCHAR2(1);
95141 
95142 --
95143 BEGIN
95144 --
95145 IF g_log_enabled THEN
95146       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_173';
95147 END IF;
95148 --
95149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95150 
95151       trace
95152          (p_msg      => 'BEGIN of AcctLineType_173'
95153          ,p_level    => C_LEVEL_PROCEDURE
95154          ,p_module   => l_log_module);
95155 
95156 END IF;
95157 --
95158 l_component_type             := 'AMB_JLT';
95159 l_component_code             := 'AP_LOSS_MAT_CLEAR';
95160 l_component_type_code        := 'S';
95161 l_component_appl_id          :=  200;
95162 l_amb_context_code           := 'DEFAULT';
95163 l_entity_code                := 'AP_PAYMENTS';
95164 l_event_class_code           := 'RECONCILED PAYMENTS';
95165 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
95166 l_line_definition_owner_code := 'S';
95167 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
95168 --
95169 l_balance_type_code          := 'A';
95170 l_segment                     := NULL;
95171 l_ccid                        := NULL;
95172 l_adr_transaction_coa_id      := NULL;
95173 l_adr_accounting_coa_id       := NULL;
95174 l_adr_flexfield_segment_code  := NULL;
95175 l_adr_flex_value_set_id       := NULL;
95176 l_adr_value_type_code         := NULL;
95177 l_adr_value_combination_id    := NULL;
95178 l_adr_value_segment_code      := NULL;
95179 
95180 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
95181 l_bflow_class_code           := '';    -- 4219869 Business Flow
95182 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95183 l_budgetary_control_flag     := 'N';
95184 
95185 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95186 l_bflow_applied_to_amt       := NULL; -- 5132302
95187 l_entered_amt_idx            := NULL;          -- 4262811
95188 l_accted_amt_idx             := NULL;          -- 4262811
95189 l_acc_rev_flag               := NULL;          -- 4262811
95190 l_accrual_line_num           := NULL;          -- 4262811
95191 l_tmp_amt                    := NULL;          -- 4262811
95192 --
95193 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
95194             (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
95195                return;
95196   END IF;
95197   
95198 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95199     l_balance_type_code <> 'B' THEN
95200 IF NVL(p_source_57,'
95204 ') =  'LOSS' AND 
95201 ') =  'ALWAYS_ALWAYS' AND 
95202 p_source_117 IS NOT NULL AND 
95203 NVL(p_source_159,'
95205 NVL(p_source_101,'
95206 ') <>  'EXCHANGE RATE VARIANCE' AND 
95207 NVL(p_source_101,'
95208 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
95209 NVL(p_source_101,'
95210 ') <>  'BANK CHARGE' AND 
95211 NVL(p_source_101,'
95212 ') <>  'BANK ERROR'
95213  THEN 
95214 
95215    --
95216    XLA_AE_LINES_PKG.SetNewLine;
95217 
95218    p_balance_type_code          := l_balance_type_code;
95219    -- set the flag so later we will know whether the gain loss line needs to be created
95220    
95221    IF(l_balance_type_code = 'A' ) THEN
95222      p_actual_flag :='G';
95223    END IF;
95224 
95225    --
95226    -- bulk performance
95227    --
95228    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95229                                       p_header_num   => 0); -- 4262811
95230    --
95231    -- set accounting line options
95232    --
95233    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95234            p_natural_side_code          => 'C'
95235          , p_gain_or_loss_flag          => 'Y'
95236          , p_gl_transfer_mode_code      => 'S'
95237          , p_acct_entry_type_code       => 'A'
95238          , p_switch_side_flag           => 'Y'
95239          , p_merge_duplicate_code       => 'A'
95240          );
95241    --
95242    l_acc_rev_natural_side_code := 'D';  -- 4262811
95243    -- 
95244    --
95245    -- set accounting line type info
95246    --
95247    xla_ae_lines_pkg.SetAcctLineType
95248       (p_component_type             => l_component_type
95249       ,p_event_type_code            => l_event_type_code
95250       ,p_line_definition_owner_code => l_line_definition_owner_code
95251       ,p_line_definition_code       => l_line_definition_code
95252       ,p_accounting_line_code       => l_component_code
95253       ,p_accounting_line_type_code  => l_component_type_code
95254       ,p_accounting_line_appl_id    => l_component_appl_id
95255       ,p_amb_context_code           => l_amb_context_code
95256       ,p_entity_code                => l_entity_code
95257       ,p_event_class_code           => l_event_class_code);
95258    --
95259    -- set accounting class
95260    --
95261    xla_ae_lines_pkg.SetAcctClass(
95262            p_accounting_class_code  => 'LOSS'
95263          , p_ae_header_id           => l_ae_header_id
95264          );
95265 
95266    --
95267    -- set rounding class
95268    --
95269    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95270                       'LOSS';
95271 
95272    --
95273    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95274    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95275    --
95276    -- bulk performance
95277    --
95278    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95279 
95280    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95281       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95282 
95283    -- 4955764
95284    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95285       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95286 
95287    -- 4458381 Public Sector Enh
95288    
95289    --
95290    -- set accounting attributes for the line type
95291    --
95292    l_entered_amt_idx := 10;
95293    l_accted_amt_idx  := 15;
95294    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
95295    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95296    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
95297    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95298    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
95299    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95300    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
95301    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95302    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
95303    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95304    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
95305    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95306    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
95307    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95308    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
95309    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95310    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
95311    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95312    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
95313    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95314    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
95315    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95316    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
95317    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95318    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
95319    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95323    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95320    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
95321    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95322    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
95324    l_rec_acct_attrs.array_num_value(15)  := p_source_160;
95325    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95326    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
95327    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95328    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
95329    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95330    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
95331    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95332    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
95333    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95334    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
95335    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95336    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
95337    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95338    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
95339    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95340    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
95341    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95342    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
95343 
95344    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95345    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95346 
95347    ---------------------------------------------------------------------------------------------------------------
95348    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95349    ---------------------------------------------------------------------------------------------------------------
95350    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95351 
95352    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95353    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95354 
95355    IF xla_accounting_cache_pkg.GetValueChar
95356          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95357          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95358    AND l_bflow_method_code = 'PRIOR_ENTRY'
95359 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95360    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95361          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95362        )
95363    THEN
95364          xla_ae_lines_pkg.BflowUpgEntry
95365            (p_business_method_code    => l_bflow_method_code
95366            ,p_business_class_code     => l_bflow_class_code
95367            ,p_balance_type            => l_balance_type_code);
95368    ELSE
95369       NULL;
95370 -- No business flow processing for business flow method of NONE.
95371    END IF;
95372 
95373    --
95374    -- call analytical criteria
95375    --
95376    
95377    --
95378    -- call description
95379    --
95380    -- No description or it is inherited.
95381    --
95382    -- call ADRs
95383    -- Bug 4922099
95384    --
95385    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95386         (NVL(l_actual_upg_option, 'N') = 'O') OR
95387         (NVL(l_enc_upg_option, 'N') = 'O')
95388       )
95389    THEN
95390    NULL;
95391    --
95392    --
95393    
95394   l_ccid := AcctDerRule_41(
95395            p_application_id           => p_application_id
95396          , p_ae_header_id             => l_ae_header_id 
95397 , p_source_10 => p_source_10
95398 , p_source_10_meaning => p_source_10_meaning
95399 , p_source_25 => p_source_25
95400 , p_source_33 => p_source_33
95401 , p_source_34 => p_source_34
95402          , x_transaction_coa_id       => l_adr_transaction_coa_id
95403          , x_accounting_coa_id        => l_adr_accounting_coa_id
95404          , x_value_type_code          => l_adr_value_type_code
95405          , p_side                     => 'NA'
95406    );
95407 
95408    xla_ae_lines_pkg.set_ccid(
95409     p_code_combination_id          => l_ccid
95410   , p_value_type_code              => l_adr_value_type_code
95411   , p_transaction_coa_id           => l_adr_transaction_coa_id
95412   , p_accounting_coa_id            => l_adr_accounting_coa_id
95413   , p_adr_code                     => 'AP_REAL_LOSS'
95414   , p_adr_type_code                => 'S'
95415   , p_component_type               => l_component_type
95416   , p_component_code               => l_component_code
95417   , p_component_type_code          => l_component_type_code
95418   , p_component_appl_id            => l_component_appl_id
95419   , p_amb_context_code             => l_amb_context_code
95420   , p_side                         => 'NA'
95421   );
95422 
95423 
95424    l_segment := AcctDerRule_23(
95425            p_application_id           => p_application_id
95426          , p_ae_header_id             => l_ae_header_id 
95427 , p_source_10 => p_source_10
95428 , p_source_10_meaning => p_source_10_meaning
95429 , p_source_25 => p_source_25
95433          , x_flex_value_set_id        => l_adr_flex_value_set_id
95430          , x_transaction_coa_id       => l_adr_transaction_coa_id
95431          , x_accounting_coa_id        => l_adr_accounting_coa_id
95432          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95434          , x_value_type_code          => l_adr_value_type_code
95435          , x_value_combination_id     => l_adr_value_combination_id
95436          , x_value_segment_code       => l_adr_value_segment_code
95437          , p_side                     => 'NA'
95438          , p_override_seg_flag        => 'Y'
95439    );
95440 
95441    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95442 
95443       xla_ae_lines_pkg.set_segment(
95444           p_to_segment_code         => 'GL_BALANCING'
95445         , p_segment_value           => l_segment
95446         , p_from_segment_code       => l_adr_value_segment_code
95447         , p_from_combination_id     => l_adr_value_combination_id
95448         , p_value_type_code         => l_adr_value_type_code
95449         , p_transaction_coa_id      => l_adr_transaction_coa_id
95450         , p_accounting_coa_id       => l_adr_accounting_coa_id
95451         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95452         , p_flex_value_set_id       => l_adr_flex_value_set_id
95453         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95454         , p_adr_type_code           => 'S'
95455         , p_component_type          => l_component_type
95456         , p_component_code          => l_component_code
95457         , p_component_type_code     => l_component_type_code
95458         , p_component_appl_id       => l_component_appl_id
95459         , p_amb_context_code        => l_amb_context_code
95460         , p_entity_code             => 'AP_PAYMENTS'
95461         , p_event_class_code        => 'RECONCILED PAYMENTS'
95462         , p_side                    => 'NA'
95463         );
95464 
95465   END IF;
95466 
95467    l_segment := AcctDerRule_18(
95468            p_application_id           => p_application_id
95469          , p_ae_header_id             => l_ae_header_id 
95470 , p_source_10 => p_source_10
95471 , p_source_10_meaning => p_source_10_meaning
95472 , p_source_33 => p_source_33
95473 , p_source_34 => p_source_34
95474          , x_transaction_coa_id       => l_adr_transaction_coa_id
95475          , x_accounting_coa_id        => l_adr_accounting_coa_id
95476          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95477          , x_flex_value_set_id        => l_adr_flex_value_set_id
95478          , x_value_type_code          => l_adr_value_type_code
95479          , x_value_combination_id     => l_adr_value_combination_id
95480          , x_value_segment_code       => l_adr_value_segment_code
95481          , p_side                     => 'NA'
95482          , p_override_seg_flag        => 'Y'
95483    );
95484 
95485    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95486 
95487       xla_ae_lines_pkg.set_segment(
95488           p_to_segment_code         => 'GL_ACCOUNT'
95489         , p_segment_value           => l_segment
95490         , p_from_segment_code       => l_adr_value_segment_code
95491         , p_from_combination_id     => l_adr_value_combination_id
95492         , p_value_type_code         => l_adr_value_type_code
95493         , p_transaction_coa_id      => l_adr_transaction_coa_id
95494         , p_accounting_coa_id       => l_adr_accounting_coa_id
95495         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95496         , p_flex_value_set_id       => l_adr_flex_value_set_id
95497         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
95498         , p_adr_type_code           => 'S'
95499         , p_component_type          => l_component_type
95500         , p_component_code          => l_component_code
95501         , p_component_type_code     => l_component_type_code
95502         , p_component_appl_id       => l_component_appl_id
95503         , p_amb_context_code        => l_amb_context_code
95504         , p_entity_code             => 'AP_PAYMENTS'
95505         , p_event_class_code        => 'RECONCILED PAYMENTS'
95506         , p_side                    => 'NA'
95507         );
95508 
95509   END IF;
95510 
95511    --
95512    --
95513    END IF;
95514    --
95515    -- Bug 4922099
95516    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95517           (NVL(l_enc_upg_option, 'N') = 'O')
95518         ) AND
95519         (l_bflow_method_code = 'PRIOR_ENTRY')
95520       )
95521    THEN
95522       IF
95523       --
95524       1 = 2
95525       --
95526       THEN
95527       xla_accounting_err_pkg.build_message
95528                                     (p_appli_s_name            => 'XLA'
95529                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95530                                     ,p_token_1                 => 'LINE_NUMBER'
95531                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95532                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95533                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95534                                                                              l_component_type
95535                                                                             ,l_component_code
95536                                                                             ,l_component_type_code
95537                                                                             ,l_component_appl_id
95541                                                                            )
95538                                                                             ,l_amb_context_code
95539                                                                             ,l_entity_code
95540                                                                             ,l_event_class_code
95542                                     ,p_token_3                 => 'OWNER'
95543                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95544                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95545                                                                           ,p_lookup_code    => l_component_type_code
95546                                                                          )
95547                                     ,p_token_4                 => 'PRODUCT_NAME'
95548                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95549                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95550                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95551                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95552                                     ,p_ae_header_id            =>  NULL
95553                                        );
95554 
95555         IF (C_LEVEL_ERROR>= g_log_level) THEN
95556                  trace
95557                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95558                       ,p_level    => C_LEVEL_ERROR
95559                       ,p_module   => l_log_module);
95560         END IF;
95561       END IF;
95562    END IF;
95563    --
95564    --
95565    ------------------------------------------------------------------------------------------------
95566    -- 4219869 Business Flow
95567    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95568    -- Prior Entry.  Currently, the following code is always generated.
95569    ------------------------------------------------------------------------------------------------
95570    XLA_AE_LINES_PKG.ValidateCurrentLine;
95571 
95572    ------------------------------------------------------------------------------------
95573    -- 4219869 Business Flow
95574    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95575    ------------------------------------------------------------------------------------
95576    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95577 
95578    ----------------------------------------------------------------------------------
95579    -- 4219869 Business Flow
95580    -- Update journal entry status -- Need to generate this within IF <condition>
95581    ----------------------------------------------------------------------------------
95582    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95583          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95584          ,p_balance_type_code => l_balance_type_code
95585          );
95586 
95587    -------------------------------------------------------------------------------------------
95588    -- 4262811 - Generate the Accrual Reversal lines
95589    -------------------------------------------------------------------------------------------
95590    BEGIN
95591       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95592                               (g_array_event(p_event_id).array_value_num('header_index'));
95593       IF l_acc_rev_flag IS NULL THEN
95594          l_acc_rev_flag := 'N';
95595       END IF;
95596    EXCEPTION
95597       WHEN OTHERS THEN
95598          l_acc_rev_flag := 'N';
95599    END;
95600    --
95601    IF (l_acc_rev_flag = 'Y') THEN
95602 
95603        -- 4645092  ------------------------------------------------------------------------------
95604        -- To allow MPA report to determine if it should generate report process
95605        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95606        ------------------------------------------------------------------------------------------
95607 
95608        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95609        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95610    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95611    -- call ADRs
95612    -- Bug 4922099
95613    --
95614    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95615         (NVL(l_actual_upg_option, 'N') = 'O') OR
95616         (NVL(l_enc_upg_option, 'N') = 'O')
95617       )
95618    THEN
95619    NULL;
95620    --
95621    --
95622    
95623   l_ccid := AcctDerRule_41(
95624            p_application_id           => p_application_id
95625          , p_ae_header_id             => l_ae_header_id 
95626 , p_source_10 => p_source_10
95627 , p_source_10_meaning => p_source_10_meaning
95628 , p_source_25 => p_source_25
95629 , p_source_33 => p_source_33
95630 , p_source_34 => p_source_34
95631          , x_transaction_coa_id       => l_adr_transaction_coa_id
95632          , x_accounting_coa_id        => l_adr_accounting_coa_id
95633          , x_value_type_code          => l_adr_value_type_code
95634          , p_side                     => 'NA'
95635    );
95636 
95637    xla_ae_lines_pkg.set_ccid(
95638     p_code_combination_id          => l_ccid
95639   , p_value_type_code              => l_adr_value_type_code
95643   , p_adr_type_code                => 'S'
95640   , p_transaction_coa_id           => l_adr_transaction_coa_id
95641   , p_accounting_coa_id            => l_adr_accounting_coa_id
95642   , p_adr_code                     => 'AP_REAL_LOSS'
95644   , p_component_type               => l_component_type
95645   , p_component_code               => l_component_code
95646   , p_component_type_code          => l_component_type_code
95647   , p_component_appl_id            => l_component_appl_id
95648   , p_amb_context_code             => l_amb_context_code
95649   , p_side                         => 'NA'
95650   );
95651 
95652 
95653    l_segment := AcctDerRule_23(
95654            p_application_id           => p_application_id
95655          , p_ae_header_id             => l_ae_header_id 
95656 , p_source_10 => p_source_10
95657 , p_source_10_meaning => p_source_10_meaning
95658 , p_source_25 => p_source_25
95659          , x_transaction_coa_id       => l_adr_transaction_coa_id
95660          , x_accounting_coa_id        => l_adr_accounting_coa_id
95661          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95662          , x_flex_value_set_id        => l_adr_flex_value_set_id
95663          , x_value_type_code          => l_adr_value_type_code
95664          , x_value_combination_id     => l_adr_value_combination_id
95665          , x_value_segment_code       => l_adr_value_segment_code
95666          , p_side                     => 'NA'
95667          , p_override_seg_flag        => 'Y'
95668    );
95669 
95670    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95671 
95672       xla_ae_lines_pkg.set_segment(
95673           p_to_segment_code         => 'GL_BALANCING'
95674         , p_segment_value           => l_segment
95675         , p_from_segment_code       => l_adr_value_segment_code
95676         , p_from_combination_id     => l_adr_value_combination_id
95677         , p_value_type_code         => l_adr_value_type_code
95678         , p_transaction_coa_id      => l_adr_transaction_coa_id
95679         , p_accounting_coa_id       => l_adr_accounting_coa_id
95680         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95681         , p_flex_value_set_id       => l_adr_flex_value_set_id
95682         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95683         , p_adr_type_code           => 'S'
95684         , p_component_type          => l_component_type
95685         , p_component_code          => l_component_code
95686         , p_component_type_code     => l_component_type_code
95687         , p_component_appl_id       => l_component_appl_id
95688         , p_amb_context_code        => l_amb_context_code
95689         , p_entity_code             => 'AP_PAYMENTS'
95690         , p_event_class_code        => 'RECONCILED PAYMENTS'
95691         , p_side                    => 'NA'
95692         );
95693 
95694   END IF;
95695 
95696    l_segment := AcctDerRule_18(
95697            p_application_id           => p_application_id
95698          , p_ae_header_id             => l_ae_header_id 
95699 , p_source_10 => p_source_10
95700 , p_source_10_meaning => p_source_10_meaning
95701 , p_source_33 => p_source_33
95702 , p_source_34 => p_source_34
95703          , x_transaction_coa_id       => l_adr_transaction_coa_id
95704          , x_accounting_coa_id        => l_adr_accounting_coa_id
95705          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95706          , x_flex_value_set_id        => l_adr_flex_value_set_id
95707          , x_value_type_code          => l_adr_value_type_code
95708          , x_value_combination_id     => l_adr_value_combination_id
95709          , x_value_segment_code       => l_adr_value_segment_code
95710          , p_side                     => 'NA'
95711          , p_override_seg_flag        => 'Y'
95712    );
95713 
95714    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95715 
95716       xla_ae_lines_pkg.set_segment(
95717           p_to_segment_code         => 'GL_ACCOUNT'
95718         , p_segment_value           => l_segment
95719         , p_from_segment_code       => l_adr_value_segment_code
95720         , p_from_combination_id     => l_adr_value_combination_id
95721         , p_value_type_code         => l_adr_value_type_code
95722         , p_transaction_coa_id      => l_adr_transaction_coa_id
95723         , p_accounting_coa_id       => l_adr_accounting_coa_id
95724         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95725         , p_flex_value_set_id       => l_adr_flex_value_set_id
95726         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
95727         , p_adr_type_code           => 'S'
95728         , p_component_type          => l_component_type
95729         , p_component_code          => l_component_code
95730         , p_component_type_code     => l_component_type_code
95731         , p_component_appl_id       => l_component_appl_id
95732         , p_amb_context_code        => l_amb_context_code
95733         , p_entity_code             => 'AP_PAYMENTS'
95734         , p_event_class_code        => 'RECONCILED PAYMENTS'
95735         , p_side                    => 'NA'
95736         );
95737 
95738   END IF;
95739 
95740    --
95741    --
95742    END IF;
95743 
95744        --
95745        -- Update the line information that should be overwritten
95746        --
95747        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95748                                          p_header_num   => 1);
95749        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95750 
95751        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95755        END IF;
95752 
95753        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
95754           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95756 
95757       --
95758       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95759       --
95760       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95761           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
95762       ELSE
95763           ---------------------------------------------------------------------------------------------------
95764           -- 4262811a Switch Sign
95765           ---------------------------------------------------------------------------------------------------
95766           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
95767           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95768                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95769           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95770                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95771           -- 5132302
95772           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95773                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95774 
95775       END IF;
95776 
95777       -- 4955764
95778       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95779       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95780 
95781 
95782       XLA_AE_LINES_PKG.ValidateCurrentLine;
95783       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95784 
95785       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95786                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95787                ,p_balance_type_code => l_balance_type_code);
95788 
95789    END IF;
95790 
95791    -----------------------------------------------------------------------------------------
95792    -- 4262811 Multiperiod Accounting
95793    -----------------------------------------------------------------------------------------
95794      -- No MPA option is assigned.
95795 
95796 
95797 END IF;
95798 END IF;
95799 --
95800 
95801 --
95802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95803    trace
95804       (p_msg      => 'END of AcctLineType_173'
95805       ,p_level    => C_LEVEL_PROCEDURE
95806       ,p_module   => l_log_module);
95807 END IF;
95808 --
95809 EXCEPTION
95810   WHEN xla_exceptions_pkg.application_exception THEN
95811       RAISE;
95812   WHEN OTHERS THEN
95813        xla_exceptions_pkg.raise_message
95814            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_173');
95815 END AcctLineType_173;
95816 --
95817 
95818 ---------------------------------------
95819 --
95820 -- PRIVATE FUNCTION
95821 --         AcctLineType_174
95822 --
95823 ---------------------------------------
95824 PROCEDURE AcctLineType_174 (
95825   p_application_id        IN NUMBER
95826  ,p_event_id              IN NUMBER
95827  ,p_calculate_acctd_flag  IN VARCHAR2
95828  ,p_calculate_g_l_flag    IN VARCHAR2
95829  ,p_actual_flag           IN OUT VARCHAR2
95830  ,p_balance_type_code     OUT VARCHAR2
95831  ,p_gain_or_loss_ref      OUT VARCHAR2
95832  
95833 --Payment Currency Code
95834  , p_source_8            IN VARCHAR2
95835 --Automatic Offsets Value
95836  , p_source_10            IN VARCHAR2
95837  , p_source_10_meaning    IN VARCHAR2
95838 --Invoice Distribution Account
95839  , p_source_25            IN NUMBER
95840 --Internal Realized Loss Account
95841  , p_source_33            IN NUMBER
95842 --Bank Loss Account
95843  , p_source_34            IN NUMBER
95844 --When to Account for Payment Option
95845  , p_source_57            IN VARCHAR2
95846 --Accounting Reversal Indicator
95847  , p_source_58            IN VARCHAR2
95848 --Distribution Link Type
95849  , p_source_60            IN VARCHAR2
95850 --Override Accounted Amount Indicator
95851  , p_source_85            IN VARCHAR2
95852  , p_source_85_meaning    IN VARCHAR2
95853 --Third Party Type
95854  , p_source_88            IN VARCHAR2
95855 --Invoice Distribution Tax Line Identifier
95856  , p_source_91            IN NUMBER
95857 --Invoice Distribution Tax Distribution Identifier from Tax
95858  , p_source_92            IN NUMBER
95859 --Invoice Distribution Summary Tax Line Identifier
95860  , p_source_93            IN NUMBER
95861 --Business Flow Accounts Payable Application Identifier
95862  , p_source_96            IN NUMBER
95863 --Business Flow Invoice Distribution Type
95864  , p_source_97            IN VARCHAR2
95865 --Business Flow Invoice Entity Code
95866  , p_source_98            IN VARCHAR2
95867 --Business Flow Invoice Distribution Identifier
95868  , p_source_99            IN NUMBER
95869 --Business Flow Invoice Identifier
95870  , p_source_100            IN NUMBER
95871 --Payment Distribution Type
95872  , p_source_101            IN VARCHAR2
95873  , p_source_101_meaning    IN VARCHAR2
95874 --Payment Distribution Amount
95878 --Payment Supplier Identifier
95875  , p_source_102            IN NUMBER
95876 --Payment Distribution Identifier
95877  , p_source_107            IN NUMBER
95879  , p_source_113            IN NUMBER
95880 --Payment Supplier Site Identifier
95881  , p_source_114            IN NUMBER
95882 --Payment Distribution Reversed Identifier
95883  , p_source_115            IN NUMBER
95884 --Payment Exchange Date
95885  , p_source_120            IN DATE
95886 --Payment Exchange Rate
95887  , p_source_121            IN NUMBER
95888 --Payment Exchange Rate Type
95889  , p_source_122            IN VARCHAR2
95890 --Payment Type
95891  , p_source_125            IN VARCHAR2
95892  , p_source_125_meaning    IN VARCHAR2
95893 --Invoice Distribution Amount of the Payment Distribution
95894  , p_source_127            IN NUMBER
95895 --Invoice/Payment Ledger Amount Difference
95896  , p_source_156            IN NUMBER
95897 --Gain or Loss Indicator between Invoice and Payment
95898  , p_source_161            IN VARCHAR2
95899 )
95900 IS
95901 
95902 l_component_type              VARCHAR2(80);
95903 l_component_code              VARCHAR2(30);
95904 l_component_type_code         VARCHAR2(1);
95905 l_component_appl_id           INTEGER;
95906 l_amb_context_code            VARCHAR2(30);
95907 l_entity_code                 VARCHAR2(30);
95908 l_event_class_code            VARCHAR2(30);
95909 l_ae_header_id                NUMBER;
95910 l_event_type_code             VARCHAR2(30);
95911 l_line_definition_code        VARCHAR2(30);
95912 l_line_definition_owner_code  VARCHAR2(1);
95913 --
95914 -- adr variables
95915 l_segment                     VARCHAR2(30);
95916 l_ccid                        NUMBER;
95917 l_adr_transaction_coa_id      NUMBER;
95918 l_adr_accounting_coa_id       NUMBER;
95919 l_adr_flexfield_segment_code  VARCHAR2(30);
95920 l_adr_flex_value_set_id       NUMBER;
95921 l_adr_value_type_code         VARCHAR2(30);
95922 l_adr_value_combination_id    NUMBER;
95923 l_adr_value_segment_code      VARCHAR2(30);
95924 
95925 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95926 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95927 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95928 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95929 
95930 -- 4262811 Variables ------------------------------------------------------------------------------------------
95931 l_entered_amt_idx             NUMBER;
95932 l_accted_amt_idx              NUMBER;
95933 l_acc_rev_flag                VARCHAR2(1);
95934 l_accrual_line_num            NUMBER;
95935 l_tmp_amt                     NUMBER;
95936 l_acc_rev_natural_side_code   VARCHAR2(1);
95937 
95938 l_num_entries                 NUMBER;
95939 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95940 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95941 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95942 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95943 l_recog_line_1                NUMBER;
95944 l_recog_line_2                NUMBER;
95945 
95946 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95947 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95948 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95949 
95950 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95951 
95952 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95953 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95954 
95955 ---------------------------------------------------------------------------------------------------------------
95956 
95957 
95958 --
95959 -- bulk performance
95960 --
95961 l_balance_type_code           VARCHAR2(1);
95962 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95963 l_log_module                  VARCHAR2(240);
95964 
95965 --
95966 -- Upgrade strategy
95967 --
95968 l_actual_upg_option           VARCHAR2(1);
95969 l_enc_upg_option           VARCHAR2(1);
95970 
95971 --
95972 BEGIN
95973 --
95974 IF g_log_enabled THEN
95975       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_174';
95976 END IF;
95977 --
95978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95979 
95980       trace
95981          (p_msg      => 'BEGIN of AcctLineType_174'
95982          ,p_level    => C_LEVEL_PROCEDURE
95983          ,p_module   => l_log_module);
95984 
95985 END IF;
95986 --
95987 l_component_type             := 'AMB_JLT';
95988 l_component_code             := 'AP_LOSS_PMT';
95989 l_component_type_code        := 'S';
95990 l_component_appl_id          :=  200;
95991 l_amb_context_code           := 'DEFAULT';
95992 l_entity_code                := 'AP_PAYMENTS';
95993 l_event_class_code           := 'PAYMENTS';
95994 l_event_type_code            := 'PAYMENTS_ALL';
95995 l_line_definition_owner_code := 'S';
95996 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
95997 --
95998 l_balance_type_code          := 'A';
95999 l_segment                     := NULL;
96000 l_ccid                        := NULL;
96001 l_adr_transaction_coa_id      := NULL;
96002 l_adr_accounting_coa_id       := NULL;
96003 l_adr_flexfield_segment_code  := NULL;
96007 l_adr_value_segment_code      := NULL;
96004 l_adr_flex_value_set_id       := NULL;
96005 l_adr_value_type_code         := NULL;
96006 l_adr_value_combination_id    := NULL;
96008 
96009 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
96010 l_bflow_class_code           := '';    -- 4219869 Business Flow
96011 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96012 l_budgetary_control_flag     := 'N';
96013 
96014 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96015 l_bflow_applied_to_amt       := NULL; -- 5132302
96016 l_entered_amt_idx            := NULL;          -- 4262811
96017 l_accted_amt_idx             := NULL;          -- 4262811
96018 l_acc_rev_flag               := NULL;          -- 4262811
96019 l_accrual_line_num           := NULL;          -- 4262811
96020 l_tmp_amt                    := NULL;          -- 4262811
96021 --
96022 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
96023             (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
96024                return;
96025   END IF;
96026   
96027 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96028     l_balance_type_code <> 'B' THEN
96029 IF (NVL(p_source_57,'
96030 ') <>  'CLEAR_CLEAR' AND 
96031 NVL(p_source_57,'
96032 ') <>  'ALWAYS_CLEAR') AND 
96033 NVL(p_source_161,'
96034 ') =  'LOSS' AND 
96035 NVL(p_source_101,'
96036 ') <>  'EXCHANGE RATE VARIANCE' AND 
96037 NVL(p_source_101,'
96038 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
96039 NVL(p_source_101,'
96040 ') <>  'BANK CHARGE' AND 
96041 NVL(p_source_101,'
96042 ') <>  'BANK ERROR' AND 
96043 NVL(p_source_101,'
96044 ') <>  'AWT' AND 
96045 NVL(p_source_125,'
96046 ') <>  'R'
96047  THEN 
96048 
96049    --
96050    XLA_AE_LINES_PKG.SetNewLine;
96051 
96052    p_balance_type_code          := l_balance_type_code;
96053    -- set the flag so later we will know whether the gain loss line needs to be created
96054    
96055    IF(l_balance_type_code = 'A' ) THEN
96056      p_actual_flag :='G';
96057    END IF;
96058 
96059    --
96060    -- bulk performance
96061    --
96062    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96063                                       p_header_num   => 0); -- 4262811
96064    --
96065    -- set accounting line options
96066    --
96067    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96068            p_natural_side_code          => 'C'
96069          , p_gain_or_loss_flag          => 'Y'
96070          , p_gl_transfer_mode_code      => 'S'
96071          , p_acct_entry_type_code       => 'A'
96072          , p_switch_side_flag           => 'Y'
96073          , p_merge_duplicate_code       => 'A'
96074          );
96075    --
96076    l_acc_rev_natural_side_code := 'D';  -- 4262811
96077    -- 
96078    --
96079    -- set accounting line type info
96080    --
96081    xla_ae_lines_pkg.SetAcctLineType
96082       (p_component_type             => l_component_type
96083       ,p_event_type_code            => l_event_type_code
96084       ,p_line_definition_owner_code => l_line_definition_owner_code
96085       ,p_line_definition_code       => l_line_definition_code
96086       ,p_accounting_line_code       => l_component_code
96087       ,p_accounting_line_type_code  => l_component_type_code
96088       ,p_accounting_line_appl_id    => l_component_appl_id
96089       ,p_amb_context_code           => l_amb_context_code
96090       ,p_entity_code                => l_entity_code
96091       ,p_event_class_code           => l_event_class_code);
96092    --
96093    -- set accounting class
96094    --
96095    xla_ae_lines_pkg.SetAcctClass(
96096            p_accounting_class_code  => 'LOSS'
96097          , p_ae_header_id           => l_ae_header_id
96098          );
96099 
96100    --
96101    -- set rounding class
96102    --
96103    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96104                       'LOSS';
96105 
96106    --
96107    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96108    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96109    --
96110    -- bulk performance
96111    --
96112    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96113 
96114    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96115       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96116 
96117    -- 4955764
96118    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96119       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96120 
96121    -- 4458381 Public Sector Enh
96122    
96123    --
96124    -- set accounting attributes for the line type
96125    --
96126    l_entered_amt_idx := 10;
96127    l_accted_amt_idx  := 15;
96128    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
96129    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96130    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
96134    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
96131    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96132    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
96133    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96135    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96136    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
96137    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96138    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
96139    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96140    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
96141    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96142    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
96143    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96144    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
96145    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96146    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
96147    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96148    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
96149    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96150    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
96151    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
96152    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
96153    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
96154    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
96155    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
96156    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
96157    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
96158    l_rec_acct_attrs.array_num_value(15)  := p_source_156;
96159    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
96160    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
96161    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
96162    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
96163    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
96164    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
96165    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
96166    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
96167    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
96168    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
96169    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
96170    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
96171    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
96172    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
96173    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
96174    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
96175    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
96176    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
96177 
96178    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96179    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96180 
96181    ---------------------------------------------------------------------------------------------------------------
96182    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96183    ---------------------------------------------------------------------------------------------------------------
96184    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96185 
96186    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96187    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96188 
96189    IF xla_accounting_cache_pkg.GetValueChar
96190          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96191          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96192    AND l_bflow_method_code = 'PRIOR_ENTRY'
96193 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96194    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96195          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96196        )
96197    THEN
96198          xla_ae_lines_pkg.BflowUpgEntry
96199            (p_business_method_code    => l_bflow_method_code
96200            ,p_business_class_code     => l_bflow_class_code
96201            ,p_balance_type            => l_balance_type_code);
96202    ELSE
96203       NULL;
96204 -- No business flow processing for business flow method of NONE.
96205    END IF;
96206 
96207    --
96208    -- call analytical criteria
96209    --
96210    
96211    --
96212    -- call description
96213    --
96214    -- No description or it is inherited.
96215    --
96216    -- call ADRs
96217    -- Bug 4922099
96218    --
96219    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96220         (NVL(l_actual_upg_option, 'N') = 'O') OR
96221         (NVL(l_enc_upg_option, 'N') = 'O')
96222       )
96223    THEN
96224    NULL;
96225    --
96226    --
96227    
96228   l_ccid := AcctDerRule_41(
96229            p_application_id           => p_application_id
96230          , p_ae_header_id             => l_ae_header_id 
96231 , p_source_10 => p_source_10
96232 , p_source_10_meaning => p_source_10_meaning
96236          , x_transaction_coa_id       => l_adr_transaction_coa_id
96233 , p_source_25 => p_source_25
96234 , p_source_33 => p_source_33
96235 , p_source_34 => p_source_34
96237          , x_accounting_coa_id        => l_adr_accounting_coa_id
96238          , x_value_type_code          => l_adr_value_type_code
96239          , p_side                     => 'NA'
96240    );
96241 
96242    xla_ae_lines_pkg.set_ccid(
96243     p_code_combination_id          => l_ccid
96244   , p_value_type_code              => l_adr_value_type_code
96245   , p_transaction_coa_id           => l_adr_transaction_coa_id
96246   , p_accounting_coa_id            => l_adr_accounting_coa_id
96247   , p_adr_code                     => 'AP_REAL_LOSS'
96248   , p_adr_type_code                => 'S'
96249   , p_component_type               => l_component_type
96250   , p_component_code               => l_component_code
96251   , p_component_type_code          => l_component_type_code
96252   , p_component_appl_id            => l_component_appl_id
96253   , p_amb_context_code             => l_amb_context_code
96254   , p_side                         => 'NA'
96255   );
96256 
96257 
96258    l_segment := AcctDerRule_23(
96259            p_application_id           => p_application_id
96260          , p_ae_header_id             => l_ae_header_id 
96261 , p_source_10 => p_source_10
96262 , p_source_10_meaning => p_source_10_meaning
96263 , p_source_25 => p_source_25
96264          , x_transaction_coa_id       => l_adr_transaction_coa_id
96265          , x_accounting_coa_id        => l_adr_accounting_coa_id
96266          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96267          , x_flex_value_set_id        => l_adr_flex_value_set_id
96268          , x_value_type_code          => l_adr_value_type_code
96269          , x_value_combination_id     => l_adr_value_combination_id
96270          , x_value_segment_code       => l_adr_value_segment_code
96271          , p_side                     => 'NA'
96272          , p_override_seg_flag        => 'Y'
96273    );
96274 
96275    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96276 
96277       xla_ae_lines_pkg.set_segment(
96278           p_to_segment_code         => 'GL_BALANCING'
96279         , p_segment_value           => l_segment
96280         , p_from_segment_code       => l_adr_value_segment_code
96281         , p_from_combination_id     => l_adr_value_combination_id
96282         , p_value_type_code         => l_adr_value_type_code
96283         , p_transaction_coa_id      => l_adr_transaction_coa_id
96284         , p_accounting_coa_id       => l_adr_accounting_coa_id
96285         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96286         , p_flex_value_set_id       => l_adr_flex_value_set_id
96287         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96288         , p_adr_type_code           => 'S'
96289         , p_component_type          => l_component_type
96290         , p_component_code          => l_component_code
96291         , p_component_type_code     => l_component_type_code
96292         , p_component_appl_id       => l_component_appl_id
96293         , p_amb_context_code        => l_amb_context_code
96294         , p_entity_code             => 'AP_PAYMENTS'
96295         , p_event_class_code        => 'PAYMENTS'
96296         , p_side                    => 'NA'
96297         );
96298 
96299   END IF;
96300 
96301    l_segment := AcctDerRule_18(
96302            p_application_id           => p_application_id
96303          , p_ae_header_id             => l_ae_header_id 
96304 , p_source_10 => p_source_10
96305 , p_source_10_meaning => p_source_10_meaning
96306 , p_source_33 => p_source_33
96307 , p_source_34 => p_source_34
96308          , x_transaction_coa_id       => l_adr_transaction_coa_id
96309          , x_accounting_coa_id        => l_adr_accounting_coa_id
96310          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96311          , x_flex_value_set_id        => l_adr_flex_value_set_id
96312          , x_value_type_code          => l_adr_value_type_code
96313          , x_value_combination_id     => l_adr_value_combination_id
96314          , x_value_segment_code       => l_adr_value_segment_code
96315          , p_side                     => 'NA'
96316          , p_override_seg_flag        => 'Y'
96317    );
96318 
96319    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96320 
96321       xla_ae_lines_pkg.set_segment(
96322           p_to_segment_code         => 'GL_ACCOUNT'
96323         , p_segment_value           => l_segment
96324         , p_from_segment_code       => l_adr_value_segment_code
96325         , p_from_combination_id     => l_adr_value_combination_id
96326         , p_value_type_code         => l_adr_value_type_code
96327         , p_transaction_coa_id      => l_adr_transaction_coa_id
96328         , p_accounting_coa_id       => l_adr_accounting_coa_id
96329         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96330         , p_flex_value_set_id       => l_adr_flex_value_set_id
96331         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96332         , p_adr_type_code           => 'S'
96333         , p_component_type          => l_component_type
96334         , p_component_code          => l_component_code
96335         , p_component_type_code     => l_component_type_code
96336         , p_component_appl_id       => l_component_appl_id
96337         , p_amb_context_code        => l_amb_context_code
96338         , p_entity_code             => 'AP_PAYMENTS'
96339         , p_event_class_code        => 'PAYMENTS'
96340         , p_side                    => 'NA'
96344 
96341         );
96342 
96343   END IF;
96345    --
96346    --
96347    END IF;
96348    --
96349    -- Bug 4922099
96350    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96351           (NVL(l_enc_upg_option, 'N') = 'O')
96352         ) AND
96353         (l_bflow_method_code = 'PRIOR_ENTRY')
96354       )
96355    THEN
96356       IF
96357       --
96358       1 = 2
96359       --
96360       THEN
96361       xla_accounting_err_pkg.build_message
96362                                     (p_appli_s_name            => 'XLA'
96363                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96364                                     ,p_token_1                 => 'LINE_NUMBER'
96365                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96366                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96367                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96368                                                                              l_component_type
96369                                                                             ,l_component_code
96370                                                                             ,l_component_type_code
96371                                                                             ,l_component_appl_id
96372                                                                             ,l_amb_context_code
96373                                                                             ,l_entity_code
96374                                                                             ,l_event_class_code
96375                                                                            )
96376                                     ,p_token_3                 => 'OWNER'
96377                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96378                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96379                                                                           ,p_lookup_code    => l_component_type_code
96380                                                                          )
96381                                     ,p_token_4                 => 'PRODUCT_NAME'
96382                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96383                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96384                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96385                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96386                                     ,p_ae_header_id            =>  NULL
96387                                        );
96388 
96389         IF (C_LEVEL_ERROR>= g_log_level) THEN
96390                  trace
96391                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96392                       ,p_level    => C_LEVEL_ERROR
96393                       ,p_module   => l_log_module);
96394         END IF;
96395       END IF;
96396    END IF;
96397    --
96398    --
96399    ------------------------------------------------------------------------------------------------
96400    -- 4219869 Business Flow
96401    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96402    -- Prior Entry.  Currently, the following code is always generated.
96403    ------------------------------------------------------------------------------------------------
96404    XLA_AE_LINES_PKG.ValidateCurrentLine;
96405 
96406    ------------------------------------------------------------------------------------
96407    -- 4219869 Business Flow
96408    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96409    ------------------------------------------------------------------------------------
96410    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96411 
96412    ----------------------------------------------------------------------------------
96413    -- 4219869 Business Flow
96414    -- Update journal entry status -- Need to generate this within IF <condition>
96415    ----------------------------------------------------------------------------------
96416    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96417          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96418          ,p_balance_type_code => l_balance_type_code
96419          );
96420 
96421    -------------------------------------------------------------------------------------------
96422    -- 4262811 - Generate the Accrual Reversal lines
96423    -------------------------------------------------------------------------------------------
96424    BEGIN
96425       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96426                               (g_array_event(p_event_id).array_value_num('header_index'));
96427       IF l_acc_rev_flag IS NULL THEN
96428          l_acc_rev_flag := 'N';
96429       END IF;
96430    EXCEPTION
96431       WHEN OTHERS THEN
96432          l_acc_rev_flag := 'N';
96433    END;
96434    --
96435    IF (l_acc_rev_flag = 'Y') THEN
96436 
96437        -- 4645092  ------------------------------------------------------------------------------
96438        -- To allow MPA report to determine if it should generate report process
96439        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96443        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96440        ------------------------------------------------------------------------------------------
96441 
96442        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96444    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96445    -- call ADRs
96446    -- Bug 4922099
96447    --
96448    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96449         (NVL(l_actual_upg_option, 'N') = 'O') OR
96450         (NVL(l_enc_upg_option, 'N') = 'O')
96451       )
96452    THEN
96453    NULL;
96454    --
96455    --
96456    
96457   l_ccid := AcctDerRule_41(
96458            p_application_id           => p_application_id
96459          , p_ae_header_id             => l_ae_header_id 
96460 , p_source_10 => p_source_10
96461 , p_source_10_meaning => p_source_10_meaning
96462 , p_source_25 => p_source_25
96463 , p_source_33 => p_source_33
96464 , p_source_34 => p_source_34
96465          , x_transaction_coa_id       => l_adr_transaction_coa_id
96466          , x_accounting_coa_id        => l_adr_accounting_coa_id
96467          , x_value_type_code          => l_adr_value_type_code
96468          , p_side                     => 'NA'
96469    );
96470 
96471    xla_ae_lines_pkg.set_ccid(
96472     p_code_combination_id          => l_ccid
96473   , p_value_type_code              => l_adr_value_type_code
96474   , p_transaction_coa_id           => l_adr_transaction_coa_id
96475   , p_accounting_coa_id            => l_adr_accounting_coa_id
96476   , p_adr_code                     => 'AP_REAL_LOSS'
96477   , p_adr_type_code                => 'S'
96478   , p_component_type               => l_component_type
96479   , p_component_code               => l_component_code
96480   , p_component_type_code          => l_component_type_code
96481   , p_component_appl_id            => l_component_appl_id
96482   , p_amb_context_code             => l_amb_context_code
96483   , p_side                         => 'NA'
96484   );
96485 
96486 
96487    l_segment := AcctDerRule_23(
96488            p_application_id           => p_application_id
96489          , p_ae_header_id             => l_ae_header_id 
96490 , p_source_10 => p_source_10
96491 , p_source_10_meaning => p_source_10_meaning
96492 , p_source_25 => p_source_25
96493          , x_transaction_coa_id       => l_adr_transaction_coa_id
96494          , x_accounting_coa_id        => l_adr_accounting_coa_id
96495          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96496          , x_flex_value_set_id        => l_adr_flex_value_set_id
96497          , x_value_type_code          => l_adr_value_type_code
96498          , x_value_combination_id     => l_adr_value_combination_id
96499          , x_value_segment_code       => l_adr_value_segment_code
96500          , p_side                     => 'NA'
96501          , p_override_seg_flag        => 'Y'
96502    );
96503 
96504    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96505 
96506       xla_ae_lines_pkg.set_segment(
96507           p_to_segment_code         => 'GL_BALANCING'
96508         , p_segment_value           => l_segment
96509         , p_from_segment_code       => l_adr_value_segment_code
96510         , p_from_combination_id     => l_adr_value_combination_id
96511         , p_value_type_code         => l_adr_value_type_code
96512         , p_transaction_coa_id      => l_adr_transaction_coa_id
96513         , p_accounting_coa_id       => l_adr_accounting_coa_id
96514         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96515         , p_flex_value_set_id       => l_adr_flex_value_set_id
96516         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96517         , p_adr_type_code           => 'S'
96518         , p_component_type          => l_component_type
96519         , p_component_code          => l_component_code
96520         , p_component_type_code     => l_component_type_code
96521         , p_component_appl_id       => l_component_appl_id
96522         , p_amb_context_code        => l_amb_context_code
96523         , p_entity_code             => 'AP_PAYMENTS'
96524         , p_event_class_code        => 'PAYMENTS'
96525         , p_side                    => 'NA'
96526         );
96527 
96528   END IF;
96529 
96530    l_segment := AcctDerRule_18(
96531            p_application_id           => p_application_id
96532          , p_ae_header_id             => l_ae_header_id 
96533 , p_source_10 => p_source_10
96534 , p_source_10_meaning => p_source_10_meaning
96535 , p_source_33 => p_source_33
96536 , p_source_34 => p_source_34
96537          , x_transaction_coa_id       => l_adr_transaction_coa_id
96538          , x_accounting_coa_id        => l_adr_accounting_coa_id
96539          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96540          , x_flex_value_set_id        => l_adr_flex_value_set_id
96541          , x_value_type_code          => l_adr_value_type_code
96542          , x_value_combination_id     => l_adr_value_combination_id
96543          , x_value_segment_code       => l_adr_value_segment_code
96544          , p_side                     => 'NA'
96545          , p_override_seg_flag        => 'Y'
96546    );
96547 
96548    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96549 
96550       xla_ae_lines_pkg.set_segment(
96551           p_to_segment_code         => 'GL_ACCOUNT'
96552         , p_segment_value           => l_segment
96553         , p_from_segment_code       => l_adr_value_segment_code
96554         , p_from_combination_id     => l_adr_value_combination_id
96555         , p_value_type_code         => l_adr_value_type_code
96559         , p_flex_value_set_id       => l_adr_flex_value_set_id
96556         , p_transaction_coa_id      => l_adr_transaction_coa_id
96557         , p_accounting_coa_id       => l_adr_accounting_coa_id
96558         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96560         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96561         , p_adr_type_code           => 'S'
96562         , p_component_type          => l_component_type
96563         , p_component_code          => l_component_code
96564         , p_component_type_code     => l_component_type_code
96565         , p_component_appl_id       => l_component_appl_id
96566         , p_amb_context_code        => l_amb_context_code
96567         , p_entity_code             => 'AP_PAYMENTS'
96568         , p_event_class_code        => 'PAYMENTS'
96569         , p_side                    => 'NA'
96570         );
96571 
96572   END IF;
96573 
96574    --
96575    --
96576    END IF;
96577 
96578        --
96579        -- Update the line information that should be overwritten
96580        --
96581        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96582                                          p_header_num   => 1);
96583        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
96584 
96585        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96586 
96587        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96588           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96589        END IF;
96590 
96591       --
96592       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96593       --
96594       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96595           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96596       ELSE
96597           ---------------------------------------------------------------------------------------------------
96598           -- 4262811a Switch Sign
96599           ---------------------------------------------------------------------------------------------------
96600           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96601           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96602                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96603           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96604                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96605           -- 5132302
96606           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96607                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96608 
96609       END IF;
96610 
96611       -- 4955764
96612       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96613       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96614 
96615 
96616       XLA_AE_LINES_PKG.ValidateCurrentLine;
96617       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96618 
96619       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96620                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96621                ,p_balance_type_code => l_balance_type_code);
96622 
96623    END IF;
96624 
96625    -----------------------------------------------------------------------------------------
96626    -- 4262811 Multiperiod Accounting
96627    -----------------------------------------------------------------------------------------
96628      -- No MPA option is assigned.
96629 
96630 
96631 END IF;
96632 END IF;
96633 --
96634 
96635 --
96636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96637    trace
96638       (p_msg      => 'END of AcctLineType_174'
96639       ,p_level    => C_LEVEL_PROCEDURE
96640       ,p_module   => l_log_module);
96641 END IF;
96642 --
96643 EXCEPTION
96644   WHEN xla_exceptions_pkg.application_exception THEN
96645       RAISE;
96646   WHEN OTHERS THEN
96647        xla_exceptions_pkg.raise_message
96648            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_174');
96649 END AcctLineType_174;
96650 --
96651 
96652 ---------------------------------------
96653 --
96654 -- PRIVATE FUNCTION
96655 --         AcctLineType_175
96656 --
96657 ---------------------------------------
96658 PROCEDURE AcctLineType_175 (
96659   p_application_id        IN NUMBER
96660  ,p_event_id              IN NUMBER
96661  ,p_calculate_acctd_flag  IN VARCHAR2
96662  ,p_calculate_g_l_flag    IN VARCHAR2
96663  ,p_actual_flag           IN OUT VARCHAR2
96664  ,p_balance_type_code     OUT VARCHAR2
96665  ,p_gain_or_loss_ref      OUT VARCHAR2
96666  
96667 --Payment Currency Code
96668  , p_source_8            IN VARCHAR2
96669 --Automatic Offsets Value
96670  , p_source_10            IN VARCHAR2
96671  , p_source_10_meaning    IN VARCHAR2
96672 --Invoice Distribution Account
96673  , p_source_25            IN NUMBER
96674 --Internal Realized Loss Account
96678 --When to Account for Payment Option
96675  , p_source_33            IN NUMBER
96676 --Bank Loss Account
96677  , p_source_34            IN NUMBER
96679  , p_source_57            IN VARCHAR2
96680 --Accounting Reversal Indicator
96681  , p_source_58            IN VARCHAR2
96682 --Distribution Link Type
96683  , p_source_60            IN VARCHAR2
96684 --Override Accounted Amount Indicator
96685  , p_source_85            IN VARCHAR2
96686  , p_source_85_meaning    IN VARCHAR2
96687 --Third Party Type
96688  , p_source_88            IN VARCHAR2
96689 --Invoice Distribution Tax Line Identifier
96690  , p_source_91            IN NUMBER
96691 --Invoice Distribution Summary Tax Line Identifier
96692  , p_source_93            IN NUMBER
96693 --Business Flow Accounts Payable Application Identifier
96694  , p_source_96            IN NUMBER
96695 --Payment Distribution Type
96696  , p_source_101            IN VARCHAR2
96697  , p_source_101_meaning    IN VARCHAR2
96698 --Payment Distribution Amount
96699  , p_source_102            IN NUMBER
96700 --Business Flow Payment Distribution Type
96701  , p_source_103            IN VARCHAR2
96702 --Business Flow Payment Entity Code
96703  , p_source_104            IN VARCHAR2
96704 --Business Flow Payment Distribution Identifier
96705  , p_source_105            IN NUMBER
96706 --Business Flow Payment Identifier
96707  , p_source_106            IN NUMBER
96708 --Payment Distribution Identifier
96709  , p_source_107            IN NUMBER
96710 --Cleared Exchange Date
96711  , p_source_109            IN DATE
96712 --Cleared Exchange Rate
96713  , p_source_110            IN NUMBER
96714 --Cleared Exchange Rate Type
96715  , p_source_111            IN VARCHAR2
96716 --Payment Supplier Identifier
96717  , p_source_113            IN NUMBER
96718 --Payment Supplier Site Identifier
96719  , p_source_114            IN NUMBER
96720 --Payment Distribution Reversed Identifier
96721  , p_source_115            IN NUMBER
96722 --Payment Maturity Date
96723  , p_source_117            IN DATE
96724 --Gain or Loss Indicator between Payment and Clearing
96725  , p_source_162            IN VARCHAR2
96726 --Payment/Clearing Ledger Amount Difference
96727  , p_source_163            IN NUMBER
96728 )
96729 IS
96730 
96731 l_component_type              VARCHAR2(80);
96732 l_component_code              VARCHAR2(30);
96733 l_component_type_code         VARCHAR2(1);
96734 l_component_appl_id           INTEGER;
96735 l_amb_context_code            VARCHAR2(30);
96736 l_entity_code                 VARCHAR2(30);
96737 l_event_class_code            VARCHAR2(30);
96738 l_ae_header_id                NUMBER;
96739 l_event_type_code             VARCHAR2(30);
96740 l_line_definition_code        VARCHAR2(30);
96741 l_line_definition_owner_code  VARCHAR2(1);
96742 --
96743 -- adr variables
96744 l_segment                     VARCHAR2(30);
96745 l_ccid                        NUMBER;
96746 l_adr_transaction_coa_id      NUMBER;
96747 l_adr_accounting_coa_id       NUMBER;
96748 l_adr_flexfield_segment_code  VARCHAR2(30);
96749 l_adr_flex_value_set_id       NUMBER;
96750 l_adr_value_type_code         VARCHAR2(30);
96751 l_adr_value_combination_id    NUMBER;
96752 l_adr_value_segment_code      VARCHAR2(30);
96753 
96754 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96755 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96756 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96757 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96758 
96759 -- 4262811 Variables ------------------------------------------------------------------------------------------
96760 l_entered_amt_idx             NUMBER;
96761 l_accted_amt_idx              NUMBER;
96762 l_acc_rev_flag                VARCHAR2(1);
96763 l_accrual_line_num            NUMBER;
96764 l_tmp_amt                     NUMBER;
96765 l_acc_rev_natural_side_code   VARCHAR2(1);
96766 
96767 l_num_entries                 NUMBER;
96768 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96769 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96770 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96771 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96772 l_recog_line_1                NUMBER;
96773 l_recog_line_2                NUMBER;
96774 
96775 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96776 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96777 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96778 
96779 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96780 
96781 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96782 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96783 
96784 ---------------------------------------------------------------------------------------------------------------
96785 
96786 
96787 --
96788 -- bulk performance
96789 --
96790 l_balance_type_code           VARCHAR2(1);
96791 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96792 l_log_module                  VARCHAR2(240);
96793 
96794 --
96795 -- Upgrade strategy
96796 --
96797 l_actual_upg_option           VARCHAR2(1);
96798 l_enc_upg_option           VARCHAR2(1);
96799 
96800 --
96801 BEGIN
96802 --
96806 --
96803 IF g_log_enabled THEN
96804       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_175';
96805 END IF;
96807 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96808 
96809       trace
96810          (p_msg      => 'BEGIN of AcctLineType_175'
96811          ,p_level    => C_LEVEL_PROCEDURE
96812          ,p_module   => l_log_module);
96813 
96814 END IF;
96815 --
96816 l_component_type             := 'AMB_JLT';
96817 l_component_code             := 'AP_LOSS_PMT_CLEAR';
96818 l_component_type_code        := 'S';
96819 l_component_appl_id          :=  200;
96820 l_amb_context_code           := 'DEFAULT';
96821 l_entity_code                := 'AP_PAYMENTS';
96822 l_event_class_code           := 'RECONCILED PAYMENTS';
96823 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
96824 l_line_definition_owner_code := 'S';
96825 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
96826 --
96827 l_balance_type_code          := 'A';
96828 l_segment                     := NULL;
96829 l_ccid                        := NULL;
96830 l_adr_transaction_coa_id      := NULL;
96831 l_adr_accounting_coa_id       := NULL;
96832 l_adr_flexfield_segment_code  := NULL;
96833 l_adr_flex_value_set_id       := NULL;
96834 l_adr_value_type_code         := NULL;
96835 l_adr_value_combination_id    := NULL;
96836 l_adr_value_segment_code      := NULL;
96837 
96838 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
96839 l_bflow_class_code           := '';    -- 4219869 Business Flow
96840 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96841 l_budgetary_control_flag     := 'N';
96842 
96843 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96844 l_bflow_applied_to_amt       := NULL; -- 5132302
96845 l_entered_amt_idx            := NULL;          -- 4262811
96846 l_accted_amt_idx             := NULL;          -- 4262811
96847 l_acc_rev_flag               := NULL;          -- 4262811
96848 l_accrual_line_num           := NULL;          -- 4262811
96849 l_tmp_amt                    := NULL;          -- 4262811
96850 --
96851 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
96852             (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
96853                return;
96854   END IF;
96855   
96856 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96857     l_balance_type_code <> 'B' THEN
96858 IF NVL(p_source_57,'
96859 ') =  'ALWAYS_ALWAYS' AND 
96860 p_source_117 IS NULL AND 
96861 NVL(p_source_162,'
96862 ') =  'LOSS' AND 
96863 NVL(p_source_101,'
96864 ') <>  'EXCHANGE RATE VARIANCE' AND 
96865 NVL(p_source_101,'
96866 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
96867 NVL(p_source_101,'
96868 ') <>  'BANK CHARGE' AND 
96869 NVL(p_source_101,'
96870 ') <>  'BANK ERROR' AND 
96871 NVL(p_source_101,'
96872 ') <>  'AWT'
96873  THEN 
96874 
96875    --
96876    XLA_AE_LINES_PKG.SetNewLine;
96877 
96878    p_balance_type_code          := l_balance_type_code;
96879    -- set the flag so later we will know whether the gain loss line needs to be created
96880    
96881    IF(l_balance_type_code = 'A' ) THEN
96882      p_actual_flag :='G';
96883    END IF;
96884 
96885    --
96886    -- bulk performance
96887    --
96888    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96889                                       p_header_num   => 0); -- 4262811
96890    --
96891    -- set accounting line options
96892    --
96893    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96894            p_natural_side_code          => 'C'
96895          , p_gain_or_loss_flag          => 'Y'
96896          , p_gl_transfer_mode_code      => 'S'
96897          , p_acct_entry_type_code       => 'A'
96898          , p_switch_side_flag           => 'Y'
96899          , p_merge_duplicate_code       => 'A'
96900          );
96901    --
96902    l_acc_rev_natural_side_code := 'D';  -- 4262811
96903    -- 
96904    --
96905    -- set accounting line type info
96906    --
96907    xla_ae_lines_pkg.SetAcctLineType
96908       (p_component_type             => l_component_type
96909       ,p_event_type_code            => l_event_type_code
96910       ,p_line_definition_owner_code => l_line_definition_owner_code
96911       ,p_line_definition_code       => l_line_definition_code
96912       ,p_accounting_line_code       => l_component_code
96913       ,p_accounting_line_type_code  => l_component_type_code
96914       ,p_accounting_line_appl_id    => l_component_appl_id
96915       ,p_amb_context_code           => l_amb_context_code
96916       ,p_entity_code                => l_entity_code
96917       ,p_event_class_code           => l_event_class_code);
96918    --
96919    -- set accounting class
96920    --
96921    xla_ae_lines_pkg.SetAcctClass(
96922            p_accounting_class_code  => 'LOSS'
96923          , p_ae_header_id           => l_ae_header_id
96924          );
96925 
96926    --
96927    -- set rounding class
96928    --
96929    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96930                       'LOSS';
96931 
96932    --
96933    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96937    --
96934    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96935    --
96936    -- bulk performance
96938    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96939 
96940    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96941       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96942 
96943    -- 4955764
96944    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96945       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96946 
96947    -- 4458381 Public Sector Enh
96948    
96949    --
96950    -- set accounting attributes for the line type
96951    --
96952    l_entered_amt_idx := 10;
96953    l_accted_amt_idx  := 15;
96954    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
96955    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96956    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
96957    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96958    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
96959    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96960    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
96961    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96962    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
96963    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96964    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
96965    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96966    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
96967    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96968    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
96969    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96970    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
96971    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96972    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
96973    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96974    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
96975    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96976    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
96977    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
96978    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
96979    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
96980    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
96981    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
96982    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
96983    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
96984    l_rec_acct_attrs.array_num_value(15)  := p_source_163;
96985    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
96986    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
96987    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
96988    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
96989    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
96990    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
96991    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
96992    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
96993    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
96994    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
96995    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
96996    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
96997    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
96998    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
96999    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
97000    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
97001    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
97002    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
97003 
97004    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97005    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97006 
97007    ---------------------------------------------------------------------------------------------------------------
97008    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97009    ---------------------------------------------------------------------------------------------------------------
97010    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97011 
97012    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97013    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97014 
97015    IF xla_accounting_cache_pkg.GetValueChar
97016          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97017          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97018    AND l_bflow_method_code = 'PRIOR_ENTRY'
97019 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97020    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97021          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97022        )
97023    THEN
97024          xla_ae_lines_pkg.BflowUpgEntry
97025            (p_business_method_code    => l_bflow_method_code
97029       NULL;
97026            ,p_business_class_code     => l_bflow_class_code
97027            ,p_balance_type            => l_balance_type_code);
97028    ELSE
97030 -- No business flow processing for business flow method of NONE.
97031    END IF;
97032 
97033    --
97034    -- call analytical criteria
97035    --
97036    
97037    --
97038    -- call description
97039    --
97040    -- No description or it is inherited.
97041    --
97042    -- call ADRs
97043    -- Bug 4922099
97044    --
97045    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97046         (NVL(l_actual_upg_option, 'N') = 'O') OR
97047         (NVL(l_enc_upg_option, 'N') = 'O')
97048       )
97049    THEN
97050    NULL;
97051    --
97052    --
97053    
97054   l_ccid := AcctDerRule_41(
97055            p_application_id           => p_application_id
97056          , p_ae_header_id             => l_ae_header_id 
97057 , p_source_10 => p_source_10
97058 , p_source_10_meaning => p_source_10_meaning
97059 , p_source_25 => p_source_25
97060 , p_source_33 => p_source_33
97061 , p_source_34 => p_source_34
97062          , x_transaction_coa_id       => l_adr_transaction_coa_id
97063          , x_accounting_coa_id        => l_adr_accounting_coa_id
97064          , x_value_type_code          => l_adr_value_type_code
97065          , p_side                     => 'NA'
97066    );
97067 
97068    xla_ae_lines_pkg.set_ccid(
97069     p_code_combination_id          => l_ccid
97070   , p_value_type_code              => l_adr_value_type_code
97071   , p_transaction_coa_id           => l_adr_transaction_coa_id
97072   , p_accounting_coa_id            => l_adr_accounting_coa_id
97073   , p_adr_code                     => 'AP_REAL_LOSS'
97074   , p_adr_type_code                => 'S'
97075   , p_component_type               => l_component_type
97076   , p_component_code               => l_component_code
97077   , p_component_type_code          => l_component_type_code
97078   , p_component_appl_id            => l_component_appl_id
97079   , p_amb_context_code             => l_amb_context_code
97080   , p_side                         => 'NA'
97081   );
97082 
97083 
97084    l_segment := AcctDerRule_23(
97085            p_application_id           => p_application_id
97086          , p_ae_header_id             => l_ae_header_id 
97087 , p_source_10 => p_source_10
97088 , p_source_10_meaning => p_source_10_meaning
97089 , p_source_25 => p_source_25
97090          , x_transaction_coa_id       => l_adr_transaction_coa_id
97091          , x_accounting_coa_id        => l_adr_accounting_coa_id
97092          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97093          , x_flex_value_set_id        => l_adr_flex_value_set_id
97094          , x_value_type_code          => l_adr_value_type_code
97095          , x_value_combination_id     => l_adr_value_combination_id
97096          , x_value_segment_code       => l_adr_value_segment_code
97097          , p_side                     => 'NA'
97098          , p_override_seg_flag        => 'Y'
97099    );
97100 
97101    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97102 
97103       xla_ae_lines_pkg.set_segment(
97104           p_to_segment_code         => 'GL_BALANCING'
97105         , p_segment_value           => l_segment
97106         , p_from_segment_code       => l_adr_value_segment_code
97107         , p_from_combination_id     => l_adr_value_combination_id
97108         , p_value_type_code         => l_adr_value_type_code
97109         , p_transaction_coa_id      => l_adr_transaction_coa_id
97110         , p_accounting_coa_id       => l_adr_accounting_coa_id
97111         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97112         , p_flex_value_set_id       => l_adr_flex_value_set_id
97113         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97114         , p_adr_type_code           => 'S'
97115         , p_component_type          => l_component_type
97116         , p_component_code          => l_component_code
97117         , p_component_type_code     => l_component_type_code
97118         , p_component_appl_id       => l_component_appl_id
97119         , p_amb_context_code        => l_amb_context_code
97120         , p_entity_code             => 'AP_PAYMENTS'
97121         , p_event_class_code        => 'RECONCILED PAYMENTS'
97122         , p_side                    => 'NA'
97123         );
97124 
97125   END IF;
97126 
97127    l_segment := AcctDerRule_18(
97128            p_application_id           => p_application_id
97129          , p_ae_header_id             => l_ae_header_id 
97130 , p_source_10 => p_source_10
97131 , p_source_10_meaning => p_source_10_meaning
97132 , p_source_33 => p_source_33
97133 , p_source_34 => p_source_34
97134          , x_transaction_coa_id       => l_adr_transaction_coa_id
97135          , x_accounting_coa_id        => l_adr_accounting_coa_id
97136          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97137          , x_flex_value_set_id        => l_adr_flex_value_set_id
97138          , x_value_type_code          => l_adr_value_type_code
97139          , x_value_combination_id     => l_adr_value_combination_id
97140          , x_value_segment_code       => l_adr_value_segment_code
97141          , p_side                     => 'NA'
97142          , p_override_seg_flag        => 'Y'
97143    );
97144 
97145    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97146 
97147       xla_ae_lines_pkg.set_segment(
97148           p_to_segment_code         => 'GL_ACCOUNT'
97152         , p_value_type_code         => l_adr_value_type_code
97149         , p_segment_value           => l_segment
97150         , p_from_segment_code       => l_adr_value_segment_code
97151         , p_from_combination_id     => l_adr_value_combination_id
97153         , p_transaction_coa_id      => l_adr_transaction_coa_id
97154         , p_accounting_coa_id       => l_adr_accounting_coa_id
97155         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97156         , p_flex_value_set_id       => l_adr_flex_value_set_id
97157         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97158         , p_adr_type_code           => 'S'
97159         , p_component_type          => l_component_type
97160         , p_component_code          => l_component_code
97161         , p_component_type_code     => l_component_type_code
97162         , p_component_appl_id       => l_component_appl_id
97163         , p_amb_context_code        => l_amb_context_code
97164         , p_entity_code             => 'AP_PAYMENTS'
97165         , p_event_class_code        => 'RECONCILED PAYMENTS'
97166         , p_side                    => 'NA'
97167         );
97168 
97169   END IF;
97170 
97171    --
97172    --
97173    END IF;
97174    --
97175    -- Bug 4922099
97176    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97177           (NVL(l_enc_upg_option, 'N') = 'O')
97178         ) AND
97179         (l_bflow_method_code = 'PRIOR_ENTRY')
97180       )
97181    THEN
97182       IF
97183       --
97184       1 = 2
97185       --
97186       THEN
97187       xla_accounting_err_pkg.build_message
97188                                     (p_appli_s_name            => 'XLA'
97189                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97190                                     ,p_token_1                 => 'LINE_NUMBER'
97191                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97192                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97193                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97194                                                                              l_component_type
97195                                                                             ,l_component_code
97196                                                                             ,l_component_type_code
97197                                                                             ,l_component_appl_id
97198                                                                             ,l_amb_context_code
97199                                                                             ,l_entity_code
97200                                                                             ,l_event_class_code
97201                                                                            )
97202                                     ,p_token_3                 => 'OWNER'
97203                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97204                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97205                                                                           ,p_lookup_code    => l_component_type_code
97206                                                                          )
97207                                     ,p_token_4                 => 'PRODUCT_NAME'
97208                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97209                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97210                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97211                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97212                                     ,p_ae_header_id            =>  NULL
97213                                        );
97214 
97215         IF (C_LEVEL_ERROR>= g_log_level) THEN
97216                  trace
97217                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97218                       ,p_level    => C_LEVEL_ERROR
97219                       ,p_module   => l_log_module);
97220         END IF;
97221       END IF;
97222    END IF;
97223    --
97224    --
97225    ------------------------------------------------------------------------------------------------
97226    -- 4219869 Business Flow
97227    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97228    -- Prior Entry.  Currently, the following code is always generated.
97229    ------------------------------------------------------------------------------------------------
97230    XLA_AE_LINES_PKG.ValidateCurrentLine;
97231 
97232    ------------------------------------------------------------------------------------
97233    -- 4219869 Business Flow
97234    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97235    ------------------------------------------------------------------------------------
97236    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97237 
97238    ----------------------------------------------------------------------------------
97239    -- 4219869 Business Flow
97240    -- Update journal entry status -- Need to generate this within IF <condition>
97241    ----------------------------------------------------------------------------------
97242    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97246 
97243          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97244          ,p_balance_type_code => l_balance_type_code
97245          );
97247    -------------------------------------------------------------------------------------------
97248    -- 4262811 - Generate the Accrual Reversal lines
97249    -------------------------------------------------------------------------------------------
97250    BEGIN
97251       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97252                               (g_array_event(p_event_id).array_value_num('header_index'));
97253       IF l_acc_rev_flag IS NULL THEN
97254          l_acc_rev_flag := 'N';
97255       END IF;
97256    EXCEPTION
97257       WHEN OTHERS THEN
97258          l_acc_rev_flag := 'N';
97259    END;
97260    --
97261    IF (l_acc_rev_flag = 'Y') THEN
97262 
97263        -- 4645092  ------------------------------------------------------------------------------
97264        -- To allow MPA report to determine if it should generate report process
97265        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97266        ------------------------------------------------------------------------------------------
97267 
97268        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97269        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97270    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97271    -- call ADRs
97272    -- Bug 4922099
97273    --
97274    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97275         (NVL(l_actual_upg_option, 'N') = 'O') OR
97276         (NVL(l_enc_upg_option, 'N') = 'O')
97277       )
97278    THEN
97279    NULL;
97280    --
97281    --
97282    
97283   l_ccid := AcctDerRule_41(
97284            p_application_id           => p_application_id
97285          , p_ae_header_id             => l_ae_header_id 
97286 , p_source_10 => p_source_10
97287 , p_source_10_meaning => p_source_10_meaning
97288 , p_source_25 => p_source_25
97289 , p_source_33 => p_source_33
97290 , p_source_34 => p_source_34
97291          , x_transaction_coa_id       => l_adr_transaction_coa_id
97292          , x_accounting_coa_id        => l_adr_accounting_coa_id
97293          , x_value_type_code          => l_adr_value_type_code
97294          , p_side                     => 'NA'
97295    );
97296 
97297    xla_ae_lines_pkg.set_ccid(
97298     p_code_combination_id          => l_ccid
97299   , p_value_type_code              => l_adr_value_type_code
97300   , p_transaction_coa_id           => l_adr_transaction_coa_id
97301   , p_accounting_coa_id            => l_adr_accounting_coa_id
97302   , p_adr_code                     => 'AP_REAL_LOSS'
97303   , p_adr_type_code                => 'S'
97304   , p_component_type               => l_component_type
97305   , p_component_code               => l_component_code
97306   , p_component_type_code          => l_component_type_code
97307   , p_component_appl_id            => l_component_appl_id
97308   , p_amb_context_code             => l_amb_context_code
97309   , p_side                         => 'NA'
97310   );
97311 
97312 
97313    l_segment := AcctDerRule_23(
97314            p_application_id           => p_application_id
97315          , p_ae_header_id             => l_ae_header_id 
97316 , p_source_10 => p_source_10
97317 , p_source_10_meaning => p_source_10_meaning
97318 , p_source_25 => p_source_25
97319          , x_transaction_coa_id       => l_adr_transaction_coa_id
97320          , x_accounting_coa_id        => l_adr_accounting_coa_id
97321          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97322          , x_flex_value_set_id        => l_adr_flex_value_set_id
97323          , x_value_type_code          => l_adr_value_type_code
97324          , x_value_combination_id     => l_adr_value_combination_id
97325          , x_value_segment_code       => l_adr_value_segment_code
97326          , p_side                     => 'NA'
97327          , p_override_seg_flag        => 'Y'
97328    );
97329 
97330    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97331 
97332       xla_ae_lines_pkg.set_segment(
97333           p_to_segment_code         => 'GL_BALANCING'
97334         , p_segment_value           => l_segment
97335         , p_from_segment_code       => l_adr_value_segment_code
97336         , p_from_combination_id     => l_adr_value_combination_id
97337         , p_value_type_code         => l_adr_value_type_code
97338         , p_transaction_coa_id      => l_adr_transaction_coa_id
97339         , p_accounting_coa_id       => l_adr_accounting_coa_id
97340         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97341         , p_flex_value_set_id       => l_adr_flex_value_set_id
97342         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97343         , p_adr_type_code           => 'S'
97344         , p_component_type          => l_component_type
97345         , p_component_code          => l_component_code
97346         , p_component_type_code     => l_component_type_code
97347         , p_component_appl_id       => l_component_appl_id
97348         , p_amb_context_code        => l_amb_context_code
97349         , p_entity_code             => 'AP_PAYMENTS'
97350         , p_event_class_code        => 'RECONCILED PAYMENTS'
97351         , p_side                    => 'NA'
97352         );
97353 
97354   END IF;
97355 
97356    l_segment := AcctDerRule_18(
97357            p_application_id           => p_application_id
97358          , p_ae_header_id             => l_ae_header_id 
97362 , p_source_34 => p_source_34
97359 , p_source_10 => p_source_10
97360 , p_source_10_meaning => p_source_10_meaning
97361 , p_source_33 => p_source_33
97363          , x_transaction_coa_id       => l_adr_transaction_coa_id
97364          , x_accounting_coa_id        => l_adr_accounting_coa_id
97365          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97366          , x_flex_value_set_id        => l_adr_flex_value_set_id
97367          , x_value_type_code          => l_adr_value_type_code
97368          , x_value_combination_id     => l_adr_value_combination_id
97369          , x_value_segment_code       => l_adr_value_segment_code
97370          , p_side                     => 'NA'
97371          , p_override_seg_flag        => 'Y'
97372    );
97373 
97374    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97375 
97376       xla_ae_lines_pkg.set_segment(
97377           p_to_segment_code         => 'GL_ACCOUNT'
97378         , p_segment_value           => l_segment
97379         , p_from_segment_code       => l_adr_value_segment_code
97380         , p_from_combination_id     => l_adr_value_combination_id
97381         , p_value_type_code         => l_adr_value_type_code
97382         , p_transaction_coa_id      => l_adr_transaction_coa_id
97383         , p_accounting_coa_id       => l_adr_accounting_coa_id
97384         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97385         , p_flex_value_set_id       => l_adr_flex_value_set_id
97386         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97387         , p_adr_type_code           => 'S'
97388         , p_component_type          => l_component_type
97389         , p_component_code          => l_component_code
97390         , p_component_type_code     => l_component_type_code
97391         , p_component_appl_id       => l_component_appl_id
97392         , p_amb_context_code        => l_amb_context_code
97393         , p_entity_code             => 'AP_PAYMENTS'
97394         , p_event_class_code        => 'RECONCILED PAYMENTS'
97395         , p_side                    => 'NA'
97396         );
97397 
97398   END IF;
97399 
97400    --
97401    --
97402    END IF;
97403 
97404        --
97405        -- Update the line information that should be overwritten
97406        --
97407        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97408                                          p_header_num   => 1);
97409        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
97410 
97411        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97412 
97413        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
97414           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97415        END IF;
97416 
97417       --
97418       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97419       --
97420       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97421           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
97422       ELSE
97423           ---------------------------------------------------------------------------------------------------
97424           -- 4262811a Switch Sign
97425           ---------------------------------------------------------------------------------------------------
97426           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
97427           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97428                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97429           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97430                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97431           -- 5132302
97432           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97433                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97434 
97435       END IF;
97436 
97437       -- 4955764
97438       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97439       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97440 
97441 
97442       XLA_AE_LINES_PKG.ValidateCurrentLine;
97443       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97444 
97445       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97446                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97447                ,p_balance_type_code => l_balance_type_code);
97448 
97449    END IF;
97450 
97451    -----------------------------------------------------------------------------------------
97452    -- 4262811 Multiperiod Accounting
97453    -----------------------------------------------------------------------------------------
97454      -- No MPA option is assigned.
97455 
97456 
97457 END IF;
97458 END IF;
97459 --
97460 
97461 --
97462 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97463    trace
97464       (p_msg      => 'END of AcctLineType_175'
97465       ,p_level    => C_LEVEL_PROCEDURE
97466       ,p_module   => l_log_module);
97470   WHEN xla_exceptions_pkg.application_exception THEN
97467 END IF;
97468 --
97469 EXCEPTION
97471       RAISE;
97472   WHEN OTHERS THEN
97473        xla_exceptions_pkg.raise_message
97474            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_175');
97475 END AcctLineType_175;
97476 --
97477 
97478 ---------------------------------------
97479 --
97480 -- PRIVATE FUNCTION
97481 --         AcctLineType_176
97482 --
97483 ---------------------------------------
97484 PROCEDURE AcctLineType_176 (
97485   p_application_id        IN NUMBER
97486  ,p_event_id              IN NUMBER
97487  ,p_calculate_acctd_flag  IN VARCHAR2
97488  ,p_calculate_g_l_flag    IN VARCHAR2
97489  ,p_actual_flag           IN OUT VARCHAR2
97490  ,p_balance_type_code     OUT VARCHAR2
97491  ,p_gain_or_loss_ref      OUT VARCHAR2
97492  
97493 --Payment Currency Code
97494  , p_source_8            IN VARCHAR2
97495 --Automatic Offsets Value
97496  , p_source_10            IN VARCHAR2
97497  , p_source_10_meaning    IN VARCHAR2
97498 --Invoice Distribution Account
97499  , p_source_25            IN NUMBER
97500 --Internal Realized Loss Account
97501  , p_source_33            IN NUMBER
97502 --Bank Loss Account
97503  , p_source_34            IN NUMBER
97504 --When to Account for Payment Option
97505  , p_source_57            IN VARCHAR2
97506 --Accounting Reversal Indicator
97507  , p_source_58            IN VARCHAR2
97508 --Distribution Link Type
97509  , p_source_60            IN VARCHAR2
97510 --Override Accounted Amount Indicator
97511  , p_source_85            IN VARCHAR2
97512  , p_source_85_meaning    IN VARCHAR2
97513 --Third Party Type
97514  , p_source_88            IN VARCHAR2
97515 --Business Flow Accounts Payable Application Identifier
97516  , p_source_96            IN NUMBER
97517 --Payment Distribution Type
97518  , p_source_101            IN VARCHAR2
97519  , p_source_101_meaning    IN VARCHAR2
97520 --Payment Distribution Amount
97521  , p_source_102            IN NUMBER
97522 --Business Flow Payment Distribution Type
97523  , p_source_103            IN VARCHAR2
97524 --Business Flow Payment Entity Code
97525  , p_source_104            IN VARCHAR2
97526 --Business Flow Payment Distribution Identifier
97527  , p_source_105            IN NUMBER
97528 --Business Flow Payment Identifier
97529  , p_source_106            IN NUMBER
97530 --Payment Distribution Identifier
97531  , p_source_107            IN NUMBER
97532 --Payment Supplier Identifier
97533  , p_source_113            IN NUMBER
97534 --Payment Supplier Site Identifier
97535  , p_source_114            IN NUMBER
97536 --Payment Distribution Reversed Identifier
97537  , p_source_115            IN NUMBER
97538 --Payment Maturity Date
97539  , p_source_117            IN DATE
97540 --Payment Exchange Date
97541  , p_source_120            IN DATE
97542 --Payment Exchange Rate
97543  , p_source_121            IN NUMBER
97544 --Payment Exchange Rate Type
97545  , p_source_122            IN VARCHAR2
97546 --Payment/Maturity Ledger Amount Difference
97547  , p_source_157            IN NUMBER
97548 --Gain or Loss Indicator between Payment and Maturity
97549  , p_source_164            IN VARCHAR2
97550 )
97551 IS
97552 
97553 l_component_type              VARCHAR2(80);
97554 l_component_code              VARCHAR2(30);
97555 l_component_type_code         VARCHAR2(1);
97556 l_component_appl_id           INTEGER;
97557 l_amb_context_code            VARCHAR2(30);
97558 l_entity_code                 VARCHAR2(30);
97559 l_event_class_code            VARCHAR2(30);
97560 l_ae_header_id                NUMBER;
97561 l_event_type_code             VARCHAR2(30);
97562 l_line_definition_code        VARCHAR2(30);
97563 l_line_definition_owner_code  VARCHAR2(1);
97564 --
97565 -- adr variables
97566 l_segment                     VARCHAR2(30);
97567 l_ccid                        NUMBER;
97568 l_adr_transaction_coa_id      NUMBER;
97569 l_adr_accounting_coa_id       NUMBER;
97570 l_adr_flexfield_segment_code  VARCHAR2(30);
97571 l_adr_flex_value_set_id       NUMBER;
97572 l_adr_value_type_code         VARCHAR2(30);
97573 l_adr_value_combination_id    NUMBER;
97574 l_adr_value_segment_code      VARCHAR2(30);
97575 
97576 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
97577 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
97578 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
97579 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
97580 
97581 -- 4262811 Variables ------------------------------------------------------------------------------------------
97582 l_entered_amt_idx             NUMBER;
97583 l_accted_amt_idx              NUMBER;
97584 l_acc_rev_flag                VARCHAR2(1);
97585 l_accrual_line_num            NUMBER;
97586 l_tmp_amt                     NUMBER;
97587 l_acc_rev_natural_side_code   VARCHAR2(1);
97588 
97589 l_num_entries                 NUMBER;
97590 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
97591 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
97592 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
97593 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
97594 l_recog_line_1                NUMBER;
97595 l_recog_line_2                NUMBER;
97596 
97597 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
97601 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97598 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
97599 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
97600 
97602 
97603 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
97604 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
97605 
97606 ---------------------------------------------------------------------------------------------------------------
97607 
97608 
97609 --
97610 -- bulk performance
97611 --
97612 l_balance_type_code           VARCHAR2(1);
97613 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
97614 l_log_module                  VARCHAR2(240);
97615 
97616 --
97617 -- Upgrade strategy
97618 --
97619 l_actual_upg_option           VARCHAR2(1);
97620 l_enc_upg_option           VARCHAR2(1);
97621 
97622 --
97623 BEGIN
97624 --
97625 IF g_log_enabled THEN
97626       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_176';
97627 END IF;
97628 --
97629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97630 
97631       trace
97632          (p_msg      => 'BEGIN of AcctLineType_176'
97633          ,p_level    => C_LEVEL_PROCEDURE
97634          ,p_module   => l_log_module);
97635 
97636 END IF;
97637 --
97638 l_component_type             := 'AMB_JLT';
97639 l_component_code             := 'AP_LOSS_PMT_MAT';
97640 l_component_type_code        := 'S';
97641 l_component_appl_id          :=  200;
97642 l_amb_context_code           := 'DEFAULT';
97643 l_entity_code                := 'AP_PAYMENTS';
97644 l_event_class_code           := 'FUTURE DATED PAYMENTS';
97645 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
97646 l_line_definition_owner_code := 'S';
97647 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
97648 --
97649 l_balance_type_code          := 'A';
97650 l_segment                     := NULL;
97651 l_ccid                        := NULL;
97652 l_adr_transaction_coa_id      := NULL;
97653 l_adr_accounting_coa_id       := NULL;
97654 l_adr_flexfield_segment_code  := NULL;
97655 l_adr_flex_value_set_id       := NULL;
97656 l_adr_value_type_code         := NULL;
97657 l_adr_value_combination_id    := NULL;
97658 l_adr_value_segment_code      := NULL;
97659 
97660 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
97661 l_bflow_class_code           := '';    -- 4219869 Business Flow
97662 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
97663 l_budgetary_control_flag     := 'N';
97664 
97665 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
97666 l_bflow_applied_to_amt       := NULL; -- 5132302
97667 l_entered_amt_idx            := NULL;          -- 4262811
97668 l_accted_amt_idx             := NULL;          -- 4262811
97669 l_acc_rev_flag               := NULL;          -- 4262811
97670 l_accrual_line_num           := NULL;          -- 4262811
97671 l_tmp_amt                    := NULL;          -- 4262811
97672 --
97673 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
97674             (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
97675                return;
97676   END IF;
97677   
97678 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97679     l_balance_type_code <> 'B' THEN
97680 IF (NVL(p_source_57,'
97681 ') =  'ALWAYS_ALWAYS' OR 
97682 NVL(p_source_57,'
97683 ') =  'ISSUE_ISSUE') AND 
97684 p_source_117 IS NOT NULL AND 
97685 NVL(p_source_164,'
97686 ') =  'LOSS' AND 
97687 NVL(p_source_101,'
97688 ') <>  'EXCHANGE RATE VARIANCE' AND 
97689 NVL(p_source_101,'
97690 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
97691 NVL(p_source_101,'
97692 ') <>  'BANK CHARGE' AND 
97693 NVL(p_source_101,'
97694 ') <>  'BANK ERROR' AND 
97695 NVL(p_source_101,'
97696 ') <>  'AWT'
97697  THEN 
97698 
97699    --
97700    XLA_AE_LINES_PKG.SetNewLine;
97701 
97702    p_balance_type_code          := l_balance_type_code;
97703    -- set the flag so later we will know whether the gain loss line needs to be created
97704    
97705    IF(l_balance_type_code = 'A' ) THEN
97706      p_actual_flag :='G';
97707    END IF;
97708 
97709    --
97710    -- bulk performance
97711    --
97712    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97713                                       p_header_num   => 0); -- 4262811
97714    --
97715    -- set accounting line options
97716    --
97717    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97718            p_natural_side_code          => 'C'
97719          , p_gain_or_loss_flag          => 'Y'
97720          , p_gl_transfer_mode_code      => 'S'
97721          , p_acct_entry_type_code       => 'A'
97722          , p_switch_side_flag           => 'Y'
97723          , p_merge_duplicate_code       => 'A'
97724          );
97725    --
97726    l_acc_rev_natural_side_code := 'D';  -- 4262811
97727    -- 
97728    --
97729    -- set accounting line type info
97730    --
97731    xla_ae_lines_pkg.SetAcctLineType
97732       (p_component_type             => l_component_type
97736       ,p_accounting_line_code       => l_component_code
97733       ,p_event_type_code            => l_event_type_code
97734       ,p_line_definition_owner_code => l_line_definition_owner_code
97735       ,p_line_definition_code       => l_line_definition_code
97737       ,p_accounting_line_type_code  => l_component_type_code
97738       ,p_accounting_line_appl_id    => l_component_appl_id
97739       ,p_amb_context_code           => l_amb_context_code
97740       ,p_entity_code                => l_entity_code
97741       ,p_event_class_code           => l_event_class_code);
97742    --
97743    -- set accounting class
97744    --
97745    xla_ae_lines_pkg.SetAcctClass(
97746            p_accounting_class_code  => 'LOSS'
97747          , p_ae_header_id           => l_ae_header_id
97748          );
97749 
97750    --
97751    -- set rounding class
97752    --
97753    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
97754                       'LOSS';
97755 
97756    --
97757    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
97758    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
97759    --
97760    -- bulk performance
97761    --
97762    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
97763 
97764    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
97765       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
97766 
97767    -- 4955764
97768    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97769       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
97770 
97771    -- 4458381 Public Sector Enh
97772    
97773    --
97774    -- set accounting attributes for the line type
97775    --
97776    l_entered_amt_idx := 9;
97777    l_accted_amt_idx  := 14;
97778    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
97779    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
97780    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
97781    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
97782    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
97783    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
97784    l_rec_acct_attrs.array_char_value(3)  := p_source_103;
97785    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
97786    l_rec_acct_attrs.array_char_value(4)  := p_source_104;
97787    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
97788    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_105);
97789    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
97790    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_106);
97791    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
97792    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
97793    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
97794    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
97795    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
97796    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
97797    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
97798    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
97799    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
97800    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
97801    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
97802    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
97803    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
97804    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
97805    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
97806    l_rec_acct_attrs.array_num_value(14)  := p_source_157;
97807    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
97808    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
97809    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
97810    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
97811    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
97812    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
97813    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
97814    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
97815    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
97816    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
97817    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
97818    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
97819 
97820    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97821    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97822 
97823    ---------------------------------------------------------------------------------------------------------------
97824    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97825    ---------------------------------------------------------------------------------------------------------------
97826    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97827 
97828    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97829    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97830 
97834    AND l_bflow_method_code = 'PRIOR_ENTRY'
97831    IF xla_accounting_cache_pkg.GetValueChar
97832          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97833          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97835 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97836    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97837          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97838        )
97839    THEN
97840          xla_ae_lines_pkg.BflowUpgEntry
97841            (p_business_method_code    => l_bflow_method_code
97842            ,p_business_class_code     => l_bflow_class_code
97843            ,p_balance_type            => l_balance_type_code);
97844    ELSE
97845       NULL;
97846 -- No business flow processing for business flow method of NONE.
97847    END IF;
97848 
97849    --
97850    -- call analytical criteria
97851    --
97852    
97853    --
97854    -- call description
97855    --
97856    -- No description or it is inherited.
97857    --
97858    -- call ADRs
97859    -- Bug 4922099
97860    --
97861    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97862         (NVL(l_actual_upg_option, 'N') = 'O') OR
97863         (NVL(l_enc_upg_option, 'N') = 'O')
97864       )
97865    THEN
97866    NULL;
97867    --
97868    --
97869    
97870   l_ccid := AcctDerRule_41(
97871            p_application_id           => p_application_id
97872          , p_ae_header_id             => l_ae_header_id 
97873 , p_source_10 => p_source_10
97874 , p_source_10_meaning => p_source_10_meaning
97875 , p_source_25 => p_source_25
97876 , p_source_33 => p_source_33
97877 , p_source_34 => p_source_34
97878          , x_transaction_coa_id       => l_adr_transaction_coa_id
97879          , x_accounting_coa_id        => l_adr_accounting_coa_id
97880          , x_value_type_code          => l_adr_value_type_code
97881          , p_side                     => 'NA'
97882    );
97883 
97884    xla_ae_lines_pkg.set_ccid(
97885     p_code_combination_id          => l_ccid
97886   , p_value_type_code              => l_adr_value_type_code
97887   , p_transaction_coa_id           => l_adr_transaction_coa_id
97888   , p_accounting_coa_id            => l_adr_accounting_coa_id
97889   , p_adr_code                     => 'AP_REAL_LOSS'
97890   , p_adr_type_code                => 'S'
97891   , p_component_type               => l_component_type
97892   , p_component_code               => l_component_code
97893   , p_component_type_code          => l_component_type_code
97894   , p_component_appl_id            => l_component_appl_id
97895   , p_amb_context_code             => l_amb_context_code
97896   , p_side                         => 'NA'
97897   );
97898 
97899 
97900    l_segment := AcctDerRule_23(
97901            p_application_id           => p_application_id
97902          , p_ae_header_id             => l_ae_header_id 
97903 , p_source_10 => p_source_10
97904 , p_source_10_meaning => p_source_10_meaning
97905 , p_source_25 => p_source_25
97906          , x_transaction_coa_id       => l_adr_transaction_coa_id
97907          , x_accounting_coa_id        => l_adr_accounting_coa_id
97908          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97909          , x_flex_value_set_id        => l_adr_flex_value_set_id
97910          , x_value_type_code          => l_adr_value_type_code
97911          , x_value_combination_id     => l_adr_value_combination_id
97912          , x_value_segment_code       => l_adr_value_segment_code
97913          , p_side                     => 'NA'
97914          , p_override_seg_flag        => 'Y'
97915    );
97916 
97917    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97918 
97919       xla_ae_lines_pkg.set_segment(
97920           p_to_segment_code         => 'GL_BALANCING'
97921         , p_segment_value           => l_segment
97922         , p_from_segment_code       => l_adr_value_segment_code
97923         , p_from_combination_id     => l_adr_value_combination_id
97924         , p_value_type_code         => l_adr_value_type_code
97925         , p_transaction_coa_id      => l_adr_transaction_coa_id
97926         , p_accounting_coa_id       => l_adr_accounting_coa_id
97927         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97928         , p_flex_value_set_id       => l_adr_flex_value_set_id
97929         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97930         , p_adr_type_code           => 'S'
97931         , p_component_type          => l_component_type
97932         , p_component_code          => l_component_code
97933         , p_component_type_code     => l_component_type_code
97934         , p_component_appl_id       => l_component_appl_id
97935         , p_amb_context_code        => l_amb_context_code
97936         , p_entity_code             => 'AP_PAYMENTS'
97937         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97938         , p_side                    => 'NA'
97939         );
97940 
97941   END IF;
97942 
97943    l_segment := AcctDerRule_18(
97944            p_application_id           => p_application_id
97945          , p_ae_header_id             => l_ae_header_id 
97946 , p_source_10 => p_source_10
97947 , p_source_10_meaning => p_source_10_meaning
97948 , p_source_33 => p_source_33
97949 , p_source_34 => p_source_34
97950          , x_transaction_coa_id       => l_adr_transaction_coa_id
97951          , x_accounting_coa_id        => l_adr_accounting_coa_id
97952          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97956          , x_value_segment_code       => l_adr_value_segment_code
97953          , x_flex_value_set_id        => l_adr_flex_value_set_id
97954          , x_value_type_code          => l_adr_value_type_code
97955          , x_value_combination_id     => l_adr_value_combination_id
97957          , p_side                     => 'NA'
97958          , p_override_seg_flag        => 'Y'
97959    );
97960 
97961    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97962 
97963       xla_ae_lines_pkg.set_segment(
97964           p_to_segment_code         => 'GL_ACCOUNT'
97965         , p_segment_value           => l_segment
97966         , p_from_segment_code       => l_adr_value_segment_code
97967         , p_from_combination_id     => l_adr_value_combination_id
97968         , p_value_type_code         => l_adr_value_type_code
97969         , p_transaction_coa_id      => l_adr_transaction_coa_id
97970         , p_accounting_coa_id       => l_adr_accounting_coa_id
97971         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97972         , p_flex_value_set_id       => l_adr_flex_value_set_id
97973         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97974         , p_adr_type_code           => 'S'
97975         , p_component_type          => l_component_type
97976         , p_component_code          => l_component_code
97977         , p_component_type_code     => l_component_type_code
97978         , p_component_appl_id       => l_component_appl_id
97979         , p_amb_context_code        => l_amb_context_code
97980         , p_entity_code             => 'AP_PAYMENTS'
97981         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97982         , p_side                    => 'NA'
97983         );
97984 
97985   END IF;
97986 
97987    --
97988    --
97989    END IF;
97990    --
97991    -- Bug 4922099
97992    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97993           (NVL(l_enc_upg_option, 'N') = 'O')
97994         ) AND
97995         (l_bflow_method_code = 'PRIOR_ENTRY')
97996       )
97997    THEN
97998       IF
97999       --
98000       1 = 2
98001       --
98002       THEN
98003       xla_accounting_err_pkg.build_message
98004                                     (p_appli_s_name            => 'XLA'
98005                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98006                                     ,p_token_1                 => 'LINE_NUMBER'
98007                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98008                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98009                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98010                                                                              l_component_type
98011                                                                             ,l_component_code
98012                                                                             ,l_component_type_code
98013                                                                             ,l_component_appl_id
98014                                                                             ,l_amb_context_code
98015                                                                             ,l_entity_code
98016                                                                             ,l_event_class_code
98017                                                                            )
98018                                     ,p_token_3                 => 'OWNER'
98019                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98020                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98021                                                                           ,p_lookup_code    => l_component_type_code
98022                                                                          )
98023                                     ,p_token_4                 => 'PRODUCT_NAME'
98024                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98025                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98026                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98027                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98028                                     ,p_ae_header_id            =>  NULL
98029                                        );
98030 
98031         IF (C_LEVEL_ERROR>= g_log_level) THEN
98032                  trace
98033                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98034                       ,p_level    => C_LEVEL_ERROR
98035                       ,p_module   => l_log_module);
98036         END IF;
98037       END IF;
98038    END IF;
98039    --
98040    --
98041    ------------------------------------------------------------------------------------------------
98042    -- 4219869 Business Flow
98043    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98044    -- Prior Entry.  Currently, the following code is always generated.
98045    ------------------------------------------------------------------------------------------------
98046    XLA_AE_LINES_PKG.ValidateCurrentLine;
98047 
98048    ------------------------------------------------------------------------------------
98049    -- 4219869 Business Flow
98053 
98050    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98051    ------------------------------------------------------------------------------------
98052    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98054    ----------------------------------------------------------------------------------
98055    -- 4219869 Business Flow
98056    -- Update journal entry status -- Need to generate this within IF <condition>
98057    ----------------------------------------------------------------------------------
98058    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98059          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98060          ,p_balance_type_code => l_balance_type_code
98061          );
98062 
98063    -------------------------------------------------------------------------------------------
98064    -- 4262811 - Generate the Accrual Reversal lines
98065    -------------------------------------------------------------------------------------------
98066    BEGIN
98067       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98068                               (g_array_event(p_event_id).array_value_num('header_index'));
98069       IF l_acc_rev_flag IS NULL THEN
98070          l_acc_rev_flag := 'N';
98071       END IF;
98072    EXCEPTION
98073       WHEN OTHERS THEN
98074          l_acc_rev_flag := 'N';
98075    END;
98076    --
98077    IF (l_acc_rev_flag = 'Y') THEN
98078 
98079        -- 4645092  ------------------------------------------------------------------------------
98080        -- To allow MPA report to determine if it should generate report process
98081        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98082        ------------------------------------------------------------------------------------------
98083 
98084        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98085        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98086    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98087    -- call ADRs
98088    -- Bug 4922099
98089    --
98090    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98091         (NVL(l_actual_upg_option, 'N') = 'O') OR
98092         (NVL(l_enc_upg_option, 'N') = 'O')
98093       )
98094    THEN
98095    NULL;
98096    --
98097    --
98098    
98099   l_ccid := AcctDerRule_41(
98100            p_application_id           => p_application_id
98101          , p_ae_header_id             => l_ae_header_id 
98102 , p_source_10 => p_source_10
98103 , p_source_10_meaning => p_source_10_meaning
98104 , p_source_25 => p_source_25
98105 , p_source_33 => p_source_33
98106 , p_source_34 => p_source_34
98107          , x_transaction_coa_id       => l_adr_transaction_coa_id
98108          , x_accounting_coa_id        => l_adr_accounting_coa_id
98109          , x_value_type_code          => l_adr_value_type_code
98110          , p_side                     => 'NA'
98111    );
98112 
98113    xla_ae_lines_pkg.set_ccid(
98114     p_code_combination_id          => l_ccid
98115   , p_value_type_code              => l_adr_value_type_code
98116   , p_transaction_coa_id           => l_adr_transaction_coa_id
98117   , p_accounting_coa_id            => l_adr_accounting_coa_id
98118   , p_adr_code                     => 'AP_REAL_LOSS'
98119   , p_adr_type_code                => 'S'
98120   , p_component_type               => l_component_type
98121   , p_component_code               => l_component_code
98122   , p_component_type_code          => l_component_type_code
98123   , p_component_appl_id            => l_component_appl_id
98124   , p_amb_context_code             => l_amb_context_code
98125   , p_side                         => 'NA'
98126   );
98127 
98128 
98129    l_segment := AcctDerRule_23(
98130            p_application_id           => p_application_id
98131          , p_ae_header_id             => l_ae_header_id 
98132 , p_source_10 => p_source_10
98133 , p_source_10_meaning => p_source_10_meaning
98134 , p_source_25 => p_source_25
98135          , x_transaction_coa_id       => l_adr_transaction_coa_id
98136          , x_accounting_coa_id        => l_adr_accounting_coa_id
98137          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98138          , x_flex_value_set_id        => l_adr_flex_value_set_id
98139          , x_value_type_code          => l_adr_value_type_code
98140          , x_value_combination_id     => l_adr_value_combination_id
98141          , x_value_segment_code       => l_adr_value_segment_code
98142          , p_side                     => 'NA'
98143          , p_override_seg_flag        => 'Y'
98144    );
98145 
98146    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98147 
98148       xla_ae_lines_pkg.set_segment(
98149           p_to_segment_code         => 'GL_BALANCING'
98150         , p_segment_value           => l_segment
98151         , p_from_segment_code       => l_adr_value_segment_code
98152         , p_from_combination_id     => l_adr_value_combination_id
98153         , p_value_type_code         => l_adr_value_type_code
98154         , p_transaction_coa_id      => l_adr_transaction_coa_id
98155         , p_accounting_coa_id       => l_adr_accounting_coa_id
98156         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98157         , p_flex_value_set_id       => l_adr_flex_value_set_id
98158         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
98159         , p_adr_type_code           => 'S'
98160         , p_component_type          => l_component_type
98161         , p_component_code          => l_component_code
98165         , p_entity_code             => 'AP_PAYMENTS'
98162         , p_component_type_code     => l_component_type_code
98163         , p_component_appl_id       => l_component_appl_id
98164         , p_amb_context_code        => l_amb_context_code
98166         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
98167         , p_side                    => 'NA'
98168         );
98169 
98170   END IF;
98171 
98172    l_segment := AcctDerRule_18(
98173            p_application_id           => p_application_id
98174          , p_ae_header_id             => l_ae_header_id 
98175 , p_source_10 => p_source_10
98176 , p_source_10_meaning => p_source_10_meaning
98177 , p_source_33 => p_source_33
98178 , p_source_34 => p_source_34
98179          , x_transaction_coa_id       => l_adr_transaction_coa_id
98180          , x_accounting_coa_id        => l_adr_accounting_coa_id
98181          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98182          , x_flex_value_set_id        => l_adr_flex_value_set_id
98183          , x_value_type_code          => l_adr_value_type_code
98184          , x_value_combination_id     => l_adr_value_combination_id
98185          , x_value_segment_code       => l_adr_value_segment_code
98186          , p_side                     => 'NA'
98187          , p_override_seg_flag        => 'Y'
98188    );
98189 
98190    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98191 
98192       xla_ae_lines_pkg.set_segment(
98193           p_to_segment_code         => 'GL_ACCOUNT'
98194         , p_segment_value           => l_segment
98195         , p_from_segment_code       => l_adr_value_segment_code
98196         , p_from_combination_id     => l_adr_value_combination_id
98197         , p_value_type_code         => l_adr_value_type_code
98198         , p_transaction_coa_id      => l_adr_transaction_coa_id
98199         , p_accounting_coa_id       => l_adr_accounting_coa_id
98200         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98201         , p_flex_value_set_id       => l_adr_flex_value_set_id
98202         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98203         , p_adr_type_code           => 'S'
98204         , p_component_type          => l_component_type
98205         , p_component_code          => l_component_code
98206         , p_component_type_code     => l_component_type_code
98207         , p_component_appl_id       => l_component_appl_id
98208         , p_amb_context_code        => l_amb_context_code
98209         , p_entity_code             => 'AP_PAYMENTS'
98210         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
98211         , p_side                    => 'NA'
98212         );
98213 
98214   END IF;
98215 
98216    --
98217    --
98218    END IF;
98219 
98220        --
98221        -- Update the line information that should be overwritten
98222        --
98223        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98224                                          p_header_num   => 1);
98225        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98226 
98227        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98228 
98229        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98230           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98231        END IF;
98232 
98233       --
98234       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98235       --
98236       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98237           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98238       ELSE
98239           ---------------------------------------------------------------------------------------------------
98240           -- 4262811a Switch Sign
98241           ---------------------------------------------------------------------------------------------------
98242           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98243           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98244                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98245           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98246                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98247           -- 5132302
98248           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98249                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98250 
98251       END IF;
98252 
98253       -- 4955764
98254       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98255       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98256 
98257 
98258       XLA_AE_LINES_PKG.ValidateCurrentLine;
98259       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98260 
98261       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98262                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98263                ,p_balance_type_code => l_balance_type_code);
98264 
98265    END IF;
98266 
98270      -- No MPA option is assigned.
98267    -----------------------------------------------------------------------------------------
98268    -- 4262811 Multiperiod Accounting
98269    -----------------------------------------------------------------------------------------
98271 
98272 
98273 END IF;
98274 END IF;
98275 --
98276 
98277 --
98278 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98279    trace
98280       (p_msg      => 'END of AcctLineType_176'
98281       ,p_level    => C_LEVEL_PROCEDURE
98282       ,p_module   => l_log_module);
98283 END IF;
98284 --
98285 EXCEPTION
98286   WHEN xla_exceptions_pkg.application_exception THEN
98287       RAISE;
98288   WHEN OTHERS THEN
98289        xla_exceptions_pkg.raise_message
98290            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_176');
98291 END AcctLineType_176;
98292 --
98293 
98294 ---------------------------------------
98295 --
98296 -- PRIVATE FUNCTION
98297 --         AcctLineType_177
98298 --
98299 ---------------------------------------
98300 PROCEDURE AcctLineType_177 (
98301   p_application_id        IN NUMBER
98302  ,p_event_id              IN NUMBER
98303  ,p_calculate_acctd_flag  IN VARCHAR2
98304  ,p_calculate_g_l_flag    IN VARCHAR2
98305  ,p_actual_flag           IN OUT VARCHAR2
98306  ,p_balance_type_code     OUT VARCHAR2
98307  ,p_gain_or_loss_ref      OUT VARCHAR2
98308  
98309 --Automatic Offsets Value
98310  , p_source_10            IN VARCHAR2
98311  , p_source_10_meaning    IN VARCHAR2
98312 --Invoice Distribution Account
98313  , p_source_25            IN NUMBER
98314 --Internal Realized Loss Account
98315  , p_source_33            IN NUMBER
98316 --Bank Loss Account
98317  , p_source_34            IN NUMBER
98318 --Accounting Reversal Indicator
98319  , p_source_58            IN VARCHAR2
98320 --Distribution Link Type
98321  , p_source_60            IN VARCHAR2
98322 --Invoice Identifier
98323  , p_source_63            IN NUMBER
98324 --Payables Encumbrance Upgrade Credit Account
98325  , p_source_70            IN NUMBER
98326 --Payables Encumbrance Upgrade Credit Amount
98327  , p_source_71            IN NUMBER
98328 --Invoice Currency Code
98329  , p_source_72            IN VARCHAR2
98330 --Payables Encumbrance Upgrade Credit Base Amount
98331  , p_source_73            IN NUMBER
98332 --Payables Encumbrance Upgrade Debit Account
98333  , p_source_74            IN NUMBER
98334 --Payables Encumbrance Upgrade Debit Amount
98335  , p_source_75            IN NUMBER
98336 --Payables Encumbrance Upgrade Debit Base Amount
98337  , p_source_76            IN NUMBER
98338 --Payables Encumbrance Upgrade Option
98339  , p_source_77            IN VARCHAR2
98340 --Deferred Accounting End Date
98341  , p_source_82            IN DATE
98342 --Deferred Accounting Option
98343  , p_source_83            IN VARCHAR2
98344 --Deferred Accounting Start Date
98345  , p_source_84            IN DATE
98346 --Override Accounted Amount Indicator
98347  , p_source_85            IN VARCHAR2
98348  , p_source_85_meaning    IN VARCHAR2
98349 --Invoice Supplier Identifier
98350  , p_source_86            IN NUMBER
98351 --Invoice Supplier Site Identifier
98352  , p_source_87            IN NUMBER
98353 --Third Party Type
98354  , p_source_88            IN VARCHAR2
98355 --Invoice Distribution Tax Line Identifier
98356  , p_source_91            IN NUMBER
98357 --Invoice Distribution Tax Distribution Identifier from Tax
98358  , p_source_92            IN NUMBER
98359 --Invoice Distribution Summary Tax Line Identifier
98360  , p_source_93            IN NUMBER
98361 --Payables Upgrade Credit Encumbrance Type Identifier
98362  , p_source_94            IN NUMBER
98363 --Payables Upgrade Debit Encumbrance Type Identifier
98364  , p_source_95            IN NUMBER
98365 --Business Flow Accounts Payable Application Identifier
98366  , p_source_96            IN NUMBER
98367 --Prepayment Distribution Type
98368  , p_source_128            IN VARCHAR2
98369 --Prepayment Application Distribution Identifier
98370  , p_source_130            IN NUMBER
98371 --Upgrade Encumbrance Credit Account Class
98372  , p_source_135            IN VARCHAR2
98373 --Upgrade Encumbrance Debit Account Class
98374  , p_source_136            IN VARCHAR2
98375 --Prepayment Distribution Amount
98376  , p_source_137            IN NUMBER
98377 --Identifier of the Prepayment Application Reversed
98378  , p_source_139            IN NUMBER
98379 --Invoice Exchange Date
98380  , p_source_146            IN DATE
98381 --Invoice Exchange Rate
98382  , p_source_147            IN NUMBER
98383 --Invoice Exchange Rate Type
98384  , p_source_148            IN VARCHAR2
98385 --Business Flow Prepayment Invoice Distribution Type
98386  , p_source_149            IN VARCHAR2
98387 --Business Flow Prepayment Invoice Entity Code
98388  , p_source_150            IN VARCHAR2
98389 --Business Flow Prepayment Invoice Distribution Identifier
98390  , p_source_151            IN NUMBER
98391 --Business Flow Prepayment Invoice Identifier
98392  , p_source_152            IN NUMBER
98393 --Prepayment/Invoice Ledger Amount Difference
98394  , p_source_158            IN NUMBER
98395 --Gain or Loss Indicator between Prepayment and Invoice
98396  , p_source_165            IN VARCHAR2
98397 )
98398 IS
98399 
98400 l_component_type              VARCHAR2(80);
98401 l_component_code              VARCHAR2(30);
98405 l_entity_code                 VARCHAR2(30);
98402 l_component_type_code         VARCHAR2(1);
98403 l_component_appl_id           INTEGER;
98404 l_amb_context_code            VARCHAR2(30);
98406 l_event_class_code            VARCHAR2(30);
98407 l_ae_header_id                NUMBER;
98408 l_event_type_code             VARCHAR2(30);
98409 l_line_definition_code        VARCHAR2(30);
98410 l_line_definition_owner_code  VARCHAR2(1);
98411 --
98412 -- adr variables
98413 l_segment                     VARCHAR2(30);
98414 l_ccid                        NUMBER;
98415 l_adr_transaction_coa_id      NUMBER;
98416 l_adr_accounting_coa_id       NUMBER;
98417 l_adr_flexfield_segment_code  VARCHAR2(30);
98418 l_adr_flex_value_set_id       NUMBER;
98419 l_adr_value_type_code         VARCHAR2(30);
98420 l_adr_value_combination_id    NUMBER;
98421 l_adr_value_segment_code      VARCHAR2(30);
98422 
98423 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98424 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98425 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98426 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98427 
98428 -- 4262811 Variables ------------------------------------------------------------------------------------------
98429 l_entered_amt_idx             NUMBER;
98430 l_accted_amt_idx              NUMBER;
98431 l_acc_rev_flag                VARCHAR2(1);
98432 l_accrual_line_num            NUMBER;
98433 l_tmp_amt                     NUMBER;
98434 l_acc_rev_natural_side_code   VARCHAR2(1);
98435 
98436 l_num_entries                 NUMBER;
98437 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
98438 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
98439 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
98440 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
98441 l_recog_line_1                NUMBER;
98442 l_recog_line_2                NUMBER;
98443 
98444 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
98445 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
98446 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
98447 
98448 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
98449 
98450 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
98451 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
98452 
98453 ---------------------------------------------------------------------------------------------------------------
98454 
98455 
98456 --
98457 -- bulk performance
98458 --
98459 l_balance_type_code           VARCHAR2(1);
98460 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
98461 l_log_module                  VARCHAR2(240);
98462 
98463 --
98464 -- Upgrade strategy
98465 --
98466 l_actual_upg_option           VARCHAR2(1);
98467 l_enc_upg_option           VARCHAR2(1);
98468 
98469 --
98470 BEGIN
98471 --
98472 IF g_log_enabled THEN
98473       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_177';
98474 END IF;
98475 --
98476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98477 
98478       trace
98479          (p_msg      => 'BEGIN of AcctLineType_177'
98480          ,p_level    => C_LEVEL_PROCEDURE
98481          ,p_module   => l_log_module);
98482 
98483 END IF;
98484 --
98485 l_component_type             := 'AMB_JLT';
98486 l_component_code             := 'AP_LOSS_PREPAY_APP';
98487 l_component_type_code        := 'S';
98488 l_component_appl_id          :=  200;
98489 l_amb_context_code           := 'DEFAULT';
98490 l_entity_code                := 'AP_INVOICES';
98491 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
98492 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
98493 l_line_definition_owner_code := 'S';
98494 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
98495 --
98496 l_balance_type_code          := 'A';
98497 l_segment                     := NULL;
98498 l_ccid                        := NULL;
98499 l_adr_transaction_coa_id      := NULL;
98500 l_adr_accounting_coa_id       := NULL;
98501 l_adr_flexfield_segment_code  := NULL;
98502 l_adr_flex_value_set_id       := NULL;
98503 l_adr_value_type_code         := NULL;
98504 l_adr_value_combination_id    := NULL;
98505 l_adr_value_segment_code      := NULL;
98506 
98507 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
98508 l_bflow_class_code           := '';    -- 4219869 Business Flow
98509 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
98510 l_budgetary_control_flag     := 'N';
98511 
98512 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
98513 l_bflow_applied_to_amt       := NULL; -- 5132302
98514 l_entered_amt_idx            := NULL;          -- 4262811
98515 l_accted_amt_idx             := NULL;          -- 4262811
98516 l_acc_rev_flag               := NULL;          -- 4262811
98517 l_accrual_line_num           := NULL;          -- 4262811
98518 l_tmp_amt                    := NULL;          -- 4262811
98519 --
98520 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
98521             (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
98522                return;
98523   END IF;
98527 IF (NVL(p_source_128,'
98524   
98525 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
98526     l_balance_type_code <> 'B' THEN
98528 ') =  'PREPAY APPL' OR 
98529 NVL(p_source_128,'
98530 ') =  'PREPAY APPL NONREC TAX' OR 
98531 NVL(p_source_128,'
98532 ') =  'PREPAY APPL REC TAX') AND 
98533 NVL(p_source_165,'
98534 ') =  'LOSS'
98535  THEN 
98536 
98537    --
98538    XLA_AE_LINES_PKG.SetNewLine;
98539 
98540    p_balance_type_code          := l_balance_type_code;
98541    -- set the flag so later we will know whether the gain loss line needs to be created
98542    
98543    IF(l_balance_type_code = 'A' ) THEN
98544      p_actual_flag :='G';
98545    END IF;
98546 
98547    --
98548    -- bulk performance
98549    --
98550    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
98551                                       p_header_num   => 0); -- 4262811
98552    --
98553    -- set accounting line options
98554    --
98555    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
98556            p_natural_side_code          => 'D'
98557          , p_gain_or_loss_flag          => 'Y'
98558          , p_gl_transfer_mode_code      => 'S'
98559          , p_acct_entry_type_code       => 'A'
98560          , p_switch_side_flag           => 'Y'
98561          , p_merge_duplicate_code       => 'A'
98562          );
98563    --
98564    l_acc_rev_natural_side_code := 'C';  -- 4262811
98565    -- 
98566    --
98567    -- set accounting line type info
98568    --
98569    xla_ae_lines_pkg.SetAcctLineType
98570       (p_component_type             => l_component_type
98571       ,p_event_type_code            => l_event_type_code
98572       ,p_line_definition_owner_code => l_line_definition_owner_code
98573       ,p_line_definition_code       => l_line_definition_code
98574       ,p_accounting_line_code       => l_component_code
98575       ,p_accounting_line_type_code  => l_component_type_code
98576       ,p_accounting_line_appl_id    => l_component_appl_id
98577       ,p_amb_context_code           => l_amb_context_code
98578       ,p_entity_code                => l_entity_code
98579       ,p_event_class_code           => l_event_class_code);
98580    --
98581    -- set accounting class
98582    --
98583    xla_ae_lines_pkg.SetAcctClass(
98584            p_accounting_class_code  => 'LOSS'
98585          , p_ae_header_id           => l_ae_header_id
98586          );
98587 
98588    --
98589    -- set rounding class
98590    --
98591    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98592                       'LOSS';
98593 
98594    --
98595    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98596    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98597    --
98598    -- bulk performance
98599    --
98600    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98601 
98602    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98603       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98604 
98605    -- 4955764
98606    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98607       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98608 
98609    -- 4458381 Public Sector Enh
98610    
98611    --
98612    -- set accounting attributes for the line type
98613    --
98614    l_entered_amt_idx := 25;
98615    l_accted_amt_idx  := 30;
98616    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
98617    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98618    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
98619    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
98620    l_rec_acct_attrs.array_num_value(2)  := 
98621 xla_ae_sources_pkg.GetSystemSourceNum(
98622    p_source_code           => 'XLA_EVENT_APPL_ID'
98623  , p_source_type_code      => 'Y'
98624  , p_source_application_id =>  602
98625 );
98626    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
98627    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
98628    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
98629    l_rec_acct_attrs.array_char_value(4)  := 
98630 xla_ae_sources_pkg.GetSystemSourceChar(
98631    p_source_code           => 'XLA_ENTITY_CODE'
98632  , p_source_type_code      => 'Y'
98633  , p_source_application_id =>  602
98634 );
98635    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
98636    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
98637    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
98638    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
98639    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
98640    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
98641    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98642    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
98643    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
98644    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
98645    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
98646    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
98650    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
98647    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98648    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
98649    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
98651    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
98652    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
98653    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
98654    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
98655    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
98656    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
98657    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
98658    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
98659    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
98660    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
98661    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
98662    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
98663    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
98664    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
98665    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
98666    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
98667    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
98668    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
98669    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
98670    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
98671    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
98672    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
98673    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
98674    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
98675    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
98676    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
98677    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
98678    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
98679    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
98680    l_rec_acct_attrs.array_date_value(27)  := p_source_146;
98681    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
98682    l_rec_acct_attrs.array_num_value(28)  := p_source_147;
98683    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
98684    l_rec_acct_attrs.array_char_value(29)  := p_source_148;
98685    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
98686    l_rec_acct_attrs.array_num_value(30)  := p_source_158;
98687    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
98688    l_rec_acct_attrs.array_date_value(31)  := p_source_82;
98689    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
98690    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
98691    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
98692    l_rec_acct_attrs.array_date_value(33)  := p_source_84;
98693    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
98694    l_rec_acct_attrs.array_char_value(34)  := p_source_85;
98695    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
98696    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
98697    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
98698    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
98699    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
98700    l_rec_acct_attrs.array_char_value(37)  := p_source_88;
98701    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
98702    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_139);
98703    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
98704    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
98705    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
98706    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
98707    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
98708    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
98709    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
98710    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
98711    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
98712    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
98713    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
98714    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
98715 
98716    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98717    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98718 
98719    ---------------------------------------------------------------------------------------------------------------
98720    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98721    ---------------------------------------------------------------------------------------------------------------
98722    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98723 
98724    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98725    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98726 
98727    IF xla_accounting_cache_pkg.GetValueChar
98728          (p_source_code         => 'LEDGER_CATEGORY_CODE'
98732    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98729          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98730    AND l_bflow_method_code = 'PRIOR_ENTRY'
98731 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98733          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98734        )
98735    THEN
98736          xla_ae_lines_pkg.BflowUpgEntry
98737            (p_business_method_code    => l_bflow_method_code
98738            ,p_business_class_code     => l_bflow_class_code
98739            ,p_balance_type            => l_balance_type_code);
98740    ELSE
98741       NULL;
98742 -- No business flow processing for business flow method of NONE.
98743    END IF;
98744 
98745    --
98746    -- call analytical criteria
98747    --
98748    
98749    --
98750    -- call description
98751    --
98752    -- No description or it is inherited.
98753    --
98754    -- call ADRs
98755    -- Bug 4922099
98756    --
98757    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98758         (NVL(l_actual_upg_option, 'N') = 'O') OR
98759         (NVL(l_enc_upg_option, 'N') = 'O')
98760       )
98761    THEN
98762    NULL;
98763    --
98764    --
98765    
98766   l_ccid := AcctDerRule_41(
98767            p_application_id           => p_application_id
98768          , p_ae_header_id             => l_ae_header_id 
98769 , p_source_10 => p_source_10
98770 , p_source_10_meaning => p_source_10_meaning
98771 , p_source_25 => p_source_25
98772 , p_source_33 => p_source_33
98773 , p_source_34 => p_source_34
98774          , x_transaction_coa_id       => l_adr_transaction_coa_id
98775          , x_accounting_coa_id        => l_adr_accounting_coa_id
98776          , x_value_type_code          => l_adr_value_type_code
98777          , p_side                     => 'NA'
98778    );
98779 
98780    xla_ae_lines_pkg.set_ccid(
98781     p_code_combination_id          => l_ccid
98782   , p_value_type_code              => l_adr_value_type_code
98783   , p_transaction_coa_id           => l_adr_transaction_coa_id
98784   , p_accounting_coa_id            => l_adr_accounting_coa_id
98785   , p_adr_code                     => 'AP_REAL_LOSS'
98786   , p_adr_type_code                => 'S'
98787   , p_component_type               => l_component_type
98788   , p_component_code               => l_component_code
98789   , p_component_type_code          => l_component_type_code
98790   , p_component_appl_id            => l_component_appl_id
98791   , p_amb_context_code             => l_amb_context_code
98792   , p_side                         => 'NA'
98793   );
98794 
98795 
98796    l_segment := AcctDerRule_23(
98797            p_application_id           => p_application_id
98798          , p_ae_header_id             => l_ae_header_id 
98799 , p_source_10 => p_source_10
98800 , p_source_10_meaning => p_source_10_meaning
98801 , p_source_25 => p_source_25
98802          , x_transaction_coa_id       => l_adr_transaction_coa_id
98803          , x_accounting_coa_id        => l_adr_accounting_coa_id
98804          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98805          , x_flex_value_set_id        => l_adr_flex_value_set_id
98806          , x_value_type_code          => l_adr_value_type_code
98807          , x_value_combination_id     => l_adr_value_combination_id
98808          , x_value_segment_code       => l_adr_value_segment_code
98809          , p_side                     => 'NA'
98810          , p_override_seg_flag        => 'Y'
98811    );
98812 
98813    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98814 
98815       xla_ae_lines_pkg.set_segment(
98816           p_to_segment_code         => 'GL_BALANCING'
98817         , p_segment_value           => l_segment
98818         , p_from_segment_code       => l_adr_value_segment_code
98819         , p_from_combination_id     => l_adr_value_combination_id
98820         , p_value_type_code         => l_adr_value_type_code
98821         , p_transaction_coa_id      => l_adr_transaction_coa_id
98822         , p_accounting_coa_id       => l_adr_accounting_coa_id
98823         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98824         , p_flex_value_set_id       => l_adr_flex_value_set_id
98825         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
98826         , p_adr_type_code           => 'S'
98827         , p_component_type          => l_component_type
98828         , p_component_code          => l_component_code
98829         , p_component_type_code     => l_component_type_code
98830         , p_component_appl_id       => l_component_appl_id
98831         , p_amb_context_code        => l_amb_context_code
98832         , p_entity_code             => 'AP_INVOICES'
98833         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
98834         , p_side                    => 'NA'
98835         );
98836 
98837   END IF;
98838 
98839    l_segment := AcctDerRule_18(
98840            p_application_id           => p_application_id
98841          , p_ae_header_id             => l_ae_header_id 
98842 , p_source_10 => p_source_10
98843 , p_source_10_meaning => p_source_10_meaning
98844 , p_source_33 => p_source_33
98845 , p_source_34 => p_source_34
98846          , x_transaction_coa_id       => l_adr_transaction_coa_id
98847          , x_accounting_coa_id        => l_adr_accounting_coa_id
98848          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98849          , x_flex_value_set_id        => l_adr_flex_value_set_id
98850          , x_value_type_code          => l_adr_value_type_code
98854          , p_override_seg_flag        => 'Y'
98851          , x_value_combination_id     => l_adr_value_combination_id
98852          , x_value_segment_code       => l_adr_value_segment_code
98853          , p_side                     => 'NA'
98855    );
98856 
98857    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98858 
98859       xla_ae_lines_pkg.set_segment(
98860           p_to_segment_code         => 'GL_ACCOUNT'
98861         , p_segment_value           => l_segment
98862         , p_from_segment_code       => l_adr_value_segment_code
98863         , p_from_combination_id     => l_adr_value_combination_id
98864         , p_value_type_code         => l_adr_value_type_code
98865         , p_transaction_coa_id      => l_adr_transaction_coa_id
98866         , p_accounting_coa_id       => l_adr_accounting_coa_id
98867         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98868         , p_flex_value_set_id       => l_adr_flex_value_set_id
98869         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98870         , p_adr_type_code           => 'S'
98871         , p_component_type          => l_component_type
98872         , p_component_code          => l_component_code
98873         , p_component_type_code     => l_component_type_code
98874         , p_component_appl_id       => l_component_appl_id
98875         , p_amb_context_code        => l_amb_context_code
98876         , p_entity_code             => 'AP_INVOICES'
98877         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
98878         , p_side                    => 'NA'
98879         );
98880 
98881   END IF;
98882 
98883    --
98884    --
98885    END IF;
98886    --
98887    -- Bug 4922099
98888    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98889           (NVL(l_enc_upg_option, 'N') = 'O')
98890         ) AND
98891         (l_bflow_method_code = 'PRIOR_ENTRY')
98892       )
98893    THEN
98894       IF
98895       --
98896       1 = 2
98897       --
98898       THEN
98899       xla_accounting_err_pkg.build_message
98900                                     (p_appli_s_name            => 'XLA'
98901                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98902                                     ,p_token_1                 => 'LINE_NUMBER'
98903                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98904                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98905                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98906                                                                              l_component_type
98907                                                                             ,l_component_code
98908                                                                             ,l_component_type_code
98909                                                                             ,l_component_appl_id
98910                                                                             ,l_amb_context_code
98911                                                                             ,l_entity_code
98912                                                                             ,l_event_class_code
98913                                                                            )
98914                                     ,p_token_3                 => 'OWNER'
98915                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98916                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98917                                                                           ,p_lookup_code    => l_component_type_code
98918                                                                          )
98919                                     ,p_token_4                 => 'PRODUCT_NAME'
98920                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98921                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98922                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98923                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98924                                     ,p_ae_header_id            =>  NULL
98925                                        );
98926 
98927         IF (C_LEVEL_ERROR>= g_log_level) THEN
98928                  trace
98929                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98930                       ,p_level    => C_LEVEL_ERROR
98931                       ,p_module   => l_log_module);
98932         END IF;
98933       END IF;
98934    END IF;
98935    --
98936    --
98937    ------------------------------------------------------------------------------------------------
98938    -- 4219869 Business Flow
98939    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98940    -- Prior Entry.  Currently, the following code is always generated.
98941    ------------------------------------------------------------------------------------------------
98942    XLA_AE_LINES_PKG.ValidateCurrentLine;
98943 
98944    ------------------------------------------------------------------------------------
98945    -- 4219869 Business Flow
98946    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98947    ------------------------------------------------------------------------------------
98951    -- 4219869 Business Flow
98948    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98949 
98950    ----------------------------------------------------------------------------------
98952    -- Update journal entry status -- Need to generate this within IF <condition>
98953    ----------------------------------------------------------------------------------
98954    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98955          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98956          ,p_balance_type_code => l_balance_type_code
98957          );
98958 
98959    -------------------------------------------------------------------------------------------
98960    -- 4262811 - Generate the Accrual Reversal lines
98961    -------------------------------------------------------------------------------------------
98962    BEGIN
98963       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98964                               (g_array_event(p_event_id).array_value_num('header_index'));
98965       IF l_acc_rev_flag IS NULL THEN
98966          l_acc_rev_flag := 'N';
98967       END IF;
98968    EXCEPTION
98969       WHEN OTHERS THEN
98970          l_acc_rev_flag := 'N';
98971    END;
98972    --
98973    IF (l_acc_rev_flag = 'Y') THEN
98974 
98975        -- 4645092  ------------------------------------------------------------------------------
98976        -- To allow MPA report to determine if it should generate report process
98977        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98978        ------------------------------------------------------------------------------------------
98979 
98980        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98981        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98982    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98983    -- call ADRs
98984    -- Bug 4922099
98985    --
98986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98987         (NVL(l_actual_upg_option, 'N') = 'O') OR
98988         (NVL(l_enc_upg_option, 'N') = 'O')
98989       )
98990    THEN
98991    NULL;
98992    --
98993    --
98994    
98995   l_ccid := AcctDerRule_41(
98996            p_application_id           => p_application_id
98997          , p_ae_header_id             => l_ae_header_id 
98998 , p_source_10 => p_source_10
98999 , p_source_10_meaning => p_source_10_meaning
99000 , p_source_25 => p_source_25
99001 , p_source_33 => p_source_33
99002 , p_source_34 => p_source_34
99003          , x_transaction_coa_id       => l_adr_transaction_coa_id
99004          , x_accounting_coa_id        => l_adr_accounting_coa_id
99005          , x_value_type_code          => l_adr_value_type_code
99006          , p_side                     => 'NA'
99007    );
99008 
99009    xla_ae_lines_pkg.set_ccid(
99010     p_code_combination_id          => l_ccid
99011   , p_value_type_code              => l_adr_value_type_code
99012   , p_transaction_coa_id           => l_adr_transaction_coa_id
99013   , p_accounting_coa_id            => l_adr_accounting_coa_id
99014   , p_adr_code                     => 'AP_REAL_LOSS'
99015   , p_adr_type_code                => 'S'
99016   , p_component_type               => l_component_type
99017   , p_component_code               => l_component_code
99018   , p_component_type_code          => l_component_type_code
99019   , p_component_appl_id            => l_component_appl_id
99020   , p_amb_context_code             => l_amb_context_code
99021   , p_side                         => 'NA'
99022   );
99023 
99024 
99025    l_segment := AcctDerRule_23(
99026            p_application_id           => p_application_id
99027          , p_ae_header_id             => l_ae_header_id 
99028 , p_source_10 => p_source_10
99029 , p_source_10_meaning => p_source_10_meaning
99030 , p_source_25 => p_source_25
99031          , x_transaction_coa_id       => l_adr_transaction_coa_id
99032          , x_accounting_coa_id        => l_adr_accounting_coa_id
99033          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99034          , x_flex_value_set_id        => l_adr_flex_value_set_id
99035          , x_value_type_code          => l_adr_value_type_code
99036          , x_value_combination_id     => l_adr_value_combination_id
99037          , x_value_segment_code       => l_adr_value_segment_code
99038          , p_side                     => 'NA'
99039          , p_override_seg_flag        => 'Y'
99040    );
99041 
99042    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99043 
99044       xla_ae_lines_pkg.set_segment(
99045           p_to_segment_code         => 'GL_BALANCING'
99046         , p_segment_value           => l_segment
99047         , p_from_segment_code       => l_adr_value_segment_code
99048         , p_from_combination_id     => l_adr_value_combination_id
99049         , p_value_type_code         => l_adr_value_type_code
99050         , p_transaction_coa_id      => l_adr_transaction_coa_id
99051         , p_accounting_coa_id       => l_adr_accounting_coa_id
99052         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99053         , p_flex_value_set_id       => l_adr_flex_value_set_id
99054         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
99055         , p_adr_type_code           => 'S'
99056         , p_component_type          => l_component_type
99057         , p_component_code          => l_component_code
99058         , p_component_type_code     => l_component_type_code
99059         , p_component_appl_id       => l_component_appl_id
99063         , p_side                    => 'NA'
99060         , p_amb_context_code        => l_amb_context_code
99061         , p_entity_code             => 'AP_INVOICES'
99062         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
99064         );
99065 
99066   END IF;
99067 
99068    l_segment := AcctDerRule_18(
99069            p_application_id           => p_application_id
99070          , p_ae_header_id             => l_ae_header_id 
99071 , p_source_10 => p_source_10
99072 , p_source_10_meaning => p_source_10_meaning
99073 , p_source_33 => p_source_33
99074 , p_source_34 => p_source_34
99075          , x_transaction_coa_id       => l_adr_transaction_coa_id
99076          , x_accounting_coa_id        => l_adr_accounting_coa_id
99077          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99078          , x_flex_value_set_id        => l_adr_flex_value_set_id
99079          , x_value_type_code          => l_adr_value_type_code
99080          , x_value_combination_id     => l_adr_value_combination_id
99081          , x_value_segment_code       => l_adr_value_segment_code
99082          , p_side                     => 'NA'
99083          , p_override_seg_flag        => 'Y'
99084    );
99085 
99086    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99087 
99088       xla_ae_lines_pkg.set_segment(
99089           p_to_segment_code         => 'GL_ACCOUNT'
99090         , p_segment_value           => l_segment
99091         , p_from_segment_code       => l_adr_value_segment_code
99092         , p_from_combination_id     => l_adr_value_combination_id
99093         , p_value_type_code         => l_adr_value_type_code
99094         , p_transaction_coa_id      => l_adr_transaction_coa_id
99095         , p_accounting_coa_id       => l_adr_accounting_coa_id
99096         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99097         , p_flex_value_set_id       => l_adr_flex_value_set_id
99098         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
99099         , p_adr_type_code           => 'S'
99100         , p_component_type          => l_component_type
99101         , p_component_code          => l_component_code
99102         , p_component_type_code     => l_component_type_code
99103         , p_component_appl_id       => l_component_appl_id
99104         , p_amb_context_code        => l_amb_context_code
99105         , p_entity_code             => 'AP_INVOICES'
99106         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
99107         , p_side                    => 'NA'
99108         );
99109 
99110   END IF;
99111 
99112    --
99113    --
99114    END IF;
99115 
99116        --
99117        -- Update the line information that should be overwritten
99118        --
99119        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99120                                          p_header_num   => 1);
99121        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99122 
99123        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99124 
99125        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99126           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99127        END IF;
99128 
99129       --
99130       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99131       --
99132       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99133           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99134       ELSE
99135           ---------------------------------------------------------------------------------------------------
99136           -- 4262811a Switch Sign
99137           ---------------------------------------------------------------------------------------------------
99138           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99139           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99140                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99141           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99142                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99143           -- 5132302
99144           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99145                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99146 
99147       END IF;
99148 
99149       -- 4955764
99150       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99152 
99153 
99154       XLA_AE_LINES_PKG.ValidateCurrentLine;
99155       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99156 
99157       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99158                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99159                ,p_balance_type_code => l_balance_type_code);
99160 
99161    END IF;
99162 
99163    -----------------------------------------------------------------------------------------
99164    -- 4262811 Multiperiod Accounting
99168 
99165    -----------------------------------------------------------------------------------------
99166      -- No MPA option is assigned.
99167 
99169 END IF;
99170 END IF;
99171 --
99172 
99173 --
99174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99175    trace
99176       (p_msg      => 'END of AcctLineType_177'
99177       ,p_level    => C_LEVEL_PROCEDURE
99178       ,p_module   => l_log_module);
99179 END IF;
99180 --
99181 EXCEPTION
99182   WHEN xla_exceptions_pkg.application_exception THEN
99183       RAISE;
99184   WHEN OTHERS THEN
99185        xla_exceptions_pkg.raise_message
99186            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_177');
99187 END AcctLineType_177;
99188 --
99189 
99190 ---------------------------------------
99191 --
99192 -- PRIVATE FUNCTION
99193 --         AcctLineType_178
99194 --
99195 ---------------------------------------
99196 PROCEDURE AcctLineType_178 (
99197   p_application_id        IN NUMBER
99198  ,p_event_id              IN NUMBER
99199  ,p_calculate_acctd_flag  IN VARCHAR2
99200  ,p_calculate_g_l_flag    IN VARCHAR2
99201  ,p_actual_flag           IN OUT VARCHAR2
99202  ,p_balance_type_code     OUT VARCHAR2
99203  ,p_gain_or_loss_ref      OUT VARCHAR2
99204  
99205 --Payment Currency Code
99206  , p_source_8            IN VARCHAR2
99207 --Automatic Offsets Value
99208  , p_source_10            IN VARCHAR2
99209  , p_source_10_meaning    IN VARCHAR2
99210 --Invoice Distribution Account
99211  , p_source_25            IN NUMBER
99212 --Internal Realized Loss Account
99213  , p_source_33            IN NUMBER
99214 --Bank Loss Account
99215  , p_source_34            IN NUMBER
99216 --When to Account for Payment Option
99217  , p_source_57            IN VARCHAR2
99218 --Accounting Reversal Indicator
99219  , p_source_58            IN VARCHAR2
99220 --Distribution Link Type
99221  , p_source_60            IN VARCHAR2
99222 --Override Accounted Amount Indicator
99223  , p_source_85            IN VARCHAR2
99224  , p_source_85_meaning    IN VARCHAR2
99225 --Third Party Type
99226  , p_source_88            IN VARCHAR2
99227 --Invoice Distribution Tax Line Identifier
99228  , p_source_91            IN NUMBER
99229 --Invoice Distribution Tax Distribution Identifier from Tax
99230  , p_source_92            IN NUMBER
99231 --Invoice Distribution Summary Tax Line Identifier
99232  , p_source_93            IN NUMBER
99233 --Business Flow Accounts Payable Application Identifier
99234  , p_source_96            IN NUMBER
99235 --Business Flow Invoice Distribution Type
99236  , p_source_97            IN VARCHAR2
99237 --Business Flow Invoice Entity Code
99238  , p_source_98            IN VARCHAR2
99239 --Business Flow Invoice Distribution Identifier
99240  , p_source_99            IN NUMBER
99241 --Business Flow Invoice Identifier
99242  , p_source_100            IN NUMBER
99243 --Payment Distribution Type
99244  , p_source_101            IN VARCHAR2
99245  , p_source_101_meaning    IN VARCHAR2
99246 --Payment Distribution Amount
99247  , p_source_102            IN NUMBER
99248 --Payment Distribution Identifier
99249  , p_source_107            IN NUMBER
99250 --Payment Supplier Identifier
99251  , p_source_113            IN NUMBER
99252 --Payment Supplier Site Identifier
99253  , p_source_114            IN NUMBER
99254 --Payment Distribution Reversed Identifier
99255  , p_source_115            IN NUMBER
99256 --Payment Exchange Date
99257  , p_source_120            IN DATE
99258 --Payment Exchange Rate
99259  , p_source_121            IN NUMBER
99260 --Payment Exchange Rate Type
99261  , p_source_122            IN VARCHAR2
99262 --Payment Type
99263  , p_source_125            IN VARCHAR2
99264  , p_source_125_meaning    IN VARCHAR2
99265 --Invoice/Payment Ledger Amount Difference
99266  , p_source_156            IN NUMBER
99267 --Gain or Loss Indicator between Invoice and Payment
99268  , p_source_161            IN VARCHAR2
99269 )
99270 IS
99271 
99272 l_component_type              VARCHAR2(80);
99273 l_component_code              VARCHAR2(30);
99274 l_component_type_code         VARCHAR2(1);
99275 l_component_appl_id           INTEGER;
99276 l_amb_context_code            VARCHAR2(30);
99277 l_entity_code                 VARCHAR2(30);
99278 l_event_class_code            VARCHAR2(30);
99279 l_ae_header_id                NUMBER;
99280 l_event_type_code             VARCHAR2(30);
99281 l_line_definition_code        VARCHAR2(30);
99282 l_line_definition_owner_code  VARCHAR2(1);
99283 --
99284 -- adr variables
99285 l_segment                     VARCHAR2(30);
99286 l_ccid                        NUMBER;
99287 l_adr_transaction_coa_id      NUMBER;
99288 l_adr_accounting_coa_id       NUMBER;
99289 l_adr_flexfield_segment_code  VARCHAR2(30);
99290 l_adr_flex_value_set_id       NUMBER;
99291 l_adr_value_type_code         VARCHAR2(30);
99292 l_adr_value_combination_id    NUMBER;
99293 l_adr_value_segment_code      VARCHAR2(30);
99294 
99295 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99296 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99297 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99298 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99299 
99300 -- 4262811 Variables ------------------------------------------------------------------------------------------
99301 l_entered_amt_idx             NUMBER;
99305 l_tmp_amt                     NUMBER;
99302 l_accted_amt_idx              NUMBER;
99303 l_acc_rev_flag                VARCHAR2(1);
99304 l_accrual_line_num            NUMBER;
99306 l_acc_rev_natural_side_code   VARCHAR2(1);
99307 
99308 l_num_entries                 NUMBER;
99309 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99310 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99311 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99312 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99313 l_recog_line_1                NUMBER;
99314 l_recog_line_2                NUMBER;
99315 
99316 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99317 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99318 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99319 
99320 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99321 
99322 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99323 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99324 
99325 ---------------------------------------------------------------------------------------------------------------
99326 
99327 
99328 --
99329 -- bulk performance
99330 --
99331 l_balance_type_code           VARCHAR2(1);
99332 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99333 l_log_module                  VARCHAR2(240);
99334 
99335 --
99336 -- Upgrade strategy
99337 --
99338 l_actual_upg_option           VARCHAR2(1);
99339 l_enc_upg_option           VARCHAR2(1);
99340 
99341 --
99342 BEGIN
99343 --
99344 IF g_log_enabled THEN
99345       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_178';
99346 END IF;
99347 --
99348 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99349 
99350       trace
99351          (p_msg      => 'BEGIN of AcctLineType_178'
99352          ,p_level    => C_LEVEL_PROCEDURE
99353          ,p_module   => l_log_module);
99354 
99355 END IF;
99356 --
99357 l_component_type             := 'AMB_JLT';
99358 l_component_code             := 'AP_LOSS_REF';
99359 l_component_type_code        := 'S';
99360 l_component_appl_id          :=  200;
99361 l_amb_context_code           := 'DEFAULT';
99362 l_entity_code                := 'AP_PAYMENTS';
99363 l_event_class_code           := 'REFUNDS';
99364 l_event_type_code            := 'REFUNDS_ALL';
99365 l_line_definition_owner_code := 'S';
99366 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
99367 --
99368 l_balance_type_code          := 'A';
99369 l_segment                     := NULL;
99370 l_ccid                        := NULL;
99371 l_adr_transaction_coa_id      := NULL;
99372 l_adr_accounting_coa_id       := NULL;
99373 l_adr_flexfield_segment_code  := NULL;
99374 l_adr_flex_value_set_id       := NULL;
99375 l_adr_value_type_code         := NULL;
99376 l_adr_value_combination_id    := NULL;
99377 l_adr_value_segment_code      := NULL;
99378 
99379 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
99380 l_bflow_class_code           := '';    -- 4219869 Business Flow
99381 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99382 l_budgetary_control_flag     := 'N';
99383 
99384 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99385 l_bflow_applied_to_amt       := NULL; -- 5132302
99386 l_entered_amt_idx            := NULL;          -- 4262811
99387 l_accted_amt_idx             := NULL;          -- 4262811
99388 l_acc_rev_flag               := NULL;          -- 4262811
99389 l_accrual_line_num           := NULL;          -- 4262811
99390 l_tmp_amt                    := NULL;          -- 4262811
99391 --
99392 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
99393             (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
99394                return;
99395   END IF;
99396   
99397 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99398     l_balance_type_code <> 'B' THEN
99399 IF (NVL(p_source_57,'
99400 ') <>  'CLEAR_CLEAR' AND 
99401 NVL(p_source_57,'
99402 ') <>  'ALWAYS_CLEAR') AND 
99403 NVL(p_source_161,'
99404 ') =  'LOSS' AND 
99405 NVL(p_source_125,'
99406 ') =  'R' AND 
99407 NVL(p_source_101,'
99408 ') <>  'EXCHANGE RATE VARIANCE' AND 
99409 NVL(p_source_101,'
99410 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
99411 NVL(p_source_101,'
99412 ') <>  'BANK CHARGE' AND 
99413 NVL(p_source_101,'
99414 ') <>  'BANK ERROR'
99415  THEN 
99416 
99417    --
99418    XLA_AE_LINES_PKG.SetNewLine;
99419 
99420    p_balance_type_code          := l_balance_type_code;
99421    -- set the flag so later we will know whether the gain loss line needs to be created
99422    
99423    IF(l_balance_type_code = 'A' ) THEN
99424      p_actual_flag :='G';
99425    END IF;
99426 
99427    --
99428    -- bulk performance
99429    --
99430    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99431                                       p_header_num   => 0); -- 4262811
99432    --
99433    -- set accounting line options
99434    --
99435    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99436            p_natural_side_code          => 'C'
99440          , p_switch_side_flag           => 'Y'
99437          , p_gain_or_loss_flag          => 'Y'
99438          , p_gl_transfer_mode_code      => 'S'
99439          , p_acct_entry_type_code       => 'A'
99441          , p_merge_duplicate_code       => 'A'
99442          );
99443    --
99444    l_acc_rev_natural_side_code := 'D';  -- 4262811
99445    -- 
99446    --
99447    -- set accounting line type info
99448    --
99449    xla_ae_lines_pkg.SetAcctLineType
99450       (p_component_type             => l_component_type
99451       ,p_event_type_code            => l_event_type_code
99452       ,p_line_definition_owner_code => l_line_definition_owner_code
99453       ,p_line_definition_code       => l_line_definition_code
99454       ,p_accounting_line_code       => l_component_code
99455       ,p_accounting_line_type_code  => l_component_type_code
99456       ,p_accounting_line_appl_id    => l_component_appl_id
99457       ,p_amb_context_code           => l_amb_context_code
99458       ,p_entity_code                => l_entity_code
99459       ,p_event_class_code           => l_event_class_code);
99460    --
99461    -- set accounting class
99462    --
99463    xla_ae_lines_pkg.SetAcctClass(
99464            p_accounting_class_code  => 'LOSS'
99465          , p_ae_header_id           => l_ae_header_id
99466          );
99467 
99468    --
99469    -- set rounding class
99470    --
99471    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99472                       'LOSS';
99473 
99474    --
99475    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99476    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99477    --
99478    -- bulk performance
99479    --
99480    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99481 
99482    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99483       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99484 
99485    -- 4955764
99486    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99487       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99488 
99489    -- 4458381 Public Sector Enh
99490    
99491    --
99492    -- set accounting attributes for the line type
99493    --
99494    l_entered_amt_idx := 9;
99495    l_accted_amt_idx  := 14;
99496    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
99497    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99498    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
99499    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
99500    l_rec_acct_attrs.array_num_value(2)  := p_source_96;
99501    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99502    l_rec_acct_attrs.array_char_value(3)  := p_source_97;
99503    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
99504    l_rec_acct_attrs.array_char_value(4)  := p_source_98;
99505    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
99506    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_99);
99507    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99508    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_100);
99509    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
99510    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_107);
99511    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
99512    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
99513    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
99514    l_rec_acct_attrs.array_num_value(9)  := p_source_102;
99515    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
99516    l_rec_acct_attrs.array_char_value(10)  := p_source_8;
99517    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
99518    l_rec_acct_attrs.array_date_value(11)  := p_source_120;
99519    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
99520    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
99521    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
99522    l_rec_acct_attrs.array_char_value(13)  := p_source_122;
99523    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
99524    l_rec_acct_attrs.array_num_value(14)  := p_source_156;
99525    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
99526    l_rec_acct_attrs.array_char_value(15)  := p_source_85;
99527    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
99528    l_rec_acct_attrs.array_num_value(16)  := p_source_113;
99529    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
99530    l_rec_acct_attrs.array_num_value(17)  := p_source_114;
99531    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
99532    l_rec_acct_attrs.array_char_value(18)  := p_source_88;
99533    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
99534    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_115);
99535    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
99536    l_rec_acct_attrs.array_char_value(20)  := p_source_60;
99537    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
99538    l_rec_acct_attrs.array_num_value(21)  := p_source_91;
99539    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
99543 
99540    l_rec_acct_attrs.array_num_value(22)  := p_source_92;
99541    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
99542    l_rec_acct_attrs.array_num_value(23)  := p_source_93;
99544    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99545    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99546 
99547    ---------------------------------------------------------------------------------------------------------------
99548    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99549    ---------------------------------------------------------------------------------------------------------------
99550    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99551 
99552    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99553    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99554 
99555    IF xla_accounting_cache_pkg.GetValueChar
99556          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99557          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99558    AND l_bflow_method_code = 'PRIOR_ENTRY'
99559 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99560    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99561          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99562        )
99563    THEN
99564          xla_ae_lines_pkg.BflowUpgEntry
99565            (p_business_method_code    => l_bflow_method_code
99566            ,p_business_class_code     => l_bflow_class_code
99567            ,p_balance_type            => l_balance_type_code);
99568    ELSE
99569       NULL;
99570 -- No business flow processing for business flow method of NONE.
99571    END IF;
99572 
99573    --
99574    -- call analytical criteria
99575    --
99576    
99577    --
99578    -- call description
99579    --
99580    -- No description or it is inherited.
99581    --
99582    -- call ADRs
99583    -- Bug 4922099
99584    --
99585    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99586         (NVL(l_actual_upg_option, 'N') = 'O') OR
99587         (NVL(l_enc_upg_option, 'N') = 'O')
99588       )
99589    THEN
99590    NULL;
99591    --
99592    --
99593    
99594   l_ccid := AcctDerRule_41(
99595            p_application_id           => p_application_id
99596          , p_ae_header_id             => l_ae_header_id 
99597 , p_source_10 => p_source_10
99598 , p_source_10_meaning => p_source_10_meaning
99599 , p_source_25 => p_source_25
99600 , p_source_33 => p_source_33
99601 , p_source_34 => p_source_34
99602          , x_transaction_coa_id       => l_adr_transaction_coa_id
99603          , x_accounting_coa_id        => l_adr_accounting_coa_id
99604          , x_value_type_code          => l_adr_value_type_code
99605          , p_side                     => 'NA'
99606    );
99607 
99608    xla_ae_lines_pkg.set_ccid(
99609     p_code_combination_id          => l_ccid
99610   , p_value_type_code              => l_adr_value_type_code
99611   , p_transaction_coa_id           => l_adr_transaction_coa_id
99612   , p_accounting_coa_id            => l_adr_accounting_coa_id
99613   , p_adr_code                     => 'AP_REAL_LOSS'
99614   , p_adr_type_code                => 'S'
99615   , p_component_type               => l_component_type
99616   , p_component_code               => l_component_code
99617   , p_component_type_code          => l_component_type_code
99618   , p_component_appl_id            => l_component_appl_id
99619   , p_amb_context_code             => l_amb_context_code
99620   , p_side                         => 'NA'
99621   );
99622 
99623 
99624    l_segment := AcctDerRule_23(
99625            p_application_id           => p_application_id
99626          , p_ae_header_id             => l_ae_header_id 
99627 , p_source_10 => p_source_10
99628 , p_source_10_meaning => p_source_10_meaning
99629 , p_source_25 => p_source_25
99630          , x_transaction_coa_id       => l_adr_transaction_coa_id
99631          , x_accounting_coa_id        => l_adr_accounting_coa_id
99632          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99633          , x_flex_value_set_id        => l_adr_flex_value_set_id
99634          , x_value_type_code          => l_adr_value_type_code
99635          , x_value_combination_id     => l_adr_value_combination_id
99636          , x_value_segment_code       => l_adr_value_segment_code
99637          , p_side                     => 'NA'
99638          , p_override_seg_flag        => 'Y'
99639    );
99640 
99641    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99642 
99643       xla_ae_lines_pkg.set_segment(
99644           p_to_segment_code         => 'GL_BALANCING'
99645         , p_segment_value           => l_segment
99646         , p_from_segment_code       => l_adr_value_segment_code
99647         , p_from_combination_id     => l_adr_value_combination_id
99648         , p_value_type_code         => l_adr_value_type_code
99649         , p_transaction_coa_id      => l_adr_transaction_coa_id
99650         , p_accounting_coa_id       => l_adr_accounting_coa_id
99651         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99652         , p_flex_value_set_id       => l_adr_flex_value_set_id
99653         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
99654         , p_adr_type_code           => 'S'
99655         , p_component_type          => l_component_type
99659         , p_amb_context_code        => l_amb_context_code
99656         , p_component_code          => l_component_code
99657         , p_component_type_code     => l_component_type_code
99658         , p_component_appl_id       => l_component_appl_id
99660         , p_entity_code             => 'AP_PAYMENTS'
99661         , p_event_class_code        => 'REFUNDS'
99662         , p_side                    => 'NA'
99663         );
99664 
99665   END IF;
99666 
99667    l_segment := AcctDerRule_18(
99668            p_application_id           => p_application_id
99669          , p_ae_header_id             => l_ae_header_id 
99670 , p_source_10 => p_source_10
99671 , p_source_10_meaning => p_source_10_meaning
99672 , p_source_33 => p_source_33
99673 , p_source_34 => p_source_34
99674          , x_transaction_coa_id       => l_adr_transaction_coa_id
99675          , x_accounting_coa_id        => l_adr_accounting_coa_id
99676          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99677          , x_flex_value_set_id        => l_adr_flex_value_set_id
99678          , x_value_type_code          => l_adr_value_type_code
99679          , x_value_combination_id     => l_adr_value_combination_id
99680          , x_value_segment_code       => l_adr_value_segment_code
99681          , p_side                     => 'NA'
99682          , p_override_seg_flag        => 'Y'
99683    );
99684 
99685    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99686 
99687       xla_ae_lines_pkg.set_segment(
99688           p_to_segment_code         => 'GL_ACCOUNT'
99689         , p_segment_value           => l_segment
99690         , p_from_segment_code       => l_adr_value_segment_code
99691         , p_from_combination_id     => l_adr_value_combination_id
99692         , p_value_type_code         => l_adr_value_type_code
99693         , p_transaction_coa_id      => l_adr_transaction_coa_id
99694         , p_accounting_coa_id       => l_adr_accounting_coa_id
99695         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99696         , p_flex_value_set_id       => l_adr_flex_value_set_id
99697         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
99698         , p_adr_type_code           => 'S'
99699         , p_component_type          => l_component_type
99700         , p_component_code          => l_component_code
99701         , p_component_type_code     => l_component_type_code
99702         , p_component_appl_id       => l_component_appl_id
99703         , p_amb_context_code        => l_amb_context_code
99704         , p_entity_code             => 'AP_PAYMENTS'
99705         , p_event_class_code        => 'REFUNDS'
99706         , p_side                    => 'NA'
99707         );
99708 
99709   END IF;
99710 
99711    --
99712    --
99713    END IF;
99714    --
99715    -- Bug 4922099
99716    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99717           (NVL(l_enc_upg_option, 'N') = 'O')
99718         ) AND
99719         (l_bflow_method_code = 'PRIOR_ENTRY')
99720       )
99721    THEN
99722       IF
99723       --
99724       1 = 2
99725       --
99726       THEN
99727       xla_accounting_err_pkg.build_message
99728                                     (p_appli_s_name            => 'XLA'
99729                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99730                                     ,p_token_1                 => 'LINE_NUMBER'
99731                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
99732                                     ,p_token_2                 => 'LINE_TYPE_NAME'
99733                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
99734                                                                              l_component_type
99735                                                                             ,l_component_code
99736                                                                             ,l_component_type_code
99737                                                                             ,l_component_appl_id
99738                                                                             ,l_amb_context_code
99739                                                                             ,l_entity_code
99740                                                                             ,l_event_class_code
99741                                                                            )
99742                                     ,p_token_3                 => 'OWNER'
99743                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
99744                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
99745                                                                           ,p_lookup_code    => l_component_type_code
99746                                                                          )
99747                                     ,p_token_4                 => 'PRODUCT_NAME'
99748                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99749                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99750                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99751                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99755         IF (C_LEVEL_ERROR>= g_log_level) THEN
99752                                     ,p_ae_header_id            =>  NULL
99753                                        );
99754 
99756                  trace
99757                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99758                       ,p_level    => C_LEVEL_ERROR
99759                       ,p_module   => l_log_module);
99760         END IF;
99761       END IF;
99762    END IF;
99763    --
99764    --
99765    ------------------------------------------------------------------------------------------------
99766    -- 4219869 Business Flow
99767    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99768    -- Prior Entry.  Currently, the following code is always generated.
99769    ------------------------------------------------------------------------------------------------
99770    XLA_AE_LINES_PKG.ValidateCurrentLine;
99771 
99772    ------------------------------------------------------------------------------------
99773    -- 4219869 Business Flow
99774    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99775    ------------------------------------------------------------------------------------
99776    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99777 
99778    ----------------------------------------------------------------------------------
99779    -- 4219869 Business Flow
99780    -- Update journal entry status -- Need to generate this within IF <condition>
99781    ----------------------------------------------------------------------------------
99782    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99783          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99784          ,p_balance_type_code => l_balance_type_code
99785          );
99786 
99787    -------------------------------------------------------------------------------------------
99788    -- 4262811 - Generate the Accrual Reversal lines
99789    -------------------------------------------------------------------------------------------
99790    BEGIN
99791       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99792                               (g_array_event(p_event_id).array_value_num('header_index'));
99793       IF l_acc_rev_flag IS NULL THEN
99794          l_acc_rev_flag := 'N';
99795       END IF;
99796    EXCEPTION
99797       WHEN OTHERS THEN
99798          l_acc_rev_flag := 'N';
99799    END;
99800    --
99801    IF (l_acc_rev_flag = 'Y') THEN
99802 
99803        -- 4645092  ------------------------------------------------------------------------------
99804        -- To allow MPA report to determine if it should generate report process
99805        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99806        ------------------------------------------------------------------------------------------
99807 
99808        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99809        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99810    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
99811    -- call ADRs
99812    -- Bug 4922099
99813    --
99814    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99815         (NVL(l_actual_upg_option, 'N') = 'O') OR
99816         (NVL(l_enc_upg_option, 'N') = 'O')
99817       )
99818    THEN
99819    NULL;
99820    --
99821    --
99822    
99823   l_ccid := AcctDerRule_41(
99824            p_application_id           => p_application_id
99825          , p_ae_header_id             => l_ae_header_id 
99826 , p_source_10 => p_source_10
99827 , p_source_10_meaning => p_source_10_meaning
99828 , p_source_25 => p_source_25
99829 , p_source_33 => p_source_33
99830 , p_source_34 => p_source_34
99831          , x_transaction_coa_id       => l_adr_transaction_coa_id
99832          , x_accounting_coa_id        => l_adr_accounting_coa_id
99833          , x_value_type_code          => l_adr_value_type_code
99834          , p_side                     => 'NA'
99835    );
99836 
99837    xla_ae_lines_pkg.set_ccid(
99838     p_code_combination_id          => l_ccid
99839   , p_value_type_code              => l_adr_value_type_code
99840   , p_transaction_coa_id           => l_adr_transaction_coa_id
99841   , p_accounting_coa_id            => l_adr_accounting_coa_id
99842   , p_adr_code                     => 'AP_REAL_LOSS'
99843   , p_adr_type_code                => 'S'
99844   , p_component_type               => l_component_type
99845   , p_component_code               => l_component_code
99846   , p_component_type_code          => l_component_type_code
99847   , p_component_appl_id            => l_component_appl_id
99848   , p_amb_context_code             => l_amb_context_code
99849   , p_side                         => 'NA'
99850   );
99851 
99852 
99853    l_segment := AcctDerRule_23(
99854            p_application_id           => p_application_id
99855          , p_ae_header_id             => l_ae_header_id 
99856 , p_source_10 => p_source_10
99857 , p_source_10_meaning => p_source_10_meaning
99858 , p_source_25 => p_source_25
99859          , x_transaction_coa_id       => l_adr_transaction_coa_id
99860          , x_accounting_coa_id        => l_adr_accounting_coa_id
99861          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99862          , x_flex_value_set_id        => l_adr_flex_value_set_id
99863          , x_value_type_code          => l_adr_value_type_code
99867          , p_override_seg_flag        => 'Y'
99864          , x_value_combination_id     => l_adr_value_combination_id
99865          , x_value_segment_code       => l_adr_value_segment_code
99866          , p_side                     => 'NA'
99868    );
99869 
99870    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99871 
99872       xla_ae_lines_pkg.set_segment(
99873           p_to_segment_code         => 'GL_BALANCING'
99874         , p_segment_value           => l_segment
99875         , p_from_segment_code       => l_adr_value_segment_code
99876         , p_from_combination_id     => l_adr_value_combination_id
99877         , p_value_type_code         => l_adr_value_type_code
99878         , p_transaction_coa_id      => l_adr_transaction_coa_id
99879         , p_accounting_coa_id       => l_adr_accounting_coa_id
99880         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99881         , p_flex_value_set_id       => l_adr_flex_value_set_id
99882         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
99883         , p_adr_type_code           => 'S'
99884         , p_component_type          => l_component_type
99885         , p_component_code          => l_component_code
99886         , p_component_type_code     => l_component_type_code
99887         , p_component_appl_id       => l_component_appl_id
99888         , p_amb_context_code        => l_amb_context_code
99889         , p_entity_code             => 'AP_PAYMENTS'
99890         , p_event_class_code        => 'REFUNDS'
99891         , p_side                    => 'NA'
99892         );
99893 
99894   END IF;
99895 
99896    l_segment := AcctDerRule_18(
99897            p_application_id           => p_application_id
99898          , p_ae_header_id             => l_ae_header_id 
99899 , p_source_10 => p_source_10
99900 , p_source_10_meaning => p_source_10_meaning
99901 , p_source_33 => p_source_33
99902 , p_source_34 => p_source_34
99903          , x_transaction_coa_id       => l_adr_transaction_coa_id
99904          , x_accounting_coa_id        => l_adr_accounting_coa_id
99905          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99906          , x_flex_value_set_id        => l_adr_flex_value_set_id
99907          , x_value_type_code          => l_adr_value_type_code
99908          , x_value_combination_id     => l_adr_value_combination_id
99909          , x_value_segment_code       => l_adr_value_segment_code
99910          , p_side                     => 'NA'
99911          , p_override_seg_flag        => 'Y'
99912    );
99913 
99914    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99915 
99916       xla_ae_lines_pkg.set_segment(
99917           p_to_segment_code         => 'GL_ACCOUNT'
99918         , p_segment_value           => l_segment
99919         , p_from_segment_code       => l_adr_value_segment_code
99920         , p_from_combination_id     => l_adr_value_combination_id
99921         , p_value_type_code         => l_adr_value_type_code
99922         , p_transaction_coa_id      => l_adr_transaction_coa_id
99923         , p_accounting_coa_id       => l_adr_accounting_coa_id
99924         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99925         , p_flex_value_set_id       => l_adr_flex_value_set_id
99926         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
99927         , p_adr_type_code           => 'S'
99928         , p_component_type          => l_component_type
99929         , p_component_code          => l_component_code
99930         , p_component_type_code     => l_component_type_code
99931         , p_component_appl_id       => l_component_appl_id
99932         , p_amb_context_code        => l_amb_context_code
99933         , p_entity_code             => 'AP_PAYMENTS'
99934         , p_event_class_code        => 'REFUNDS'
99935         , p_side                    => 'NA'
99936         );
99937 
99938   END IF;
99939 
99940    --
99941    --
99942    END IF;
99943 
99944        --
99945        -- Update the line information that should be overwritten
99946        --
99947        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99948                                          p_header_num   => 1);
99949        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99950 
99951        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99952 
99953        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99954           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99955        END IF;
99956 
99957       --
99958       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99959       --
99960       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99961           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99962       ELSE
99963           ---------------------------------------------------------------------------------------------------
99964           -- 4262811a Switch Sign
99965           ---------------------------------------------------------------------------------------------------
99966           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99967           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99971           -- 5132302
99968                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99969           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99970                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99972           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99973                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99974 
99975       END IF;
99976 
99977       -- 4955764
99978       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99979       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99980 
99981 
99982       XLA_AE_LINES_PKG.ValidateCurrentLine;
99983       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99984 
99985       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99986                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99987                ,p_balance_type_code => l_balance_type_code);
99988 
99989    END IF;
99990 
99991    -----------------------------------------------------------------------------------------
99992    -- 4262811 Multiperiod Accounting
99993    -----------------------------------------------------------------------------------------
99994      -- No MPA option is assigned.
99995 
99996 
99997 END IF;
99998 END IF;
99999 --
100000 
100001 --
100002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100003    trace
100004       (p_msg      => 'END of AcctLineType_178'
100005       ,p_level    => C_LEVEL_PROCEDURE
100006       ,p_module   => l_log_module);
100007 END IF;
100008 --
100009 EXCEPTION
100010   WHEN xla_exceptions_pkg.application_exception THEN
100011       RAISE;
100012   WHEN OTHERS THEN
100013        xla_exceptions_pkg.raise_message
100014            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_178');
100015 END AcctLineType_178;
100016 --
100017 
100018 ---------------------------------------
100019 --
100020 -- PRIVATE FUNCTION
100021 --         AcctLineType_179
100022 --
100023 ---------------------------------------
100024 PROCEDURE AcctLineType_179 (
100025   p_application_id        IN NUMBER
100026  ,p_event_id              IN NUMBER
100027  ,p_calculate_acctd_flag  IN VARCHAR2
100028  ,p_calculate_g_l_flag    IN VARCHAR2
100029  ,p_actual_flag           IN OUT VARCHAR2
100030  ,p_balance_type_code     OUT VARCHAR2
100031  ,p_gain_or_loss_ref      OUT VARCHAR2
100032  
100033 --Payment Currency Code
100034  , p_source_8            IN VARCHAR2
100035 --Automatic Offsets Value
100036  , p_source_10            IN VARCHAR2
100037  , p_source_10_meaning    IN VARCHAR2
100038 --Invoice Distribution Account
100039  , p_source_25            IN NUMBER
100040 --Payables Options Rounding Account
100041  , p_source_45            IN NUMBER
100042 --When to Account for Payment Option
100043  , p_source_57            IN VARCHAR2
100044 --Accounting Reversal Indicator
100045  , p_source_58            IN VARCHAR2
100046 --Distribution Link Type
100047  , p_source_60            IN VARCHAR2
100048 --Override Accounted Amount Indicator
100049  , p_source_85            IN VARCHAR2
100050  , p_source_85_meaning    IN VARCHAR2
100051 --Third Party Type
100052  , p_source_88            IN VARCHAR2
100053 --Invoice Distribution Tax Line Identifier
100054  , p_source_91            IN NUMBER
100055 --Invoice Distribution Summary Tax Line Identifier
100056  , p_source_93            IN NUMBER
100057 --Business Flow Accounts Payable Application Identifier
100058  , p_source_96            IN NUMBER
100059 --Payment Distribution Type
100060  , p_source_101            IN VARCHAR2
100061  , p_source_101_meaning    IN VARCHAR2
100062 --Payment Distribution Amount
100063  , p_source_102            IN NUMBER
100064 --Business Flow Payment Distribution Type
100065  , p_source_103            IN VARCHAR2
100066 --Business Flow Payment Entity Code
100067  , p_source_104            IN VARCHAR2
100068 --Business Flow Payment Distribution Identifier
100069  , p_source_105            IN NUMBER
100070 --Business Flow Payment Identifier
100071  , p_source_106            IN NUMBER
100072 --Payment Distribution Identifier
100073  , p_source_107            IN NUMBER
100074 --Cleared Exchange Date
100075  , p_source_109            IN DATE
100076 --Cleared Exchange Rate
100077  , p_source_110            IN NUMBER
100078 --Cleared Exchange Rate Type
100079  , p_source_111            IN VARCHAR2
100080 --Payment Supplier Identifier
100081  , p_source_113            IN NUMBER
100082 --Payment Supplier Site Identifier
100083  , p_source_114            IN NUMBER
100084 --Payment Distribution Reversed Identifier
100085  , p_source_115            IN NUMBER
100086 --Payment Maturity Date
100087  , p_source_117            IN DATE
100088 --Payment Distribution (Matured Rate) Ledger Amount
100089  , p_source_124            IN NUMBER
100090 )
100091 IS
100092 
100093 l_component_type              VARCHAR2(80);
100094 l_component_code              VARCHAR2(30);
100095 l_component_type_code         VARCHAR2(1);
100096 l_component_appl_id           INTEGER;
100097 l_amb_context_code            VARCHAR2(30);
100098 l_entity_code                 VARCHAR2(30);
100099 l_event_class_code            VARCHAR2(30);
100100 l_ae_header_id                NUMBER;
100101 l_event_type_code             VARCHAR2(30);
100102 l_line_definition_code        VARCHAR2(30);
100106 l_segment                     VARCHAR2(30);
100103 l_line_definition_owner_code  VARCHAR2(1);
100104 --
100105 -- adr variables
100107 l_ccid                        NUMBER;
100108 l_adr_transaction_coa_id      NUMBER;
100109 l_adr_accounting_coa_id       NUMBER;
100110 l_adr_flexfield_segment_code  VARCHAR2(30);
100111 l_adr_flex_value_set_id       NUMBER;
100112 l_adr_value_type_code         VARCHAR2(30);
100113 l_adr_value_combination_id    NUMBER;
100114 l_adr_value_segment_code      VARCHAR2(30);
100115 
100116 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100117 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100118 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100119 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100120 
100121 -- 4262811 Variables ------------------------------------------------------------------------------------------
100122 l_entered_amt_idx             NUMBER;
100123 l_accted_amt_idx              NUMBER;
100124 l_acc_rev_flag                VARCHAR2(1);
100125 l_accrual_line_num            NUMBER;
100126 l_tmp_amt                     NUMBER;
100127 l_acc_rev_natural_side_code   VARCHAR2(1);
100128 
100129 l_num_entries                 NUMBER;
100130 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100131 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100132 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100133 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100134 l_recog_line_1                NUMBER;
100135 l_recog_line_2                NUMBER;
100136 
100137 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100138 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100139 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100140 
100141 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100142 
100143 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100144 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100145 
100146 ---------------------------------------------------------------------------------------------------------------
100147 
100148 
100149 --
100150 -- bulk performance
100151 --
100152 l_balance_type_code           VARCHAR2(1);
100153 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100154 l_log_module                  VARCHAR2(240);
100155 
100156 --
100157 -- Upgrade strategy
100158 --
100159 l_actual_upg_option           VARCHAR2(1);
100160 l_enc_upg_option           VARCHAR2(1);
100161 
100162 --
100163 BEGIN
100164 --
100165 IF g_log_enabled THEN
100166       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_179';
100167 END IF;
100168 --
100169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100170 
100171       trace
100172          (p_msg      => 'BEGIN of AcctLineType_179'
100173          ,p_level    => C_LEVEL_PROCEDURE
100174          ,p_module   => l_log_module);
100175 
100176 END IF;
100177 --
100178 l_component_type             := 'AMB_JLT';
100179 l_component_code             := 'AP_MAT_CLR_ROUNDING_CLEAR';
100180 l_component_type_code        := 'S';
100181 l_component_appl_id          :=  200;
100182 l_amb_context_code           := 'DEFAULT';
100183 l_entity_code                := 'AP_PAYMENTS';
100184 l_event_class_code           := 'RECONCILED PAYMENTS';
100185 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
100186 l_line_definition_owner_code := 'S';
100187 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
100188 --
100189 l_balance_type_code          := 'A';
100190 l_segment                     := NULL;
100191 l_ccid                        := NULL;
100192 l_adr_transaction_coa_id      := NULL;
100193 l_adr_accounting_coa_id       := NULL;
100194 l_adr_flexfield_segment_code  := NULL;
100195 l_adr_flex_value_set_id       := NULL;
100196 l_adr_value_type_code         := NULL;
100197 l_adr_value_combination_id    := NULL;
100198 l_adr_value_segment_code      := NULL;
100199 
100200 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
100201 l_bflow_class_code           := '';    -- 4219869 Business Flow
100202 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100203 l_budgetary_control_flag     := 'N';
100204 
100205 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100206 l_bflow_applied_to_amt       := NULL; -- 5132302
100207 l_entered_amt_idx            := NULL;          -- 4262811
100208 l_accted_amt_idx             := NULL;          -- 4262811
100209 l_acc_rev_flag               := NULL;          -- 4262811
100210 l_accrual_line_num           := NULL;          -- 4262811
100211 l_tmp_amt                    := NULL;          -- 4262811
100212 --
100213  
100214 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100215     l_balance_type_code <> 'B' THEN
100216 IF (NVL(p_source_57,'
100217 ') =  'ALWAYS_ALWAYS' OR 
100218 NVL(p_source_57,'
100219 ') =  'ALWAYS_CLEAR') AND 
100220 NVL(p_source_101,'
100221 ') =  'MATURITY TO CLEARING ROUNDING' AND 
100222 p_source_117 IS NOT NULL 
100223  THEN 
100224 
100225    --
100226    XLA_AE_LINES_PKG.SetNewLine;
100227 
100228    p_balance_type_code          := l_balance_type_code;
100229    -- set the flag so later we will know whether the gain loss line needs to be created
100230    
100234 
100231    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100232      p_actual_flag :='A';
100233    END IF;
100235    --
100236    -- bulk performance
100237    --
100238    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100239                                       p_header_num   => 0); -- 4262811
100240    --
100241    -- set accounting line options
100242    --
100243    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100244            p_natural_side_code          => 'D'
100245          , p_gain_or_loss_flag          => 'N'
100246          , p_gl_transfer_mode_code      => 'S'
100247          , p_acct_entry_type_code       => 'A'
100248          , p_switch_side_flag           => 'Y'
100249          , p_merge_duplicate_code       => 'A'
100250          );
100251    --
100252    l_acc_rev_natural_side_code := 'C';  -- 4262811
100253    -- 
100254    --
100255    -- set accounting line type info
100256    --
100257    xla_ae_lines_pkg.SetAcctLineType
100258       (p_component_type             => l_component_type
100259       ,p_event_type_code            => l_event_type_code
100260       ,p_line_definition_owner_code => l_line_definition_owner_code
100261       ,p_line_definition_code       => l_line_definition_code
100262       ,p_accounting_line_code       => l_component_code
100263       ,p_accounting_line_type_code  => l_component_type_code
100264       ,p_accounting_line_appl_id    => l_component_appl_id
100265       ,p_amb_context_code           => l_amb_context_code
100266       ,p_entity_code                => l_entity_code
100267       ,p_event_class_code           => l_event_class_code);
100268    --
100269    -- set accounting class
100270    --
100271    xla_ae_lines_pkg.SetAcctClass(
100272            p_accounting_class_code  => 'ROUNDING'
100273          , p_ae_header_id           => l_ae_header_id
100274          );
100275 
100276    --
100277    -- set rounding class
100278    --
100279    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100280                       'ROUNDING';
100281 
100282    --
100283    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100284    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100285    --
100286    -- bulk performance
100287    --
100288    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100289 
100290    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100291       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100292 
100293    -- 4955764
100294    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100295       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100296 
100297    -- 4458381 Public Sector Enh
100298    
100299    --
100300    -- set accounting attributes for the line type
100301    --
100302    l_entered_amt_idx := 10;
100303    l_accted_amt_idx  := 15;
100304    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
100305    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100306    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
100307    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
100308    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
100309    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
100310    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
100311    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100312    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
100313    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
100314    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
100315    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
100316    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
100317    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100318    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
100319    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
100320    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
100321    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
100322    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
100323    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
100324    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
100325    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
100326    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
100327    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
100328    l_rec_acct_attrs.array_date_value(12)  := p_source_109;
100329    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
100330    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
100331    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
100332    l_rec_acct_attrs.array_char_value(14)  := p_source_111;
100333    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
100334    l_rec_acct_attrs.array_num_value(15)  := p_source_124;
100335    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
100336    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
100337    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
100338    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
100339    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
100340    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
100341    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
100345    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
100342    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
100343    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
100344    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
100346    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
100347    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
100348    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
100349    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
100350    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
100351    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
100352    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
100353 
100354    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100355    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100356 
100357    ---------------------------------------------------------------------------------------------------------------
100358    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100359    ---------------------------------------------------------------------------------------------------------------
100360    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100361 
100362    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100363    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100364 
100365    IF xla_accounting_cache_pkg.GetValueChar
100366          (p_source_code         => 'LEDGER_CATEGORY_CODE'
100367          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100368    AND l_bflow_method_code = 'PRIOR_ENTRY'
100369 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100370    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100371          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100372        )
100373    THEN
100374          xla_ae_lines_pkg.BflowUpgEntry
100375            (p_business_method_code    => l_bflow_method_code
100376            ,p_business_class_code     => l_bflow_class_code
100377            ,p_balance_type            => l_balance_type_code);
100378    ELSE
100379       NULL;
100380 -- No business flow processing for business flow method of NONE.
100381    END IF;
100382 
100383    --
100384    -- call analytical criteria
100385    --
100386    
100387    --
100388    -- call description
100389    --
100390    -- No description or it is inherited.
100391    --
100392    -- call ADRs
100393    -- Bug 4922099
100394    --
100395    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100396         (NVL(l_actual_upg_option, 'N') = 'O') OR
100397         (NVL(l_enc_upg_option, 'N') = 'O')
100398       )
100399    THEN
100400    NULL;
100401    --
100402    --
100403    
100404   l_ccid := AcctDerRule_43(
100405            p_application_id           => p_application_id
100406          , p_ae_header_id             => l_ae_header_id 
100407 , p_source_10 => p_source_10
100408 , p_source_10_meaning => p_source_10_meaning
100409 , p_source_25 => p_source_25
100410 , p_source_45 => p_source_45
100411          , x_transaction_coa_id       => l_adr_transaction_coa_id
100412          , x_accounting_coa_id        => l_adr_accounting_coa_id
100413          , x_value_type_code          => l_adr_value_type_code
100414          , p_side                     => 'NA'
100415    );
100416 
100417    xla_ae_lines_pkg.set_ccid(
100418     p_code_combination_id          => l_ccid
100419   , p_value_type_code              => l_adr_value_type_code
100420   , p_transaction_coa_id           => l_adr_transaction_coa_id
100421   , p_accounting_coa_id            => l_adr_accounting_coa_id
100422   , p_adr_code                     => 'AP_ROUNDING'
100423   , p_adr_type_code                => 'S'
100424   , p_component_type               => l_component_type
100425   , p_component_code               => l_component_code
100426   , p_component_type_code          => l_component_type_code
100427   , p_component_appl_id            => l_component_appl_id
100428   , p_amb_context_code             => l_amb_context_code
100429   , p_side                         => 'NA'
100430   );
100431 
100432 
100433    --
100434    --
100435    END IF;
100436    --
100437    -- Bug 4922099
100438    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100439           (NVL(l_enc_upg_option, 'N') = 'O')
100440         ) AND
100441         (l_bflow_method_code = 'PRIOR_ENTRY')
100442       )
100443    THEN
100444       IF
100445       --
100446       1 = 2
100447       --
100448       THEN
100449       xla_accounting_err_pkg.build_message
100450                                     (p_appli_s_name            => 'XLA'
100451                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100452                                     ,p_token_1                 => 'LINE_NUMBER'
100453                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
100454                                     ,p_token_2                 => 'LINE_TYPE_NAME'
100455                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
100456                                                                              l_component_type
100460                                                                             ,l_amb_context_code
100457                                                                             ,l_component_code
100458                                                                             ,l_component_type_code
100459                                                                             ,l_component_appl_id
100461                                                                             ,l_entity_code
100462                                                                             ,l_event_class_code
100463                                                                            )
100464                                     ,p_token_3                 => 'OWNER'
100465                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
100466                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
100467                                                                           ,p_lookup_code    => l_component_type_code
100468                                                                          )
100469                                     ,p_token_4                 => 'PRODUCT_NAME'
100470                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100471                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100472                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100473                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100474                                     ,p_ae_header_id            =>  NULL
100475                                        );
100476 
100477         IF (C_LEVEL_ERROR>= g_log_level) THEN
100478                  trace
100479                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100480                       ,p_level    => C_LEVEL_ERROR
100481                       ,p_module   => l_log_module);
100482         END IF;
100483       END IF;
100484    END IF;
100485    --
100486    --
100487    ------------------------------------------------------------------------------------------------
100488    -- 4219869 Business Flow
100489    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100490    -- Prior Entry.  Currently, the following code is always generated.
100491    ------------------------------------------------------------------------------------------------
100492    XLA_AE_LINES_PKG.ValidateCurrentLine;
100493 
100494    ------------------------------------------------------------------------------------
100495    -- 4219869 Business Flow
100496    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100497    ------------------------------------------------------------------------------------
100498    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100499 
100500    ----------------------------------------------------------------------------------
100501    -- 4219869 Business Flow
100502    -- Update journal entry status -- Need to generate this within IF <condition>
100503    ----------------------------------------------------------------------------------
100504    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100505          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100506          ,p_balance_type_code => l_balance_type_code
100507          );
100508 
100509    -------------------------------------------------------------------------------------------
100510    -- 4262811 - Generate the Accrual Reversal lines
100511    -------------------------------------------------------------------------------------------
100512    BEGIN
100513       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100514                               (g_array_event(p_event_id).array_value_num('header_index'));
100515       IF l_acc_rev_flag IS NULL THEN
100516          l_acc_rev_flag := 'N';
100517       END IF;
100518    EXCEPTION
100519       WHEN OTHERS THEN
100520          l_acc_rev_flag := 'N';
100521    END;
100522    --
100523    IF (l_acc_rev_flag = 'Y') THEN
100524 
100525        -- 4645092  ------------------------------------------------------------------------------
100526        -- To allow MPA report to determine if it should generate report process
100527        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100528        ------------------------------------------------------------------------------------------
100529 
100530        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100531        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100532    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
100533    -- call ADRs
100534    -- Bug 4922099
100535    --
100536    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100537         (NVL(l_actual_upg_option, 'N') = 'O') OR
100538         (NVL(l_enc_upg_option, 'N') = 'O')
100539       )
100540    THEN
100541    NULL;
100542    --
100543    --
100544    
100545   l_ccid := AcctDerRule_43(
100546            p_application_id           => p_application_id
100547          , p_ae_header_id             => l_ae_header_id 
100548 , p_source_10 => p_source_10
100549 , p_source_10_meaning => p_source_10_meaning
100550 , p_source_25 => p_source_25
100551 , p_source_45 => p_source_45
100552          , x_transaction_coa_id       => l_adr_transaction_coa_id
100556    );
100553          , x_accounting_coa_id        => l_adr_accounting_coa_id
100554          , x_value_type_code          => l_adr_value_type_code
100555          , p_side                     => 'NA'
100557 
100558    xla_ae_lines_pkg.set_ccid(
100559     p_code_combination_id          => l_ccid
100560   , p_value_type_code              => l_adr_value_type_code
100561   , p_transaction_coa_id           => l_adr_transaction_coa_id
100562   , p_accounting_coa_id            => l_adr_accounting_coa_id
100563   , p_adr_code                     => 'AP_ROUNDING'
100564   , p_adr_type_code                => 'S'
100565   , p_component_type               => l_component_type
100566   , p_component_code               => l_component_code
100567   , p_component_type_code          => l_component_type_code
100568   , p_component_appl_id            => l_component_appl_id
100569   , p_amb_context_code             => l_amb_context_code
100570   , p_side                         => 'NA'
100571   );
100572 
100573 
100574    --
100575    --
100576    END IF;
100577 
100578        --
100579        -- Update the line information that should be overwritten
100580        --
100581        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100582                                          p_header_num   => 1);
100583        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
100584 
100585        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100586 
100587        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
100588           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100589        END IF;
100590 
100591       --
100592       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100593       --
100594       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100595           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
100596       ELSE
100597           ---------------------------------------------------------------------------------------------------
100598           -- 4262811a Switch Sign
100599           ---------------------------------------------------------------------------------------------------
100600           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
100601           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100602                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100603           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100604                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100605           -- 5132302
100606           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100607                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100608 
100609       END IF;
100610 
100611       -- 4955764
100612       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100613       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100614 
100615 
100616       XLA_AE_LINES_PKG.ValidateCurrentLine;
100617       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100618 
100619       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100620                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100621                ,p_balance_type_code => l_balance_type_code);
100622 
100623    END IF;
100624 
100625    -----------------------------------------------------------------------------------------
100626    -- 4262811 Multiperiod Accounting
100627    -----------------------------------------------------------------------------------------
100628      -- No MPA option is assigned.
100629 
100630 
100631 END IF;
100632 END IF;
100633 --
100634 
100635 --
100636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100637    trace
100638       (p_msg      => 'END of AcctLineType_179'
100639       ,p_level    => C_LEVEL_PROCEDURE
100640       ,p_module   => l_log_module);
100641 END IF;
100642 --
100643 EXCEPTION
100644   WHEN xla_exceptions_pkg.application_exception THEN
100645       RAISE;
100646   WHEN OTHERS THEN
100647        xla_exceptions_pkg.raise_message
100648            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_179');
100649 END AcctLineType_179;
100650 --
100651 
100652 ---------------------------------------
100653 --
100654 -- PRIVATE FUNCTION
100655 --         AcctLineType_180
100656 --
100657 ---------------------------------------
100658 PROCEDURE AcctLineType_180 (
100659   p_application_id        IN NUMBER
100660  ,p_event_id              IN NUMBER
100661  ,p_calculate_acctd_flag  IN VARCHAR2
100662  ,p_calculate_g_l_flag    IN VARCHAR2
100663  ,p_actual_flag           IN OUT VARCHAR2
100664  ,p_balance_type_code     OUT VARCHAR2
100665  ,p_gain_or_loss_ref      OUT VARCHAR2
100666  
100667 --Invoice Distribution Description
100668  , p_source_1            IN VARCHAR2
100669 --Invoice Distribution Ledger Amount
100670  , p_source_16            IN NUMBER
100671 --Invoice Distribution Account
100672  , p_source_25            IN NUMBER
100673 --Invoice Distribution Type
100677  , p_source_58            IN VARCHAR2
100674  , p_source_28            IN VARCHAR2
100675  , p_source_28_meaning    IN VARCHAR2
100676 --Accounting Reversal Indicator
100678 --Distribution Link Type
100679  , p_source_60            IN VARCHAR2
100680 --Allocation to Main Distribution Identifier
100681  , p_source_62            IN NUMBER
100682 --Invoice Identifier
100683  , p_source_63            IN NUMBER
100684 --Invoice Distribution Identifier
100685  , p_source_69            IN NUMBER
100686 --Payables Encumbrance Upgrade Credit Account
100687  , p_source_70            IN NUMBER
100688 --Payables Encumbrance Upgrade Credit Amount
100689  , p_source_71            IN NUMBER
100690 --Invoice Currency Code
100691  , p_source_72            IN VARCHAR2
100692 --Payables Encumbrance Upgrade Credit Base Amount
100693  , p_source_73            IN NUMBER
100694 --Payables Encumbrance Upgrade Debit Account
100695  , p_source_74            IN NUMBER
100696 --Payables Encumbrance Upgrade Debit Amount
100697  , p_source_75            IN NUMBER
100698 --Payables Encumbrance Upgrade Debit Base Amount
100699  , p_source_76            IN NUMBER
100700 --Payables Encumbrance Upgrade Option
100701  , p_source_77            IN VARCHAR2
100702 --Invoice Distribution Amount
100703  , p_source_78            IN NUMBER
100704 --Deferred Accounting End Date
100705  , p_source_82            IN DATE
100706 --Deferred Accounting Option
100707  , p_source_83            IN VARCHAR2
100708 --Deferred Accounting Start Date
100709  , p_source_84            IN DATE
100710 --Override Accounted Amount Indicator
100711  , p_source_85            IN VARCHAR2
100712  , p_source_85_meaning    IN VARCHAR2
100713 --Invoice Supplier Identifier
100714  , p_source_86            IN NUMBER
100715 --Invoice Supplier Site Identifier
100716  , p_source_87            IN NUMBER
100717 --Third Party Type
100718  , p_source_88            IN VARCHAR2
100719 --Parent Reversal Identifier
100720  , p_source_89            IN NUMBER
100721 --Invoice Distribution Statistical Amount
100722  , p_source_90            IN NUMBER
100723 --Invoice Distribution Tax Line Identifier
100724  , p_source_91            IN NUMBER
100725 --Invoice Distribution Tax Distribution Identifier from Tax
100726  , p_source_92            IN NUMBER
100727 --Invoice Distribution Summary Tax Line Identifier
100728  , p_source_93            IN NUMBER
100729 --Payables Upgrade Credit Encumbrance Type Identifier
100730  , p_source_94            IN NUMBER
100731 --Payables Upgrade Debit Encumbrance Type Identifier
100732  , p_source_95            IN NUMBER
100733 --Business Flow Accounts Payable Application Identifier
100734  , p_source_96            IN NUMBER
100735 --Business Flow Invoice Distribution Type
100736  , p_source_97            IN VARCHAR2
100737 --Business Flow Invoice Entity Code
100738  , p_source_98            IN VARCHAR2
100739 --Business Flow Invoice Distribution Identifier
100740  , p_source_99            IN NUMBER
100741 --Business Flow Invoice Identifier
100742  , p_source_100            IN NUMBER
100743 --Invoice Exchange Date
100744  , p_source_146            IN DATE
100745 --Invoice Exchange Rate
100746  , p_source_147            IN NUMBER
100747 --Invoice Exchange Rate Type
100748  , p_source_148            IN VARCHAR2
100749 )
100750 IS
100751 
100752 l_component_type              VARCHAR2(80);
100753 l_component_code              VARCHAR2(30);
100754 l_component_type_code         VARCHAR2(1);
100755 l_component_appl_id           INTEGER;
100756 l_amb_context_code            VARCHAR2(30);
100757 l_entity_code                 VARCHAR2(30);
100758 l_event_class_code            VARCHAR2(30);
100759 l_ae_header_id                NUMBER;
100760 l_event_type_code             VARCHAR2(30);
100761 l_line_definition_code        VARCHAR2(30);
100762 l_line_definition_owner_code  VARCHAR2(1);
100763 --
100764 -- adr variables
100765 l_segment                     VARCHAR2(30);
100766 l_ccid                        NUMBER;
100767 l_adr_transaction_coa_id      NUMBER;
100768 l_adr_accounting_coa_id       NUMBER;
100769 l_adr_flexfield_segment_code  VARCHAR2(30);
100770 l_adr_flex_value_set_id       NUMBER;
100771 l_adr_value_type_code         VARCHAR2(30);
100772 l_adr_value_combination_id    NUMBER;
100773 l_adr_value_segment_code      VARCHAR2(30);
100774 
100775 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100776 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100777 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100778 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100779 
100780 -- 4262811 Variables ------------------------------------------------------------------------------------------
100781 l_entered_amt_idx             NUMBER;
100782 l_accted_amt_idx              NUMBER;
100783 l_acc_rev_flag                VARCHAR2(1);
100784 l_accrual_line_num            NUMBER;
100785 l_tmp_amt                     NUMBER;
100786 l_acc_rev_natural_side_code   VARCHAR2(1);
100787 
100788 l_num_entries                 NUMBER;
100789 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100790 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100791 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100792 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100793 l_recog_line_1                NUMBER;
100794 l_recog_line_2                NUMBER;
100795 
100796 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100797 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100801 
100798 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100799 
100800 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100802 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100803 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100804 
100805 ---------------------------------------------------------------------------------------------------------------
100806 
100807 
100808 --
100809 -- bulk performance
100810 --
100811 l_balance_type_code           VARCHAR2(1);
100812 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100813 l_log_module                  VARCHAR2(240);
100814 
100815 --
100816 -- Upgrade strategy
100817 --
100818 l_actual_upg_option           VARCHAR2(1);
100819 l_enc_upg_option           VARCHAR2(1);
100820 
100821 --
100822 BEGIN
100823 --
100824 IF g_log_enabled THEN
100825       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_180';
100826 END IF;
100827 --
100828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100829 
100830       trace
100831          (p_msg      => 'BEGIN of AcctLineType_180'
100832          ,p_level    => C_LEVEL_PROCEDURE
100833          ,p_module   => l_log_module);
100834 
100835 END IF;
100836 --
100837 l_component_type             := 'AMB_JLT';
100838 l_component_code             := 'AP_MISC_EXPENSE_CM';
100839 l_component_type_code        := 'S';
100840 l_component_appl_id          :=  200;
100841 l_amb_context_code           := 'DEFAULT';
100842 l_entity_code                := 'AP_INVOICES';
100843 l_event_class_code           := 'CREDIT MEMOS';
100844 l_event_type_code            := 'CREDIT MEMOS_ALL';
100845 l_line_definition_owner_code := 'S';
100846 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
100847 --
100848 l_balance_type_code          := 'A';
100849 l_segment                     := NULL;
100850 l_ccid                        := NULL;
100851 l_adr_transaction_coa_id      := NULL;
100852 l_adr_accounting_coa_id       := NULL;
100853 l_adr_flexfield_segment_code  := NULL;
100854 l_adr_flex_value_set_id       := NULL;
100855 l_adr_value_type_code         := NULL;
100856 l_adr_value_combination_id    := NULL;
100857 l_adr_value_segment_code      := NULL;
100858 
100859 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
100860 l_bflow_class_code           := '';    -- 4219869 Business Flow
100861 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100862 l_budgetary_control_flag     := 'N';
100863 
100864 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100865 l_bflow_applied_to_amt       := NULL; -- 5132302
100866 l_entered_amt_idx            := NULL;          -- 4262811
100867 l_accted_amt_idx             := NULL;          -- 4262811
100868 l_acc_rev_flag               := NULL;          -- 4262811
100869 l_accrual_line_num           := NULL;          -- 4262811
100870 l_tmp_amt                    := NULL;          -- 4262811
100871 --
100872  
100873 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100874     l_balance_type_code <> 'B' THEN
100875 IF NVL(p_source_28,'
100876 ') =  'MISCELLANEOUS'
100877  THEN 
100878 
100879    --
100880    XLA_AE_LINES_PKG.SetNewLine;
100881 
100882    p_balance_type_code          := l_balance_type_code;
100883    -- set the flag so later we will know whether the gain loss line needs to be created
100884    
100885    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100886      p_actual_flag :='A';
100887    END IF;
100888 
100889    --
100890    -- bulk performance
100891    --
100892    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100893                                       p_header_num   => 0); -- 4262811
100894    --
100895    -- set accounting line options
100896    --
100897    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100898            p_natural_side_code          => 'D'
100899          , p_gain_or_loss_flag          => 'N'
100900          , p_gl_transfer_mode_code      => 'S'
100901          , p_acct_entry_type_code       => 'A'
100902          , p_switch_side_flag           => 'Y'
100903          , p_merge_duplicate_code       => 'A'
100904          );
100905    --
100906    l_acc_rev_natural_side_code := 'C';  -- 4262811
100907    -- 
100908    --
100909    -- set accounting line type info
100910    --
100911    xla_ae_lines_pkg.SetAcctLineType
100912       (p_component_type             => l_component_type
100913       ,p_event_type_code            => l_event_type_code
100914       ,p_line_definition_owner_code => l_line_definition_owner_code
100915       ,p_line_definition_code       => l_line_definition_code
100916       ,p_accounting_line_code       => l_component_code
100917       ,p_accounting_line_type_code  => l_component_type_code
100918       ,p_accounting_line_appl_id    => l_component_appl_id
100919       ,p_amb_context_code           => l_amb_context_code
100920       ,p_entity_code                => l_entity_code
100921       ,p_event_class_code           => l_event_class_code);
100922    --
100923    -- set accounting class
100924    --
100925    xla_ae_lines_pkg.SetAcctClass(
100926            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
100927          , p_ae_header_id           => l_ae_header_id
100928          );
100929 
100930    --
100931    -- set rounding class
100932    --
100933    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100937    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100934                       'MISCELLANEOUS EXPENSE';
100935 
100936    --
100938    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100939    --
100940    -- bulk performance
100941    --
100942    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100943 
100944    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100945       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100946 
100947    -- 4955764
100948    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100949       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100950 
100951    -- 4458381 Public Sector Enh
100952    
100953    --
100954    -- set accounting attributes for the line type
100955    --
100956    l_entered_amt_idx := 23;
100957    l_accted_amt_idx  := 28;
100958    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
100959    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100960    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
100961    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
100962    l_rec_acct_attrs.array_num_value(2)  := 
100963 xla_ae_sources_pkg.GetSystemSourceNum(
100964    p_source_code           => 'XLA_EVENT_APPL_ID'
100965  , p_source_type_code      => 'Y'
100966  , p_source_application_id =>  602
100967 );
100968    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
100969    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
100970    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
100971    l_rec_acct_attrs.array_char_value(4)  := 
100972 xla_ae_sources_pkg.GetSystemSourceChar(
100973    p_source_code           => 'XLA_ENTITY_CODE'
100974  , p_source_type_code      => 'Y'
100975  , p_source_application_id =>  602
100976 );
100977    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
100978    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
100979    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
100980    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
100981    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
100982    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
100983    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100984    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
100985    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
100986    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
100987    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
100988    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
100989    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100990    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
100991    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
100992    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
100993    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
100994    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
100995    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
100996    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
100997    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
100998    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
100999    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
101000    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
101001    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
101002    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
101003    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
101004    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
101005    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
101006    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
101007    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
101008    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
101009    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
101010    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
101011    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
101012    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
101013    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
101014    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
101015    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
101016    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
101017    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
101018    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
101019    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
101020    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
101021    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
101022    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
101023    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
101024    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
101025    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
101026    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
101027    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
101028    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
101032    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
101029    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
101030    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
101031    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
101033    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
101034    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
101035    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
101036    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
101037    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
101038    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
101039    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
101040    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
101041    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
101042    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
101043    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
101044    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
101045    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
101046    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
101047    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
101048    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
101049    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
101050    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
101051    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
101052    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
101053    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
101054    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
101055 
101056    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101057    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101058 
101059    ---------------------------------------------------------------------------------------------------------------
101060    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101061    ---------------------------------------------------------------------------------------------------------------
101062    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101063 
101064    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101065    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101066 
101067    IF xla_accounting_cache_pkg.GetValueChar
101068          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101069          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101070    AND l_bflow_method_code = 'PRIOR_ENTRY'
101071 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101072    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101073          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101074        )
101075    THEN
101076          xla_ae_lines_pkg.BflowUpgEntry
101077            (p_business_method_code    => l_bflow_method_code
101078            ,p_business_class_code     => l_bflow_class_code
101079            ,p_balance_type            => l_balance_type_code);
101080    ELSE
101081       NULL;
101082 -- No business flow processing for business flow method of NONE.
101083    END IF;
101084 
101085    --
101086    -- call analytical criteria
101087    --
101088    
101089    --
101090    -- call description
101091    --
101092    
101093 xla_ae_lines_pkg.SetLineDescription(
101094    p_ae_header_id => l_ae_header_id
101095   ,p_description  => Description_2 (
101096      p_application_id         => p_application_id
101097    , p_ae_header_id           => l_ae_header_id 
101098 , p_source_1 => p_source_1
101099    )
101100 );
101101 
101102 
101103    --
101104    -- call ADRs
101105    -- Bug 4922099
101106    --
101107    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101108         (NVL(l_actual_upg_option, 'N') = 'O') OR
101109         (NVL(l_enc_upg_option, 'N') = 'O')
101110       )
101111    THEN
101112    NULL;
101113    --
101114    --
101115    
101116   l_ccid := AcctDerRule_35(
101117            p_application_id           => p_application_id
101118          , p_ae_header_id             => l_ae_header_id 
101119 , p_source_25 => p_source_25
101120          , x_transaction_coa_id       => l_adr_transaction_coa_id
101121          , x_accounting_coa_id        => l_adr_accounting_coa_id
101122          , x_value_type_code          => l_adr_value_type_code
101123          , p_side                     => 'NA'
101124    );
101125 
101126    xla_ae_lines_pkg.set_ccid(
101127     p_code_combination_id          => l_ccid
101128   , p_value_type_code              => l_adr_value_type_code
101129   , p_transaction_coa_id           => l_adr_transaction_coa_id
101130   , p_accounting_coa_id            => l_adr_accounting_coa_id
101131   , p_adr_code                     => 'AP_INVOICE_DIST'
101132   , p_adr_type_code                => 'S'
101133   , p_component_type               => l_component_type
101134   , p_component_code               => l_component_code
101135   , p_component_type_code          => l_component_type_code
101136   , p_component_appl_id            => l_component_appl_id
101137   , p_amb_context_code             => l_amb_context_code
101138   , p_side                         => 'NA'
101142    --
101139   );
101140 
101141 
101143    --
101144    END IF;
101145    --
101146    -- Bug 4922099
101147    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101148           (NVL(l_enc_upg_option, 'N') = 'O')
101149         ) AND
101150         (l_bflow_method_code = 'PRIOR_ENTRY')
101151       )
101152    THEN
101153       IF
101154       --
101155       1 = 2
101156       --
101157       THEN
101158       xla_accounting_err_pkg.build_message
101159                                     (p_appli_s_name            => 'XLA'
101160                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101161                                     ,p_token_1                 => 'LINE_NUMBER'
101162                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101163                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101164                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101165                                                                              l_component_type
101166                                                                             ,l_component_code
101167                                                                             ,l_component_type_code
101168                                                                             ,l_component_appl_id
101169                                                                             ,l_amb_context_code
101170                                                                             ,l_entity_code
101171                                                                             ,l_event_class_code
101172                                                                            )
101173                                     ,p_token_3                 => 'OWNER'
101174                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101175                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101176                                                                           ,p_lookup_code    => l_component_type_code
101177                                                                          )
101178                                     ,p_token_4                 => 'PRODUCT_NAME'
101179                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101180                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101181                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101182                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101183                                     ,p_ae_header_id            =>  NULL
101184                                        );
101185 
101186         IF (C_LEVEL_ERROR>= g_log_level) THEN
101187                  trace
101188                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101189                       ,p_level    => C_LEVEL_ERROR
101190                       ,p_module   => l_log_module);
101191         END IF;
101192       END IF;
101193    END IF;
101194    --
101195    --
101196    ------------------------------------------------------------------------------------------------
101197    -- 4219869 Business Flow
101198    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101199    -- Prior Entry.  Currently, the following code is always generated.
101200    ------------------------------------------------------------------------------------------------
101201    XLA_AE_LINES_PKG.ValidateCurrentLine;
101202 
101203    ------------------------------------------------------------------------------------
101204    -- 4219869 Business Flow
101205    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101206    ------------------------------------------------------------------------------------
101207    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101208 
101209    ----------------------------------------------------------------------------------
101210    -- 4219869 Business Flow
101211    -- Update journal entry status -- Need to generate this within IF <condition>
101212    ----------------------------------------------------------------------------------
101213    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101214          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101215          ,p_balance_type_code => l_balance_type_code
101216          );
101217 
101218    -------------------------------------------------------------------------------------------
101219    -- 4262811 - Generate the Accrual Reversal lines
101220    -------------------------------------------------------------------------------------------
101221    BEGIN
101222       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101223                               (g_array_event(p_event_id).array_value_num('header_index'));
101224       IF l_acc_rev_flag IS NULL THEN
101225          l_acc_rev_flag := 'N';
101226       END IF;
101227    EXCEPTION
101228       WHEN OTHERS THEN
101229          l_acc_rev_flag := 'N';
101230    END;
101231    --
101232    IF (l_acc_rev_flag = 'Y') THEN
101233 
101234        -- 4645092  ------------------------------------------------------------------------------
101235        -- To allow MPA report to determine if it should generate report process
101236        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101240        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101237        ------------------------------------------------------------------------------------------
101238 
101239        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101241    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101242    -- call ADRs
101243    -- Bug 4922099
101244    --
101245    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101246         (NVL(l_actual_upg_option, 'N') = 'O') OR
101247         (NVL(l_enc_upg_option, 'N') = 'O')
101248       )
101249    THEN
101250    NULL;
101251    --
101252    --
101253    
101254   l_ccid := AcctDerRule_35(
101255            p_application_id           => p_application_id
101256          , p_ae_header_id             => l_ae_header_id 
101257 , p_source_25 => p_source_25
101258          , x_transaction_coa_id       => l_adr_transaction_coa_id
101259          , x_accounting_coa_id        => l_adr_accounting_coa_id
101260          , x_value_type_code          => l_adr_value_type_code
101261          , p_side                     => 'NA'
101262    );
101263 
101264    xla_ae_lines_pkg.set_ccid(
101265     p_code_combination_id          => l_ccid
101266   , p_value_type_code              => l_adr_value_type_code
101267   , p_transaction_coa_id           => l_adr_transaction_coa_id
101268   , p_accounting_coa_id            => l_adr_accounting_coa_id
101269   , p_adr_code                     => 'AP_INVOICE_DIST'
101270   , p_adr_type_code                => 'S'
101271   , p_component_type               => l_component_type
101272   , p_component_code               => l_component_code
101273   , p_component_type_code          => l_component_type_code
101274   , p_component_appl_id            => l_component_appl_id
101275   , p_amb_context_code             => l_amb_context_code
101276   , p_side                         => 'NA'
101277   );
101278 
101279 
101280    --
101281    --
101282    END IF;
101283 
101284        --
101285        -- Update the line information that should be overwritten
101286        --
101287        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101288                                          p_header_num   => 1);
101289        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101290 
101291        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101292 
101293        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101294           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101295        END IF;
101296 
101297       --
101298       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101299       --
101300       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101301           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101302       ELSE
101303           ---------------------------------------------------------------------------------------------------
101304           -- 4262811a Switch Sign
101305           ---------------------------------------------------------------------------------------------------
101306           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101307           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101308                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101309           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101310                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101311           -- 5132302
101312           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101313                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101314 
101315       END IF;
101316 
101317       -- 4955764
101318       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101319       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101320 
101321 
101322       XLA_AE_LINES_PKG.ValidateCurrentLine;
101323       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101324 
101325       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101326                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101327                ,p_balance_type_code => l_balance_type_code);
101328 
101329    END IF;
101330 
101331    -----------------------------------------------------------------------------------------
101332    -- 4262811 Multiperiod Accounting
101333    -----------------------------------------------------------------------------------------
101334      -- No MPA option is assigned.
101335 
101336 
101337 END IF;
101338 END IF;
101339 --
101340 
101341 --
101342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101343    trace
101344       (p_msg      => 'END of AcctLineType_180'
101345       ,p_level    => C_LEVEL_PROCEDURE
101346       ,p_module   => l_log_module);
101347 END IF;
101348 --
101349 EXCEPTION
101350   WHEN xla_exceptions_pkg.application_exception THEN
101351       RAISE;
101352   WHEN OTHERS THEN
101353        xla_exceptions_pkg.raise_message
101354            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_180');
101355 END AcctLineType_180;
101359 --
101356 --
101357 
101358 ---------------------------------------
101360 -- PRIVATE FUNCTION
101361 --         AcctLineType_181
101362 --
101363 ---------------------------------------
101364 PROCEDURE AcctLineType_181 (
101365   p_application_id        IN NUMBER
101366  ,p_event_id              IN NUMBER
101367  ,p_calculate_acctd_flag  IN VARCHAR2
101368  ,p_calculate_g_l_flag    IN VARCHAR2
101369  ,p_actual_flag           IN OUT VARCHAR2
101370  ,p_balance_type_code     OUT VARCHAR2
101371  ,p_gain_or_loss_ref      OUT VARCHAR2
101372  
101373 --Invoice Distribution Description
101374  , p_source_1            IN VARCHAR2
101375 --Invoice Distribution Ledger Amount
101376  , p_source_16            IN NUMBER
101377 --Invoice Distribution Account
101378  , p_source_25            IN NUMBER
101379 --Invoice Distribution Type
101380  , p_source_28            IN VARCHAR2
101381  , p_source_28_meaning    IN VARCHAR2
101382 --Accounting Reversal Indicator
101383  , p_source_58            IN VARCHAR2
101384 --Distribution Link Type
101385  , p_source_60            IN VARCHAR2
101386 --Allocation to Main Distribution Identifier
101387  , p_source_62            IN NUMBER
101388 --Invoice Identifier
101389  , p_source_63            IN NUMBER
101390 --Invoice Distribution Identifier
101391  , p_source_69            IN NUMBER
101392 --Payables Encumbrance Upgrade Credit Account
101393  , p_source_70            IN NUMBER
101394 --Payables Encumbrance Upgrade Credit Amount
101395  , p_source_71            IN NUMBER
101396 --Invoice Currency Code
101397  , p_source_72            IN VARCHAR2
101398 --Payables Encumbrance Upgrade Credit Base Amount
101399  , p_source_73            IN NUMBER
101400 --Payables Encumbrance Upgrade Debit Account
101401  , p_source_74            IN NUMBER
101402 --Payables Encumbrance Upgrade Debit Amount
101403  , p_source_75            IN NUMBER
101404 --Payables Encumbrance Upgrade Debit Base Amount
101405  , p_source_76            IN NUMBER
101406 --Payables Encumbrance Upgrade Option
101407  , p_source_77            IN VARCHAR2
101408 --Invoice Distribution Amount
101409  , p_source_78            IN NUMBER
101410 --Deferred Accounting End Date
101411  , p_source_82            IN DATE
101412 --Deferred Accounting Option
101413  , p_source_83            IN VARCHAR2
101414 --Deferred Accounting Start Date
101415  , p_source_84            IN DATE
101416 --Override Accounted Amount Indicator
101417  , p_source_85            IN VARCHAR2
101418  , p_source_85_meaning    IN VARCHAR2
101419 --Invoice Supplier Identifier
101420  , p_source_86            IN NUMBER
101421 --Invoice Supplier Site Identifier
101422  , p_source_87            IN NUMBER
101423 --Third Party Type
101424  , p_source_88            IN VARCHAR2
101425 --Parent Reversal Identifier
101426  , p_source_89            IN NUMBER
101427 --Invoice Distribution Tax Line Identifier
101428  , p_source_91            IN NUMBER
101429 --Invoice Distribution Tax Distribution Identifier from Tax
101430  , p_source_92            IN NUMBER
101431 --Invoice Distribution Summary Tax Line Identifier
101432  , p_source_93            IN NUMBER
101433 --Payables Upgrade Credit Encumbrance Type Identifier
101434  , p_source_94            IN NUMBER
101435 --Payables Upgrade Debit Encumbrance Type Identifier
101436  , p_source_95            IN NUMBER
101437 --Business Flow Accounts Payable Application Identifier
101438  , p_source_96            IN NUMBER
101439 --Business Flow Invoice Distribution Type
101440  , p_source_97            IN VARCHAR2
101441 --Business Flow Invoice Entity Code
101442  , p_source_98            IN VARCHAR2
101443 --Business Flow Invoice Distribution Identifier
101444  , p_source_99            IN NUMBER
101445 --Business Flow Invoice Identifier
101446  , p_source_100            IN NUMBER
101447 --Invoice Exchange Date
101448  , p_source_146            IN DATE
101449 --Invoice Exchange Rate
101450  , p_source_147            IN NUMBER
101451 --Invoice Exchange Rate Type
101452  , p_source_148            IN VARCHAR2
101453 )
101454 IS
101455 
101456 l_component_type              VARCHAR2(80);
101457 l_component_code              VARCHAR2(30);
101458 l_component_type_code         VARCHAR2(1);
101459 l_component_appl_id           INTEGER;
101460 l_amb_context_code            VARCHAR2(30);
101461 l_entity_code                 VARCHAR2(30);
101462 l_event_class_code            VARCHAR2(30);
101463 l_ae_header_id                NUMBER;
101464 l_event_type_code             VARCHAR2(30);
101465 l_line_definition_code        VARCHAR2(30);
101466 l_line_definition_owner_code  VARCHAR2(1);
101467 --
101468 -- adr variables
101469 l_segment                     VARCHAR2(30);
101470 l_ccid                        NUMBER;
101471 l_adr_transaction_coa_id      NUMBER;
101472 l_adr_accounting_coa_id       NUMBER;
101473 l_adr_flexfield_segment_code  VARCHAR2(30);
101474 l_adr_flex_value_set_id       NUMBER;
101475 l_adr_value_type_code         VARCHAR2(30);
101476 l_adr_value_combination_id    NUMBER;
101477 l_adr_value_segment_code      VARCHAR2(30);
101478 
101479 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
101480 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
101481 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
101482 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
101483 
101484 -- 4262811 Variables ------------------------------------------------------------------------------------------
101485 l_entered_amt_idx             NUMBER;
101486 l_accted_amt_idx              NUMBER;
101490 l_acc_rev_natural_side_code   VARCHAR2(1);
101487 l_acc_rev_flag                VARCHAR2(1);
101488 l_accrual_line_num            NUMBER;
101489 l_tmp_amt                     NUMBER;
101491 
101492 l_num_entries                 NUMBER;
101493 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
101494 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
101495 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
101496 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
101497 l_recog_line_1                NUMBER;
101498 l_recog_line_2                NUMBER;
101499 
101500 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
101501 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
101502 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
101503 
101504 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101505 
101506 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
101507 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
101508 
101509 ---------------------------------------------------------------------------------------------------------------
101510 
101511 
101512 --
101513 -- bulk performance
101514 --
101515 l_balance_type_code           VARCHAR2(1);
101516 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
101517 l_log_module                  VARCHAR2(240);
101518 
101519 --
101520 -- Upgrade strategy
101521 --
101522 l_actual_upg_option           VARCHAR2(1);
101523 l_enc_upg_option           VARCHAR2(1);
101524 
101525 --
101526 BEGIN
101527 --
101528 IF g_log_enabled THEN
101529       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_181';
101530 END IF;
101531 --
101532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101533 
101534       trace
101535          (p_msg      => 'BEGIN of AcctLineType_181'
101536          ,p_level    => C_LEVEL_PROCEDURE
101537          ,p_module   => l_log_module);
101538 
101539 END IF;
101540 --
101541 l_component_type             := 'AMB_JLT';
101542 l_component_code             := 'AP_MISC_EXPENSE_DM';
101543 l_component_type_code        := 'S';
101544 l_component_appl_id          :=  200;
101545 l_amb_context_code           := 'DEFAULT';
101546 l_entity_code                := 'AP_INVOICES';
101547 l_event_class_code           := 'DEBIT MEMOS';
101548 l_event_type_code            := 'DEBIT MEMOS_ALL';
101549 l_line_definition_owner_code := 'S';
101550 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
101551 --
101552 l_balance_type_code          := 'A';
101553 l_segment                     := NULL;
101554 l_ccid                        := NULL;
101555 l_adr_transaction_coa_id      := NULL;
101556 l_adr_accounting_coa_id       := NULL;
101557 l_adr_flexfield_segment_code  := NULL;
101558 l_adr_flex_value_set_id       := NULL;
101559 l_adr_value_type_code         := NULL;
101560 l_adr_value_combination_id    := NULL;
101561 l_adr_value_segment_code      := NULL;
101562 
101563 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
101564 l_bflow_class_code           := '';    -- 4219869 Business Flow
101565 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
101566 l_budgetary_control_flag     := 'N';
101567 
101568 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
101569 l_bflow_applied_to_amt       := NULL; -- 5132302
101570 l_entered_amt_idx            := NULL;          -- 4262811
101571 l_accted_amt_idx             := NULL;          -- 4262811
101572 l_acc_rev_flag               := NULL;          -- 4262811
101573 l_accrual_line_num           := NULL;          -- 4262811
101574 l_tmp_amt                    := NULL;          -- 4262811
101575 --
101576  
101577 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101578     l_balance_type_code <> 'B' THEN
101579 IF NVL(p_source_28,'
101580 ') =  'MISCELLANEOUS'
101581  THEN 
101582 
101583    --
101584    XLA_AE_LINES_PKG.SetNewLine;
101585 
101586    p_balance_type_code          := l_balance_type_code;
101587    -- set the flag so later we will know whether the gain loss line needs to be created
101588    
101589    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
101590      p_actual_flag :='A';
101591    END IF;
101592 
101593    --
101594    -- bulk performance
101595    --
101596    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101597                                       p_header_num   => 0); -- 4262811
101598    --
101599    -- set accounting line options
101600    --
101601    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101602            p_natural_side_code          => 'D'
101603          , p_gain_or_loss_flag          => 'N'
101604          , p_gl_transfer_mode_code      => 'S'
101605          , p_acct_entry_type_code       => 'A'
101606          , p_switch_side_flag           => 'Y'
101607          , p_merge_duplicate_code       => 'A'
101608          );
101609    --
101610    l_acc_rev_natural_side_code := 'C';  -- 4262811
101611    -- 
101612    --
101613    -- set accounting line type info
101614    --
101615    xla_ae_lines_pkg.SetAcctLineType
101616       (p_component_type             => l_component_type
101617       ,p_event_type_code            => l_event_type_code
101618       ,p_line_definition_owner_code => l_line_definition_owner_code
101619       ,p_line_definition_code       => l_line_definition_code
101623       ,p_amb_context_code           => l_amb_context_code
101620       ,p_accounting_line_code       => l_component_code
101621       ,p_accounting_line_type_code  => l_component_type_code
101622       ,p_accounting_line_appl_id    => l_component_appl_id
101624       ,p_entity_code                => l_entity_code
101625       ,p_event_class_code           => l_event_class_code);
101626    --
101627    -- set accounting class
101628    --
101629    xla_ae_lines_pkg.SetAcctClass(
101630            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
101631          , p_ae_header_id           => l_ae_header_id
101632          );
101633 
101634    --
101635    -- set rounding class
101636    --
101637    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101638                       'MISCELLANEOUS EXPENSE';
101639 
101640    --
101641    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101642    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101643    --
101644    -- bulk performance
101645    --
101646    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101647 
101648    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101649       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101650 
101651    -- 4955764
101652    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101653       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101654 
101655    -- 4458381 Public Sector Enh
101656    
101657    --
101658    -- set accounting attributes for the line type
101659    --
101660    l_entered_amt_idx := 23;
101661    l_accted_amt_idx  := 28;
101662    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
101663    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101664    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
101665    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
101666    l_rec_acct_attrs.array_num_value(2)  := 
101667 xla_ae_sources_pkg.GetSystemSourceNum(
101668    p_source_code           => 'XLA_EVENT_APPL_ID'
101669  , p_source_type_code      => 'Y'
101670  , p_source_application_id =>  602
101671 );
101672    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
101673    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
101674    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
101675    l_rec_acct_attrs.array_char_value(4)  := 
101676 xla_ae_sources_pkg.GetSystemSourceChar(
101677    p_source_code           => 'XLA_ENTITY_CODE'
101678  , p_source_type_code      => 'Y'
101679  , p_source_application_id =>  602
101680 );
101681    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
101682    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
101683    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
101684    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
101685    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
101686    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
101687    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101688    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
101689    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
101690    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
101691    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
101692    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
101693    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101694    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
101695    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
101696    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
101697    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
101698    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
101699    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
101700    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
101701    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
101702    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
101703    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
101704    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
101705    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
101706    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
101707    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
101708    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
101709    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
101710    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
101711    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
101712    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
101713    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
101714    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
101715    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
101716    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
101717    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
101718    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
101722    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
101719    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
101720    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
101721    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
101723    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
101724    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
101725    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
101726    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
101727    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
101728    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
101729    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
101730    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
101731    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
101732    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
101733    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
101734    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
101735    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
101736    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
101737    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
101738    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
101739    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
101740    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
101741    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
101742    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
101743    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
101744    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
101745    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
101746    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
101747    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
101748    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
101749    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
101750    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
101751    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
101752    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
101753    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
101754    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
101755    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
101756    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
101757 
101758    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101759    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101760 
101761    ---------------------------------------------------------------------------------------------------------------
101762    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101763    ---------------------------------------------------------------------------------------------------------------
101764    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101765 
101766    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101767    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101768 
101769    IF xla_accounting_cache_pkg.GetValueChar
101770          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101771          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101772    AND l_bflow_method_code = 'PRIOR_ENTRY'
101773 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101774    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101775          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101776        )
101777    THEN
101778          xla_ae_lines_pkg.BflowUpgEntry
101779            (p_business_method_code    => l_bflow_method_code
101780            ,p_business_class_code     => l_bflow_class_code
101781            ,p_balance_type            => l_balance_type_code);
101782    ELSE
101783       NULL;
101784 -- No business flow processing for business flow method of NONE.
101785    END IF;
101786 
101787    --
101788    -- call analytical criteria
101789    --
101790    
101791    --
101792    -- call description
101793    --
101794    
101795 xla_ae_lines_pkg.SetLineDescription(
101796    p_ae_header_id => l_ae_header_id
101797   ,p_description  => Description_2 (
101798      p_application_id         => p_application_id
101799    , p_ae_header_id           => l_ae_header_id 
101800 , p_source_1 => p_source_1
101801    )
101802 );
101803 
101804 
101805    --
101806    -- call ADRs
101807    -- Bug 4922099
101808    --
101809    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101810         (NVL(l_actual_upg_option, 'N') = 'O') OR
101811         (NVL(l_enc_upg_option, 'N') = 'O')
101812       )
101813    THEN
101814    NULL;
101815    --
101816    --
101817    
101818   l_ccid := AcctDerRule_35(
101819            p_application_id           => p_application_id
101820          , p_ae_header_id             => l_ae_header_id 
101821 , p_source_25 => p_source_25
101822          , x_transaction_coa_id       => l_adr_transaction_coa_id
101823          , x_accounting_coa_id        => l_adr_accounting_coa_id
101824          , x_value_type_code          => l_adr_value_type_code
101825          , p_side                     => 'NA'
101829     p_code_combination_id          => l_ccid
101826    );
101827 
101828    xla_ae_lines_pkg.set_ccid(
101830   , p_value_type_code              => l_adr_value_type_code
101831   , p_transaction_coa_id           => l_adr_transaction_coa_id
101832   , p_accounting_coa_id            => l_adr_accounting_coa_id
101833   , p_adr_code                     => 'AP_INVOICE_DIST'
101834   , p_adr_type_code                => 'S'
101835   , p_component_type               => l_component_type
101836   , p_component_code               => l_component_code
101837   , p_component_type_code          => l_component_type_code
101838   , p_component_appl_id            => l_component_appl_id
101839   , p_amb_context_code             => l_amb_context_code
101840   , p_side                         => 'NA'
101841   );
101842 
101843 
101844    --
101845    --
101846    END IF;
101847    --
101848    -- Bug 4922099
101849    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101850           (NVL(l_enc_upg_option, 'N') = 'O')
101851         ) AND
101852         (l_bflow_method_code = 'PRIOR_ENTRY')
101853       )
101854    THEN
101855       IF
101856       --
101857       1 = 2
101858       --
101859       THEN
101860       xla_accounting_err_pkg.build_message
101861                                     (p_appli_s_name            => 'XLA'
101862                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101863                                     ,p_token_1                 => 'LINE_NUMBER'
101864                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101865                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101866                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101867                                                                              l_component_type
101868                                                                             ,l_component_code
101869                                                                             ,l_component_type_code
101870                                                                             ,l_component_appl_id
101871                                                                             ,l_amb_context_code
101872                                                                             ,l_entity_code
101873                                                                             ,l_event_class_code
101874                                                                            )
101875                                     ,p_token_3                 => 'OWNER'
101876                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101877                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101878                                                                           ,p_lookup_code    => l_component_type_code
101879                                                                          )
101880                                     ,p_token_4                 => 'PRODUCT_NAME'
101881                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101882                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101883                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101884                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101885                                     ,p_ae_header_id            =>  NULL
101886                                        );
101887 
101888         IF (C_LEVEL_ERROR>= g_log_level) THEN
101889                  trace
101890                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101891                       ,p_level    => C_LEVEL_ERROR
101892                       ,p_module   => l_log_module);
101893         END IF;
101894       END IF;
101895    END IF;
101896    --
101897    --
101898    ------------------------------------------------------------------------------------------------
101899    -- 4219869 Business Flow
101900    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101901    -- Prior Entry.  Currently, the following code is always generated.
101902    ------------------------------------------------------------------------------------------------
101903    XLA_AE_LINES_PKG.ValidateCurrentLine;
101904 
101905    ------------------------------------------------------------------------------------
101906    -- 4219869 Business Flow
101907    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101908    ------------------------------------------------------------------------------------
101909    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101910 
101911    ----------------------------------------------------------------------------------
101912    -- 4219869 Business Flow
101913    -- Update journal entry status -- Need to generate this within IF <condition>
101914    ----------------------------------------------------------------------------------
101915    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101916          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101917          ,p_balance_type_code => l_balance_type_code
101918          );
101919 
101920    -------------------------------------------------------------------------------------------
101921    -- 4262811 - Generate the Accrual Reversal lines
101922    -------------------------------------------------------------------------------------------
101926       IF l_acc_rev_flag IS NULL THEN
101923    BEGIN
101924       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101925                               (g_array_event(p_event_id).array_value_num('header_index'));
101927          l_acc_rev_flag := 'N';
101928       END IF;
101929    EXCEPTION
101930       WHEN OTHERS THEN
101931          l_acc_rev_flag := 'N';
101932    END;
101933    --
101934    IF (l_acc_rev_flag = 'Y') THEN
101935 
101936        -- 4645092  ------------------------------------------------------------------------------
101937        -- To allow MPA report to determine if it should generate report process
101938        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101939        ------------------------------------------------------------------------------------------
101940 
101941        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101942        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101943    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101944    -- call ADRs
101945    -- Bug 4922099
101946    --
101947    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101948         (NVL(l_actual_upg_option, 'N') = 'O') OR
101949         (NVL(l_enc_upg_option, 'N') = 'O')
101950       )
101951    THEN
101952    NULL;
101953    --
101954    --
101955    
101956   l_ccid := AcctDerRule_35(
101957            p_application_id           => p_application_id
101958          , p_ae_header_id             => l_ae_header_id 
101959 , p_source_25 => p_source_25
101960          , x_transaction_coa_id       => l_adr_transaction_coa_id
101961          , x_accounting_coa_id        => l_adr_accounting_coa_id
101962          , x_value_type_code          => l_adr_value_type_code
101963          , p_side                     => 'NA'
101964    );
101965 
101966    xla_ae_lines_pkg.set_ccid(
101967     p_code_combination_id          => l_ccid
101968   , p_value_type_code              => l_adr_value_type_code
101969   , p_transaction_coa_id           => l_adr_transaction_coa_id
101970   , p_accounting_coa_id            => l_adr_accounting_coa_id
101971   , p_adr_code                     => 'AP_INVOICE_DIST'
101972   , p_adr_type_code                => 'S'
101973   , p_component_type               => l_component_type
101974   , p_component_code               => l_component_code
101975   , p_component_type_code          => l_component_type_code
101976   , p_component_appl_id            => l_component_appl_id
101977   , p_amb_context_code             => l_amb_context_code
101978   , p_side                         => 'NA'
101979   );
101980 
101981 
101982    --
101983    --
101984    END IF;
101985 
101986        --
101987        -- Update the line information that should be overwritten
101988        --
101989        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101990                                          p_header_num   => 1);
101991        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101992 
101993        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101994 
101995        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101996           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101997        END IF;
101998 
101999       --
102000       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102001       --
102002       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102003           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
102004       ELSE
102005           ---------------------------------------------------------------------------------------------------
102006           -- 4262811a Switch Sign
102007           ---------------------------------------------------------------------------------------------------
102008           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
102009           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102010                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102011           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102012                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102013           -- 5132302
102014           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102015                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102016 
102017       END IF;
102018 
102019       -- 4955764
102020       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102022 
102023 
102024       XLA_AE_LINES_PKG.ValidateCurrentLine;
102025       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102026 
102027       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102028                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102029                ,p_balance_type_code => l_balance_type_code);
102030 
102031    END IF;
102032 
102033    -----------------------------------------------------------------------------------------
102034    -- 4262811 Multiperiod Accounting
102035    -----------------------------------------------------------------------------------------
102039 END IF;
102036      -- No MPA option is assigned.
102037 
102038 
102040 END IF;
102041 --
102042 
102043 --
102044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102045    trace
102046       (p_msg      => 'END of AcctLineType_181'
102047       ,p_level    => C_LEVEL_PROCEDURE
102048       ,p_module   => l_log_module);
102049 END IF;
102050 --
102051 EXCEPTION
102052   WHEN xla_exceptions_pkg.application_exception THEN
102053       RAISE;
102054   WHEN OTHERS THEN
102055        xla_exceptions_pkg.raise_message
102056            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_181');
102057 END AcctLineType_181;
102058 --
102059 
102060 ---------------------------------------
102061 --
102062 -- PRIVATE FUNCTION
102063 --         AcctLineType_182
102064 --
102065 ---------------------------------------
102066 PROCEDURE AcctLineType_182 (
102067   p_application_id        IN NUMBER
102068  ,p_event_id              IN NUMBER
102069  ,p_calculate_acctd_flag  IN VARCHAR2
102070  ,p_calculate_g_l_flag    IN VARCHAR2
102071  ,p_actual_flag           IN OUT VARCHAR2
102072  ,p_balance_type_code     OUT VARCHAR2
102073  ,p_gain_or_loss_ref      OUT VARCHAR2
102074  
102075 --Invoice Distribution Description
102076  , p_source_1            IN VARCHAR2
102077 --Invoice Distribution Ledger Amount
102078  , p_source_16            IN NUMBER
102079 --Invoice Distribution Account
102080  , p_source_25            IN NUMBER
102081 --Invoice Distribution Type
102082  , p_source_28            IN VARCHAR2
102083  , p_source_28_meaning    IN VARCHAR2
102084 --Accounting Reversal Indicator
102085  , p_source_58            IN VARCHAR2
102086 --Distribution Link Type
102087  , p_source_60            IN VARCHAR2
102088 --Allocation to Main Distribution Identifier
102089  , p_source_62            IN NUMBER
102090 --Invoice Identifier
102091  , p_source_63            IN NUMBER
102092 --Invoice Distribution Identifier
102093  , p_source_69            IN NUMBER
102094 --Payables Encumbrance Upgrade Credit Account
102095  , p_source_70            IN NUMBER
102096 --Payables Encumbrance Upgrade Credit Amount
102097  , p_source_71            IN NUMBER
102098 --Invoice Currency Code
102099  , p_source_72            IN VARCHAR2
102100 --Payables Encumbrance Upgrade Credit Base Amount
102101  , p_source_73            IN NUMBER
102102 --Payables Encumbrance Upgrade Debit Account
102103  , p_source_74            IN NUMBER
102104 --Payables Encumbrance Upgrade Debit Amount
102105  , p_source_75            IN NUMBER
102106 --Payables Encumbrance Upgrade Debit Base Amount
102107  , p_source_76            IN NUMBER
102108 --Payables Encumbrance Upgrade Option
102109  , p_source_77            IN VARCHAR2
102110 --Invoice Distribution Amount
102111  , p_source_78            IN NUMBER
102112 --Deferred Accounting End Date
102113  , p_source_82            IN DATE
102114 --Deferred Accounting Option
102115  , p_source_83            IN VARCHAR2
102116 --Deferred Accounting Start Date
102117  , p_source_84            IN DATE
102118 --Override Accounted Amount Indicator
102119  , p_source_85            IN VARCHAR2
102120  , p_source_85_meaning    IN VARCHAR2
102121 --Invoice Supplier Identifier
102122  , p_source_86            IN NUMBER
102123 --Invoice Supplier Site Identifier
102124  , p_source_87            IN NUMBER
102125 --Third Party Type
102126  , p_source_88            IN VARCHAR2
102127 --Parent Reversal Identifier
102128  , p_source_89            IN NUMBER
102129 --Invoice Distribution Statistical Amount
102130  , p_source_90            IN NUMBER
102131 --Invoice Distribution Tax Line Identifier
102132  , p_source_91            IN NUMBER
102133 --Invoice Distribution Tax Distribution Identifier from Tax
102134  , p_source_92            IN NUMBER
102135 --Invoice Distribution Summary Tax Line Identifier
102136  , p_source_93            IN NUMBER
102137 --Payables Upgrade Credit Encumbrance Type Identifier
102138  , p_source_94            IN NUMBER
102139 --Payables Upgrade Debit Encumbrance Type Identifier
102140  , p_source_95            IN NUMBER
102141 --Business Flow Accounts Payable Application Identifier
102142  , p_source_96            IN NUMBER
102143 --Business Flow Invoice Distribution Type
102144  , p_source_97            IN VARCHAR2
102145 --Business Flow Invoice Entity Code
102146  , p_source_98            IN VARCHAR2
102147 --Business Flow Invoice Distribution Identifier
102148  , p_source_99            IN NUMBER
102149 --Business Flow Invoice Identifier
102150  , p_source_100            IN NUMBER
102151 --Invoice Exchange Date
102152  , p_source_146            IN DATE
102153 --Invoice Exchange Rate
102154  , p_source_147            IN NUMBER
102155 --Invoice Exchange Rate Type
102156  , p_source_148            IN VARCHAR2
102157 )
102158 IS
102159 
102160 l_component_type              VARCHAR2(80);
102161 l_component_code              VARCHAR2(30);
102162 l_component_type_code         VARCHAR2(1);
102163 l_component_appl_id           INTEGER;
102164 l_amb_context_code            VARCHAR2(30);
102165 l_entity_code                 VARCHAR2(30);
102166 l_event_class_code            VARCHAR2(30);
102167 l_ae_header_id                NUMBER;
102168 l_event_type_code             VARCHAR2(30);
102169 l_line_definition_code        VARCHAR2(30);
102170 l_line_definition_owner_code  VARCHAR2(1);
102171 --
102172 -- adr variables
102173 l_segment                     VARCHAR2(30);
102174 l_ccid                        NUMBER;
102175 l_adr_transaction_coa_id      NUMBER;
102176 l_adr_accounting_coa_id       NUMBER;
102180 l_adr_value_combination_id    NUMBER;
102177 l_adr_flexfield_segment_code  VARCHAR2(30);
102178 l_adr_flex_value_set_id       NUMBER;
102179 l_adr_value_type_code         VARCHAR2(30);
102181 l_adr_value_segment_code      VARCHAR2(30);
102182 
102183 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102184 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102185 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102186 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102187 
102188 -- 4262811 Variables ------------------------------------------------------------------------------------------
102189 l_entered_amt_idx             NUMBER;
102190 l_accted_amt_idx              NUMBER;
102191 l_acc_rev_flag                VARCHAR2(1);
102192 l_accrual_line_num            NUMBER;
102193 l_tmp_amt                     NUMBER;
102194 l_acc_rev_natural_side_code   VARCHAR2(1);
102195 
102196 l_num_entries                 NUMBER;
102197 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102198 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102199 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102200 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102201 l_recog_line_1                NUMBER;
102202 l_recog_line_2                NUMBER;
102203 
102204 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102205 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102206 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102207 
102208 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102209 
102210 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102211 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102212 
102213 ---------------------------------------------------------------------------------------------------------------
102214 
102215 
102216 --
102217 -- bulk performance
102218 --
102219 l_balance_type_code           VARCHAR2(1);
102220 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102221 l_log_module                  VARCHAR2(240);
102222 
102223 --
102224 -- Upgrade strategy
102225 --
102226 l_actual_upg_option           VARCHAR2(1);
102227 l_enc_upg_option           VARCHAR2(1);
102228 
102229 --
102230 BEGIN
102231 --
102232 IF g_log_enabled THEN
102233       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_182';
102234 END IF;
102235 --
102236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102237 
102238       trace
102239          (p_msg      => 'BEGIN of AcctLineType_182'
102240          ,p_level    => C_LEVEL_PROCEDURE
102241          ,p_module   => l_log_module);
102242 
102243 END IF;
102244 --
102245 l_component_type             := 'AMB_JLT';
102246 l_component_code             := 'AP_MISC_EXPENSE_INV';
102247 l_component_type_code        := 'S';
102248 l_component_appl_id          :=  200;
102249 l_amb_context_code           := 'DEFAULT';
102250 l_entity_code                := 'AP_INVOICES';
102251 l_event_class_code           := 'INVOICES';
102252 l_event_type_code            := 'INVOICES_ALL';
102253 l_line_definition_owner_code := 'S';
102254 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
102255 --
102256 l_balance_type_code          := 'A';
102257 l_segment                     := NULL;
102258 l_ccid                        := NULL;
102259 l_adr_transaction_coa_id      := NULL;
102260 l_adr_accounting_coa_id       := NULL;
102261 l_adr_flexfield_segment_code  := NULL;
102262 l_adr_flex_value_set_id       := NULL;
102263 l_adr_value_type_code         := NULL;
102264 l_adr_value_combination_id    := NULL;
102265 l_adr_value_segment_code      := NULL;
102266 
102267 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102268 l_bflow_class_code           := '';    -- 4219869 Business Flow
102269 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102270 l_budgetary_control_flag     := 'N';
102271 
102272 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102273 l_bflow_applied_to_amt       := NULL; -- 5132302
102274 l_entered_amt_idx            := NULL;          -- 4262811
102275 l_accted_amt_idx             := NULL;          -- 4262811
102276 l_acc_rev_flag               := NULL;          -- 4262811
102277 l_accrual_line_num           := NULL;          -- 4262811
102278 l_tmp_amt                    := NULL;          -- 4262811
102279 --
102280  
102281 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102282     l_balance_type_code <> 'B' THEN
102283 IF NVL(p_source_28,'
102284 ') =  'MISCELLANEOUS'
102285  THEN 
102286 
102287    --
102288    XLA_AE_LINES_PKG.SetNewLine;
102289 
102290    p_balance_type_code          := l_balance_type_code;
102291    -- set the flag so later we will know whether the gain loss line needs to be created
102292    
102293    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
102294      p_actual_flag :='A';
102295    END IF;
102296 
102297    --
102298    -- bulk performance
102299    --
102300    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102301                                       p_header_num   => 0); -- 4262811
102302    --
102303    -- set accounting line options
102304    --
102305    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102306            p_natural_side_code          => 'D'
102310          , p_switch_side_flag           => 'Y'
102307          , p_gain_or_loss_flag          => 'N'
102308          , p_gl_transfer_mode_code      => 'S'
102309          , p_acct_entry_type_code       => 'A'
102311          , p_merge_duplicate_code       => 'A'
102312          );
102313    --
102314    l_acc_rev_natural_side_code := 'C';  -- 4262811
102315    -- 
102316    --
102317    -- set accounting line type info
102318    --
102319    xla_ae_lines_pkg.SetAcctLineType
102320       (p_component_type             => l_component_type
102321       ,p_event_type_code            => l_event_type_code
102322       ,p_line_definition_owner_code => l_line_definition_owner_code
102323       ,p_line_definition_code       => l_line_definition_code
102324       ,p_accounting_line_code       => l_component_code
102325       ,p_accounting_line_type_code  => l_component_type_code
102326       ,p_accounting_line_appl_id    => l_component_appl_id
102327       ,p_amb_context_code           => l_amb_context_code
102328       ,p_entity_code                => l_entity_code
102329       ,p_event_class_code           => l_event_class_code);
102330    --
102331    -- set accounting class
102332    --
102333    xla_ae_lines_pkg.SetAcctClass(
102334            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
102335          , p_ae_header_id           => l_ae_header_id
102336          );
102337 
102338    --
102339    -- set rounding class
102340    --
102341    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102342                       'MISCELLANEOUS EXPENSE';
102343 
102344    --
102345    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102346    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102347    --
102348    -- bulk performance
102349    --
102350    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102351 
102352    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102353       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102354 
102355    -- 4955764
102356    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102357       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102358 
102359    -- 4458381 Public Sector Enh
102360    
102361    --
102362    -- set accounting attributes for the line type
102363    --
102364    l_entered_amt_idx := 24;
102365    l_accted_amt_idx  := 29;
102366    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
102367    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102368    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
102369    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
102370    l_rec_acct_attrs.array_num_value(2)  := 
102371 xla_ae_sources_pkg.GetSystemSourceNum(
102372    p_source_code           => 'XLA_EVENT_APPL_ID'
102373  , p_source_type_code      => 'Y'
102374  , p_source_application_id =>  602
102375 );
102376    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
102377    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
102378    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
102379    l_rec_acct_attrs.array_char_value(4)  := 
102380 xla_ae_sources_pkg.GetSystemSourceChar(
102381    p_source_code           => 'XLA_ENTITY_CODE'
102382  , p_source_type_code      => 'Y'
102383  , p_source_application_id =>  602
102384 );
102385    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
102386    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
102387    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
102388    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
102389    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
102390    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
102391    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
102392    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
102393    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102394    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
102395    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
102396    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
102397    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
102398    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
102399    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102400    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
102401    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
102402    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
102403    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
102404    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
102405    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
102406    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
102407    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
102408    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
102409    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
102410    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
102411    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
102412    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
102416    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
102413    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
102414    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
102415    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
102417    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
102418    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
102419    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
102420    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
102421    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
102422    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
102423    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
102424    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
102425    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
102426    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
102427    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
102428    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
102429    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
102430    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
102431    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
102432    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
102433    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
102434    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
102435    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
102436    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
102437    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
102438    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
102439    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
102440    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
102441    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
102442    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
102443    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
102444    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
102445    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
102446    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
102447    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
102448    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
102449    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
102450    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
102451    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
102452    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
102453    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
102454    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
102455    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
102456    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
102457    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
102458    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
102459    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
102460    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
102461    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
102462    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
102463    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
102464    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
102465 
102466    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102467    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102468 
102469    ---------------------------------------------------------------------------------------------------------------
102470    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102471    ---------------------------------------------------------------------------------------------------------------
102472    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102473 
102474    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102475    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102476 
102477    IF xla_accounting_cache_pkg.GetValueChar
102478          (p_source_code         => 'LEDGER_CATEGORY_CODE'
102479          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102480    AND l_bflow_method_code = 'PRIOR_ENTRY'
102481 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102482    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102483          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102484        )
102485    THEN
102486          xla_ae_lines_pkg.BflowUpgEntry
102487            (p_business_method_code    => l_bflow_method_code
102488            ,p_business_class_code     => l_bflow_class_code
102489            ,p_balance_type            => l_balance_type_code);
102490    ELSE
102491       NULL;
102492 -- No business flow processing for business flow method of NONE.
102493    END IF;
102494 
102495    --
102496    -- call analytical criteria
102497    --
102498    
102499    --
102500    -- call description
102501    --
102502    
102503 xla_ae_lines_pkg.SetLineDescription(
102504    p_ae_header_id => l_ae_header_id
102505   ,p_description  => Description_2 (
102506      p_application_id         => p_application_id
102510 );
102507    , p_ae_header_id           => l_ae_header_id 
102508 , p_source_1 => p_source_1
102509    )
102511 
102512 
102513    --
102514    -- call ADRs
102515    -- Bug 4922099
102516    --
102517    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102518         (NVL(l_actual_upg_option, 'N') = 'O') OR
102519         (NVL(l_enc_upg_option, 'N') = 'O')
102520       )
102521    THEN
102522    NULL;
102523    --
102524    --
102525    
102526   l_ccid := AcctDerRule_35(
102527            p_application_id           => p_application_id
102528          , p_ae_header_id             => l_ae_header_id 
102529 , p_source_25 => p_source_25
102530          , x_transaction_coa_id       => l_adr_transaction_coa_id
102531          , x_accounting_coa_id        => l_adr_accounting_coa_id
102532          , x_value_type_code          => l_adr_value_type_code
102533          , p_side                     => 'NA'
102534    );
102535 
102536    xla_ae_lines_pkg.set_ccid(
102537     p_code_combination_id          => l_ccid
102538   , p_value_type_code              => l_adr_value_type_code
102539   , p_transaction_coa_id           => l_adr_transaction_coa_id
102540   , p_accounting_coa_id            => l_adr_accounting_coa_id
102541   , p_adr_code                     => 'AP_INVOICE_DIST'
102542   , p_adr_type_code                => 'S'
102543   , p_component_type               => l_component_type
102544   , p_component_code               => l_component_code
102545   , p_component_type_code          => l_component_type_code
102546   , p_component_appl_id            => l_component_appl_id
102547   , p_amb_context_code             => l_amb_context_code
102548   , p_side                         => 'NA'
102549   );
102550 
102551 
102552    --
102553    --
102554    END IF;
102555    --
102556    -- Bug 4922099
102557    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102558           (NVL(l_enc_upg_option, 'N') = 'O')
102559         ) AND
102560         (l_bflow_method_code = 'PRIOR_ENTRY')
102561       )
102562    THEN
102563       IF
102564       --
102565       1 = 2
102566       --
102567       THEN
102568       xla_accounting_err_pkg.build_message
102569                                     (p_appli_s_name            => 'XLA'
102570                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102571                                     ,p_token_1                 => 'LINE_NUMBER'
102572                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102573                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102574                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102575                                                                              l_component_type
102576                                                                             ,l_component_code
102577                                                                             ,l_component_type_code
102578                                                                             ,l_component_appl_id
102579                                                                             ,l_amb_context_code
102580                                                                             ,l_entity_code
102581                                                                             ,l_event_class_code
102582                                                                            )
102583                                     ,p_token_3                 => 'OWNER'
102584                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102585                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102586                                                                           ,p_lookup_code    => l_component_type_code
102587                                                                          )
102588                                     ,p_token_4                 => 'PRODUCT_NAME'
102589                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102590                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102591                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102592                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102593                                     ,p_ae_header_id            =>  NULL
102594                                        );
102595 
102596         IF (C_LEVEL_ERROR>= g_log_level) THEN
102597                  trace
102598                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102599                       ,p_level    => C_LEVEL_ERROR
102600                       ,p_module   => l_log_module);
102601         END IF;
102602       END IF;
102603    END IF;
102604    --
102605    --
102606    ------------------------------------------------------------------------------------------------
102607    -- 4219869 Business Flow
102608    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102609    -- Prior Entry.  Currently, the following code is always generated.
102610    ------------------------------------------------------------------------------------------------
102611    XLA_AE_LINES_PKG.ValidateCurrentLine;
102612 
102613    ------------------------------------------------------------------------------------
102614    -- 4219869 Business Flow
102618 
102615    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102616    ------------------------------------------------------------------------------------
102617    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102619    ----------------------------------------------------------------------------------
102620    -- 4219869 Business Flow
102621    -- Update journal entry status -- Need to generate this within IF <condition>
102622    ----------------------------------------------------------------------------------
102623    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102624          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102625          ,p_balance_type_code => l_balance_type_code
102626          );
102627 
102628    -------------------------------------------------------------------------------------------
102629    -- 4262811 - Generate the Accrual Reversal lines
102630    -------------------------------------------------------------------------------------------
102631    BEGIN
102632       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102633                               (g_array_event(p_event_id).array_value_num('header_index'));
102634       IF l_acc_rev_flag IS NULL THEN
102635          l_acc_rev_flag := 'N';
102636       END IF;
102637    EXCEPTION
102638       WHEN OTHERS THEN
102639          l_acc_rev_flag := 'N';
102640    END;
102641    --
102642    IF (l_acc_rev_flag = 'Y') THEN
102643 
102644        -- 4645092  ------------------------------------------------------------------------------
102645        -- To allow MPA report to determine if it should generate report process
102646        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102647        ------------------------------------------------------------------------------------------
102648 
102649        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102650        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102651    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102652    -- call ADRs
102653    -- Bug 4922099
102654    --
102655    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102656         (NVL(l_actual_upg_option, 'N') = 'O') OR
102657         (NVL(l_enc_upg_option, 'N') = 'O')
102658       )
102659    THEN
102660    NULL;
102661    --
102662    --
102663    
102664   l_ccid := AcctDerRule_35(
102665            p_application_id           => p_application_id
102666          , p_ae_header_id             => l_ae_header_id 
102667 , p_source_25 => p_source_25
102668          , x_transaction_coa_id       => l_adr_transaction_coa_id
102669          , x_accounting_coa_id        => l_adr_accounting_coa_id
102670          , x_value_type_code          => l_adr_value_type_code
102671          , p_side                     => 'NA'
102672    );
102673 
102674    xla_ae_lines_pkg.set_ccid(
102675     p_code_combination_id          => l_ccid
102676   , p_value_type_code              => l_adr_value_type_code
102677   , p_transaction_coa_id           => l_adr_transaction_coa_id
102678   , p_accounting_coa_id            => l_adr_accounting_coa_id
102679   , p_adr_code                     => 'AP_INVOICE_DIST'
102680   , p_adr_type_code                => 'S'
102681   , p_component_type               => l_component_type
102682   , p_component_code               => l_component_code
102683   , p_component_type_code          => l_component_type_code
102684   , p_component_appl_id            => l_component_appl_id
102685   , p_amb_context_code             => l_amb_context_code
102686   , p_side                         => 'NA'
102687   );
102688 
102689 
102690    --
102691    --
102692    END IF;
102693 
102694        --
102695        -- Update the line information that should be overwritten
102696        --
102697        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102698                                          p_header_num   => 1);
102699        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
102700 
102701        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
102702 
102703        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
102704           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
102705        END IF;
102706 
102707       --
102708       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102709       --
102710       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102711           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
102712       ELSE
102713           ---------------------------------------------------------------------------------------------------
102714           -- 4262811a Switch Sign
102715           ---------------------------------------------------------------------------------------------------
102716           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
102717           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102718                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102719           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102720                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102721           -- 5132302
102722           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102726 
102723                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102724 
102725       END IF;
102727       -- 4955764
102728       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102729       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102730 
102731 
102732       XLA_AE_LINES_PKG.ValidateCurrentLine;
102733       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102734 
102735       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102736                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102737                ,p_balance_type_code => l_balance_type_code);
102738 
102739    END IF;
102740 
102741    -----------------------------------------------------------------------------------------
102742    -- 4262811 Multiperiod Accounting
102743    -----------------------------------------------------------------------------------------
102744      -- No MPA option is assigned.
102745 
102746 
102747 END IF;
102748 END IF;
102749 --
102750 
102751 --
102752 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102753    trace
102754       (p_msg      => 'END of AcctLineType_182'
102755       ,p_level    => C_LEVEL_PROCEDURE
102756       ,p_module   => l_log_module);
102757 END IF;
102758 --
102759 EXCEPTION
102760   WHEN xla_exceptions_pkg.application_exception THEN
102761       RAISE;
102762   WHEN OTHERS THEN
102763        xla_exceptions_pkg.raise_message
102764            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_182');
102765 END AcctLineType_182;
102766 --
102767 
102768 ---------------------------------------
102769 --
102770 -- PRIVATE FUNCTION
102771 --         AcctLineType_183
102772 --
102773 ---------------------------------------
102774 PROCEDURE AcctLineType_183 (
102775   p_application_id        IN NUMBER
102776  ,p_event_id              IN NUMBER
102777  ,p_calculate_acctd_flag  IN VARCHAR2
102778  ,p_calculate_g_l_flag    IN VARCHAR2
102779  ,p_actual_flag           IN OUT VARCHAR2
102780  ,p_balance_type_code     OUT VARCHAR2
102781  ,p_gain_or_loss_ref      OUT VARCHAR2
102782  
102783 --Invoice Distribution Description
102784  , p_source_1            IN VARCHAR2
102785 --Invoice Distribution Ledger Amount
102786  , p_source_16            IN NUMBER
102787 --Invoice Distribution Account
102788  , p_source_25            IN NUMBER
102789 --Invoice Distribution Type
102790  , p_source_28            IN VARCHAR2
102791  , p_source_28_meaning    IN VARCHAR2
102792 --Accounting Reversal Indicator
102793  , p_source_58            IN VARCHAR2
102794 --Distribution Link Type
102795  , p_source_60            IN VARCHAR2
102796 --Allocation to Main Distribution Identifier
102797  , p_source_62            IN NUMBER
102798 --Invoice Identifier
102799  , p_source_63            IN NUMBER
102800 --Invoice Distribution Identifier
102801  , p_source_69            IN NUMBER
102802 --Payables Encumbrance Upgrade Credit Account
102803  , p_source_70            IN NUMBER
102804 --Payables Encumbrance Upgrade Credit Amount
102805  , p_source_71            IN NUMBER
102806 --Invoice Currency Code
102807  , p_source_72            IN VARCHAR2
102808 --Payables Encumbrance Upgrade Credit Base Amount
102809  , p_source_73            IN NUMBER
102810 --Payables Encumbrance Upgrade Debit Account
102811  , p_source_74            IN NUMBER
102812 --Payables Encumbrance Upgrade Debit Amount
102813  , p_source_75            IN NUMBER
102814 --Payables Encumbrance Upgrade Debit Base Amount
102815  , p_source_76            IN NUMBER
102816 --Payables Encumbrance Upgrade Option
102817  , p_source_77            IN VARCHAR2
102818 --Invoice Distribution Amount
102819  , p_source_78            IN NUMBER
102820 --Deferred Accounting End Date
102821  , p_source_82            IN DATE
102822 --Deferred Accounting Option
102823  , p_source_83            IN VARCHAR2
102824 --Deferred Accounting Start Date
102825  , p_source_84            IN DATE
102826 --Override Accounted Amount Indicator
102827  , p_source_85            IN VARCHAR2
102828  , p_source_85_meaning    IN VARCHAR2
102829 --Invoice Supplier Identifier
102830  , p_source_86            IN NUMBER
102831 --Invoice Supplier Site Identifier
102832  , p_source_87            IN NUMBER
102833 --Third Party Type
102834  , p_source_88            IN VARCHAR2
102835 --Parent Reversal Identifier
102836  , p_source_89            IN NUMBER
102837 --Invoice Distribution Statistical Amount
102838  , p_source_90            IN NUMBER
102839 --Invoice Distribution Tax Line Identifier
102840  , p_source_91            IN NUMBER
102841 --Invoice Distribution Tax Distribution Identifier from Tax
102842  , p_source_92            IN NUMBER
102843 --Invoice Distribution Summary Tax Line Identifier
102844  , p_source_93            IN NUMBER
102845 --Payables Upgrade Credit Encumbrance Type Identifier
102846  , p_source_94            IN NUMBER
102847 --Payables Upgrade Debit Encumbrance Type Identifier
102848  , p_source_95            IN NUMBER
102849 --Business Flow Accounts Payable Application Identifier
102850  , p_source_96            IN NUMBER
102851 --Business Flow Invoice Distribution Type
102852  , p_source_97            IN VARCHAR2
102853 --Business Flow Invoice Entity Code
102854  , p_source_98            IN VARCHAR2
102855 --Business Flow Invoice Distribution Identifier
102856  , p_source_99            IN NUMBER
102857 --Business Flow Invoice Identifier
102858  , p_source_100            IN NUMBER
102859 --Invoice Exchange Date
102860  , p_source_146            IN DATE
102864  , p_source_148            IN VARCHAR2
102861 --Invoice Exchange Rate
102862  , p_source_147            IN NUMBER
102863 --Invoice Exchange Rate Type
102865 )
102866 IS
102867 
102868 l_component_type              VARCHAR2(80);
102869 l_component_code              VARCHAR2(30);
102870 l_component_type_code         VARCHAR2(1);
102871 l_component_appl_id           INTEGER;
102872 l_amb_context_code            VARCHAR2(30);
102873 l_entity_code                 VARCHAR2(30);
102874 l_event_class_code            VARCHAR2(30);
102875 l_ae_header_id                NUMBER;
102876 l_event_type_code             VARCHAR2(30);
102877 l_line_definition_code        VARCHAR2(30);
102878 l_line_definition_owner_code  VARCHAR2(1);
102879 --
102880 -- adr variables
102881 l_segment                     VARCHAR2(30);
102882 l_ccid                        NUMBER;
102883 l_adr_transaction_coa_id      NUMBER;
102884 l_adr_accounting_coa_id       NUMBER;
102885 l_adr_flexfield_segment_code  VARCHAR2(30);
102886 l_adr_flex_value_set_id       NUMBER;
102887 l_adr_value_type_code         VARCHAR2(30);
102888 l_adr_value_combination_id    NUMBER;
102889 l_adr_value_segment_code      VARCHAR2(30);
102890 
102891 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102892 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102893 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102894 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102895 
102896 -- 4262811 Variables ------------------------------------------------------------------------------------------
102897 l_entered_amt_idx             NUMBER;
102898 l_accted_amt_idx              NUMBER;
102899 l_acc_rev_flag                VARCHAR2(1);
102900 l_accrual_line_num            NUMBER;
102901 l_tmp_amt                     NUMBER;
102902 l_acc_rev_natural_side_code   VARCHAR2(1);
102903 
102904 l_num_entries                 NUMBER;
102905 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102906 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102907 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102908 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102909 l_recog_line_1                NUMBER;
102910 l_recog_line_2                NUMBER;
102911 
102912 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102913 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102914 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102915 
102916 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102917 
102918 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102919 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102920 
102921 ---------------------------------------------------------------------------------------------------------------
102922 
102923 
102924 --
102925 -- bulk performance
102926 --
102927 l_balance_type_code           VARCHAR2(1);
102928 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102929 l_log_module                  VARCHAR2(240);
102930 
102931 --
102932 -- Upgrade strategy
102933 --
102934 l_actual_upg_option           VARCHAR2(1);
102935 l_enc_upg_option           VARCHAR2(1);
102936 
102937 --
102938 BEGIN
102939 --
102940 IF g_log_enabled THEN
102941       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_183';
102942 END IF;
102943 --
102944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102945 
102946       trace
102947          (p_msg      => 'BEGIN of AcctLineType_183'
102948          ,p_level    => C_LEVEL_PROCEDURE
102949          ,p_module   => l_log_module);
102950 
102951 END IF;
102952 --
102953 l_component_type             := 'AMB_JLT';
102954 l_component_code             := 'AP_MISC_EXPENSE_PREPAY';
102955 l_component_type_code        := 'S';
102956 l_component_appl_id          :=  200;
102957 l_amb_context_code           := 'DEFAULT';
102958 l_entity_code                := 'AP_INVOICES';
102959 l_event_class_code           := 'PREPAYMENTS';
102960 l_event_type_code            := 'PREPAYMENTS_ALL';
102961 l_line_definition_owner_code := 'S';
102962 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
102963 --
102964 l_balance_type_code          := 'A';
102965 l_segment                     := NULL;
102966 l_ccid                        := NULL;
102967 l_adr_transaction_coa_id      := NULL;
102968 l_adr_accounting_coa_id       := NULL;
102969 l_adr_flexfield_segment_code  := NULL;
102970 l_adr_flex_value_set_id       := NULL;
102971 l_adr_value_type_code         := NULL;
102972 l_adr_value_combination_id    := NULL;
102973 l_adr_value_segment_code      := NULL;
102974 
102975 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102976 l_bflow_class_code           := '';    -- 4219869 Business Flow
102977 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102978 l_budgetary_control_flag     := 'N';
102979 
102980 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102981 l_bflow_applied_to_amt       := NULL; -- 5132302
102982 l_entered_amt_idx            := NULL;          -- 4262811
102983 l_accted_amt_idx             := NULL;          -- 4262811
102984 l_acc_rev_flag               := NULL;          -- 4262811
102985 l_accrual_line_num           := NULL;          -- 4262811
102986 l_tmp_amt                    := NULL;          -- 4262811
102987 --
102988  
102992 ') =  'MISCELLANEOUS'
102989 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102990     l_balance_type_code <> 'B' THEN
102991 IF NVL(p_source_28,'
102993  THEN 
102994 
102995    --
102996    XLA_AE_LINES_PKG.SetNewLine;
102997 
102998    p_balance_type_code          := l_balance_type_code;
102999    -- set the flag so later we will know whether the gain loss line needs to be created
103000    
103001    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103002      p_actual_flag :='A';
103003    END IF;
103004 
103005    --
103006    -- bulk performance
103007    --
103008    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103009                                       p_header_num   => 0); -- 4262811
103010    --
103011    -- set accounting line options
103012    --
103013    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103014            p_natural_side_code          => 'D'
103015          , p_gain_or_loss_flag          => 'N'
103016          , p_gl_transfer_mode_code      => 'S'
103017          , p_acct_entry_type_code       => 'A'
103018          , p_switch_side_flag           => 'Y'
103019          , p_merge_duplicate_code       => 'A'
103020          );
103021    --
103022    l_acc_rev_natural_side_code := 'C';  -- 4262811
103023    -- 
103024    --
103025    -- set accounting line type info
103026    --
103027    xla_ae_lines_pkg.SetAcctLineType
103028       (p_component_type             => l_component_type
103029       ,p_event_type_code            => l_event_type_code
103030       ,p_line_definition_owner_code => l_line_definition_owner_code
103031       ,p_line_definition_code       => l_line_definition_code
103032       ,p_accounting_line_code       => l_component_code
103033       ,p_accounting_line_type_code  => l_component_type_code
103034       ,p_accounting_line_appl_id    => l_component_appl_id
103035       ,p_amb_context_code           => l_amb_context_code
103036       ,p_entity_code                => l_entity_code
103037       ,p_event_class_code           => l_event_class_code);
103038    --
103039    -- set accounting class
103040    --
103041    xla_ae_lines_pkg.SetAcctClass(
103042            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
103043          , p_ae_header_id           => l_ae_header_id
103044          );
103045 
103046    --
103047    -- set rounding class
103048    --
103049    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103050                       'MISCELLANEOUS EXPENSE';
103051 
103052    --
103053    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103054    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103055    --
103056    -- bulk performance
103057    --
103058    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103059 
103060    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103061       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103062 
103063    -- 4955764
103064    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103065       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103066 
103067    -- 4458381 Public Sector Enh
103068    
103069    --
103070    -- set accounting attributes for the line type
103071    --
103072    l_entered_amt_idx := 23;
103073    l_accted_amt_idx  := 28;
103074    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
103075    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103076    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
103077    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
103078    l_rec_acct_attrs.array_num_value(2)  := 
103079 xla_ae_sources_pkg.GetSystemSourceNum(
103080    p_source_code           => 'XLA_EVENT_APPL_ID'
103081  , p_source_type_code      => 'Y'
103082  , p_source_application_id =>  602
103083 );
103084    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
103085    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
103086    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
103087    l_rec_acct_attrs.array_char_value(4)  := 
103088 xla_ae_sources_pkg.GetSystemSourceChar(
103089    p_source_code           => 'XLA_ENTITY_CODE'
103090  , p_source_type_code      => 'Y'
103091  , p_source_application_id =>  602
103092 );
103093    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
103094    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
103095    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
103096    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
103097    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
103098    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
103099    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103100    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
103101    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
103102    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
103103    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
103104    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
103105    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103109    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
103106    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
103107    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
103108    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
103110    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
103111    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
103112    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
103113    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
103114    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
103115    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
103116    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
103117    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
103118    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
103119    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
103120    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
103121    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
103122    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
103123    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
103124    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
103125    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
103126    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
103127    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
103128    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
103129    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
103130    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
103131    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
103132    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
103133    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
103134    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
103135    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
103136    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
103137    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
103138    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
103139    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
103140    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
103141    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
103142    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
103143    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103144    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
103145    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103146    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
103147    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103148    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
103149    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103150    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
103151    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103152    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
103153    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103154    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
103155    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103156    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
103157    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103158    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
103159    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
103160    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
103161    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
103162    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
103163    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
103164    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
103165    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
103166    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
103167    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
103168    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
103169    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
103170    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
103171 
103172    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103173    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103174 
103175    ---------------------------------------------------------------------------------------------------------------
103176    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103177    ---------------------------------------------------------------------------------------------------------------
103178    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103179 
103180    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103181    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103182 
103183    IF xla_accounting_cache_pkg.GetValueChar
103184          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103185          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103186    AND l_bflow_method_code = 'PRIOR_ENTRY'
103187 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103188    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103192          xla_ae_lines_pkg.BflowUpgEntry
103189          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103190        )
103191    THEN
103193            (p_business_method_code    => l_bflow_method_code
103194            ,p_business_class_code     => l_bflow_class_code
103195            ,p_balance_type            => l_balance_type_code);
103196    ELSE
103197       NULL;
103198 -- No business flow processing for business flow method of NONE.
103199    END IF;
103200 
103201    --
103202    -- call analytical criteria
103203    --
103204    
103205    --
103206    -- call description
103207    --
103208    
103209 xla_ae_lines_pkg.SetLineDescription(
103210    p_ae_header_id => l_ae_header_id
103211   ,p_description  => Description_2 (
103212      p_application_id         => p_application_id
103213    , p_ae_header_id           => l_ae_header_id 
103214 , p_source_1 => p_source_1
103215    )
103216 );
103217 
103218 
103219    --
103220    -- call ADRs
103221    -- Bug 4922099
103222    --
103223    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103224         (NVL(l_actual_upg_option, 'N') = 'O') OR
103225         (NVL(l_enc_upg_option, 'N') = 'O')
103226       )
103227    THEN
103228    NULL;
103229    --
103230    --
103231    
103232   l_ccid := AcctDerRule_35(
103233            p_application_id           => p_application_id
103234          , p_ae_header_id             => l_ae_header_id 
103235 , p_source_25 => p_source_25
103236          , x_transaction_coa_id       => l_adr_transaction_coa_id
103237          , x_accounting_coa_id        => l_adr_accounting_coa_id
103238          , x_value_type_code          => l_adr_value_type_code
103239          , p_side                     => 'NA'
103240    );
103241 
103242    xla_ae_lines_pkg.set_ccid(
103243     p_code_combination_id          => l_ccid
103244   , p_value_type_code              => l_adr_value_type_code
103245   , p_transaction_coa_id           => l_adr_transaction_coa_id
103246   , p_accounting_coa_id            => l_adr_accounting_coa_id
103247   , p_adr_code                     => 'AP_INVOICE_DIST'
103248   , p_adr_type_code                => 'S'
103249   , p_component_type               => l_component_type
103250   , p_component_code               => l_component_code
103251   , p_component_type_code          => l_component_type_code
103252   , p_component_appl_id            => l_component_appl_id
103253   , p_amb_context_code             => l_amb_context_code
103254   , p_side                         => 'NA'
103255   );
103256 
103257 
103258    --
103259    --
103260    END IF;
103261    --
103262    -- Bug 4922099
103263    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103264           (NVL(l_enc_upg_option, 'N') = 'O')
103265         ) AND
103266         (l_bflow_method_code = 'PRIOR_ENTRY')
103267       )
103268    THEN
103269       IF
103270       --
103271       1 = 2
103272       --
103273       THEN
103274       xla_accounting_err_pkg.build_message
103275                                     (p_appli_s_name            => 'XLA'
103276                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103277                                     ,p_token_1                 => 'LINE_NUMBER'
103278                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
103279                                     ,p_token_2                 => 'LINE_TYPE_NAME'
103280                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
103281                                                                              l_component_type
103282                                                                             ,l_component_code
103283                                                                             ,l_component_type_code
103284                                                                             ,l_component_appl_id
103285                                                                             ,l_amb_context_code
103286                                                                             ,l_entity_code
103287                                                                             ,l_event_class_code
103288                                                                            )
103289                                     ,p_token_3                 => 'OWNER'
103290                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
103291                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
103292                                                                           ,p_lookup_code    => l_component_type_code
103293                                                                          )
103294                                     ,p_token_4                 => 'PRODUCT_NAME'
103295                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
103296                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
103297                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
103298                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
103299                                     ,p_ae_header_id            =>  NULL
103300                                        );
103301 
103302         IF (C_LEVEL_ERROR>= g_log_level) THEN
103303                  trace
103304                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103305                       ,p_level    => C_LEVEL_ERROR
103309    END IF;
103306                       ,p_module   => l_log_module);
103307         END IF;
103308       END IF;
103310    --
103311    --
103312    ------------------------------------------------------------------------------------------------
103313    -- 4219869 Business Flow
103314    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
103315    -- Prior Entry.  Currently, the following code is always generated.
103316    ------------------------------------------------------------------------------------------------
103317    XLA_AE_LINES_PKG.ValidateCurrentLine;
103318 
103319    ------------------------------------------------------------------------------------
103320    -- 4219869 Business Flow
103321    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
103322    ------------------------------------------------------------------------------------
103323    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103324 
103325    ----------------------------------------------------------------------------------
103326    -- 4219869 Business Flow
103327    -- Update journal entry status -- Need to generate this within IF <condition>
103328    ----------------------------------------------------------------------------------
103329    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103330          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
103331          ,p_balance_type_code => l_balance_type_code
103332          );
103333 
103334    -------------------------------------------------------------------------------------------
103335    -- 4262811 - Generate the Accrual Reversal lines
103336    -------------------------------------------------------------------------------------------
103337    BEGIN
103338       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
103339                               (g_array_event(p_event_id).array_value_num('header_index'));
103340       IF l_acc_rev_flag IS NULL THEN
103341          l_acc_rev_flag := 'N';
103342       END IF;
103343    EXCEPTION
103344       WHEN OTHERS THEN
103345          l_acc_rev_flag := 'N';
103346    END;
103347    --
103348    IF (l_acc_rev_flag = 'Y') THEN
103349 
103350        -- 4645092  ------------------------------------------------------------------------------
103351        -- To allow MPA report to determine if it should generate report process
103352        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
103353        ------------------------------------------------------------------------------------------
103354 
103355        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
103356        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
103357    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
103358    -- call ADRs
103359    -- Bug 4922099
103360    --
103361    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103362         (NVL(l_actual_upg_option, 'N') = 'O') OR
103363         (NVL(l_enc_upg_option, 'N') = 'O')
103364       )
103365    THEN
103366    NULL;
103367    --
103368    --
103369    
103370   l_ccid := AcctDerRule_35(
103371            p_application_id           => p_application_id
103372          , p_ae_header_id             => l_ae_header_id 
103373 , p_source_25 => p_source_25
103374          , x_transaction_coa_id       => l_adr_transaction_coa_id
103375          , x_accounting_coa_id        => l_adr_accounting_coa_id
103376          , x_value_type_code          => l_adr_value_type_code
103377          , p_side                     => 'NA'
103378    );
103379 
103380    xla_ae_lines_pkg.set_ccid(
103381     p_code_combination_id          => l_ccid
103382   , p_value_type_code              => l_adr_value_type_code
103383   , p_transaction_coa_id           => l_adr_transaction_coa_id
103384   , p_accounting_coa_id            => l_adr_accounting_coa_id
103385   , p_adr_code                     => 'AP_INVOICE_DIST'
103386   , p_adr_type_code                => 'S'
103387   , p_component_type               => l_component_type
103388   , p_component_code               => l_component_code
103389   , p_component_type_code          => l_component_type_code
103390   , p_component_appl_id            => l_component_appl_id
103391   , p_amb_context_code             => l_amb_context_code
103392   , p_side                         => 'NA'
103393   );
103394 
103395 
103396    --
103397    --
103398    END IF;
103399 
103400        --
103401        -- Update the line information that should be overwritten
103402        --
103403        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103404                                          p_header_num   => 1);
103405        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103406 
103407        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103408 
103409        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103410           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103411        END IF;
103412 
103413       --
103414       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103415       --
103416       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103417           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103418       ELSE
103419           ---------------------------------------------------------------------------------------------------
103423           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103420           -- 4262811a Switch Sign
103421           ---------------------------------------------------------------------------------------------------
103422           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103424                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103425           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103426                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103427           -- 5132302
103428           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103429                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103430 
103431       END IF;
103432 
103433       -- 4955764
103434       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103435       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103436 
103437 
103438       XLA_AE_LINES_PKG.ValidateCurrentLine;
103439       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103440 
103441       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103442                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103443                ,p_balance_type_code => l_balance_type_code);
103444 
103445    END IF;
103446 
103447    -----------------------------------------------------------------------------------------
103448    -- 4262811 Multiperiod Accounting
103449    -----------------------------------------------------------------------------------------
103450      -- No MPA option is assigned.
103451 
103452 
103453 END IF;
103454 END IF;
103455 --
103456 
103457 --
103458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103459    trace
103460       (p_msg      => 'END of AcctLineType_183'
103461       ,p_level    => C_LEVEL_PROCEDURE
103462       ,p_module   => l_log_module);
103463 END IF;
103464 --
103465 EXCEPTION
103466   WHEN xla_exceptions_pkg.application_exception THEN
103467       RAISE;
103468   WHEN OTHERS THEN
103469        xla_exceptions_pkg.raise_message
103470            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_183');
103471 END AcctLineType_183;
103472 --
103473 
103474 ---------------------------------------
103475 --
103476 -- PRIVATE FUNCTION
103477 --         AcctLineType_184
103478 --
103479 ---------------------------------------
103480 PROCEDURE AcctLineType_184 (
103481   p_application_id        IN NUMBER
103482  ,p_event_id              IN NUMBER
103483  ,p_calculate_acctd_flag  IN VARCHAR2
103484  ,p_calculate_g_l_flag    IN VARCHAR2
103485  ,p_actual_flag           IN OUT VARCHAR2
103486  ,p_balance_type_code     OUT VARCHAR2
103487  ,p_gain_or_loss_ref      OUT VARCHAR2
103488  
103489 --Invoice Distribution Description
103490  , p_source_1            IN VARCHAR2
103491 --Invoice Distribution Ledger Amount
103492  , p_source_16            IN NUMBER
103493 --Invoice Distribution Account
103494  , p_source_25            IN NUMBER
103495 --Invoice Distribution Type
103496  , p_source_28            IN VARCHAR2
103497  , p_source_28_meaning    IN VARCHAR2
103498 --Accrue on Receipt Option
103499  , p_source_54            IN VARCHAR2
103500  , p_source_54_meaning    IN VARCHAR2
103501 --Accounting Reversal Indicator
103502  , p_source_58            IN VARCHAR2
103503 --Distribution Link Type
103504  , p_source_60            IN VARCHAR2
103505 --Allocation to Main Distribution Identifier
103506  , p_source_62            IN NUMBER
103507 --Invoice Identifier
103508  , p_source_63            IN NUMBER
103509 --Invoice Distribution Identifier
103510  , p_source_69            IN NUMBER
103511 --Payables Encumbrance Upgrade Credit Account
103512  , p_source_70            IN NUMBER
103513 --Payables Encumbrance Upgrade Credit Amount
103514  , p_source_71            IN NUMBER
103515 --Invoice Currency Code
103516  , p_source_72            IN VARCHAR2
103517 --Payables Encumbrance Upgrade Credit Base Amount
103518  , p_source_73            IN NUMBER
103519 --Payables Encumbrance Upgrade Debit Account
103520  , p_source_74            IN NUMBER
103521 --Payables Encumbrance Upgrade Debit Amount
103522  , p_source_75            IN NUMBER
103523 --Payables Encumbrance Upgrade Debit Base Amount
103524  , p_source_76            IN NUMBER
103525 --Payables Encumbrance Upgrade Option
103526  , p_source_77            IN VARCHAR2
103527 --Invoice Distribution Amount
103528  , p_source_78            IN NUMBER
103529 --Purchase Order Exchange Rate Date
103530  , p_source_79            IN DATE
103531 --Purchase Order Exchange Rate
103532  , p_source_80            IN NUMBER
103533 --Purchase Order Exchange Rate Type
103534  , p_source_81            IN VARCHAR2
103535 --Deferred Accounting End Date
103536  , p_source_82            IN DATE
103537 --Deferred Accounting Option
103538  , p_source_83            IN VARCHAR2
103539 --Deferred Accounting Start Date
103540  , p_source_84            IN DATE
103541 --Override Accounted Amount Indicator
103542  , p_source_85            IN VARCHAR2
103543  , p_source_85_meaning    IN VARCHAR2
103544 --Invoice Supplier Identifier
103545  , p_source_86            IN NUMBER
103546 --Invoice Supplier Site Identifier
103550 --Parent Reversal Identifier
103547  , p_source_87            IN NUMBER
103548 --Third Party Type
103549  , p_source_88            IN VARCHAR2
103551  , p_source_89            IN NUMBER
103552 --Invoice Distribution Statistical Amount
103553  , p_source_90            IN NUMBER
103554 --Invoice Distribution Tax Line Identifier
103555  , p_source_91            IN NUMBER
103556 --Invoice Distribution Tax Distribution Identifier from Tax
103557  , p_source_92            IN NUMBER
103558 --Invoice Distribution Summary Tax Line Identifier
103559  , p_source_93            IN NUMBER
103560 --Payables Upgrade Credit Encumbrance Type Identifier
103561  , p_source_94            IN NUMBER
103562 --Payables Upgrade Debit Encumbrance Type Identifier
103563  , p_source_95            IN NUMBER
103564 --Business Flow Accounts Payable Application Identifier
103565  , p_source_96            IN NUMBER
103566 --Business Flow Invoice Distribution Type
103567  , p_source_97            IN VARCHAR2
103568 --Business Flow Invoice Entity Code
103569  , p_source_98            IN VARCHAR2
103570 --Business Flow Invoice Distribution Identifier
103571  , p_source_99            IN NUMBER
103572 --Business Flow Invoice Identifier
103573  , p_source_100            IN NUMBER
103574 --Self-Assessed Tax Flag
103575  , p_source_145            IN VARCHAR2
103576  , p_source_145_meaning    IN VARCHAR2
103577 )
103578 IS
103579 
103580 l_component_type              VARCHAR2(80);
103581 l_component_code              VARCHAR2(30);
103582 l_component_type_code         VARCHAR2(1);
103583 l_component_appl_id           INTEGER;
103584 l_amb_context_code            VARCHAR2(30);
103585 l_entity_code                 VARCHAR2(30);
103586 l_event_class_code            VARCHAR2(30);
103587 l_ae_header_id                NUMBER;
103588 l_event_type_code             VARCHAR2(30);
103589 l_line_definition_code        VARCHAR2(30);
103590 l_line_definition_owner_code  VARCHAR2(1);
103591 --
103592 -- adr variables
103593 l_segment                     VARCHAR2(30);
103594 l_ccid                        NUMBER;
103595 l_adr_transaction_coa_id      NUMBER;
103596 l_adr_accounting_coa_id       NUMBER;
103597 l_adr_flexfield_segment_code  VARCHAR2(30);
103598 l_adr_flex_value_set_id       NUMBER;
103599 l_adr_value_type_code         VARCHAR2(30);
103600 l_adr_value_combination_id    NUMBER;
103601 l_adr_value_segment_code      VARCHAR2(30);
103602 
103603 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103604 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103605 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103606 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103607 
103608 -- 4262811 Variables ------------------------------------------------------------------------------------------
103609 l_entered_amt_idx             NUMBER;
103610 l_accted_amt_idx              NUMBER;
103611 l_acc_rev_flag                VARCHAR2(1);
103612 l_accrual_line_num            NUMBER;
103613 l_tmp_amt                     NUMBER;
103614 l_acc_rev_natural_side_code   VARCHAR2(1);
103615 
103616 l_num_entries                 NUMBER;
103617 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103618 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103619 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103620 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103621 l_recog_line_1                NUMBER;
103622 l_recog_line_2                NUMBER;
103623 
103624 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103625 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103626 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103627 
103628 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103629 
103630 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103631 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103632 
103633 ---------------------------------------------------------------------------------------------------------------
103634 
103635 
103636 --
103637 -- bulk performance
103638 --
103639 l_balance_type_code           VARCHAR2(1);
103640 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103641 l_log_module                  VARCHAR2(240);
103642 
103643 --
103644 -- Upgrade strategy
103645 --
103646 l_actual_upg_option           VARCHAR2(1);
103647 l_enc_upg_option           VARCHAR2(1);
103648 
103649 --
103650 BEGIN
103651 --
103652 IF g_log_enabled THEN
103653       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_184';
103654 END IF;
103655 --
103656 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103657 
103658       trace
103659          (p_msg      => 'BEGIN of AcctLineType_184'
103660          ,p_level    => C_LEVEL_PROCEDURE
103661          ,p_module   => l_log_module);
103662 
103663 END IF;
103664 --
103665 l_component_type             := 'AMB_JLT';
103666 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_CM';
103667 l_component_type_code        := 'S';
103668 l_component_appl_id          :=  200;
103669 l_amb_context_code           := 'DEFAULT';
103670 l_entity_code                := 'AP_INVOICES';
103671 l_event_class_code           := 'CREDIT MEMOS';
103672 l_event_type_code            := 'CREDIT MEMOS_ALL';
103673 l_line_definition_owner_code := 'S';
103677 l_segment                     := NULL;
103674 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
103675 --
103676 l_balance_type_code          := 'A';
103678 l_ccid                        := NULL;
103679 l_adr_transaction_coa_id      := NULL;
103680 l_adr_accounting_coa_id       := NULL;
103681 l_adr_flexfield_segment_code  := NULL;
103682 l_adr_flex_value_set_id       := NULL;
103683 l_adr_value_type_code         := NULL;
103684 l_adr_value_combination_id    := NULL;
103685 l_adr_value_segment_code      := NULL;
103686 
103687 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
103688 l_bflow_class_code           := '';    -- 4219869 Business Flow
103689 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103690 l_budgetary_control_flag     := 'N';
103691 
103692 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
103693 l_bflow_applied_to_amt       := NULL; -- 5132302
103694 l_entered_amt_idx            := NULL;          -- 4262811
103695 l_accted_amt_idx             := NULL;          -- 4262811
103696 l_acc_rev_flag               := NULL;          -- 4262811
103697 l_accrual_line_num           := NULL;          -- 4262811
103698 l_tmp_amt                    := NULL;          -- 4262811
103699 --
103700  
103701 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103702     l_balance_type_code <> 'B' THEN
103703 IF NVL(p_source_28,'
103704 ') =  'NONREC_TAX' AND 
103705 NVL(p_source_54,'
103706 ') =  'Y' AND 
103707 NVL(p_source_145,'
103708 ') <>  'Y'
103709  THEN 
103710 
103711    --
103712    XLA_AE_LINES_PKG.SetNewLine;
103713 
103714    p_balance_type_code          := l_balance_type_code;
103715    -- set the flag so later we will know whether the gain loss line needs to be created
103716    
103717    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103718      p_actual_flag :='A';
103719    END IF;
103720 
103721    --
103722    -- bulk performance
103723    --
103724    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103725                                       p_header_num   => 0); -- 4262811
103726    --
103727    -- set accounting line options
103728    --
103729    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103730            p_natural_side_code          => 'D'
103731          , p_gain_or_loss_flag          => 'N'
103732          , p_gl_transfer_mode_code      => 'S'
103733          , p_acct_entry_type_code       => 'A'
103734          , p_switch_side_flag           => 'Y'
103735          , p_merge_duplicate_code       => 'A'
103736          );
103737    --
103738    l_acc_rev_natural_side_code := 'C';  -- 4262811
103739    -- 
103740    --
103741    -- set accounting line type info
103742    --
103743    xla_ae_lines_pkg.SetAcctLineType
103744       (p_component_type             => l_component_type
103745       ,p_event_type_code            => l_event_type_code
103746       ,p_line_definition_owner_code => l_line_definition_owner_code
103747       ,p_line_definition_code       => l_line_definition_code
103748       ,p_accounting_line_code       => l_component_code
103749       ,p_accounting_line_type_code  => l_component_type_code
103750       ,p_accounting_line_appl_id    => l_component_appl_id
103751       ,p_amb_context_code           => l_amb_context_code
103752       ,p_entity_code                => l_entity_code
103753       ,p_event_class_code           => l_event_class_code);
103754    --
103755    -- set accounting class
103756    --
103757    xla_ae_lines_pkg.SetAcctClass(
103758            p_accounting_class_code  => 'NRTAX'
103759          , p_ae_header_id           => l_ae_header_id
103760          );
103761 
103762    --
103763    -- set rounding class
103764    --
103765    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103766                       'NRTAX';
103767 
103768    --
103769    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103770    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103771    --
103772    -- bulk performance
103773    --
103774    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103775 
103776    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103777       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103778 
103779    -- 4955764
103780    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103781       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103782 
103783    -- 4458381 Public Sector Enh
103784    
103785    --
103786    -- set accounting attributes for the line type
103787    --
103788    l_entered_amt_idx := 23;
103789    l_accted_amt_idx  := 28;
103790    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
103791    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103792    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
103793    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
103794    l_rec_acct_attrs.array_num_value(2)  := 
103795 xla_ae_sources_pkg.GetSystemSourceNum(
103796    p_source_code           => 'XLA_EVENT_APPL_ID'
103797  , p_source_type_code      => 'Y'
103798  , p_source_application_id =>  602
103799 );
103800    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
103801    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
103805    p_source_code           => 'XLA_ENTITY_CODE'
103802    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
103803    l_rec_acct_attrs.array_char_value(4)  := 
103804 xla_ae_sources_pkg.GetSystemSourceChar(
103806  , p_source_type_code      => 'Y'
103807  , p_source_application_id =>  602
103808 );
103809    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
103810    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
103811    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
103812    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
103813    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
103814    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
103815    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103816    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
103817    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
103818    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
103819    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
103820    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
103821    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103822    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
103823    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
103824    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
103825    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
103826    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
103827    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
103828    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
103829    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
103830    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
103831    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
103832    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
103833    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
103834    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
103835    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
103836    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
103837    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
103838    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
103839    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
103840    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
103841    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
103842    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
103843    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
103844    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
103845    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
103846    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
103847    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
103848    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
103849    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
103850    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
103851    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
103852    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
103853    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
103854    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
103855    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
103856    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
103857    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
103858    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
103859    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103860    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
103861    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103862    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
103863    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103864    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
103865    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103866    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
103867    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103868    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
103869    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103870    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
103871    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103872    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
103873    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103874    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
103875    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
103876    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
103877    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
103878    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
103879    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
103880    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
103881    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
103882    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
103883    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
103884    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
103885    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
103886    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
103887 
103888    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103892    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103889    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103890 
103891    ---------------------------------------------------------------------------------------------------------------
103893    ---------------------------------------------------------------------------------------------------------------
103894    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103895 
103896    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103897    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103898 
103899    IF xla_accounting_cache_pkg.GetValueChar
103900          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103901          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103902    AND l_bflow_method_code = 'PRIOR_ENTRY'
103903 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103904    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103905          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103906        )
103907    THEN
103908          xla_ae_lines_pkg.BflowUpgEntry
103909            (p_business_method_code    => l_bflow_method_code
103910            ,p_business_class_code     => l_bflow_class_code
103911            ,p_balance_type            => l_balance_type_code);
103912    ELSE
103913       NULL;
103914 -- No business flow processing for business flow method of NONE.
103915    END IF;
103916 
103917    --
103918    -- call analytical criteria
103919    --
103920    
103921    --
103922    -- call description
103923    --
103924    
103925 xla_ae_lines_pkg.SetLineDescription(
103926    p_ae_header_id => l_ae_header_id
103927   ,p_description  => Description_2 (
103928      p_application_id         => p_application_id
103929    , p_ae_header_id           => l_ae_header_id 
103930 , p_source_1 => p_source_1
103931    )
103932 );
103933 
103934 
103935    --
103936    -- call ADRs
103937    -- Bug 4922099
103938    --
103939    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103940         (NVL(l_actual_upg_option, 'N') = 'O') OR
103941         (NVL(l_enc_upg_option, 'N') = 'O')
103942       )
103943    THEN
103944    NULL;
103945    --
103946    --
103947    
103948   l_ccid := AcctDerRule_35(
103949            p_application_id           => p_application_id
103950          , p_ae_header_id             => l_ae_header_id 
103951 , p_source_25 => p_source_25
103952          , x_transaction_coa_id       => l_adr_transaction_coa_id
103953          , x_accounting_coa_id        => l_adr_accounting_coa_id
103954          , x_value_type_code          => l_adr_value_type_code
103955          , p_side                     => 'NA'
103956    );
103957 
103958    xla_ae_lines_pkg.set_ccid(
103959     p_code_combination_id          => l_ccid
103960   , p_value_type_code              => l_adr_value_type_code
103961   , p_transaction_coa_id           => l_adr_transaction_coa_id
103962   , p_accounting_coa_id            => l_adr_accounting_coa_id
103963   , p_adr_code                     => 'AP_INVOICE_DIST'
103964   , p_adr_type_code                => 'S'
103965   , p_component_type               => l_component_type
103966   , p_component_code               => l_component_code
103967   , p_component_type_code          => l_component_type_code
103968   , p_component_appl_id            => l_component_appl_id
103969   , p_amb_context_code             => l_amb_context_code
103970   , p_side                         => 'NA'
103971   );
103972 
103973 
103974    --
103975    --
103976    END IF;
103977    --
103978    -- Bug 4922099
103979    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103980           (NVL(l_enc_upg_option, 'N') = 'O')
103981         ) AND
103982         (l_bflow_method_code = 'PRIOR_ENTRY')
103983       )
103984    THEN
103985       IF
103986       --
103987       1 = 2
103988       --
103989       THEN
103990       xla_accounting_err_pkg.build_message
103991                                     (p_appli_s_name            => 'XLA'
103992                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103993                                     ,p_token_1                 => 'LINE_NUMBER'
103994                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
103995                                     ,p_token_2                 => 'LINE_TYPE_NAME'
103996                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
103997                                                                              l_component_type
103998                                                                             ,l_component_code
103999                                                                             ,l_component_type_code
104000                                                                             ,l_component_appl_id
104001                                                                             ,l_amb_context_code
104002                                                                             ,l_entity_code
104003                                                                             ,l_event_class_code
104004                                                                            )
104005                                     ,p_token_3                 => 'OWNER'
104009                                                                          )
104006                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104007                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104008                                                                           ,p_lookup_code    => l_component_type_code
104010                                     ,p_token_4                 => 'PRODUCT_NAME'
104011                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104012                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104013                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104014                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104015                                     ,p_ae_header_id            =>  NULL
104016                                        );
104017 
104018         IF (C_LEVEL_ERROR>= g_log_level) THEN
104019                  trace
104020                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104021                       ,p_level    => C_LEVEL_ERROR
104022                       ,p_module   => l_log_module);
104023         END IF;
104024       END IF;
104025    END IF;
104026    --
104027    --
104028    ------------------------------------------------------------------------------------------------
104029    -- 4219869 Business Flow
104030    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104031    -- Prior Entry.  Currently, the following code is always generated.
104032    ------------------------------------------------------------------------------------------------
104033    XLA_AE_LINES_PKG.ValidateCurrentLine;
104034 
104035    ------------------------------------------------------------------------------------
104036    -- 4219869 Business Flow
104037    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104038    ------------------------------------------------------------------------------------
104039    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104040 
104041    ----------------------------------------------------------------------------------
104042    -- 4219869 Business Flow
104043    -- Update journal entry status -- Need to generate this within IF <condition>
104044    ----------------------------------------------------------------------------------
104045    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104046          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104047          ,p_balance_type_code => l_balance_type_code
104048          );
104049 
104050    -------------------------------------------------------------------------------------------
104051    -- 4262811 - Generate the Accrual Reversal lines
104052    -------------------------------------------------------------------------------------------
104053    BEGIN
104054       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104055                               (g_array_event(p_event_id).array_value_num('header_index'));
104056       IF l_acc_rev_flag IS NULL THEN
104057          l_acc_rev_flag := 'N';
104058       END IF;
104059    EXCEPTION
104060       WHEN OTHERS THEN
104061          l_acc_rev_flag := 'N';
104062    END;
104063    --
104064    IF (l_acc_rev_flag = 'Y') THEN
104065 
104066        -- 4645092  ------------------------------------------------------------------------------
104067        -- To allow MPA report to determine if it should generate report process
104068        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104069        ------------------------------------------------------------------------------------------
104070 
104071        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104072        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104073    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104074    -- call ADRs
104075    -- Bug 4922099
104076    --
104077    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104078         (NVL(l_actual_upg_option, 'N') = 'O') OR
104079         (NVL(l_enc_upg_option, 'N') = 'O')
104080       )
104081    THEN
104082    NULL;
104083    --
104084    --
104085    
104086   l_ccid := AcctDerRule_35(
104087            p_application_id           => p_application_id
104088          , p_ae_header_id             => l_ae_header_id 
104089 , p_source_25 => p_source_25
104090          , x_transaction_coa_id       => l_adr_transaction_coa_id
104091          , x_accounting_coa_id        => l_adr_accounting_coa_id
104092          , x_value_type_code          => l_adr_value_type_code
104093          , p_side                     => 'NA'
104094    );
104095 
104096    xla_ae_lines_pkg.set_ccid(
104097     p_code_combination_id          => l_ccid
104098   , p_value_type_code              => l_adr_value_type_code
104099   , p_transaction_coa_id           => l_adr_transaction_coa_id
104100   , p_accounting_coa_id            => l_adr_accounting_coa_id
104101   , p_adr_code                     => 'AP_INVOICE_DIST'
104102   , p_adr_type_code                => 'S'
104103   , p_component_type               => l_component_type
104104   , p_component_code               => l_component_code
104105   , p_component_type_code          => l_component_type_code
104106   , p_component_appl_id            => l_component_appl_id
104107   , p_amb_context_code             => l_amb_context_code
104111 
104108   , p_side                         => 'NA'
104109   );
104110 
104112    --
104113    --
104114    END IF;
104115 
104116        --
104117        -- Update the line information that should be overwritten
104118        --
104119        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104120                                          p_header_num   => 1);
104121        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104122 
104123        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104124 
104125        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104126           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104127        END IF;
104128 
104129       --
104130       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104131       --
104132       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104133           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104134       ELSE
104135           ---------------------------------------------------------------------------------------------------
104136           -- 4262811a Switch Sign
104137           ---------------------------------------------------------------------------------------------------
104138           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104139           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104140                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104141           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104142                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104143           -- 5132302
104144           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104145                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104146 
104147       END IF;
104148 
104149       -- 4955764
104150       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104152 
104153 
104154       XLA_AE_LINES_PKG.ValidateCurrentLine;
104155       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104156 
104157       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104158                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104159                ,p_balance_type_code => l_balance_type_code);
104160 
104161    END IF;
104162 
104163    -----------------------------------------------------------------------------------------
104164    -- 4262811 Multiperiod Accounting
104165    -----------------------------------------------------------------------------------------
104166      -- No MPA option is assigned.
104167 
104168 
104169 END IF;
104170 END IF;
104171 --
104172 
104173 --
104174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104175    trace
104176       (p_msg      => 'END of AcctLineType_184'
104177       ,p_level    => C_LEVEL_PROCEDURE
104178       ,p_module   => l_log_module);
104179 END IF;
104180 --
104181 EXCEPTION
104182   WHEN xla_exceptions_pkg.application_exception THEN
104183       RAISE;
104184   WHEN OTHERS THEN
104185        xla_exceptions_pkg.raise_message
104186            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_184');
104187 END AcctLineType_184;
104188 --
104189 
104190 ---------------------------------------
104191 --
104192 -- PRIVATE FUNCTION
104193 --         AcctLineType_185
104194 --
104195 ---------------------------------------
104196 PROCEDURE AcctLineType_185 (
104197   p_application_id        IN NUMBER
104198  ,p_event_id              IN NUMBER
104199  ,p_calculate_acctd_flag  IN VARCHAR2
104200  ,p_calculate_g_l_flag    IN VARCHAR2
104201  ,p_actual_flag           IN OUT VARCHAR2
104202  ,p_balance_type_code     OUT VARCHAR2
104203  ,p_gain_or_loss_ref      OUT VARCHAR2
104204  
104205 --Invoice Distribution Description
104206  , p_source_1            IN VARCHAR2
104207 --Invoice Distribution Ledger Amount
104208  , p_source_16            IN NUMBER
104209 --Invoice Distribution Account
104210  , p_source_25            IN NUMBER
104211 --Invoice Distribution Type
104212  , p_source_28            IN VARCHAR2
104213  , p_source_28_meaning    IN VARCHAR2
104214 --Accrue on Receipt Option
104215  , p_source_54            IN VARCHAR2
104216  , p_source_54_meaning    IN VARCHAR2
104217 --Accounting Reversal Indicator
104218  , p_source_58            IN VARCHAR2
104219 --Distribution Link Type
104220  , p_source_60            IN VARCHAR2
104221 --Allocation to Main Distribution Identifier
104222  , p_source_62            IN NUMBER
104223 --Invoice Identifier
104224  , p_source_63            IN NUMBER
104225 --Invoice Distribution Identifier
104226  , p_source_69            IN NUMBER
104227 --Payables Encumbrance Upgrade Credit Account
104228  , p_source_70            IN NUMBER
104229 --Payables Encumbrance Upgrade Credit Amount
104230  , p_source_71            IN NUMBER
104231 --Invoice Currency Code
104232  , p_source_72            IN VARCHAR2
104236  , p_source_74            IN NUMBER
104233 --Payables Encumbrance Upgrade Credit Base Amount
104234  , p_source_73            IN NUMBER
104235 --Payables Encumbrance Upgrade Debit Account
104237 --Payables Encumbrance Upgrade Debit Amount
104238  , p_source_75            IN NUMBER
104239 --Payables Encumbrance Upgrade Debit Base Amount
104240  , p_source_76            IN NUMBER
104241 --Payables Encumbrance Upgrade Option
104242  , p_source_77            IN VARCHAR2
104243 --Invoice Distribution Amount
104244  , p_source_78            IN NUMBER
104245 --Purchase Order Exchange Rate Date
104246  , p_source_79            IN DATE
104247 --Purchase Order Exchange Rate
104248  , p_source_80            IN NUMBER
104249 --Purchase Order Exchange Rate Type
104250  , p_source_81            IN VARCHAR2
104251 --Deferred Accounting End Date
104252  , p_source_82            IN DATE
104253 --Deferred Accounting Option
104254  , p_source_83            IN VARCHAR2
104255 --Deferred Accounting Start Date
104256  , p_source_84            IN DATE
104257 --Override Accounted Amount Indicator
104258  , p_source_85            IN VARCHAR2
104259  , p_source_85_meaning    IN VARCHAR2
104260 --Invoice Supplier Identifier
104261  , p_source_86            IN NUMBER
104262 --Invoice Supplier Site Identifier
104263  , p_source_87            IN NUMBER
104264 --Third Party Type
104265  , p_source_88            IN VARCHAR2
104266 --Parent Reversal Identifier
104267  , p_source_89            IN NUMBER
104268 --Invoice Distribution Tax Line Identifier
104269  , p_source_91            IN NUMBER
104270 --Invoice Distribution Tax Distribution Identifier from Tax
104271  , p_source_92            IN NUMBER
104272 --Invoice Distribution Summary Tax Line Identifier
104273  , p_source_93            IN NUMBER
104274 --Payables Upgrade Credit Encumbrance Type Identifier
104275  , p_source_94            IN NUMBER
104276 --Payables Upgrade Debit Encumbrance Type Identifier
104277  , p_source_95            IN NUMBER
104278 --Business Flow Accounts Payable Application Identifier
104279  , p_source_96            IN NUMBER
104280 --Business Flow Invoice Distribution Type
104281  , p_source_97            IN VARCHAR2
104282 --Business Flow Invoice Entity Code
104283  , p_source_98            IN VARCHAR2
104284 --Business Flow Invoice Distribution Identifier
104285  , p_source_99            IN NUMBER
104286 --Business Flow Invoice Identifier
104287  , p_source_100            IN NUMBER
104288 --Self-Assessed Tax Flag
104289  , p_source_145            IN VARCHAR2
104290  , p_source_145_meaning    IN VARCHAR2
104291 )
104292 IS
104293 
104294 l_component_type              VARCHAR2(80);
104295 l_component_code              VARCHAR2(30);
104296 l_component_type_code         VARCHAR2(1);
104297 l_component_appl_id           INTEGER;
104298 l_amb_context_code            VARCHAR2(30);
104299 l_entity_code                 VARCHAR2(30);
104300 l_event_class_code            VARCHAR2(30);
104301 l_ae_header_id                NUMBER;
104302 l_event_type_code             VARCHAR2(30);
104303 l_line_definition_code        VARCHAR2(30);
104304 l_line_definition_owner_code  VARCHAR2(1);
104305 --
104306 -- adr variables
104307 l_segment                     VARCHAR2(30);
104308 l_ccid                        NUMBER;
104309 l_adr_transaction_coa_id      NUMBER;
104310 l_adr_accounting_coa_id       NUMBER;
104311 l_adr_flexfield_segment_code  VARCHAR2(30);
104312 l_adr_flex_value_set_id       NUMBER;
104313 l_adr_value_type_code         VARCHAR2(30);
104314 l_adr_value_combination_id    NUMBER;
104315 l_adr_value_segment_code      VARCHAR2(30);
104316 
104317 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
104318 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
104319 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
104320 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
104321 
104322 -- 4262811 Variables ------------------------------------------------------------------------------------------
104323 l_entered_amt_idx             NUMBER;
104324 l_accted_amt_idx              NUMBER;
104325 l_acc_rev_flag                VARCHAR2(1);
104326 l_accrual_line_num            NUMBER;
104327 l_tmp_amt                     NUMBER;
104328 l_acc_rev_natural_side_code   VARCHAR2(1);
104329 
104330 l_num_entries                 NUMBER;
104331 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
104332 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
104333 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
104334 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
104335 l_recog_line_1                NUMBER;
104336 l_recog_line_2                NUMBER;
104337 
104338 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
104339 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
104340 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
104341 
104342 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104343 
104344 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
104345 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
104346 
104347 ---------------------------------------------------------------------------------------------------------------
104348 
104349 
104350 --
104351 -- bulk performance
104352 --
104353 l_balance_type_code           VARCHAR2(1);
104354 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
104355 l_log_module                  VARCHAR2(240);
104359 --
104356 
104357 --
104358 -- Upgrade strategy
104360 l_actual_upg_option           VARCHAR2(1);
104361 l_enc_upg_option           VARCHAR2(1);
104362 
104363 --
104364 BEGIN
104365 --
104366 IF g_log_enabled THEN
104367       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_185';
104368 END IF;
104369 --
104370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104371 
104372       trace
104373          (p_msg      => 'BEGIN of AcctLineType_185'
104374          ,p_level    => C_LEVEL_PROCEDURE
104375          ,p_module   => l_log_module);
104376 
104377 END IF;
104378 --
104379 l_component_type             := 'AMB_JLT';
104380 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_DM';
104381 l_component_type_code        := 'S';
104382 l_component_appl_id          :=  200;
104383 l_amb_context_code           := 'DEFAULT';
104384 l_entity_code                := 'AP_INVOICES';
104385 l_event_class_code           := 'DEBIT MEMOS';
104386 l_event_type_code            := 'DEBIT MEMOS_ALL';
104387 l_line_definition_owner_code := 'S';
104388 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
104389 --
104390 l_balance_type_code          := 'A';
104391 l_segment                     := NULL;
104392 l_ccid                        := NULL;
104393 l_adr_transaction_coa_id      := NULL;
104394 l_adr_accounting_coa_id       := NULL;
104395 l_adr_flexfield_segment_code  := NULL;
104396 l_adr_flex_value_set_id       := NULL;
104397 l_adr_value_type_code         := NULL;
104398 l_adr_value_combination_id    := NULL;
104399 l_adr_value_segment_code      := NULL;
104400 
104401 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
104402 l_bflow_class_code           := '';    -- 4219869 Business Flow
104403 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
104404 l_budgetary_control_flag     := 'N';
104405 
104406 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
104407 l_bflow_applied_to_amt       := NULL; -- 5132302
104408 l_entered_amt_idx            := NULL;          -- 4262811
104409 l_accted_amt_idx             := NULL;          -- 4262811
104410 l_acc_rev_flag               := NULL;          -- 4262811
104411 l_accrual_line_num           := NULL;          -- 4262811
104412 l_tmp_amt                    := NULL;          -- 4262811
104413 --
104414  
104415 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104416     l_balance_type_code <> 'B' THEN
104417 IF NVL(p_source_28,'
104418 ') =  'NONREC_TAX' AND 
104419 NVL(p_source_54,'
104420 ') =  'Y' AND 
104421 NVL(p_source_145,'
104422 ') <>  'Y'
104423  THEN 
104424 
104425    --
104426    XLA_AE_LINES_PKG.SetNewLine;
104427 
104428    p_balance_type_code          := l_balance_type_code;
104429    -- set the flag so later we will know whether the gain loss line needs to be created
104430    
104431    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104432      p_actual_flag :='A';
104433    END IF;
104434 
104435    --
104436    -- bulk performance
104437    --
104438    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104439                                       p_header_num   => 0); -- 4262811
104440    --
104441    -- set accounting line options
104442    --
104443    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104444            p_natural_side_code          => 'D'
104445          , p_gain_or_loss_flag          => 'N'
104446          , p_gl_transfer_mode_code      => 'S'
104447          , p_acct_entry_type_code       => 'A'
104448          , p_switch_side_flag           => 'Y'
104449          , p_merge_duplicate_code       => 'A'
104450          );
104451    --
104452    l_acc_rev_natural_side_code := 'C';  -- 4262811
104453    -- 
104454    --
104455    -- set accounting line type info
104456    --
104457    xla_ae_lines_pkg.SetAcctLineType
104458       (p_component_type             => l_component_type
104459       ,p_event_type_code            => l_event_type_code
104460       ,p_line_definition_owner_code => l_line_definition_owner_code
104461       ,p_line_definition_code       => l_line_definition_code
104462       ,p_accounting_line_code       => l_component_code
104463       ,p_accounting_line_type_code  => l_component_type_code
104464       ,p_accounting_line_appl_id    => l_component_appl_id
104465       ,p_amb_context_code           => l_amb_context_code
104466       ,p_entity_code                => l_entity_code
104467       ,p_event_class_code           => l_event_class_code);
104468    --
104469    -- set accounting class
104470    --
104471    xla_ae_lines_pkg.SetAcctClass(
104472            p_accounting_class_code  => 'NRTAX'
104473          , p_ae_header_id           => l_ae_header_id
104474          );
104475 
104476    --
104477    -- set rounding class
104478    --
104479    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104480                       'NRTAX';
104481 
104482    --
104483    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104484    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104485    --
104486    -- bulk performance
104487    --
104488    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104489 
104490    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104491       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104492 
104496 
104493    -- 4955764
104494    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104495       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104497    -- 4458381 Public Sector Enh
104498    
104499    --
104500    -- set accounting attributes for the line type
104501    --
104502    l_entered_amt_idx := 23;
104503    l_accted_amt_idx  := 28;
104504    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
104505    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104506    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
104507    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
104508    l_rec_acct_attrs.array_num_value(2)  := 
104509 xla_ae_sources_pkg.GetSystemSourceNum(
104510    p_source_code           => 'XLA_EVENT_APPL_ID'
104511  , p_source_type_code      => 'Y'
104512  , p_source_application_id =>  602
104513 );
104514    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
104515    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
104516    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
104517    l_rec_acct_attrs.array_char_value(4)  := 
104518 xla_ae_sources_pkg.GetSystemSourceChar(
104519    p_source_code           => 'XLA_ENTITY_CODE'
104520  , p_source_type_code      => 'Y'
104521  , p_source_application_id =>  602
104522 );
104523    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
104524    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
104525    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
104526    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
104527    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
104528    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
104529    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104530    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
104531    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
104532    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
104533    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
104534    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
104535    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104536    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
104537    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
104538    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
104539    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
104540    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
104541    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
104542    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
104543    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
104544    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
104545    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
104546    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
104547    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
104548    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
104549    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
104550    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
104551    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
104552    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
104553    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
104554    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
104555    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
104556    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
104557    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
104558    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
104559    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
104560    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
104561    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
104562    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
104563    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
104564    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
104565    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
104566    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
104567    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
104568    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
104569    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
104570    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
104571    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
104572    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
104573    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
104574    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
104575    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
104576    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
104577    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
104578    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
104579    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
104580    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
104581    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
104582    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
104583    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
104584    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
104585    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
104589    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
104586    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
104587    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
104588    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
104590    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
104591    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
104592    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
104593    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
104594    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
104595    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
104596    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
104597    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
104598    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
104599 
104600    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104601    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104602 
104603    ---------------------------------------------------------------------------------------------------------------
104604    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104605    ---------------------------------------------------------------------------------------------------------------
104606    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104607 
104608    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104609    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104610 
104611    IF xla_accounting_cache_pkg.GetValueChar
104612          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104613          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104614    AND l_bflow_method_code = 'PRIOR_ENTRY'
104615 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104616    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104617          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104618        )
104619    THEN
104620          xla_ae_lines_pkg.BflowUpgEntry
104621            (p_business_method_code    => l_bflow_method_code
104622            ,p_business_class_code     => l_bflow_class_code
104623            ,p_balance_type            => l_balance_type_code);
104624    ELSE
104625       NULL;
104626 -- No business flow processing for business flow method of NONE.
104627    END IF;
104628 
104629    --
104630    -- call analytical criteria
104631    --
104632    
104633    --
104634    -- call description
104635    --
104636    
104637 xla_ae_lines_pkg.SetLineDescription(
104638    p_ae_header_id => l_ae_header_id
104639   ,p_description  => Description_2 (
104640      p_application_id         => p_application_id
104641    , p_ae_header_id           => l_ae_header_id 
104642 , p_source_1 => p_source_1
104643    )
104644 );
104645 
104646 
104647    --
104648    -- call ADRs
104649    -- Bug 4922099
104650    --
104651    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104652         (NVL(l_actual_upg_option, 'N') = 'O') OR
104653         (NVL(l_enc_upg_option, 'N') = 'O')
104654       )
104655    THEN
104656    NULL;
104657    --
104658    --
104659    
104660   l_ccid := AcctDerRule_35(
104661            p_application_id           => p_application_id
104662          , p_ae_header_id             => l_ae_header_id 
104663 , p_source_25 => p_source_25
104664          , x_transaction_coa_id       => l_adr_transaction_coa_id
104665          , x_accounting_coa_id        => l_adr_accounting_coa_id
104666          , x_value_type_code          => l_adr_value_type_code
104667          , p_side                     => 'NA'
104668    );
104669 
104670    xla_ae_lines_pkg.set_ccid(
104671     p_code_combination_id          => l_ccid
104672   , p_value_type_code              => l_adr_value_type_code
104673   , p_transaction_coa_id           => l_adr_transaction_coa_id
104674   , p_accounting_coa_id            => l_adr_accounting_coa_id
104675   , p_adr_code                     => 'AP_INVOICE_DIST'
104676   , p_adr_type_code                => 'S'
104677   , p_component_type               => l_component_type
104678   , p_component_code               => l_component_code
104679   , p_component_type_code          => l_component_type_code
104680   , p_component_appl_id            => l_component_appl_id
104681   , p_amb_context_code             => l_amb_context_code
104682   , p_side                         => 'NA'
104683   );
104684 
104685 
104686    --
104687    --
104688    END IF;
104689    --
104690    -- Bug 4922099
104691    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104692           (NVL(l_enc_upg_option, 'N') = 'O')
104693         ) AND
104694         (l_bflow_method_code = 'PRIOR_ENTRY')
104695       )
104696    THEN
104697       IF
104698       --
104699       1 = 2
104700       --
104701       THEN
104702       xla_accounting_err_pkg.build_message
104703                                     (p_appli_s_name            => 'XLA'
104704                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104705                                     ,p_token_1                 => 'LINE_NUMBER'
104706                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104710                                                                             ,l_component_code
104707                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104708                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104709                                                                              l_component_type
104711                                                                             ,l_component_type_code
104712                                                                             ,l_component_appl_id
104713                                                                             ,l_amb_context_code
104714                                                                             ,l_entity_code
104715                                                                             ,l_event_class_code
104716                                                                            )
104717                                     ,p_token_3                 => 'OWNER'
104718                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104719                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104720                                                                           ,p_lookup_code    => l_component_type_code
104721                                                                          )
104722                                     ,p_token_4                 => 'PRODUCT_NAME'
104723                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104724                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104725                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104726                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104727                                     ,p_ae_header_id            =>  NULL
104728                                        );
104729 
104730         IF (C_LEVEL_ERROR>= g_log_level) THEN
104731                  trace
104732                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104733                       ,p_level    => C_LEVEL_ERROR
104734                       ,p_module   => l_log_module);
104735         END IF;
104736       END IF;
104737    END IF;
104738    --
104739    --
104740    ------------------------------------------------------------------------------------------------
104741    -- 4219869 Business Flow
104742    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104743    -- Prior Entry.  Currently, the following code is always generated.
104744    ------------------------------------------------------------------------------------------------
104745    XLA_AE_LINES_PKG.ValidateCurrentLine;
104746 
104747    ------------------------------------------------------------------------------------
104748    -- 4219869 Business Flow
104749    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104750    ------------------------------------------------------------------------------------
104751    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104752 
104753    ----------------------------------------------------------------------------------
104754    -- 4219869 Business Flow
104755    -- Update journal entry status -- Need to generate this within IF <condition>
104756    ----------------------------------------------------------------------------------
104757    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104758          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104759          ,p_balance_type_code => l_balance_type_code
104760          );
104761 
104762    -------------------------------------------------------------------------------------------
104763    -- 4262811 - Generate the Accrual Reversal lines
104764    -------------------------------------------------------------------------------------------
104765    BEGIN
104766       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104767                               (g_array_event(p_event_id).array_value_num('header_index'));
104768       IF l_acc_rev_flag IS NULL THEN
104769          l_acc_rev_flag := 'N';
104770       END IF;
104771    EXCEPTION
104772       WHEN OTHERS THEN
104773          l_acc_rev_flag := 'N';
104774    END;
104775    --
104776    IF (l_acc_rev_flag = 'Y') THEN
104777 
104778        -- 4645092  ------------------------------------------------------------------------------
104779        -- To allow MPA report to determine if it should generate report process
104780        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104781        ------------------------------------------------------------------------------------------
104782 
104783        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104784        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104785    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104786    -- call ADRs
104787    -- Bug 4922099
104788    --
104789    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104790         (NVL(l_actual_upg_option, 'N') = 'O') OR
104791         (NVL(l_enc_upg_option, 'N') = 'O')
104792       )
104793    THEN
104794    NULL;
104795    --
104796    --
104797    
104798   l_ccid := AcctDerRule_35(
104799            p_application_id           => p_application_id
104800          , p_ae_header_id             => l_ae_header_id 
104804          , x_value_type_code          => l_adr_value_type_code
104801 , p_source_25 => p_source_25
104802          , x_transaction_coa_id       => l_adr_transaction_coa_id
104803          , x_accounting_coa_id        => l_adr_accounting_coa_id
104805          , p_side                     => 'NA'
104806    );
104807 
104808    xla_ae_lines_pkg.set_ccid(
104809     p_code_combination_id          => l_ccid
104810   , p_value_type_code              => l_adr_value_type_code
104811   , p_transaction_coa_id           => l_adr_transaction_coa_id
104812   , p_accounting_coa_id            => l_adr_accounting_coa_id
104813   , p_adr_code                     => 'AP_INVOICE_DIST'
104814   , p_adr_type_code                => 'S'
104815   , p_component_type               => l_component_type
104816   , p_component_code               => l_component_code
104817   , p_component_type_code          => l_component_type_code
104818   , p_component_appl_id            => l_component_appl_id
104819   , p_amb_context_code             => l_amb_context_code
104820   , p_side                         => 'NA'
104821   );
104822 
104823 
104824    --
104825    --
104826    END IF;
104827 
104828        --
104829        -- Update the line information that should be overwritten
104830        --
104831        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104832                                          p_header_num   => 1);
104833        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104834 
104835        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104836 
104837        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104838           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104839        END IF;
104840 
104841       --
104842       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104843       --
104844       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104845           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104846       ELSE
104847           ---------------------------------------------------------------------------------------------------
104848           -- 4262811a Switch Sign
104849           ---------------------------------------------------------------------------------------------------
104850           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104851           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104852                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104853           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104854                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104855           -- 5132302
104856           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104857                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104858 
104859       END IF;
104860 
104861       -- 4955764
104862       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104863       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104864 
104865 
104866       XLA_AE_LINES_PKG.ValidateCurrentLine;
104867       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104868 
104869       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104870                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104871                ,p_balance_type_code => l_balance_type_code);
104872 
104873    END IF;
104874 
104875    -----------------------------------------------------------------------------------------
104876    -- 4262811 Multiperiod Accounting
104877    -----------------------------------------------------------------------------------------
104878      -- No MPA option is assigned.
104879 
104880 
104881 END IF;
104882 END IF;
104883 --
104884 
104885 --
104886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104887    trace
104888       (p_msg      => 'END of AcctLineType_185'
104889       ,p_level    => C_LEVEL_PROCEDURE
104890       ,p_module   => l_log_module);
104891 END IF;
104892 --
104893 EXCEPTION
104894   WHEN xla_exceptions_pkg.application_exception THEN
104895       RAISE;
104896   WHEN OTHERS THEN
104897        xla_exceptions_pkg.raise_message
104898            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_185');
104899 END AcctLineType_185;
104900 --
104901 
104902 ---------------------------------------
104903 --
104904 -- PRIVATE FUNCTION
104905 --         AcctLineType_186
104906 --
104907 ---------------------------------------
104908 PROCEDURE AcctLineType_186 (
104909   p_application_id        IN NUMBER
104910  ,p_event_id              IN NUMBER
104911  ,p_calculate_acctd_flag  IN VARCHAR2
104912  ,p_calculate_g_l_flag    IN VARCHAR2
104913  ,p_actual_flag           IN OUT VARCHAR2
104914  ,p_balance_type_code     OUT VARCHAR2
104915  ,p_gain_or_loss_ref      OUT VARCHAR2
104916  
104917 --Invoice Distribution Description
104918  , p_source_1            IN VARCHAR2
104919 --Invoice Distribution Ledger Amount
104920  , p_source_16            IN NUMBER
104921 --Invoice Distribution Account
104922  , p_source_25            IN NUMBER
104923 --Invoice Distribution Type
104927  , p_source_54            IN VARCHAR2
104924  , p_source_28            IN VARCHAR2
104925  , p_source_28_meaning    IN VARCHAR2
104926 --Accrue on Receipt Option
104928  , p_source_54_meaning    IN VARCHAR2
104929 --Accounting Reversal Indicator
104930  , p_source_58            IN VARCHAR2
104931 --Distribution Link Type
104932  , p_source_60            IN VARCHAR2
104933 --Allocation to Main Distribution Identifier
104934  , p_source_62            IN NUMBER
104935 --Invoice Identifier
104936  , p_source_63            IN NUMBER
104937 --Invoice Distribution Identifier
104938  , p_source_69            IN NUMBER
104939 --Payables Encumbrance Upgrade Credit Account
104940  , p_source_70            IN NUMBER
104941 --Payables Encumbrance Upgrade Credit Amount
104942  , p_source_71            IN NUMBER
104943 --Invoice Currency Code
104944  , p_source_72            IN VARCHAR2
104945 --Payables Encumbrance Upgrade Credit Base Amount
104946  , p_source_73            IN NUMBER
104947 --Payables Encumbrance Upgrade Debit Account
104948  , p_source_74            IN NUMBER
104949 --Payables Encumbrance Upgrade Debit Amount
104950  , p_source_75            IN NUMBER
104951 --Payables Encumbrance Upgrade Debit Base Amount
104952  , p_source_76            IN NUMBER
104953 --Payables Encumbrance Upgrade Option
104954  , p_source_77            IN VARCHAR2
104955 --Invoice Distribution Amount
104956  , p_source_78            IN NUMBER
104957 --Purchase Order Exchange Rate Date
104958  , p_source_79            IN DATE
104959 --Purchase Order Exchange Rate
104960  , p_source_80            IN NUMBER
104961 --Purchase Order Exchange Rate Type
104962  , p_source_81            IN VARCHAR2
104963 --Deferred Accounting End Date
104964  , p_source_82            IN DATE
104965 --Deferred Accounting Option
104966  , p_source_83            IN VARCHAR2
104967 --Deferred Accounting Start Date
104968  , p_source_84            IN DATE
104969 --Override Accounted Amount Indicator
104970  , p_source_85            IN VARCHAR2
104971  , p_source_85_meaning    IN VARCHAR2
104972 --Invoice Supplier Identifier
104973  , p_source_86            IN NUMBER
104974 --Invoice Supplier Site Identifier
104975  , p_source_87            IN NUMBER
104976 --Third Party Type
104977  , p_source_88            IN VARCHAR2
104978 --Parent Reversal Identifier
104979  , p_source_89            IN NUMBER
104980 --Invoice Distribution Statistical Amount
104981  , p_source_90            IN NUMBER
104982 --Invoice Distribution Tax Line Identifier
104983  , p_source_91            IN NUMBER
104984 --Invoice Distribution Tax Distribution Identifier from Tax
104985  , p_source_92            IN NUMBER
104986 --Invoice Distribution Summary Tax Line Identifier
104987  , p_source_93            IN NUMBER
104988 --Payables Upgrade Credit Encumbrance Type Identifier
104989  , p_source_94            IN NUMBER
104990 --Payables Upgrade Debit Encumbrance Type Identifier
104991  , p_source_95            IN NUMBER
104992 --Business Flow Accounts Payable Application Identifier
104993  , p_source_96            IN NUMBER
104994 --Business Flow Invoice Distribution Type
104995  , p_source_97            IN VARCHAR2
104996 --Business Flow Invoice Entity Code
104997  , p_source_98            IN VARCHAR2
104998 --Business Flow Invoice Distribution Identifier
104999  , p_source_99            IN NUMBER
105000 --Business Flow Invoice Identifier
105001  , p_source_100            IN NUMBER
105002 --Self-Assessed Tax Flag
105003  , p_source_145            IN VARCHAR2
105004  , p_source_145_meaning    IN VARCHAR2
105005 )
105006 IS
105007 
105008 l_component_type              VARCHAR2(80);
105009 l_component_code              VARCHAR2(30);
105010 l_component_type_code         VARCHAR2(1);
105011 l_component_appl_id           INTEGER;
105012 l_amb_context_code            VARCHAR2(30);
105013 l_entity_code                 VARCHAR2(30);
105014 l_event_class_code            VARCHAR2(30);
105015 l_ae_header_id                NUMBER;
105016 l_event_type_code             VARCHAR2(30);
105017 l_line_definition_code        VARCHAR2(30);
105018 l_line_definition_owner_code  VARCHAR2(1);
105019 --
105020 -- adr variables
105021 l_segment                     VARCHAR2(30);
105022 l_ccid                        NUMBER;
105023 l_adr_transaction_coa_id      NUMBER;
105024 l_adr_accounting_coa_id       NUMBER;
105025 l_adr_flexfield_segment_code  VARCHAR2(30);
105026 l_adr_flex_value_set_id       NUMBER;
105027 l_adr_value_type_code         VARCHAR2(30);
105028 l_adr_value_combination_id    NUMBER;
105029 l_adr_value_segment_code      VARCHAR2(30);
105030 
105031 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105032 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105033 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105034 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105035 
105036 -- 4262811 Variables ------------------------------------------------------------------------------------------
105037 l_entered_amt_idx             NUMBER;
105038 l_accted_amt_idx              NUMBER;
105039 l_acc_rev_flag                VARCHAR2(1);
105040 l_accrual_line_num            NUMBER;
105041 l_tmp_amt                     NUMBER;
105042 l_acc_rev_natural_side_code   VARCHAR2(1);
105043 
105044 l_num_entries                 NUMBER;
105045 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105046 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105047 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105048 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105052 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105049 l_recog_line_1                NUMBER;
105050 l_recog_line_2                NUMBER;
105051 
105053 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105054 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105055 
105056 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105057 
105058 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105059 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105060 
105061 ---------------------------------------------------------------------------------------------------------------
105062 
105063 
105064 --
105065 -- bulk performance
105066 --
105067 l_balance_type_code           VARCHAR2(1);
105068 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105069 l_log_module                  VARCHAR2(240);
105070 
105071 --
105072 -- Upgrade strategy
105073 --
105074 l_actual_upg_option           VARCHAR2(1);
105075 l_enc_upg_option           VARCHAR2(1);
105076 
105077 --
105078 BEGIN
105079 --
105080 IF g_log_enabled THEN
105081       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_186';
105082 END IF;
105083 --
105084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105085 
105086       trace
105087          (p_msg      => 'BEGIN of AcctLineType_186'
105088          ,p_level    => C_LEVEL_PROCEDURE
105089          ,p_module   => l_log_module);
105090 
105091 END IF;
105092 --
105093 l_component_type             := 'AMB_JLT';
105094 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_INV';
105095 l_component_type_code        := 'S';
105096 l_component_appl_id          :=  200;
105097 l_amb_context_code           := 'DEFAULT';
105098 l_entity_code                := 'AP_INVOICES';
105099 l_event_class_code           := 'INVOICES';
105100 l_event_type_code            := 'INVOICES_ALL';
105101 l_line_definition_owner_code := 'S';
105102 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
105103 --
105104 l_balance_type_code          := 'A';
105105 l_segment                     := NULL;
105106 l_ccid                        := NULL;
105107 l_adr_transaction_coa_id      := NULL;
105108 l_adr_accounting_coa_id       := NULL;
105109 l_adr_flexfield_segment_code  := NULL;
105110 l_adr_flex_value_set_id       := NULL;
105111 l_adr_value_type_code         := NULL;
105112 l_adr_value_combination_id    := NULL;
105113 l_adr_value_segment_code      := NULL;
105114 
105115 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105116 l_bflow_class_code           := '';    -- 4219869 Business Flow
105117 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105118 l_budgetary_control_flag     := 'N';
105119 
105120 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105121 l_bflow_applied_to_amt       := NULL; -- 5132302
105122 l_entered_amt_idx            := NULL;          -- 4262811
105123 l_accted_amt_idx             := NULL;          -- 4262811
105124 l_acc_rev_flag               := NULL;          -- 4262811
105125 l_accrual_line_num           := NULL;          -- 4262811
105126 l_tmp_amt                    := NULL;          -- 4262811
105127 --
105128  
105129 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105130     l_balance_type_code <> 'B' THEN
105131 IF NVL(p_source_28,'
105132 ') =  'NONREC_TAX' AND 
105133 NVL(p_source_54,'
105134 ') =  'Y' AND 
105135 NVL(p_source_145,'
105136 ') <>  'Y'
105137  THEN 
105138 
105139    --
105140    XLA_AE_LINES_PKG.SetNewLine;
105141 
105142    p_balance_type_code          := l_balance_type_code;
105143    -- set the flag so later we will know whether the gain loss line needs to be created
105144    
105145    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105146      p_actual_flag :='A';
105147    END IF;
105148 
105149    --
105150    -- bulk performance
105151    --
105152    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105153                                       p_header_num   => 0); -- 4262811
105154    --
105155    -- set accounting line options
105156    --
105157    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105158            p_natural_side_code          => 'D'
105159          , p_gain_or_loss_flag          => 'N'
105160          , p_gl_transfer_mode_code      => 'S'
105161          , p_acct_entry_type_code       => 'A'
105162          , p_switch_side_flag           => 'Y'
105163          , p_merge_duplicate_code       => 'A'
105164          );
105165    --
105166    l_acc_rev_natural_side_code := 'C';  -- 4262811
105167    -- 
105168    --
105169    -- set accounting line type info
105170    --
105171    xla_ae_lines_pkg.SetAcctLineType
105172       (p_component_type             => l_component_type
105173       ,p_event_type_code            => l_event_type_code
105174       ,p_line_definition_owner_code => l_line_definition_owner_code
105175       ,p_line_definition_code       => l_line_definition_code
105176       ,p_accounting_line_code       => l_component_code
105177       ,p_accounting_line_type_code  => l_component_type_code
105178       ,p_accounting_line_appl_id    => l_component_appl_id
105179       ,p_amb_context_code           => l_amb_context_code
105180       ,p_entity_code                => l_entity_code
105181       ,p_event_class_code           => l_event_class_code);
105182    --
105183    -- set accounting class
105184    --
105188          );
105185    xla_ae_lines_pkg.SetAcctClass(
105186            p_accounting_class_code  => 'NRTAX'
105187          , p_ae_header_id           => l_ae_header_id
105189 
105190    --
105191    -- set rounding class
105192    --
105193    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105194                       'NRTAX';
105195 
105196    --
105197    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105198    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105199    --
105200    -- bulk performance
105201    --
105202    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105203 
105204    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105205       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105206 
105207    -- 4955764
105208    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105209       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105210 
105211    -- 4458381 Public Sector Enh
105212    
105213    --
105214    -- set accounting attributes for the line type
105215    --
105216    l_entered_amt_idx := 24;
105217    l_accted_amt_idx  := 29;
105218    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
105219    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105220    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
105221    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
105222    l_rec_acct_attrs.array_num_value(2)  := 
105223 xla_ae_sources_pkg.GetSystemSourceNum(
105224    p_source_code           => 'XLA_EVENT_APPL_ID'
105225  , p_source_type_code      => 'Y'
105226  , p_source_application_id =>  602
105227 );
105228    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
105229    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
105230    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
105231    l_rec_acct_attrs.array_char_value(4)  := 
105232 xla_ae_sources_pkg.GetSystemSourceChar(
105233    p_source_code           => 'XLA_ENTITY_CODE'
105234  , p_source_type_code      => 'Y'
105235  , p_source_application_id =>  602
105236 );
105237    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
105238    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
105239    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
105240    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
105241    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
105242    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
105243    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
105244    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
105245    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105246    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
105247    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
105248    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
105249    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
105250    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
105251    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105252    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
105253    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
105254    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
105255    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
105256    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
105257    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
105258    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
105259    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
105260    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
105261    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
105262    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
105263    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
105264    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
105265    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
105266    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
105267    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
105268    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
105269    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
105270    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
105271    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
105272    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
105273    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
105274    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
105275    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
105276    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
105277    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
105278    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
105279    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
105280    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
105281    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
105282    l_rec_acct_attrs.array_num_value(27)  := p_source_80;
105286    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
105283    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
105284    l_rec_acct_attrs.array_char_value(28)  := p_source_81;
105285    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
105287    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
105288    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
105289    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
105290    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
105291    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
105292    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
105293    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
105294    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
105295    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
105296    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
105297    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
105298    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
105299    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
105300    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
105301    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
105302    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
105303    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
105304    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
105305    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
105306    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
105307    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
105308    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
105309    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
105310    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
105311    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
105312    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
105313    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
105314    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
105315    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
105316    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
105317 
105318    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105319    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105320 
105321    ---------------------------------------------------------------------------------------------------------------
105322    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105323    ---------------------------------------------------------------------------------------------------------------
105324    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105325 
105326    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105327    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105328 
105329    IF xla_accounting_cache_pkg.GetValueChar
105330          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105331          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105332    AND l_bflow_method_code = 'PRIOR_ENTRY'
105333 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105334    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105335          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105336        )
105337    THEN
105338          xla_ae_lines_pkg.BflowUpgEntry
105339            (p_business_method_code    => l_bflow_method_code
105340            ,p_business_class_code     => l_bflow_class_code
105341            ,p_balance_type            => l_balance_type_code);
105342    ELSE
105343       NULL;
105344 -- No business flow processing for business flow method of NONE.
105345    END IF;
105346 
105347    --
105348    -- call analytical criteria
105349    --
105350    
105351    --
105352    -- call description
105353    --
105354    
105355 xla_ae_lines_pkg.SetLineDescription(
105356    p_ae_header_id => l_ae_header_id
105357   ,p_description  => Description_2 (
105358      p_application_id         => p_application_id
105359    , p_ae_header_id           => l_ae_header_id 
105360 , p_source_1 => p_source_1
105361    )
105362 );
105363 
105364 
105365    --
105366    -- call ADRs
105367    -- Bug 4922099
105368    --
105369    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105370         (NVL(l_actual_upg_option, 'N') = 'O') OR
105371         (NVL(l_enc_upg_option, 'N') = 'O')
105372       )
105373    THEN
105374    NULL;
105375    --
105376    --
105377    
105378   l_ccid := AcctDerRule_35(
105379            p_application_id           => p_application_id
105380          , p_ae_header_id             => l_ae_header_id 
105381 , p_source_25 => p_source_25
105382          , x_transaction_coa_id       => l_adr_transaction_coa_id
105383          , x_accounting_coa_id        => l_adr_accounting_coa_id
105384          , x_value_type_code          => l_adr_value_type_code
105385          , p_side                     => 'NA'
105386    );
105387 
105388    xla_ae_lines_pkg.set_ccid(
105389     p_code_combination_id          => l_ccid
105390   , p_value_type_code              => l_adr_value_type_code
105391   , p_transaction_coa_id           => l_adr_transaction_coa_id
105395   , p_component_type               => l_component_type
105392   , p_accounting_coa_id            => l_adr_accounting_coa_id
105393   , p_adr_code                     => 'AP_INVOICE_DIST'
105394   , p_adr_type_code                => 'S'
105396   , p_component_code               => l_component_code
105397   , p_component_type_code          => l_component_type_code
105398   , p_component_appl_id            => l_component_appl_id
105399   , p_amb_context_code             => l_amb_context_code
105400   , p_side                         => 'NA'
105401   );
105402 
105403 
105404    --
105405    --
105406    END IF;
105407    --
105408    -- Bug 4922099
105409    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105410           (NVL(l_enc_upg_option, 'N') = 'O')
105411         ) AND
105412         (l_bflow_method_code = 'PRIOR_ENTRY')
105413       )
105414    THEN
105415       IF
105416       --
105417       1 = 2
105418       --
105419       THEN
105420       xla_accounting_err_pkg.build_message
105421                                     (p_appli_s_name            => 'XLA'
105422                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105423                                     ,p_token_1                 => 'LINE_NUMBER'
105424                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105425                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105426                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105427                                                                              l_component_type
105428                                                                             ,l_component_code
105429                                                                             ,l_component_type_code
105430                                                                             ,l_component_appl_id
105431                                                                             ,l_amb_context_code
105432                                                                             ,l_entity_code
105433                                                                             ,l_event_class_code
105434                                                                            )
105435                                     ,p_token_3                 => 'OWNER'
105436                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105437                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105438                                                                           ,p_lookup_code    => l_component_type_code
105439                                                                          )
105440                                     ,p_token_4                 => 'PRODUCT_NAME'
105441                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105442                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105443                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105444                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105445                                     ,p_ae_header_id            =>  NULL
105446                                        );
105447 
105448         IF (C_LEVEL_ERROR>= g_log_level) THEN
105449                  trace
105450                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105451                       ,p_level    => C_LEVEL_ERROR
105452                       ,p_module   => l_log_module);
105453         END IF;
105454       END IF;
105455    END IF;
105456    --
105457    --
105458    ------------------------------------------------------------------------------------------------
105459    -- 4219869 Business Flow
105460    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105461    -- Prior Entry.  Currently, the following code is always generated.
105462    ------------------------------------------------------------------------------------------------
105463    XLA_AE_LINES_PKG.ValidateCurrentLine;
105464 
105465    ------------------------------------------------------------------------------------
105466    -- 4219869 Business Flow
105467    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105468    ------------------------------------------------------------------------------------
105469    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105470 
105471    ----------------------------------------------------------------------------------
105472    -- 4219869 Business Flow
105473    -- Update journal entry status -- Need to generate this within IF <condition>
105474    ----------------------------------------------------------------------------------
105475    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105476          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105477          ,p_balance_type_code => l_balance_type_code
105478          );
105479 
105480    -------------------------------------------------------------------------------------------
105481    -- 4262811 - Generate the Accrual Reversal lines
105482    -------------------------------------------------------------------------------------------
105483    BEGIN
105484       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105485                               (g_array_event(p_event_id).array_value_num('header_index'));
105486       IF l_acc_rev_flag IS NULL THEN
105490       WHEN OTHERS THEN
105487          l_acc_rev_flag := 'N';
105488       END IF;
105489    EXCEPTION
105491          l_acc_rev_flag := 'N';
105492    END;
105493    --
105494    IF (l_acc_rev_flag = 'Y') THEN
105495 
105496        -- 4645092  ------------------------------------------------------------------------------
105497        -- To allow MPA report to determine if it should generate report process
105498        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105499        ------------------------------------------------------------------------------------------
105500 
105501        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105502        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105503    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
105504    -- call ADRs
105505    -- Bug 4922099
105506    --
105507    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105508         (NVL(l_actual_upg_option, 'N') = 'O') OR
105509         (NVL(l_enc_upg_option, 'N') = 'O')
105510       )
105511    THEN
105512    NULL;
105513    --
105514    --
105515    
105516   l_ccid := AcctDerRule_35(
105517            p_application_id           => p_application_id
105518          , p_ae_header_id             => l_ae_header_id 
105519 , p_source_25 => p_source_25
105520          , x_transaction_coa_id       => l_adr_transaction_coa_id
105521          , x_accounting_coa_id        => l_adr_accounting_coa_id
105522          , x_value_type_code          => l_adr_value_type_code
105523          , p_side                     => 'NA'
105524    );
105525 
105526    xla_ae_lines_pkg.set_ccid(
105527     p_code_combination_id          => l_ccid
105528   , p_value_type_code              => l_adr_value_type_code
105529   , p_transaction_coa_id           => l_adr_transaction_coa_id
105530   , p_accounting_coa_id            => l_adr_accounting_coa_id
105531   , p_adr_code                     => 'AP_INVOICE_DIST'
105532   , p_adr_type_code                => 'S'
105533   , p_component_type               => l_component_type
105534   , p_component_code               => l_component_code
105535   , p_component_type_code          => l_component_type_code
105536   , p_component_appl_id            => l_component_appl_id
105537   , p_amb_context_code             => l_amb_context_code
105538   , p_side                         => 'NA'
105539   );
105540 
105541 
105542    --
105543    --
105544    END IF;
105545 
105546        --
105547        -- Update the line information that should be overwritten
105548        --
105549        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105550                                          p_header_num   => 1);
105551        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
105552 
105553        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105554 
105555        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
105556           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105557        END IF;
105558 
105559       --
105560       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105561       --
105562       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105563           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
105564       ELSE
105565           ---------------------------------------------------------------------------------------------------
105566           -- 4262811a Switch Sign
105567           ---------------------------------------------------------------------------------------------------
105568           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
105569           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105570                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105571           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105572                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105573           -- 5132302
105574           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105575                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105576 
105577       END IF;
105578 
105579       -- 4955764
105580       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105581       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105582 
105583 
105584       XLA_AE_LINES_PKG.ValidateCurrentLine;
105585       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105586 
105587       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105588                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105589                ,p_balance_type_code => l_balance_type_code);
105590 
105591    END IF;
105592 
105593    -----------------------------------------------------------------------------------------
105594    -- 4262811 Multiperiod Accounting
105595    -----------------------------------------------------------------------------------------
105596      -- No MPA option is assigned.
105597 
105598 
105599 END IF;
105600 END IF;
105601 --
105602 
105603 --
105604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105605    trace
105609 END IF;
105606       (p_msg      => 'END of AcctLineType_186'
105607       ,p_level    => C_LEVEL_PROCEDURE
105608       ,p_module   => l_log_module);
105610 --
105611 EXCEPTION
105612   WHEN xla_exceptions_pkg.application_exception THEN
105613       RAISE;
105614   WHEN OTHERS THEN
105615        xla_exceptions_pkg.raise_message
105616            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_186');
105617 END AcctLineType_186;
105618 --
105619 
105620 ---------------------------------------
105621 --
105622 -- PRIVATE FUNCTION
105623 --         AcctLineType_187
105624 --
105625 ---------------------------------------
105626 PROCEDURE AcctLineType_187 (
105627   p_application_id        IN NUMBER
105628  ,p_event_id              IN NUMBER
105629  ,p_calculate_acctd_flag  IN VARCHAR2
105630  ,p_calculate_g_l_flag    IN VARCHAR2
105631  ,p_actual_flag           IN OUT VARCHAR2
105632  ,p_balance_type_code     OUT VARCHAR2
105633  ,p_gain_or_loss_ref      OUT VARCHAR2
105634  
105635 --Invoice Distribution Description
105636  , p_source_1            IN VARCHAR2
105637 --Invoice Distribution Ledger Amount
105638  , p_source_16            IN NUMBER
105639 --Invoice Distribution Account
105640  , p_source_25            IN NUMBER
105641 --Invoice Distribution Type
105642  , p_source_28            IN VARCHAR2
105643  , p_source_28_meaning    IN VARCHAR2
105644 --Accrue on Receipt Option
105645  , p_source_54            IN VARCHAR2
105646  , p_source_54_meaning    IN VARCHAR2
105647 --Accounting Reversal Indicator
105648  , p_source_58            IN VARCHAR2
105649 --Distribution Link Type
105650  , p_source_60            IN VARCHAR2
105651 --Allocation to Main Distribution Identifier
105652  , p_source_62            IN NUMBER
105653 --Invoice Identifier
105654  , p_source_63            IN NUMBER
105655 --Invoice Distribution Identifier
105656  , p_source_69            IN NUMBER
105657 --Payables Encumbrance Upgrade Credit Account
105658  , p_source_70            IN NUMBER
105659 --Payables Encumbrance Upgrade Credit Amount
105660  , p_source_71            IN NUMBER
105661 --Invoice Currency Code
105662  , p_source_72            IN VARCHAR2
105663 --Payables Encumbrance Upgrade Credit Base Amount
105664  , p_source_73            IN NUMBER
105665 --Payables Encumbrance Upgrade Debit Account
105666  , p_source_74            IN NUMBER
105667 --Payables Encumbrance Upgrade Debit Amount
105668  , p_source_75            IN NUMBER
105669 --Payables Encumbrance Upgrade Debit Base Amount
105670  , p_source_76            IN NUMBER
105671 --Payables Encumbrance Upgrade Option
105672  , p_source_77            IN VARCHAR2
105673 --Invoice Distribution Amount
105674  , p_source_78            IN NUMBER
105675 --Deferred Accounting End Date
105676  , p_source_82            IN DATE
105677 --Deferred Accounting Option
105678  , p_source_83            IN VARCHAR2
105679 --Deferred Accounting Start Date
105680  , p_source_84            IN DATE
105681 --Override Accounted Amount Indicator
105682  , p_source_85            IN VARCHAR2
105683  , p_source_85_meaning    IN VARCHAR2
105684 --Invoice Supplier Identifier
105685  , p_source_86            IN NUMBER
105686 --Invoice Supplier Site Identifier
105687  , p_source_87            IN NUMBER
105688 --Third Party Type
105689  , p_source_88            IN VARCHAR2
105690 --Parent Reversal Identifier
105691  , p_source_89            IN NUMBER
105692 --Invoice Distribution Statistical Amount
105693  , p_source_90            IN NUMBER
105694 --Invoice Distribution Tax Line Identifier
105695  , p_source_91            IN NUMBER
105696 --Invoice Distribution Tax Distribution Identifier from Tax
105697  , p_source_92            IN NUMBER
105698 --Invoice Distribution Summary Tax Line Identifier
105699  , p_source_93            IN NUMBER
105700 --Payables Upgrade Credit Encumbrance Type Identifier
105701  , p_source_94            IN NUMBER
105702 --Payables Upgrade Debit Encumbrance Type Identifier
105703  , p_source_95            IN NUMBER
105704 --Business Flow Accounts Payable Application Identifier
105705  , p_source_96            IN NUMBER
105706 --Business Flow Invoice Distribution Type
105707  , p_source_97            IN VARCHAR2
105708 --Business Flow Invoice Entity Code
105709  , p_source_98            IN VARCHAR2
105710 --Business Flow Invoice Distribution Identifier
105711  , p_source_99            IN NUMBER
105712 --Business Flow Invoice Identifier
105713  , p_source_100            IN NUMBER
105714 --Self-Assessed Tax Flag
105715  , p_source_145            IN VARCHAR2
105716  , p_source_145_meaning    IN VARCHAR2
105717 --Invoice Exchange Date
105718  , p_source_146            IN DATE
105719 --Invoice Exchange Rate
105720  , p_source_147            IN NUMBER
105721 --Invoice Exchange Rate Type
105722  , p_source_148            IN VARCHAR2
105723 )
105724 IS
105725 
105726 l_component_type              VARCHAR2(80);
105727 l_component_code              VARCHAR2(30);
105728 l_component_type_code         VARCHAR2(1);
105729 l_component_appl_id           INTEGER;
105730 l_amb_context_code            VARCHAR2(30);
105731 l_entity_code                 VARCHAR2(30);
105732 l_event_class_code            VARCHAR2(30);
105733 l_ae_header_id                NUMBER;
105734 l_event_type_code             VARCHAR2(30);
105735 l_line_definition_code        VARCHAR2(30);
105736 l_line_definition_owner_code  VARCHAR2(1);
105737 --
105738 -- adr variables
105739 l_segment                     VARCHAR2(30);
105740 l_ccid                        NUMBER;
105741 l_adr_transaction_coa_id      NUMBER;
105742 l_adr_accounting_coa_id       NUMBER;
105746 l_adr_value_combination_id    NUMBER;
105743 l_adr_flexfield_segment_code  VARCHAR2(30);
105744 l_adr_flex_value_set_id       NUMBER;
105745 l_adr_value_type_code         VARCHAR2(30);
105747 l_adr_value_segment_code      VARCHAR2(30);
105748 
105749 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105750 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105751 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105752 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105753 
105754 -- 4262811 Variables ------------------------------------------------------------------------------------------
105755 l_entered_amt_idx             NUMBER;
105756 l_accted_amt_idx              NUMBER;
105757 l_acc_rev_flag                VARCHAR2(1);
105758 l_accrual_line_num            NUMBER;
105759 l_tmp_amt                     NUMBER;
105760 l_acc_rev_natural_side_code   VARCHAR2(1);
105761 
105762 l_num_entries                 NUMBER;
105763 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105764 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105765 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105766 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105767 l_recog_line_1                NUMBER;
105768 l_recog_line_2                NUMBER;
105769 
105770 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105771 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105772 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105773 
105774 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105775 
105776 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105777 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105778 
105779 ---------------------------------------------------------------------------------------------------------------
105780 
105781 
105782 --
105783 -- bulk performance
105784 --
105785 l_balance_type_code           VARCHAR2(1);
105786 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105787 l_log_module                  VARCHAR2(240);
105788 
105789 --
105790 -- Upgrade strategy
105791 --
105792 l_actual_upg_option           VARCHAR2(1);
105793 l_enc_upg_option           VARCHAR2(1);
105794 
105795 --
105796 BEGIN
105797 --
105798 IF g_log_enabled THEN
105799       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_187';
105800 END IF;
105801 --
105802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105803 
105804       trace
105805          (p_msg      => 'BEGIN of AcctLineType_187'
105806          ,p_level    => C_LEVEL_PROCEDURE
105807          ,p_module   => l_log_module);
105808 
105809 END IF;
105810 --
105811 l_component_type             := 'AMB_JLT';
105812 l_component_code             := 'AP_NON_RECOV_TAX_CM';
105813 l_component_type_code        := 'S';
105814 l_component_appl_id          :=  200;
105815 l_amb_context_code           := 'DEFAULT';
105816 l_entity_code                := 'AP_INVOICES';
105817 l_event_class_code           := 'CREDIT MEMOS';
105818 l_event_type_code            := 'CREDIT MEMOS_ALL';
105819 l_line_definition_owner_code := 'S';
105820 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
105821 --
105822 l_balance_type_code          := 'A';
105823 l_segment                     := NULL;
105824 l_ccid                        := NULL;
105825 l_adr_transaction_coa_id      := NULL;
105826 l_adr_accounting_coa_id       := NULL;
105827 l_adr_flexfield_segment_code  := NULL;
105828 l_adr_flex_value_set_id       := NULL;
105829 l_adr_value_type_code         := NULL;
105830 l_adr_value_combination_id    := NULL;
105831 l_adr_value_segment_code      := NULL;
105832 
105833 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105834 l_bflow_class_code           := '';    -- 4219869 Business Flow
105835 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105836 l_budgetary_control_flag     := 'N';
105837 
105838 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105839 l_bflow_applied_to_amt       := NULL; -- 5132302
105840 l_entered_amt_idx            := NULL;          -- 4262811
105841 l_accted_amt_idx             := NULL;          -- 4262811
105842 l_acc_rev_flag               := NULL;          -- 4262811
105843 l_accrual_line_num           := NULL;          -- 4262811
105844 l_tmp_amt                    := NULL;          -- 4262811
105845 --
105846  
105847 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105848     l_balance_type_code <> 'B' THEN
105849 IF (NVL(p_source_28,'
105850 ') =  'NONREC_TAX' OR 
105851 NVL(p_source_28,'
105852 ') =  'TERV' OR 
105853 NVL(p_source_28,'
105854 ') =  'TIPV' OR 
105855 NVL(p_source_28,'
105856 ') =  'TRV') AND 
105857 NVL(p_source_54,'
105858 ') <>  'Y' AND 
105859 NVL(p_source_145,'
105860 ') <>  'Y'
105861  THEN 
105862 
105863    --
105864    XLA_AE_LINES_PKG.SetNewLine;
105865 
105866    p_balance_type_code          := l_balance_type_code;
105867    -- set the flag so later we will know whether the gain loss line needs to be created
105868    
105869    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105870      p_actual_flag :='A';
105871    END IF;
105872 
105873    --
105874    -- bulk performance
105875    --
105876    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105880    --
105877                                       p_header_num   => 0); -- 4262811
105878    --
105879    -- set accounting line options
105881    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105882            p_natural_side_code          => 'D'
105883          , p_gain_or_loss_flag          => 'N'
105884          , p_gl_transfer_mode_code      => 'S'
105885          , p_acct_entry_type_code       => 'A'
105886          , p_switch_side_flag           => 'Y'
105887          , p_merge_duplicate_code       => 'A'
105888          );
105889    --
105890    l_acc_rev_natural_side_code := 'C';  -- 4262811
105891    -- 
105892    --
105893    -- set accounting line type info
105894    --
105895    xla_ae_lines_pkg.SetAcctLineType
105896       (p_component_type             => l_component_type
105897       ,p_event_type_code            => l_event_type_code
105898       ,p_line_definition_owner_code => l_line_definition_owner_code
105899       ,p_line_definition_code       => l_line_definition_code
105900       ,p_accounting_line_code       => l_component_code
105901       ,p_accounting_line_type_code  => l_component_type_code
105902       ,p_accounting_line_appl_id    => l_component_appl_id
105903       ,p_amb_context_code           => l_amb_context_code
105904       ,p_entity_code                => l_entity_code
105905       ,p_event_class_code           => l_event_class_code);
105906    --
105907    -- set accounting class
105908    --
105909    xla_ae_lines_pkg.SetAcctClass(
105910            p_accounting_class_code  => 'NRTAX'
105911          , p_ae_header_id           => l_ae_header_id
105912          );
105913 
105914    --
105915    -- set rounding class
105916    --
105917    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105918                       'NRTAX';
105919 
105920    --
105921    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105922    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105923    --
105924    -- bulk performance
105925    --
105926    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105927 
105928    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105929       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105930 
105931    -- 4955764
105932    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105933       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105934 
105935    -- 4458381 Public Sector Enh
105936    
105937    --
105938    -- set accounting attributes for the line type
105939    --
105940    l_entered_amt_idx := 23;
105941    l_accted_amt_idx  := 28;
105942    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
105943    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105944    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
105945    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
105946    l_rec_acct_attrs.array_num_value(2)  := 
105947 xla_ae_sources_pkg.GetSystemSourceNum(
105948    p_source_code           => 'XLA_EVENT_APPL_ID'
105949  , p_source_type_code      => 'Y'
105950  , p_source_application_id =>  602
105951 );
105952    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
105953    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
105954    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
105955    l_rec_acct_attrs.array_char_value(4)  := 
105956 xla_ae_sources_pkg.GetSystemSourceChar(
105957    p_source_code           => 'XLA_ENTITY_CODE'
105958  , p_source_type_code      => 'Y'
105959  , p_source_application_id =>  602
105960 );
105961    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
105962    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
105963    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
105964    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
105965    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
105966    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
105967    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105968    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
105969    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
105970    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
105971    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
105972    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
105973    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105974    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
105975    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
105976    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
105977    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
105978    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
105979    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
105980    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
105981    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
105982    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
105983    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
105984    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
105988    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
105985    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
105986    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
105987    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
105989    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
105990    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
105991    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
105992    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
105993    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
105994    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
105995    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
105996    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
105997    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
105998    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
105999    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
106000    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
106001    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
106002    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
106003    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
106004    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
106005    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
106006    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
106007    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
106008    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
106009    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
106010    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
106011    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
106012    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
106013    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
106014    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
106015    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
106016    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
106017    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
106018    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
106019    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
106020    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
106021    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
106022    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
106023    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
106024    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
106025    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
106026    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
106027    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
106028    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
106029    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
106030    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
106031    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
106032    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
106033    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
106034    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
106035    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
106036    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
106037    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
106038    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
106039 
106040    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106041    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106042 
106043    ---------------------------------------------------------------------------------------------------------------
106044    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106045    ---------------------------------------------------------------------------------------------------------------
106046    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106047 
106048    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106049    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106050 
106051    IF xla_accounting_cache_pkg.GetValueChar
106052          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106053          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106054    AND l_bflow_method_code = 'PRIOR_ENTRY'
106055 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106056    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106057          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106058        )
106059    THEN
106060          xla_ae_lines_pkg.BflowUpgEntry
106061            (p_business_method_code    => l_bflow_method_code
106062            ,p_business_class_code     => l_bflow_class_code
106063            ,p_balance_type            => l_balance_type_code);
106064    ELSE
106065       NULL;
106066 -- No business flow processing for business flow method of NONE.
106067    END IF;
106068 
106069    --
106070    -- call analytical criteria
106071    --
106072    
106073    --
106074    -- call description
106075    --
106076    
106077 xla_ae_lines_pkg.SetLineDescription(
106081    , p_ae_header_id           => l_ae_header_id 
106078    p_ae_header_id => l_ae_header_id
106079   ,p_description  => Description_2 (
106080      p_application_id         => p_application_id
106082 , p_source_1 => p_source_1
106083    )
106084 );
106085 
106086 
106087    --
106088    -- call ADRs
106089    -- Bug 4922099
106090    --
106091    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106092         (NVL(l_actual_upg_option, 'N') = 'O') OR
106093         (NVL(l_enc_upg_option, 'N') = 'O')
106094       )
106095    THEN
106096    NULL;
106097    --
106098    --
106099    
106100   l_ccid := AcctDerRule_35(
106101            p_application_id           => p_application_id
106102          , p_ae_header_id             => l_ae_header_id 
106103 , p_source_25 => p_source_25
106104          , x_transaction_coa_id       => l_adr_transaction_coa_id
106105          , x_accounting_coa_id        => l_adr_accounting_coa_id
106106          , x_value_type_code          => l_adr_value_type_code
106107          , p_side                     => 'NA'
106108    );
106109 
106110    xla_ae_lines_pkg.set_ccid(
106111     p_code_combination_id          => l_ccid
106112   , p_value_type_code              => l_adr_value_type_code
106113   , p_transaction_coa_id           => l_adr_transaction_coa_id
106114   , p_accounting_coa_id            => l_adr_accounting_coa_id
106115   , p_adr_code                     => 'AP_INVOICE_DIST'
106116   , p_adr_type_code                => 'S'
106117   , p_component_type               => l_component_type
106118   , p_component_code               => l_component_code
106119   , p_component_type_code          => l_component_type_code
106120   , p_component_appl_id            => l_component_appl_id
106121   , p_amb_context_code             => l_amb_context_code
106122   , p_side                         => 'NA'
106123   );
106124 
106125 
106126    --
106127    --
106128    END IF;
106129    --
106130    -- Bug 4922099
106131    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106132           (NVL(l_enc_upg_option, 'N') = 'O')
106133         ) AND
106134         (l_bflow_method_code = 'PRIOR_ENTRY')
106135       )
106136    THEN
106137       IF
106138       --
106139       1 = 2
106140       --
106141       THEN
106142       xla_accounting_err_pkg.build_message
106143                                     (p_appli_s_name            => 'XLA'
106144                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106145                                     ,p_token_1                 => 'LINE_NUMBER'
106146                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106147                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106148                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106149                                                                              l_component_type
106150                                                                             ,l_component_code
106151                                                                             ,l_component_type_code
106152                                                                             ,l_component_appl_id
106153                                                                             ,l_amb_context_code
106154                                                                             ,l_entity_code
106155                                                                             ,l_event_class_code
106156                                                                            )
106157                                     ,p_token_3                 => 'OWNER'
106158                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106159                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106160                                                                           ,p_lookup_code    => l_component_type_code
106161                                                                          )
106162                                     ,p_token_4                 => 'PRODUCT_NAME'
106163                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106164                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106165                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106166                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106167                                     ,p_ae_header_id            =>  NULL
106168                                        );
106169 
106170         IF (C_LEVEL_ERROR>= g_log_level) THEN
106171                  trace
106172                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106173                       ,p_level    => C_LEVEL_ERROR
106174                       ,p_module   => l_log_module);
106175         END IF;
106176       END IF;
106177    END IF;
106178    --
106179    --
106180    ------------------------------------------------------------------------------------------------
106181    -- 4219869 Business Flow
106182    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106183    -- Prior Entry.  Currently, the following code is always generated.
106184    ------------------------------------------------------------------------------------------------
106185    XLA_AE_LINES_PKG.ValidateCurrentLine;
106186 
106190    ------------------------------------------------------------------------------------
106187    ------------------------------------------------------------------------------------
106188    -- 4219869 Business Flow
106189    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106191    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106192 
106193    ----------------------------------------------------------------------------------
106194    -- 4219869 Business Flow
106195    -- Update journal entry status -- Need to generate this within IF <condition>
106196    ----------------------------------------------------------------------------------
106197    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106198          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106199          ,p_balance_type_code => l_balance_type_code
106200          );
106201 
106202    -------------------------------------------------------------------------------------------
106203    -- 4262811 - Generate the Accrual Reversal lines
106204    -------------------------------------------------------------------------------------------
106205    BEGIN
106206       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106207                               (g_array_event(p_event_id).array_value_num('header_index'));
106208       IF l_acc_rev_flag IS NULL THEN
106209          l_acc_rev_flag := 'N';
106210       END IF;
106211    EXCEPTION
106212       WHEN OTHERS THEN
106213          l_acc_rev_flag := 'N';
106214    END;
106215    --
106216    IF (l_acc_rev_flag = 'Y') THEN
106217 
106218        -- 4645092  ------------------------------------------------------------------------------
106219        -- To allow MPA report to determine if it should generate report process
106220        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106221        ------------------------------------------------------------------------------------------
106222 
106223        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106224        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106225    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106226    -- call ADRs
106227    -- Bug 4922099
106228    --
106229    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106230         (NVL(l_actual_upg_option, 'N') = 'O') OR
106231         (NVL(l_enc_upg_option, 'N') = 'O')
106232       )
106233    THEN
106234    NULL;
106235    --
106236    --
106237    
106238   l_ccid := AcctDerRule_35(
106239            p_application_id           => p_application_id
106240          , p_ae_header_id             => l_ae_header_id 
106241 , p_source_25 => p_source_25
106242          , x_transaction_coa_id       => l_adr_transaction_coa_id
106243          , x_accounting_coa_id        => l_adr_accounting_coa_id
106244          , x_value_type_code          => l_adr_value_type_code
106245          , p_side                     => 'NA'
106246    );
106247 
106248    xla_ae_lines_pkg.set_ccid(
106249     p_code_combination_id          => l_ccid
106250   , p_value_type_code              => l_adr_value_type_code
106251   , p_transaction_coa_id           => l_adr_transaction_coa_id
106252   , p_accounting_coa_id            => l_adr_accounting_coa_id
106253   , p_adr_code                     => 'AP_INVOICE_DIST'
106254   , p_adr_type_code                => 'S'
106255   , p_component_type               => l_component_type
106256   , p_component_code               => l_component_code
106257   , p_component_type_code          => l_component_type_code
106258   , p_component_appl_id            => l_component_appl_id
106259   , p_amb_context_code             => l_amb_context_code
106260   , p_side                         => 'NA'
106261   );
106262 
106263 
106264    --
106265    --
106266    END IF;
106267 
106268        --
106269        -- Update the line information that should be overwritten
106270        --
106271        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106272                                          p_header_num   => 1);
106273        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106274 
106275        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106276 
106277        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106278           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106279        END IF;
106280 
106281       --
106282       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106283       --
106284       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106285           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
106286       ELSE
106287           ---------------------------------------------------------------------------------------------------
106288           -- 4262811a Switch Sign
106289           ---------------------------------------------------------------------------------------------------
106290           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
106291           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106292                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106293           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106294                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106298 
106295           -- 5132302
106296           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106297                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106299       END IF;
106300 
106301       -- 4955764
106302       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106304 
106305 
106306       XLA_AE_LINES_PKG.ValidateCurrentLine;
106307       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106308 
106309       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106310                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106311                ,p_balance_type_code => l_balance_type_code);
106312 
106313    END IF;
106314 
106315    -----------------------------------------------------------------------------------------
106316    -- 4262811 Multiperiod Accounting
106317    -----------------------------------------------------------------------------------------
106318      -- No MPA option is assigned.
106319 
106320 
106321 END IF;
106322 END IF;
106323 --
106324 
106325 --
106326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106327    trace
106328       (p_msg      => 'END of AcctLineType_187'
106329       ,p_level    => C_LEVEL_PROCEDURE
106330       ,p_module   => l_log_module);
106331 END IF;
106332 --
106333 EXCEPTION
106334   WHEN xla_exceptions_pkg.application_exception THEN
106335       RAISE;
106336   WHEN OTHERS THEN
106337        xla_exceptions_pkg.raise_message
106338            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_187');
106339 END AcctLineType_187;
106340 --
106341 
106342 ---------------------------------------
106343 --
106344 -- PRIVATE FUNCTION
106345 --         AcctLineType_188
106346 --
106347 ---------------------------------------
106348 PROCEDURE AcctLineType_188 (
106349   p_application_id        IN NUMBER
106350  ,p_event_id              IN NUMBER
106351  ,p_calculate_acctd_flag  IN VARCHAR2
106352  ,p_calculate_g_l_flag    IN VARCHAR2
106353  ,p_actual_flag           IN OUT VARCHAR2
106354  ,p_balance_type_code     OUT VARCHAR2
106355  ,p_gain_or_loss_ref      OUT VARCHAR2
106356  
106357 --Invoice Distribution Description
106358  , p_source_1            IN VARCHAR2
106359 --Invoice Distribution Ledger Amount
106360  , p_source_16            IN NUMBER
106361 --Invoice Distribution Account
106362  , p_source_25            IN NUMBER
106363 --Invoice Distribution Type
106364  , p_source_28            IN VARCHAR2
106365  , p_source_28_meaning    IN VARCHAR2
106366 --Accrue on Receipt Option
106367  , p_source_54            IN VARCHAR2
106368  , p_source_54_meaning    IN VARCHAR2
106369 --Accounting Reversal Indicator
106370  , p_source_58            IN VARCHAR2
106371 --Distribution Link Type
106372  , p_source_60            IN VARCHAR2
106373 --Allocation to Main Distribution Identifier
106374  , p_source_62            IN NUMBER
106375 --Invoice Identifier
106376  , p_source_63            IN NUMBER
106377 --Invoice Distribution Identifier
106378  , p_source_69            IN NUMBER
106379 --Payables Encumbrance Upgrade Credit Account
106380  , p_source_70            IN NUMBER
106381 --Payables Encumbrance Upgrade Credit Amount
106382  , p_source_71            IN NUMBER
106383 --Invoice Currency Code
106384  , p_source_72            IN VARCHAR2
106385 --Payables Encumbrance Upgrade Credit Base Amount
106386  , p_source_73            IN NUMBER
106387 --Payables Encumbrance Upgrade Debit Account
106388  , p_source_74            IN NUMBER
106389 --Payables Encumbrance Upgrade Debit Amount
106390  , p_source_75            IN NUMBER
106391 --Payables Encumbrance Upgrade Debit Base Amount
106392  , p_source_76            IN NUMBER
106393 --Payables Encumbrance Upgrade Option
106394  , p_source_77            IN VARCHAR2
106395 --Invoice Distribution Amount
106396  , p_source_78            IN NUMBER
106397 --Deferred Accounting End Date
106398  , p_source_82            IN DATE
106399 --Deferred Accounting Option
106400  , p_source_83            IN VARCHAR2
106401 --Deferred Accounting Start Date
106402  , p_source_84            IN DATE
106403 --Override Accounted Amount Indicator
106404  , p_source_85            IN VARCHAR2
106405  , p_source_85_meaning    IN VARCHAR2
106406 --Invoice Supplier Identifier
106407  , p_source_86            IN NUMBER
106408 --Invoice Supplier Site Identifier
106409  , p_source_87            IN NUMBER
106410 --Third Party Type
106411  , p_source_88            IN VARCHAR2
106412 --Parent Reversal Identifier
106413  , p_source_89            IN NUMBER
106414 --Invoice Distribution Tax Line Identifier
106415  , p_source_91            IN NUMBER
106416 --Invoice Distribution Tax Distribution Identifier from Tax
106417  , p_source_92            IN NUMBER
106418 --Invoice Distribution Summary Tax Line Identifier
106419  , p_source_93            IN NUMBER
106420 --Payables Upgrade Credit Encumbrance Type Identifier
106421  , p_source_94            IN NUMBER
106422 --Payables Upgrade Debit Encumbrance Type Identifier
106423  , p_source_95            IN NUMBER
106424 --Business Flow Accounts Payable Application Identifier
106425  , p_source_96            IN NUMBER
106426 --Business Flow Invoice Distribution Type
106427  , p_source_97            IN VARCHAR2
106428 --Business Flow Invoice Entity Code
106429  , p_source_98            IN VARCHAR2
106430 --Business Flow Invoice Distribution Identifier
106434 --Self-Assessed Tax Flag
106431  , p_source_99            IN NUMBER
106432 --Business Flow Invoice Identifier
106433  , p_source_100            IN NUMBER
106435  , p_source_145            IN VARCHAR2
106436  , p_source_145_meaning    IN VARCHAR2
106437 --Invoice Exchange Date
106438  , p_source_146            IN DATE
106439 --Invoice Exchange Rate
106440  , p_source_147            IN NUMBER
106441 --Invoice Exchange Rate Type
106442  , p_source_148            IN VARCHAR2
106443 )
106444 IS
106445 
106446 l_component_type              VARCHAR2(80);
106447 l_component_code              VARCHAR2(30);
106448 l_component_type_code         VARCHAR2(1);
106449 l_component_appl_id           INTEGER;
106450 l_amb_context_code            VARCHAR2(30);
106451 l_entity_code                 VARCHAR2(30);
106452 l_event_class_code            VARCHAR2(30);
106453 l_ae_header_id                NUMBER;
106454 l_event_type_code             VARCHAR2(30);
106455 l_line_definition_code        VARCHAR2(30);
106456 l_line_definition_owner_code  VARCHAR2(1);
106457 --
106458 -- adr variables
106459 l_segment                     VARCHAR2(30);
106460 l_ccid                        NUMBER;
106461 l_adr_transaction_coa_id      NUMBER;
106462 l_adr_accounting_coa_id       NUMBER;
106463 l_adr_flexfield_segment_code  VARCHAR2(30);
106464 l_adr_flex_value_set_id       NUMBER;
106465 l_adr_value_type_code         VARCHAR2(30);
106466 l_adr_value_combination_id    NUMBER;
106467 l_adr_value_segment_code      VARCHAR2(30);
106468 
106469 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106470 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106471 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106472 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106473 
106474 -- 4262811 Variables ------------------------------------------------------------------------------------------
106475 l_entered_amt_idx             NUMBER;
106476 l_accted_amt_idx              NUMBER;
106477 l_acc_rev_flag                VARCHAR2(1);
106478 l_accrual_line_num            NUMBER;
106479 l_tmp_amt                     NUMBER;
106480 l_acc_rev_natural_side_code   VARCHAR2(1);
106481 
106482 l_num_entries                 NUMBER;
106483 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106484 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106485 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106486 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106487 l_recog_line_1                NUMBER;
106488 l_recog_line_2                NUMBER;
106489 
106490 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106491 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106492 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106493 
106494 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106495 
106496 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106497 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106498 
106499 ---------------------------------------------------------------------------------------------------------------
106500 
106501 
106502 --
106503 -- bulk performance
106504 --
106505 l_balance_type_code           VARCHAR2(1);
106506 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106507 l_log_module                  VARCHAR2(240);
106508 
106509 --
106510 -- Upgrade strategy
106511 --
106512 l_actual_upg_option           VARCHAR2(1);
106513 l_enc_upg_option           VARCHAR2(1);
106514 
106515 --
106516 BEGIN
106517 --
106518 IF g_log_enabled THEN
106519       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_188';
106520 END IF;
106521 --
106522 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106523 
106524       trace
106525          (p_msg      => 'BEGIN of AcctLineType_188'
106526          ,p_level    => C_LEVEL_PROCEDURE
106527          ,p_module   => l_log_module);
106528 
106529 END IF;
106530 --
106531 l_component_type             := 'AMB_JLT';
106532 l_component_code             := 'AP_NON_RECOV_TAX_DM';
106533 l_component_type_code        := 'S';
106534 l_component_appl_id          :=  200;
106535 l_amb_context_code           := 'DEFAULT';
106536 l_entity_code                := 'AP_INVOICES';
106537 l_event_class_code           := 'DEBIT MEMOS';
106538 l_event_type_code            := 'DEBIT MEMOS_ALL';
106539 l_line_definition_owner_code := 'S';
106540 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
106541 --
106542 l_balance_type_code          := 'A';
106543 l_segment                     := NULL;
106544 l_ccid                        := NULL;
106545 l_adr_transaction_coa_id      := NULL;
106546 l_adr_accounting_coa_id       := NULL;
106547 l_adr_flexfield_segment_code  := NULL;
106548 l_adr_flex_value_set_id       := NULL;
106549 l_adr_value_type_code         := NULL;
106550 l_adr_value_combination_id    := NULL;
106551 l_adr_value_segment_code      := NULL;
106552 
106553 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
106554 l_bflow_class_code           := '';    -- 4219869 Business Flow
106555 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106556 l_budgetary_control_flag     := 'N';
106557 
106558 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106559 l_bflow_applied_to_amt       := NULL; -- 5132302
106563 l_accrual_line_num           := NULL;          -- 4262811
106560 l_entered_amt_idx            := NULL;          -- 4262811
106561 l_accted_amt_idx             := NULL;          -- 4262811
106562 l_acc_rev_flag               := NULL;          -- 4262811
106564 l_tmp_amt                    := NULL;          -- 4262811
106565 --
106566  
106567 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106568     l_balance_type_code <> 'B' THEN
106569 IF (NVL(p_source_28,'
106570 ') =  'NONREC_TAX' OR 
106571 NVL(p_source_28,'
106572 ') =  'TERV' OR 
106573 NVL(p_source_28,'
106574 ') =  'TIPV' OR 
106575 NVL(p_source_28,'
106576 ') =  'TRV') AND 
106577 NVL(p_source_54,'
106578 ') <>  'Y' AND 
106579 NVL(p_source_145,'
106580 ') <>  'Y'
106581  THEN 
106582 
106583    --
106584    XLA_AE_LINES_PKG.SetNewLine;
106585 
106586    p_balance_type_code          := l_balance_type_code;
106587    -- set the flag so later we will know whether the gain loss line needs to be created
106588    
106589    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106590      p_actual_flag :='A';
106591    END IF;
106592 
106593    --
106594    -- bulk performance
106595    --
106596    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106597                                       p_header_num   => 0); -- 4262811
106598    --
106599    -- set accounting line options
106600    --
106601    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106602            p_natural_side_code          => 'D'
106603          , p_gain_or_loss_flag          => 'N'
106604          , p_gl_transfer_mode_code      => 'S'
106605          , p_acct_entry_type_code       => 'A'
106606          , p_switch_side_flag           => 'Y'
106607          , p_merge_duplicate_code       => 'A'
106608          );
106609    --
106610    l_acc_rev_natural_side_code := 'C';  -- 4262811
106611    -- 
106612    --
106613    -- set accounting line type info
106614    --
106615    xla_ae_lines_pkg.SetAcctLineType
106616       (p_component_type             => l_component_type
106617       ,p_event_type_code            => l_event_type_code
106618       ,p_line_definition_owner_code => l_line_definition_owner_code
106619       ,p_line_definition_code       => l_line_definition_code
106620       ,p_accounting_line_code       => l_component_code
106621       ,p_accounting_line_type_code  => l_component_type_code
106622       ,p_accounting_line_appl_id    => l_component_appl_id
106623       ,p_amb_context_code           => l_amb_context_code
106624       ,p_entity_code                => l_entity_code
106625       ,p_event_class_code           => l_event_class_code);
106626    --
106627    -- set accounting class
106628    --
106629    xla_ae_lines_pkg.SetAcctClass(
106630            p_accounting_class_code  => 'NRTAX'
106631          , p_ae_header_id           => l_ae_header_id
106632          );
106633 
106634    --
106635    -- set rounding class
106636    --
106637    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106638                       'NRTAX';
106639 
106640    --
106641    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106642    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106643    --
106644    -- bulk performance
106645    --
106646    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106647 
106648    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106649       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106650 
106651    -- 4955764
106652    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106653       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106654 
106655    -- 4458381 Public Sector Enh
106656    
106657    --
106658    -- set accounting attributes for the line type
106659    --
106660    l_entered_amt_idx := 23;
106661    l_accted_amt_idx  := 28;
106662    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
106663    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106664    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
106665    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
106666    l_rec_acct_attrs.array_num_value(2)  := 
106667 xla_ae_sources_pkg.GetSystemSourceNum(
106668    p_source_code           => 'XLA_EVENT_APPL_ID'
106669  , p_source_type_code      => 'Y'
106670  , p_source_application_id =>  602
106671 );
106672    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
106673    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
106674    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
106675    l_rec_acct_attrs.array_char_value(4)  := 
106676 xla_ae_sources_pkg.GetSystemSourceChar(
106677    p_source_code           => 'XLA_ENTITY_CODE'
106678  , p_source_type_code      => 'Y'
106679  , p_source_application_id =>  602
106680 );
106681    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
106682    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
106683    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
106684    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
106685    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
106689    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
106686    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
106687    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
106688    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
106690    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
106691    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
106692    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
106693    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
106694    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
106695    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
106696    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
106697    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
106698    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
106699    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
106700    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
106701    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
106702    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
106703    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
106704    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
106705    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
106706    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
106707    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
106708    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
106709    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
106710    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
106711    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
106712    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
106713    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
106714    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
106715    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
106716    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
106717    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
106718    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
106719    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
106720    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
106721    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
106722    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
106723    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
106724    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
106725    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
106726    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
106727    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
106728    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
106729    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
106730    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
106731    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
106732    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
106733    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
106734    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
106735    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
106736    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
106737    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
106738    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
106739    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
106740    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
106741    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
106742    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
106743    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
106744    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
106745    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
106746    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
106747    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
106748    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
106749    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
106750    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
106751    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
106752    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
106753    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
106754    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
106755    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
106756    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
106757 
106758    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106759    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106760 
106761    ---------------------------------------------------------------------------------------------------------------
106762    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106763    ---------------------------------------------------------------------------------------------------------------
106764    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106765 
106766    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106770          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106767    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106768 
106769    IF xla_accounting_cache_pkg.GetValueChar
106771          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106772    AND l_bflow_method_code = 'PRIOR_ENTRY'
106773 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106774    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106775          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106776        )
106777    THEN
106778          xla_ae_lines_pkg.BflowUpgEntry
106779            (p_business_method_code    => l_bflow_method_code
106780            ,p_business_class_code     => l_bflow_class_code
106781            ,p_balance_type            => l_balance_type_code);
106782    ELSE
106783       NULL;
106784 -- No business flow processing for business flow method of NONE.
106785    END IF;
106786 
106787    --
106788    -- call analytical criteria
106789    --
106790    
106791    --
106792    -- call description
106793    --
106794    
106795 xla_ae_lines_pkg.SetLineDescription(
106796    p_ae_header_id => l_ae_header_id
106797   ,p_description  => Description_2 (
106798      p_application_id         => p_application_id
106799    , p_ae_header_id           => l_ae_header_id 
106800 , p_source_1 => p_source_1
106801    )
106802 );
106803 
106804 
106805    --
106806    -- call ADRs
106807    -- Bug 4922099
106808    --
106809    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106810         (NVL(l_actual_upg_option, 'N') = 'O') OR
106811         (NVL(l_enc_upg_option, 'N') = 'O')
106812       )
106813    THEN
106814    NULL;
106815    --
106816    --
106817    
106818   l_ccid := AcctDerRule_35(
106819            p_application_id           => p_application_id
106820          , p_ae_header_id             => l_ae_header_id 
106821 , p_source_25 => p_source_25
106822          , x_transaction_coa_id       => l_adr_transaction_coa_id
106823          , x_accounting_coa_id        => l_adr_accounting_coa_id
106824          , x_value_type_code          => l_adr_value_type_code
106825          , p_side                     => 'NA'
106826    );
106827 
106828    xla_ae_lines_pkg.set_ccid(
106829     p_code_combination_id          => l_ccid
106830   , p_value_type_code              => l_adr_value_type_code
106831   , p_transaction_coa_id           => l_adr_transaction_coa_id
106832   , p_accounting_coa_id            => l_adr_accounting_coa_id
106833   , p_adr_code                     => 'AP_INVOICE_DIST'
106834   , p_adr_type_code                => 'S'
106835   , p_component_type               => l_component_type
106836   , p_component_code               => l_component_code
106837   , p_component_type_code          => l_component_type_code
106838   , p_component_appl_id            => l_component_appl_id
106839   , p_amb_context_code             => l_amb_context_code
106840   , p_side                         => 'NA'
106841   );
106842 
106843 
106844    --
106845    --
106846    END IF;
106847    --
106848    -- Bug 4922099
106849    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106850           (NVL(l_enc_upg_option, 'N') = 'O')
106851         ) AND
106852         (l_bflow_method_code = 'PRIOR_ENTRY')
106853       )
106854    THEN
106855       IF
106856       --
106857       1 = 2
106858       --
106859       THEN
106860       xla_accounting_err_pkg.build_message
106861                                     (p_appli_s_name            => 'XLA'
106862                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106863                                     ,p_token_1                 => 'LINE_NUMBER'
106864                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106865                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106866                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106867                                                                              l_component_type
106868                                                                             ,l_component_code
106869                                                                             ,l_component_type_code
106870                                                                             ,l_component_appl_id
106871                                                                             ,l_amb_context_code
106872                                                                             ,l_entity_code
106873                                                                             ,l_event_class_code
106874                                                                            )
106875                                     ,p_token_3                 => 'OWNER'
106876                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106877                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106878                                                                           ,p_lookup_code    => l_component_type_code
106879                                                                          )
106880                                     ,p_token_4                 => 'PRODUCT_NAME'
106881                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106882                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106886                                        );
106883                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106884                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106885                                     ,p_ae_header_id            =>  NULL
106887 
106888         IF (C_LEVEL_ERROR>= g_log_level) THEN
106889                  trace
106890                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106891                       ,p_level    => C_LEVEL_ERROR
106892                       ,p_module   => l_log_module);
106893         END IF;
106894       END IF;
106895    END IF;
106896    --
106897    --
106898    ------------------------------------------------------------------------------------------------
106899    -- 4219869 Business Flow
106900    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106901    -- Prior Entry.  Currently, the following code is always generated.
106902    ------------------------------------------------------------------------------------------------
106903    XLA_AE_LINES_PKG.ValidateCurrentLine;
106904 
106905    ------------------------------------------------------------------------------------
106906    -- 4219869 Business Flow
106907    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106908    ------------------------------------------------------------------------------------
106909    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106910 
106911    ----------------------------------------------------------------------------------
106912    -- 4219869 Business Flow
106913    -- Update journal entry status -- Need to generate this within IF <condition>
106914    ----------------------------------------------------------------------------------
106915    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106916          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106917          ,p_balance_type_code => l_balance_type_code
106918          );
106919 
106920    -------------------------------------------------------------------------------------------
106921    -- 4262811 - Generate the Accrual Reversal lines
106922    -------------------------------------------------------------------------------------------
106923    BEGIN
106924       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106925                               (g_array_event(p_event_id).array_value_num('header_index'));
106926       IF l_acc_rev_flag IS NULL THEN
106927          l_acc_rev_flag := 'N';
106928       END IF;
106929    EXCEPTION
106930       WHEN OTHERS THEN
106931          l_acc_rev_flag := 'N';
106932    END;
106933    --
106934    IF (l_acc_rev_flag = 'Y') THEN
106935 
106936        -- 4645092  ------------------------------------------------------------------------------
106937        -- To allow MPA report to determine if it should generate report process
106938        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106939        ------------------------------------------------------------------------------------------
106940 
106941        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106942        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106943    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106944    -- call ADRs
106945    -- Bug 4922099
106946    --
106947    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106948         (NVL(l_actual_upg_option, 'N') = 'O') OR
106949         (NVL(l_enc_upg_option, 'N') = 'O')
106950       )
106951    THEN
106952    NULL;
106953    --
106954    --
106955    
106956   l_ccid := AcctDerRule_35(
106957            p_application_id           => p_application_id
106958          , p_ae_header_id             => l_ae_header_id 
106959 , p_source_25 => p_source_25
106960          , x_transaction_coa_id       => l_adr_transaction_coa_id
106961          , x_accounting_coa_id        => l_adr_accounting_coa_id
106962          , x_value_type_code          => l_adr_value_type_code
106963          , p_side                     => 'NA'
106964    );
106965 
106966    xla_ae_lines_pkg.set_ccid(
106967     p_code_combination_id          => l_ccid
106968   , p_value_type_code              => l_adr_value_type_code
106969   , p_transaction_coa_id           => l_adr_transaction_coa_id
106970   , p_accounting_coa_id            => l_adr_accounting_coa_id
106971   , p_adr_code                     => 'AP_INVOICE_DIST'
106972   , p_adr_type_code                => 'S'
106973   , p_component_type               => l_component_type
106974   , p_component_code               => l_component_code
106975   , p_component_type_code          => l_component_type_code
106976   , p_component_appl_id            => l_component_appl_id
106977   , p_amb_context_code             => l_amb_context_code
106978   , p_side                         => 'NA'
106979   );
106980 
106981 
106982    --
106983    --
106984    END IF;
106985 
106986        --
106987        -- Update the line information that should be overwritten
106988        --
106989        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106990                                          p_header_num   => 1);
106991        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106992 
106993        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106994 
106995        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106999       --
106996           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106997        END IF;
106998 
107000       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107001       --
107002       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107003           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107004       ELSE
107005           ---------------------------------------------------------------------------------------------------
107006           -- 4262811a Switch Sign
107007           ---------------------------------------------------------------------------------------------------
107008           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107009           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107010                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107011           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107012                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107013           -- 5132302
107014           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107015                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107016 
107017       END IF;
107018 
107019       -- 4955764
107020       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107022 
107023 
107024       XLA_AE_LINES_PKG.ValidateCurrentLine;
107025       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107026 
107027       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107028                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107029                ,p_balance_type_code => l_balance_type_code);
107030 
107031    END IF;
107032 
107033    -----------------------------------------------------------------------------------------
107034    -- 4262811 Multiperiod Accounting
107035    -----------------------------------------------------------------------------------------
107036      -- No MPA option is assigned.
107037 
107038 
107039 END IF;
107040 END IF;
107041 --
107042 
107043 --
107044 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107045    trace
107046       (p_msg      => 'END of AcctLineType_188'
107047       ,p_level    => C_LEVEL_PROCEDURE
107048       ,p_module   => l_log_module);
107049 END IF;
107050 --
107051 EXCEPTION
107052   WHEN xla_exceptions_pkg.application_exception THEN
107053       RAISE;
107054   WHEN OTHERS THEN
107055        xla_exceptions_pkg.raise_message
107056            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_188');
107057 END AcctLineType_188;
107058 --
107059 
107060 ---------------------------------------
107061 --
107062 -- PRIVATE FUNCTION
107063 --         AcctLineType_189
107064 --
107065 ---------------------------------------
107066 PROCEDURE AcctLineType_189 (
107067   p_application_id        IN NUMBER
107068  ,p_event_id              IN NUMBER
107069  ,p_calculate_acctd_flag  IN VARCHAR2
107070  ,p_calculate_g_l_flag    IN VARCHAR2
107071  ,p_actual_flag           IN OUT VARCHAR2
107072  ,p_balance_type_code     OUT VARCHAR2
107073  ,p_gain_or_loss_ref      OUT VARCHAR2
107074  
107075 --Invoice Distribution Description
107076  , p_source_1            IN VARCHAR2
107077 --Invoice Distribution Ledger Amount
107078  , p_source_16            IN NUMBER
107079 --Invoice Distribution Account
107080  , p_source_25            IN NUMBER
107081 --Invoice Distribution Type
107082  , p_source_28            IN VARCHAR2
107083  , p_source_28_meaning    IN VARCHAR2
107084 --Accrue on Receipt Option
107085  , p_source_54            IN VARCHAR2
107086  , p_source_54_meaning    IN VARCHAR2
107087 --Accounting Reversal Indicator
107088  , p_source_58            IN VARCHAR2
107089 --Distribution Link Type
107090  , p_source_60            IN VARCHAR2
107091 --Allocation to Main Distribution Identifier
107092  , p_source_62            IN NUMBER
107093 --Invoice Identifier
107094  , p_source_63            IN NUMBER
107095 --Invoice Distribution Identifier
107096  , p_source_69            IN NUMBER
107097 --Payables Encumbrance Upgrade Credit Account
107098  , p_source_70            IN NUMBER
107099 --Payables Encumbrance Upgrade Credit Amount
107100  , p_source_71            IN NUMBER
107101 --Invoice Currency Code
107102  , p_source_72            IN VARCHAR2
107103 --Payables Encumbrance Upgrade Credit Base Amount
107104  , p_source_73            IN NUMBER
107105 --Payables Encumbrance Upgrade Debit Account
107106  , p_source_74            IN NUMBER
107107 --Payables Encumbrance Upgrade Debit Amount
107108  , p_source_75            IN NUMBER
107109 --Payables Encumbrance Upgrade Debit Base Amount
107110  , p_source_76            IN NUMBER
107111 --Payables Encumbrance Upgrade Option
107112  , p_source_77            IN VARCHAR2
107113 --Invoice Distribution Amount
107114  , p_source_78            IN NUMBER
107115 --Deferred Accounting End Date
107116  , p_source_82            IN DATE
107117 --Deferred Accounting Option
107118  , p_source_83            IN VARCHAR2
107122  , p_source_85            IN VARCHAR2
107119 --Deferred Accounting Start Date
107120  , p_source_84            IN DATE
107121 --Override Accounted Amount Indicator
107123  , p_source_85_meaning    IN VARCHAR2
107124 --Invoice Supplier Identifier
107125  , p_source_86            IN NUMBER
107126 --Invoice Supplier Site Identifier
107127  , p_source_87            IN NUMBER
107128 --Third Party Type
107129  , p_source_88            IN VARCHAR2
107130 --Parent Reversal Identifier
107131  , p_source_89            IN NUMBER
107132 --Invoice Distribution Statistical Amount
107133  , p_source_90            IN NUMBER
107134 --Invoice Distribution Tax Line Identifier
107135  , p_source_91            IN NUMBER
107136 --Invoice Distribution Tax Distribution Identifier from Tax
107137  , p_source_92            IN NUMBER
107138 --Invoice Distribution Summary Tax Line Identifier
107139  , p_source_93            IN NUMBER
107140 --Payables Upgrade Credit Encumbrance Type Identifier
107141  , p_source_94            IN NUMBER
107142 --Payables Upgrade Debit Encumbrance Type Identifier
107143  , p_source_95            IN NUMBER
107144 --Business Flow Accounts Payable Application Identifier
107145  , p_source_96            IN NUMBER
107146 --Business Flow Invoice Distribution Type
107147  , p_source_97            IN VARCHAR2
107148 --Business Flow Invoice Entity Code
107149  , p_source_98            IN VARCHAR2
107150 --Business Flow Invoice Distribution Identifier
107151  , p_source_99            IN NUMBER
107152 --Business Flow Invoice Identifier
107153  , p_source_100            IN NUMBER
107154 --Self-Assessed Tax Flag
107155  , p_source_145            IN VARCHAR2
107156  , p_source_145_meaning    IN VARCHAR2
107157 --Invoice Exchange Date
107158  , p_source_146            IN DATE
107159 --Invoice Exchange Rate
107160  , p_source_147            IN NUMBER
107161 --Invoice Exchange Rate Type
107162  , p_source_148            IN VARCHAR2
107163 )
107164 IS
107165 
107166 l_component_type              VARCHAR2(80);
107167 l_component_code              VARCHAR2(30);
107168 l_component_type_code         VARCHAR2(1);
107169 l_component_appl_id           INTEGER;
107170 l_amb_context_code            VARCHAR2(30);
107171 l_entity_code                 VARCHAR2(30);
107172 l_event_class_code            VARCHAR2(30);
107173 l_ae_header_id                NUMBER;
107174 l_event_type_code             VARCHAR2(30);
107175 l_line_definition_code        VARCHAR2(30);
107176 l_line_definition_owner_code  VARCHAR2(1);
107177 --
107178 -- adr variables
107179 l_segment                     VARCHAR2(30);
107180 l_ccid                        NUMBER;
107181 l_adr_transaction_coa_id      NUMBER;
107182 l_adr_accounting_coa_id       NUMBER;
107183 l_adr_flexfield_segment_code  VARCHAR2(30);
107184 l_adr_flex_value_set_id       NUMBER;
107185 l_adr_value_type_code         VARCHAR2(30);
107186 l_adr_value_combination_id    NUMBER;
107187 l_adr_value_segment_code      VARCHAR2(30);
107188 
107189 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107190 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107191 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107192 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107193 
107194 -- 4262811 Variables ------------------------------------------------------------------------------------------
107195 l_entered_amt_idx             NUMBER;
107196 l_accted_amt_idx              NUMBER;
107197 l_acc_rev_flag                VARCHAR2(1);
107198 l_accrual_line_num            NUMBER;
107199 l_tmp_amt                     NUMBER;
107200 l_acc_rev_natural_side_code   VARCHAR2(1);
107201 
107202 l_num_entries                 NUMBER;
107203 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107204 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107205 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107206 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107207 l_recog_line_1                NUMBER;
107208 l_recog_line_2                NUMBER;
107209 
107210 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107211 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107212 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107213 
107214 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107215 
107216 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107217 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107218 
107219 ---------------------------------------------------------------------------------------------------------------
107220 
107221 
107222 --
107223 -- bulk performance
107224 --
107225 l_balance_type_code           VARCHAR2(1);
107226 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107227 l_log_module                  VARCHAR2(240);
107228 
107229 --
107230 -- Upgrade strategy
107231 --
107232 l_actual_upg_option           VARCHAR2(1);
107233 l_enc_upg_option           VARCHAR2(1);
107234 
107235 --
107236 BEGIN
107237 --
107238 IF g_log_enabled THEN
107239       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_189';
107240 END IF;
107241 --
107242 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107243 
107244       trace
107245          (p_msg      => 'BEGIN of AcctLineType_189'
107246          ,p_level    => C_LEVEL_PROCEDURE
107250 --
107247          ,p_module   => l_log_module);
107248 
107249 END IF;
107251 l_component_type             := 'AMB_JLT';
107252 l_component_code             := 'AP_NON_RECOV_TAX_INV';
107253 l_component_type_code        := 'S';
107254 l_component_appl_id          :=  200;
107255 l_amb_context_code           := 'DEFAULT';
107256 l_entity_code                := 'AP_INVOICES';
107257 l_event_class_code           := 'INVOICES';
107258 l_event_type_code            := 'INVOICES_ALL';
107259 l_line_definition_owner_code := 'S';
107260 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
107261 --
107262 l_balance_type_code          := 'A';
107263 l_segment                     := NULL;
107264 l_ccid                        := NULL;
107265 l_adr_transaction_coa_id      := NULL;
107266 l_adr_accounting_coa_id       := NULL;
107267 l_adr_flexfield_segment_code  := NULL;
107268 l_adr_flex_value_set_id       := NULL;
107269 l_adr_value_type_code         := NULL;
107270 l_adr_value_combination_id    := NULL;
107271 l_adr_value_segment_code      := NULL;
107272 
107273 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
107274 l_bflow_class_code           := '';    -- 4219869 Business Flow
107275 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
107276 l_budgetary_control_flag     := 'N';
107277 
107278 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
107279 l_bflow_applied_to_amt       := NULL; -- 5132302
107280 l_entered_amt_idx            := NULL;          -- 4262811
107281 l_accted_amt_idx             := NULL;          -- 4262811
107282 l_acc_rev_flag               := NULL;          -- 4262811
107283 l_accrual_line_num           := NULL;          -- 4262811
107284 l_tmp_amt                    := NULL;          -- 4262811
107285 --
107286  
107287 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
107288     l_balance_type_code <> 'B' THEN
107289 IF (NVL(p_source_28,'
107290 ') =  'NONREC_TAX' OR 
107291 NVL(p_source_28,'
107292 ') =  'TERV' OR 
107293 NVL(p_source_28,'
107294 ') =  'TIPV' OR 
107295 NVL(p_source_28,'
107296 ') =  'TRV') AND 
107297 NVL(p_source_54,'
107298 ') <>  'Y' AND 
107299 NVL(p_source_145,'
107300 ') <>  'Y'
107301  THEN 
107302 
107303    --
107304    XLA_AE_LINES_PKG.SetNewLine;
107305 
107306    p_balance_type_code          := l_balance_type_code;
107307    -- set the flag so later we will know whether the gain loss line needs to be created
107308    
107309    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
107310      p_actual_flag :='A';
107311    END IF;
107312 
107313    --
107314    -- bulk performance
107315    --
107316    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
107317                                       p_header_num   => 0); -- 4262811
107318    --
107319    -- set accounting line options
107320    --
107321    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107322            p_natural_side_code          => 'D'
107323          , p_gain_or_loss_flag          => 'N'
107324          , p_gl_transfer_mode_code      => 'S'
107325          , p_acct_entry_type_code       => 'A'
107326          , p_switch_side_flag           => 'Y'
107327          , p_merge_duplicate_code       => 'W'
107328          );
107329    --
107330    l_acc_rev_natural_side_code := 'C';  -- 4262811
107331    -- 
107332    --
107333    -- set accounting line type info
107334    --
107335    xla_ae_lines_pkg.SetAcctLineType
107336       (p_component_type             => l_component_type
107337       ,p_event_type_code            => l_event_type_code
107338       ,p_line_definition_owner_code => l_line_definition_owner_code
107339       ,p_line_definition_code       => l_line_definition_code
107340       ,p_accounting_line_code       => l_component_code
107341       ,p_accounting_line_type_code  => l_component_type_code
107342       ,p_accounting_line_appl_id    => l_component_appl_id
107343       ,p_amb_context_code           => l_amb_context_code
107344       ,p_entity_code                => l_entity_code
107345       ,p_event_class_code           => l_event_class_code);
107346    --
107347    -- set accounting class
107348    --
107349    xla_ae_lines_pkg.SetAcctClass(
107350            p_accounting_class_code  => 'NRTAX'
107351          , p_ae_header_id           => l_ae_header_id
107352          );
107353 
107354    --
107355    -- set rounding class
107356    --
107357    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107358                       'NRTAX';
107359 
107360    --
107361    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107362    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107363    --
107364    -- bulk performance
107365    --
107366    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107367 
107368    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107369       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107370 
107371    -- 4955764
107372    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107373       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107374 
107375    -- 4458381 Public Sector Enh
107376    
107377    --
107378    -- set accounting attributes for the line type
107382    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
107379    --
107380    l_entered_amt_idx := 24;
107381    l_accted_amt_idx  := 29;
107383    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107384    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
107385    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
107386    l_rec_acct_attrs.array_num_value(2)  := 
107387 xla_ae_sources_pkg.GetSystemSourceNum(
107388    p_source_code           => 'XLA_EVENT_APPL_ID'
107389  , p_source_type_code      => 'Y'
107390  , p_source_application_id =>  602
107391 );
107392    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
107393    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
107394    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
107395    l_rec_acct_attrs.array_char_value(4)  := 
107396 xla_ae_sources_pkg.GetSystemSourceChar(
107397    p_source_code           => 'XLA_ENTITY_CODE'
107398  , p_source_type_code      => 'Y'
107399  , p_source_application_id =>  602
107400 );
107401    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
107402    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
107403    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
107404    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
107405    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
107406    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
107407    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
107408    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
107409    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107410    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
107411    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
107412    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
107413    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
107414    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
107415    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107416    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
107417    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
107418    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
107419    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
107420    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
107421    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
107422    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
107423    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
107424    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
107425    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
107426    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
107427    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
107428    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
107429    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
107430    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
107431    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
107432    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
107433    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
107434    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
107435    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
107436    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
107437    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
107438    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
107439    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
107440    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
107441    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
107442    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
107443    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
107444    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
107445    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
107446    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
107447    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
107448    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
107449    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
107450    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
107451    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
107452    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
107453    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
107454    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
107455    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
107456    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
107457    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
107458    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
107459    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
107460    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
107461    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
107462    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
107463    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
107464    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
107465    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
107466    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
107467    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
107468    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
107472    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
107469    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
107470    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
107471    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
107473    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
107474    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
107475    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
107476    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
107477    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
107478    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
107479    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
107480    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
107481 
107482    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107483    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107484 
107485    ---------------------------------------------------------------------------------------------------------------
107486    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107487    ---------------------------------------------------------------------------------------------------------------
107488    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107489 
107490    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107491    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107492 
107493    IF xla_accounting_cache_pkg.GetValueChar
107494          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107495          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107496    AND l_bflow_method_code = 'PRIOR_ENTRY'
107497 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107498    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107499          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107500        )
107501    THEN
107502          xla_ae_lines_pkg.BflowUpgEntry
107503            (p_business_method_code    => l_bflow_method_code
107504            ,p_business_class_code     => l_bflow_class_code
107505            ,p_balance_type            => l_balance_type_code);
107506    ELSE
107507       NULL;
107508 -- No business flow processing for business flow method of NONE.
107509    END IF;
107510 
107511    --
107512    -- call analytical criteria
107513    --
107514    
107515    --
107516    -- call description
107517    --
107518    
107519 xla_ae_lines_pkg.SetLineDescription(
107520    p_ae_header_id => l_ae_header_id
107521   ,p_description  => Description_2 (
107522      p_application_id         => p_application_id
107523    , p_ae_header_id           => l_ae_header_id 
107524 , p_source_1 => p_source_1
107525    )
107526 );
107527 
107528 
107529    --
107530    -- call ADRs
107531    -- Bug 4922099
107532    --
107533    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107534         (NVL(l_actual_upg_option, 'N') = 'O') OR
107535         (NVL(l_enc_upg_option, 'N') = 'O')
107536       )
107537    THEN
107538    NULL;
107539    --
107540    --
107541    
107542   l_ccid := AcctDerRule_35(
107543            p_application_id           => p_application_id
107544          , p_ae_header_id             => l_ae_header_id 
107545 , p_source_25 => p_source_25
107546          , x_transaction_coa_id       => l_adr_transaction_coa_id
107547          , x_accounting_coa_id        => l_adr_accounting_coa_id
107548          , x_value_type_code          => l_adr_value_type_code
107549          , p_side                     => 'NA'
107550    );
107551 
107552    xla_ae_lines_pkg.set_ccid(
107553     p_code_combination_id          => l_ccid
107554   , p_value_type_code              => l_adr_value_type_code
107555   , p_transaction_coa_id           => l_adr_transaction_coa_id
107556   , p_accounting_coa_id            => l_adr_accounting_coa_id
107557   , p_adr_code                     => 'AP_INVOICE_DIST'
107558   , p_adr_type_code                => 'S'
107559   , p_component_type               => l_component_type
107560   , p_component_code               => l_component_code
107561   , p_component_type_code          => l_component_type_code
107562   , p_component_appl_id            => l_component_appl_id
107563   , p_amb_context_code             => l_amb_context_code
107564   , p_side                         => 'NA'
107565   );
107566 
107567 
107568    --
107569    --
107570    END IF;
107571    --
107572    -- Bug 4922099
107573    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107574           (NVL(l_enc_upg_option, 'N') = 'O')
107575         ) AND
107576         (l_bflow_method_code = 'PRIOR_ENTRY')
107577       )
107578    THEN
107579       IF
107580       --
107581       1 = 2
107582       --
107583       THEN
107584       xla_accounting_err_pkg.build_message
107585                                     (p_appli_s_name            => 'XLA'
107586                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107587                                     ,p_token_1                 => 'LINE_NUMBER'
107588                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107589                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107590                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107594                                                                             ,l_component_appl_id
107591                                                                              l_component_type
107592                                                                             ,l_component_code
107593                                                                             ,l_component_type_code
107595                                                                             ,l_amb_context_code
107596                                                                             ,l_entity_code
107597                                                                             ,l_event_class_code
107598                                                                            )
107599                                     ,p_token_3                 => 'OWNER'
107600                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107601                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107602                                                                           ,p_lookup_code    => l_component_type_code
107603                                                                          )
107604                                     ,p_token_4                 => 'PRODUCT_NAME'
107605                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107606                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107607                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107608                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107609                                     ,p_ae_header_id            =>  NULL
107610                                        );
107611 
107612         IF (C_LEVEL_ERROR>= g_log_level) THEN
107613                  trace
107614                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107615                       ,p_level    => C_LEVEL_ERROR
107616                       ,p_module   => l_log_module);
107617         END IF;
107618       END IF;
107619    END IF;
107620    --
107621    --
107622    ------------------------------------------------------------------------------------------------
107623    -- 4219869 Business Flow
107624    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107625    -- Prior Entry.  Currently, the following code is always generated.
107626    ------------------------------------------------------------------------------------------------
107627    XLA_AE_LINES_PKG.ValidateCurrentLine;
107628 
107629    ------------------------------------------------------------------------------------
107630    -- 4219869 Business Flow
107631    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107632    ------------------------------------------------------------------------------------
107633    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107634 
107635    ----------------------------------------------------------------------------------
107636    -- 4219869 Business Flow
107637    -- Update journal entry status -- Need to generate this within IF <condition>
107638    ----------------------------------------------------------------------------------
107639    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107640          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107641          ,p_balance_type_code => l_balance_type_code
107642          );
107643 
107644    -------------------------------------------------------------------------------------------
107645    -- 4262811 - Generate the Accrual Reversal lines
107646    -------------------------------------------------------------------------------------------
107647    BEGIN
107648       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107649                               (g_array_event(p_event_id).array_value_num('header_index'));
107650       IF l_acc_rev_flag IS NULL THEN
107651          l_acc_rev_flag := 'N';
107652       END IF;
107653    EXCEPTION
107654       WHEN OTHERS THEN
107655          l_acc_rev_flag := 'N';
107656    END;
107657    --
107658    IF (l_acc_rev_flag = 'Y') THEN
107659 
107660        -- 4645092  ------------------------------------------------------------------------------
107661        -- To allow MPA report to determine if it should generate report process
107662        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107663        ------------------------------------------------------------------------------------------
107664 
107665        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107666        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107667    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107668    -- call ADRs
107669    -- Bug 4922099
107670    --
107671    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107672         (NVL(l_actual_upg_option, 'N') = 'O') OR
107673         (NVL(l_enc_upg_option, 'N') = 'O')
107674       )
107675    THEN
107676    NULL;
107677    --
107678    --
107679    
107680   l_ccid := AcctDerRule_35(
107681            p_application_id           => p_application_id
107682          , p_ae_header_id             => l_ae_header_id 
107683 , p_source_25 => p_source_25
107684          , x_transaction_coa_id       => l_adr_transaction_coa_id
107685          , x_accounting_coa_id        => l_adr_accounting_coa_id
107686          , x_value_type_code          => l_adr_value_type_code
107690    xla_ae_lines_pkg.set_ccid(
107687          , p_side                     => 'NA'
107688    );
107689 
107691     p_code_combination_id          => l_ccid
107692   , p_value_type_code              => l_adr_value_type_code
107693   , p_transaction_coa_id           => l_adr_transaction_coa_id
107694   , p_accounting_coa_id            => l_adr_accounting_coa_id
107695   , p_adr_code                     => 'AP_INVOICE_DIST'
107696   , p_adr_type_code                => 'S'
107697   , p_component_type               => l_component_type
107698   , p_component_code               => l_component_code
107699   , p_component_type_code          => l_component_type_code
107700   , p_component_appl_id            => l_component_appl_id
107701   , p_amb_context_code             => l_amb_context_code
107702   , p_side                         => 'NA'
107703   );
107704 
107705 
107706    --
107707    --
107708    END IF;
107709 
107710        --
107711        -- Update the line information that should be overwritten
107712        --
107713        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107714                                          p_header_num   => 1);
107715        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107716 
107717        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107718 
107719        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107720           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107721        END IF;
107722 
107723       --
107724       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107725       --
107726       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107727           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107728       ELSE
107729           ---------------------------------------------------------------------------------------------------
107730           -- 4262811a Switch Sign
107731           ---------------------------------------------------------------------------------------------------
107732           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107733           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107734                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107735           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107736                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107737           -- 5132302
107738           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107739                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107740 
107741       END IF;
107742 
107743       -- 4955764
107744       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107745       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107746 
107747 
107748       XLA_AE_LINES_PKG.ValidateCurrentLine;
107749       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107750 
107751       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107752                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107753                ,p_balance_type_code => l_balance_type_code);
107754 
107755    END IF;
107756 
107757    -----------------------------------------------------------------------------------------
107758    -- 4262811 Multiperiod Accounting
107759    -----------------------------------------------------------------------------------------
107760      -- No MPA option is assigned.
107761 
107762 
107763 END IF;
107764 END IF;
107765 --
107766 
107767 --
107768 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107769    trace
107770       (p_msg      => 'END of AcctLineType_189'
107771       ,p_level    => C_LEVEL_PROCEDURE
107772       ,p_module   => l_log_module);
107773 END IF;
107774 --
107775 EXCEPTION
107776   WHEN xla_exceptions_pkg.application_exception THEN
107777       RAISE;
107778   WHEN OTHERS THEN
107779        xla_exceptions_pkg.raise_message
107780            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_189');
107781 END AcctLineType_189;
107782 --
107783 
107784 ---------------------------------------
107785 --
107786 -- PRIVATE FUNCTION
107787 --         AcctLineType_190
107788 --
107789 ---------------------------------------
107790 PROCEDURE AcctLineType_190 (
107791   p_application_id        IN NUMBER
107792  ,p_event_id              IN NUMBER
107793  ,p_calculate_acctd_flag  IN VARCHAR2
107794  ,p_calculate_g_l_flag    IN VARCHAR2
107795  ,p_actual_flag           IN OUT VARCHAR2
107796  ,p_balance_type_code     OUT VARCHAR2
107797  ,p_gain_or_loss_ref      OUT VARCHAR2
107798  
107799 --Invoice Distribution Description
107800  , p_source_1            IN VARCHAR2
107801 --Invoice Distribution Ledger Amount
107802  , p_source_16            IN NUMBER
107803 --Invoice Distribution Account
107804  , p_source_25            IN NUMBER
107805 --Invoice Distribution Type
107806  , p_source_28            IN VARCHAR2
107807  , p_source_28_meaning    IN VARCHAR2
107808 --Accrue on Receipt Option
107812  , p_source_58            IN VARCHAR2
107809  , p_source_54            IN VARCHAR2
107810  , p_source_54_meaning    IN VARCHAR2
107811 --Accounting Reversal Indicator
107813 --Distribution Link Type
107814  , p_source_60            IN VARCHAR2
107815 --Allocation to Main Distribution Identifier
107816  , p_source_62            IN NUMBER
107817 --Invoice Identifier
107818  , p_source_63            IN NUMBER
107819 --Invoice Distribution Identifier
107820  , p_source_69            IN NUMBER
107821 --Payables Encumbrance Upgrade Credit Account
107822  , p_source_70            IN NUMBER
107823 --Payables Encumbrance Upgrade Credit Amount
107824  , p_source_71            IN NUMBER
107825 --Invoice Currency Code
107826  , p_source_72            IN VARCHAR2
107827 --Payables Encumbrance Upgrade Credit Base Amount
107828  , p_source_73            IN NUMBER
107829 --Payables Encumbrance Upgrade Debit Account
107830  , p_source_74            IN NUMBER
107831 --Payables Encumbrance Upgrade Debit Amount
107832  , p_source_75            IN NUMBER
107833 --Payables Encumbrance Upgrade Debit Base Amount
107834  , p_source_76            IN NUMBER
107835 --Payables Encumbrance Upgrade Option
107836  , p_source_77            IN VARCHAR2
107837 --Invoice Distribution Amount
107838  , p_source_78            IN NUMBER
107839 --Deferred Accounting End Date
107840  , p_source_82            IN DATE
107841 --Deferred Accounting Option
107842  , p_source_83            IN VARCHAR2
107843 --Deferred Accounting Start Date
107844  , p_source_84            IN DATE
107845 --Override Accounted Amount Indicator
107846  , p_source_85            IN VARCHAR2
107847  , p_source_85_meaning    IN VARCHAR2
107848 --Invoice Supplier Identifier
107849  , p_source_86            IN NUMBER
107850 --Invoice Supplier Site Identifier
107851  , p_source_87            IN NUMBER
107852 --Third Party Type
107853  , p_source_88            IN VARCHAR2
107854 --Parent Reversal Identifier
107855  , p_source_89            IN NUMBER
107856 --Invoice Distribution Statistical Amount
107857  , p_source_90            IN NUMBER
107858 --Invoice Distribution Tax Line Identifier
107859  , p_source_91            IN NUMBER
107860 --Invoice Distribution Tax Distribution Identifier from Tax
107861  , p_source_92            IN NUMBER
107862 --Invoice Distribution Summary Tax Line Identifier
107863  , p_source_93            IN NUMBER
107864 --Payables Upgrade Credit Encumbrance Type Identifier
107865  , p_source_94            IN NUMBER
107866 --Payables Upgrade Debit Encumbrance Type Identifier
107867  , p_source_95            IN NUMBER
107868 --Business Flow Accounts Payable Application Identifier
107869  , p_source_96            IN NUMBER
107870 --Business Flow Invoice Distribution Type
107871  , p_source_97            IN VARCHAR2
107872 --Business Flow Invoice Entity Code
107873  , p_source_98            IN VARCHAR2
107874 --Business Flow Invoice Distribution Identifier
107875  , p_source_99            IN NUMBER
107876 --Business Flow Invoice Identifier
107877  , p_source_100            IN NUMBER
107878 --Self-Assessed Tax Flag
107879  , p_source_145            IN VARCHAR2
107880  , p_source_145_meaning    IN VARCHAR2
107881 --Invoice Exchange Date
107882  , p_source_146            IN DATE
107883 --Invoice Exchange Rate
107884  , p_source_147            IN NUMBER
107885 --Invoice Exchange Rate Type
107886  , p_source_148            IN VARCHAR2
107887 )
107888 IS
107889 
107890 l_component_type              VARCHAR2(80);
107891 l_component_code              VARCHAR2(30);
107892 l_component_type_code         VARCHAR2(1);
107893 l_component_appl_id           INTEGER;
107894 l_amb_context_code            VARCHAR2(30);
107895 l_entity_code                 VARCHAR2(30);
107896 l_event_class_code            VARCHAR2(30);
107897 l_ae_header_id                NUMBER;
107898 l_event_type_code             VARCHAR2(30);
107899 l_line_definition_code        VARCHAR2(30);
107900 l_line_definition_owner_code  VARCHAR2(1);
107901 --
107902 -- adr variables
107903 l_segment                     VARCHAR2(30);
107904 l_ccid                        NUMBER;
107905 l_adr_transaction_coa_id      NUMBER;
107906 l_adr_accounting_coa_id       NUMBER;
107907 l_adr_flexfield_segment_code  VARCHAR2(30);
107908 l_adr_flex_value_set_id       NUMBER;
107909 l_adr_value_type_code         VARCHAR2(30);
107910 l_adr_value_combination_id    NUMBER;
107911 l_adr_value_segment_code      VARCHAR2(30);
107912 
107913 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107914 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107915 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107916 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107917 
107918 -- 4262811 Variables ------------------------------------------------------------------------------------------
107919 l_entered_amt_idx             NUMBER;
107920 l_accted_amt_idx              NUMBER;
107921 l_acc_rev_flag                VARCHAR2(1);
107922 l_accrual_line_num            NUMBER;
107923 l_tmp_amt                     NUMBER;
107924 l_acc_rev_natural_side_code   VARCHAR2(1);
107925 
107926 l_num_entries                 NUMBER;
107927 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107928 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107929 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107930 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107931 l_recog_line_1                NUMBER;
107935 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107932 l_recog_line_2                NUMBER;
107933 
107934 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107936 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107937 
107938 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107939 
107940 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107941 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107942 
107943 ---------------------------------------------------------------------------------------------------------------
107944 
107945 
107946 --
107947 -- bulk performance
107948 --
107949 l_balance_type_code           VARCHAR2(1);
107950 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107951 l_log_module                  VARCHAR2(240);
107952 
107953 --
107954 -- Upgrade strategy
107955 --
107956 l_actual_upg_option           VARCHAR2(1);
107957 l_enc_upg_option           VARCHAR2(1);
107958 
107959 --
107960 BEGIN
107961 --
107962 IF g_log_enabled THEN
107963       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_190';
107964 END IF;
107965 --
107966 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107967 
107968       trace
107969          (p_msg      => 'BEGIN of AcctLineType_190'
107970          ,p_level    => C_LEVEL_PROCEDURE
107971          ,p_module   => l_log_module);
107972 
107973 END IF;
107974 --
107975 l_component_type             := 'AMB_JLT';
107976 l_component_code             := 'AP_NON_RECOV_TAX_PREPAY';
107977 l_component_type_code        := 'S';
107978 l_component_appl_id          :=  200;
107979 l_amb_context_code           := 'DEFAULT';
107980 l_entity_code                := 'AP_INVOICES';
107981 l_event_class_code           := 'PREPAYMENTS';
107982 l_event_type_code            := 'PREPAYMENTS_ALL';
107983 l_line_definition_owner_code := 'S';
107984 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
107985 --
107986 l_balance_type_code          := 'A';
107987 l_segment                     := NULL;
107988 l_ccid                        := NULL;
107989 l_adr_transaction_coa_id      := NULL;
107990 l_adr_accounting_coa_id       := NULL;
107991 l_adr_flexfield_segment_code  := NULL;
107992 l_adr_flex_value_set_id       := NULL;
107993 l_adr_value_type_code         := NULL;
107994 l_adr_value_combination_id    := NULL;
107995 l_adr_value_segment_code      := NULL;
107996 
107997 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
107998 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
107999 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108000 l_budgetary_control_flag     := 'N';
108001 
108002 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108003 l_bflow_applied_to_amt       := NULL; -- 5132302
108004 l_entered_amt_idx            := NULL;          -- 4262811
108005 l_accted_amt_idx             := NULL;          -- 4262811
108006 l_acc_rev_flag               := NULL;          -- 4262811
108007 l_accrual_line_num           := NULL;          -- 4262811
108008 l_tmp_amt                    := NULL;          -- 4262811
108009 --
108010  
108011 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108012     l_balance_type_code <> 'B' THEN
108013 IF (NVL(p_source_28,'
108014 ') =  'NONREC_TAX' OR 
108015 NVL(p_source_28,'
108016 ') =  'TERV' OR 
108017 NVL(p_source_28,'
108018 ') =  'TIPV' OR 
108019 NVL(p_source_28,'
108020 ') =  'TRV') AND 
108021 NVL(p_source_54,'
108022 ') <>  'Y' AND 
108023 NVL(p_source_145,'
108024 ') <>  'Y'
108025  THEN 
108026 
108027    --
108028    XLA_AE_LINES_PKG.SetNewLine;
108029 
108030    p_balance_type_code          := l_balance_type_code;
108031    -- set the flag so later we will know whether the gain loss line needs to be created
108032    
108033    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108034      p_actual_flag :='A';
108035    END IF;
108036 
108037    --
108038    -- bulk performance
108039    --
108040    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108041                                       p_header_num   => 0); -- 4262811
108042    --
108043    -- set accounting line options
108044    --
108045    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108046            p_natural_side_code          => 'D'
108047          , p_gain_or_loss_flag          => 'N'
108048          , p_gl_transfer_mode_code      => 'S'
108049          , p_acct_entry_type_code       => 'A'
108050          , p_switch_side_flag           => 'Y'
108051          , p_merge_duplicate_code       => 'A'
108052          );
108053    --
108054    l_acc_rev_natural_side_code := 'C';  -- 4262811
108055    -- 
108056    --
108057    -- set accounting line type info
108058    --
108059    xla_ae_lines_pkg.SetAcctLineType
108060       (p_component_type             => l_component_type
108061       ,p_event_type_code            => l_event_type_code
108062       ,p_line_definition_owner_code => l_line_definition_owner_code
108063       ,p_line_definition_code       => l_line_definition_code
108064       ,p_accounting_line_code       => l_component_code
108065       ,p_accounting_line_type_code  => l_component_type_code
108066       ,p_accounting_line_appl_id    => l_component_appl_id
108067       ,p_amb_context_code           => l_amb_context_code
108071    -- set accounting class
108068       ,p_entity_code                => l_entity_code
108069       ,p_event_class_code           => l_event_class_code);
108070    --
108072    --
108073    xla_ae_lines_pkg.SetAcctClass(
108074            p_accounting_class_code  => 'NRTAX'
108075          , p_ae_header_id           => l_ae_header_id
108076          );
108077 
108078    --
108079    -- set rounding class
108080    --
108081    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108082                       'NRTAX';
108083 
108084    --
108085    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108086    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108087    --
108088    -- bulk performance
108089    --
108090    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108091 
108092    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108093       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108094 
108095    -- 4955764
108096    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108097       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108098 
108099    -- 4458381 Public Sector Enh
108100    
108101    --
108102    -- set accounting attributes for the line type
108103    --
108104    l_entered_amt_idx := 23;
108105    l_accted_amt_idx  := 28;
108106    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
108107    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108108    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
108109    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
108110    l_rec_acct_attrs.array_num_value(2)  := 
108111 xla_ae_sources_pkg.GetSystemSourceNum(
108112    p_source_code           => 'XLA_EVENT_APPL_ID'
108113  , p_source_type_code      => 'Y'
108114  , p_source_application_id =>  602
108115 );
108116    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
108117    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
108118    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
108119    l_rec_acct_attrs.array_char_value(4)  := 
108120 xla_ae_sources_pkg.GetSystemSourceChar(
108121    p_source_code           => 'XLA_ENTITY_CODE'
108122  , p_source_type_code      => 'Y'
108123  , p_source_application_id =>  602
108124 );
108125    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
108126    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
108127    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
108128    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
108129    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
108130    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
108131    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108132    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
108133    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
108134    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
108135    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
108136    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
108137    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108138    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
108139    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
108140    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
108141    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
108142    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
108143    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
108144    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
108145    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
108146    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
108147    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
108148    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
108149    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
108150    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
108151    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
108152    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
108153    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
108154    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
108155    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
108156    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
108157    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
108158    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
108159    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
108160    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
108161    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
108162    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
108163    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
108164    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
108165    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
108166    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
108167    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
108168    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
108169    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
108173    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
108170    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
108171    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
108172    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
108174    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
108175    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
108176    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
108177    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
108178    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
108179    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
108180    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
108181    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
108182    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
108183    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
108184    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
108185    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
108186    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
108187    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
108188    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
108189    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
108190    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
108191    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
108192    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
108193    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
108194    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
108195    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
108196    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
108197    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
108198    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
108199    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
108200    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
108201    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
108202    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
108203 
108204    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108205    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108206 
108207    ---------------------------------------------------------------------------------------------------------------
108208    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108209    ---------------------------------------------------------------------------------------------------------------
108210    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108211 
108212    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108213    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108214 
108215    IF xla_accounting_cache_pkg.GetValueChar
108216          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108217          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108218    AND l_bflow_method_code = 'PRIOR_ENTRY'
108219 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108220    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108221          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108222        )
108223    THEN
108224          xla_ae_lines_pkg.BflowUpgEntry
108225            (p_business_method_code    => l_bflow_method_code
108226            ,p_business_class_code     => l_bflow_class_code
108227            ,p_balance_type            => l_balance_type_code);
108228    ELSE
108229       NULL;
108230 -- No business flow processing for business flow method of NONE.
108231    END IF;
108232 
108233    --
108234    -- call analytical criteria
108235    --
108236    
108237    --
108238    -- call description
108239    --
108240    
108241 xla_ae_lines_pkg.SetLineDescription(
108242    p_ae_header_id => l_ae_header_id
108243   ,p_description  => Description_2 (
108244      p_application_id         => p_application_id
108245    , p_ae_header_id           => l_ae_header_id 
108246 , p_source_1 => p_source_1
108247    )
108248 );
108249 
108250 
108251    --
108252    -- call ADRs
108253    -- Bug 4922099
108254    --
108255    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108256         (NVL(l_actual_upg_option, 'N') = 'O') OR
108257         (NVL(l_enc_upg_option, 'N') = 'O')
108258       )
108259    THEN
108260    NULL;
108261    --
108262    --
108263    
108264   l_ccid := AcctDerRule_35(
108265            p_application_id           => p_application_id
108266          , p_ae_header_id             => l_ae_header_id 
108267 , p_source_25 => p_source_25
108268          , x_transaction_coa_id       => l_adr_transaction_coa_id
108269          , x_accounting_coa_id        => l_adr_accounting_coa_id
108270          , x_value_type_code          => l_adr_value_type_code
108271          , p_side                     => 'NA'
108272    );
108273 
108274    xla_ae_lines_pkg.set_ccid(
108275     p_code_combination_id          => l_ccid
108276   , p_value_type_code              => l_adr_value_type_code
108277   , p_transaction_coa_id           => l_adr_transaction_coa_id
108278   , p_accounting_coa_id            => l_adr_accounting_coa_id
108279   , p_adr_code                     => 'AP_INVOICE_DIST'
108283   , p_component_type_code          => l_component_type_code
108280   , p_adr_type_code                => 'S'
108281   , p_component_type               => l_component_type
108282   , p_component_code               => l_component_code
108284   , p_component_appl_id            => l_component_appl_id
108285   , p_amb_context_code             => l_amb_context_code
108286   , p_side                         => 'NA'
108287   );
108288 
108289 
108290    --
108291    --
108292    END IF;
108293    --
108294    -- Bug 4922099
108295    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108296           (NVL(l_enc_upg_option, 'N') = 'O')
108297         ) AND
108298         (l_bflow_method_code = 'PRIOR_ENTRY')
108299       )
108300    THEN
108301       IF
108302       --
108303       1 = 2
108304       --
108305       THEN
108306       xla_accounting_err_pkg.build_message
108307                                     (p_appli_s_name            => 'XLA'
108308                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108309                                     ,p_token_1                 => 'LINE_NUMBER'
108310                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108311                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108312                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108313                                                                              l_component_type
108314                                                                             ,l_component_code
108315                                                                             ,l_component_type_code
108316                                                                             ,l_component_appl_id
108317                                                                             ,l_amb_context_code
108318                                                                             ,l_entity_code
108319                                                                             ,l_event_class_code
108320                                                                            )
108321                                     ,p_token_3                 => 'OWNER'
108322                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108323                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108324                                                                           ,p_lookup_code    => l_component_type_code
108325                                                                          )
108326                                     ,p_token_4                 => 'PRODUCT_NAME'
108327                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108328                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108329                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108330                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108331                                     ,p_ae_header_id            =>  NULL
108332                                        );
108333 
108334         IF (C_LEVEL_ERROR>= g_log_level) THEN
108335                  trace
108336                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108337                       ,p_level    => C_LEVEL_ERROR
108338                       ,p_module   => l_log_module);
108339         END IF;
108340       END IF;
108341    END IF;
108342    --
108343    --
108344    ------------------------------------------------------------------------------------------------
108345    -- 4219869 Business Flow
108346    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108347    -- Prior Entry.  Currently, the following code is always generated.
108348    ------------------------------------------------------------------------------------------------
108349    XLA_AE_LINES_PKG.ValidateCurrentLine;
108350 
108351    ------------------------------------------------------------------------------------
108352    -- 4219869 Business Flow
108353    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108354    ------------------------------------------------------------------------------------
108355    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108356 
108357    ----------------------------------------------------------------------------------
108358    -- 4219869 Business Flow
108359    -- Update journal entry status -- Need to generate this within IF <condition>
108360    ----------------------------------------------------------------------------------
108361    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108362          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108363          ,p_balance_type_code => l_balance_type_code
108364          );
108365 
108366    -------------------------------------------------------------------------------------------
108367    -- 4262811 - Generate the Accrual Reversal lines
108368    -------------------------------------------------------------------------------------------
108369    BEGIN
108370       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108371                               (g_array_event(p_event_id).array_value_num('header_index'));
108372       IF l_acc_rev_flag IS NULL THEN
108373          l_acc_rev_flag := 'N';
108374       END IF;
108378    END;
108375    EXCEPTION
108376       WHEN OTHERS THEN
108377          l_acc_rev_flag := 'N';
108379    --
108380    IF (l_acc_rev_flag = 'Y') THEN
108381 
108382        -- 4645092  ------------------------------------------------------------------------------
108383        -- To allow MPA report to determine if it should generate report process
108384        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
108385        ------------------------------------------------------------------------------------------
108386 
108387        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
108388        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
108389    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
108390    -- call ADRs
108391    -- Bug 4922099
108392    --
108393    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108394         (NVL(l_actual_upg_option, 'N') = 'O') OR
108395         (NVL(l_enc_upg_option, 'N') = 'O')
108396       )
108397    THEN
108398    NULL;
108399    --
108400    --
108401    
108402   l_ccid := AcctDerRule_35(
108403            p_application_id           => p_application_id
108404          , p_ae_header_id             => l_ae_header_id 
108405 , p_source_25 => p_source_25
108406          , x_transaction_coa_id       => l_adr_transaction_coa_id
108407          , x_accounting_coa_id        => l_adr_accounting_coa_id
108408          , x_value_type_code          => l_adr_value_type_code
108409          , p_side                     => 'NA'
108410    );
108411 
108412    xla_ae_lines_pkg.set_ccid(
108413     p_code_combination_id          => l_ccid
108414   , p_value_type_code              => l_adr_value_type_code
108415   , p_transaction_coa_id           => l_adr_transaction_coa_id
108416   , p_accounting_coa_id            => l_adr_accounting_coa_id
108417   , p_adr_code                     => 'AP_INVOICE_DIST'
108418   , p_adr_type_code                => 'S'
108419   , p_component_type               => l_component_type
108420   , p_component_code               => l_component_code
108421   , p_component_type_code          => l_component_type_code
108422   , p_component_appl_id            => l_component_appl_id
108423   , p_amb_context_code             => l_amb_context_code
108424   , p_side                         => 'NA'
108425   );
108426 
108427 
108428    --
108429    --
108430    END IF;
108431 
108432        --
108433        -- Update the line information that should be overwritten
108434        --
108435        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108436                                          p_header_num   => 1);
108437        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
108438 
108439        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108440 
108441        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
108442           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108443        END IF;
108444 
108445       --
108446       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108447       --
108448       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108449           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
108450       ELSE
108451           ---------------------------------------------------------------------------------------------------
108452           -- 4262811a Switch Sign
108453           ---------------------------------------------------------------------------------------------------
108454           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
108455           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108456                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108457           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108458                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108459           -- 5132302
108460           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108461                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108462 
108463       END IF;
108464 
108465       -- 4955764
108466       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108467       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108468 
108469 
108470       XLA_AE_LINES_PKG.ValidateCurrentLine;
108471       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108472 
108473       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108474                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108475                ,p_balance_type_code => l_balance_type_code);
108476 
108477    END IF;
108478 
108479    -----------------------------------------------------------------------------------------
108480    -- 4262811 Multiperiod Accounting
108481    -----------------------------------------------------------------------------------------
108482      -- No MPA option is assigned.
108483 
108484 
108485 END IF;
108486 END IF;
108487 --
108488 
108489 --
108493       ,p_level    => C_LEVEL_PROCEDURE
108490 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108491    trace
108492       (p_msg      => 'END of AcctLineType_190'
108494       ,p_module   => l_log_module);
108495 END IF;
108496 --
108497 EXCEPTION
108498   WHEN xla_exceptions_pkg.application_exception THEN
108499       RAISE;
108500   WHEN OTHERS THEN
108501        xla_exceptions_pkg.raise_message
108502            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_190');
108503 END AcctLineType_190;
108504 --
108505 
108506 ---------------------------------------
108507 --
108508 -- PRIVATE FUNCTION
108509 --         AcctLineType_191
108510 --
108511 ---------------------------------------
108512 PROCEDURE AcctLineType_191 (
108513   p_application_id        IN NUMBER
108514  ,p_event_id              IN NUMBER
108515  ,p_calculate_acctd_flag  IN VARCHAR2
108516  ,p_calculate_g_l_flag    IN VARCHAR2
108517  ,p_actual_flag           IN OUT VARCHAR2
108518  ,p_balance_type_code     OUT VARCHAR2
108519  ,p_gain_or_loss_ref      OUT VARCHAR2
108520  
108521 --Invoice Distribution Description
108522  , p_source_1            IN VARCHAR2
108523 --Invoice Distribution Ledger Amount
108524  , p_source_16            IN NUMBER
108525 --Invoice Distribution Account
108526  , p_source_25            IN NUMBER
108527 --Invoice Distribution Type
108528  , p_source_28            IN VARCHAR2
108529  , p_source_28_meaning    IN VARCHAR2
108530 --Accrue on Receipt Option
108531  , p_source_54            IN VARCHAR2
108532  , p_source_54_meaning    IN VARCHAR2
108533 --Accounting Reversal Indicator
108534  , p_source_58            IN VARCHAR2
108535 --Distribution Link Type
108536  , p_source_60            IN VARCHAR2
108537 --Allocation to Main Distribution Identifier
108538  , p_source_62            IN NUMBER
108539 --Invoice Identifier
108540  , p_source_63            IN NUMBER
108541 --Invoice Distribution Identifier
108542  , p_source_69            IN NUMBER
108543 --Payables Encumbrance Upgrade Credit Account
108544  , p_source_70            IN NUMBER
108545 --Payables Encumbrance Upgrade Credit Amount
108546  , p_source_71            IN NUMBER
108547 --Invoice Currency Code
108548  , p_source_72            IN VARCHAR2
108549 --Payables Encumbrance Upgrade Credit Base Amount
108550  , p_source_73            IN NUMBER
108551 --Payables Encumbrance Upgrade Debit Account
108552  , p_source_74            IN NUMBER
108553 --Payables Encumbrance Upgrade Debit Amount
108554  , p_source_75            IN NUMBER
108555 --Payables Encumbrance Upgrade Debit Base Amount
108556  , p_source_76            IN NUMBER
108557 --Payables Encumbrance Upgrade Option
108558  , p_source_77            IN VARCHAR2
108559 --Invoice Distribution Amount
108560  , p_source_78            IN NUMBER
108561 --Purchase Order Exchange Rate Date
108562  , p_source_79            IN DATE
108563 --Purchase Order Exchange Rate
108564  , p_source_80            IN NUMBER
108565 --Purchase Order Exchange Rate Type
108566  , p_source_81            IN VARCHAR2
108567 --Deferred Accounting End Date
108568  , p_source_82            IN DATE
108569 --Deferred Accounting Option
108570  , p_source_83            IN VARCHAR2
108571 --Deferred Accounting Start Date
108572  , p_source_84            IN DATE
108573 --Override Accounted Amount Indicator
108574  , p_source_85            IN VARCHAR2
108575  , p_source_85_meaning    IN VARCHAR2
108576 --Invoice Supplier Identifier
108577  , p_source_86            IN NUMBER
108578 --Invoice Supplier Site Identifier
108579  , p_source_87            IN NUMBER
108580 --Third Party Type
108581  , p_source_88            IN VARCHAR2
108582 --Parent Reversal Identifier
108583  , p_source_89            IN NUMBER
108584 --Invoice Distribution Statistical Amount
108585  , p_source_90            IN NUMBER
108586 --Invoice Distribution Tax Line Identifier
108587  , p_source_91            IN NUMBER
108588 --Invoice Distribution Tax Distribution Identifier from Tax
108589  , p_source_92            IN NUMBER
108590 --Invoice Distribution Summary Tax Line Identifier
108591  , p_source_93            IN NUMBER
108592 --Payables Upgrade Credit Encumbrance Type Identifier
108593  , p_source_94            IN NUMBER
108594 --Payables Upgrade Debit Encumbrance Type Identifier
108595  , p_source_95            IN NUMBER
108596 --Business Flow Accounts Payable Application Identifier
108597  , p_source_96            IN NUMBER
108598 --Business Flow Invoice Distribution Type
108599  , p_source_97            IN VARCHAR2
108600 --Business Flow Invoice Entity Code
108601  , p_source_98            IN VARCHAR2
108602 --Business Flow Invoice Distribution Identifier
108603  , p_source_99            IN NUMBER
108604 --Business Flow Invoice Identifier
108605  , p_source_100            IN NUMBER
108606 --Self-Assessed Tax Flag
108607  , p_source_145            IN VARCHAR2
108608  , p_source_145_meaning    IN VARCHAR2
108609 )
108610 IS
108611 
108612 l_component_type              VARCHAR2(80);
108613 l_component_code              VARCHAR2(30);
108614 l_component_type_code         VARCHAR2(1);
108615 l_component_appl_id           INTEGER;
108616 l_amb_context_code            VARCHAR2(30);
108617 l_entity_code                 VARCHAR2(30);
108618 l_event_class_code            VARCHAR2(30);
108619 l_ae_header_id                NUMBER;
108620 l_event_type_code             VARCHAR2(30);
108621 l_line_definition_code        VARCHAR2(30);
108622 l_line_definition_owner_code  VARCHAR2(1);
108623 --
108624 -- adr variables
108628 l_adr_accounting_coa_id       NUMBER;
108625 l_segment                     VARCHAR2(30);
108626 l_ccid                        NUMBER;
108627 l_adr_transaction_coa_id      NUMBER;
108629 l_adr_flexfield_segment_code  VARCHAR2(30);
108630 l_adr_flex_value_set_id       NUMBER;
108631 l_adr_value_type_code         VARCHAR2(30);
108632 l_adr_value_combination_id    NUMBER;
108633 l_adr_value_segment_code      VARCHAR2(30);
108634 
108635 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108636 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108637 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108638 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108639 
108640 -- 4262811 Variables ------------------------------------------------------------------------------------------
108641 l_entered_amt_idx             NUMBER;
108642 l_accted_amt_idx              NUMBER;
108643 l_acc_rev_flag                VARCHAR2(1);
108644 l_accrual_line_num            NUMBER;
108645 l_tmp_amt                     NUMBER;
108646 l_acc_rev_natural_side_code   VARCHAR2(1);
108647 
108648 l_num_entries                 NUMBER;
108649 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108650 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108651 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108652 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108653 l_recog_line_1                NUMBER;
108654 l_recog_line_2                NUMBER;
108655 
108656 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108657 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108658 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108659 
108660 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108661 
108662 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108663 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108664 
108665 ---------------------------------------------------------------------------------------------------------------
108666 
108667 
108668 --
108669 -- bulk performance
108670 --
108671 l_balance_type_code           VARCHAR2(1);
108672 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108673 l_log_module                  VARCHAR2(240);
108674 
108675 --
108676 -- Upgrade strategy
108677 --
108678 l_actual_upg_option           VARCHAR2(1);
108679 l_enc_upg_option           VARCHAR2(1);
108680 
108681 --
108682 BEGIN
108683 --
108684 IF g_log_enabled THEN
108685       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_191';
108686 END IF;
108687 --
108688 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108689 
108690       trace
108691          (p_msg      => 'BEGIN of AcctLineType_191'
108692          ,p_level    => C_LEVEL_PROCEDURE
108693          ,p_module   => l_log_module);
108694 
108695 END IF;
108696 --
108697 l_component_type             := 'AMB_JLT';
108698 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY';
108699 l_component_type_code        := 'S';
108700 l_component_appl_id          :=  200;
108701 l_amb_context_code           := 'DEFAULT';
108702 l_entity_code                := 'AP_INVOICES';
108703 l_event_class_code           := 'PREPAYMENTS';
108704 l_event_type_code            := 'PREPAYMENTS_ALL';
108705 l_line_definition_owner_code := 'S';
108706 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
108707 --
108708 l_balance_type_code          := 'A';
108709 l_segment                     := NULL;
108710 l_ccid                        := NULL;
108711 l_adr_transaction_coa_id      := NULL;
108712 l_adr_accounting_coa_id       := NULL;
108713 l_adr_flexfield_segment_code  := NULL;
108714 l_adr_flex_value_set_id       := NULL;
108715 l_adr_value_type_code         := NULL;
108716 l_adr_value_combination_id    := NULL;
108717 l_adr_value_segment_code      := NULL;
108718 
108719 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108720 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
108721 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108722 l_budgetary_control_flag     := 'N';
108723 
108724 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108725 l_bflow_applied_to_amt       := NULL; -- 5132302
108726 l_entered_amt_idx            := NULL;          -- 4262811
108727 l_accted_amt_idx             := NULL;          -- 4262811
108728 l_acc_rev_flag               := NULL;          -- 4262811
108729 l_accrual_line_num           := NULL;          -- 4262811
108730 l_tmp_amt                    := NULL;          -- 4262811
108731 --
108732  
108733 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108734     l_balance_type_code <> 'B' THEN
108735 IF NVL(p_source_28,'
108736 ') =  'NONREC_TAX' AND 
108737 NVL(p_source_54,'
108738 ') =  'Y' AND 
108739 NVL(p_source_145,'
108740 ') <>  'Y'
108741  THEN 
108742 
108743    --
108744    XLA_AE_LINES_PKG.SetNewLine;
108745 
108746    p_balance_type_code          := l_balance_type_code;
108747    -- set the flag so later we will know whether the gain loss line needs to be created
108748    
108749    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108750      p_actual_flag :='A';
108751    END IF;
108752 
108753    --
108754    -- bulk performance
108755    --
108756    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108760    --
108757                                       p_header_num   => 0); -- 4262811
108758    --
108759    -- set accounting line options
108761    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108762            p_natural_side_code          => 'D'
108763          , p_gain_or_loss_flag          => 'N'
108764          , p_gl_transfer_mode_code      => 'S'
108765          , p_acct_entry_type_code       => 'A'
108766          , p_switch_side_flag           => 'Y'
108767          , p_merge_duplicate_code       => 'A'
108768          );
108769    --
108770    l_acc_rev_natural_side_code := 'C';  -- 4262811
108771    -- 
108772    --
108773    -- set accounting line type info
108774    --
108775    xla_ae_lines_pkg.SetAcctLineType
108776       (p_component_type             => l_component_type
108777       ,p_event_type_code            => l_event_type_code
108778       ,p_line_definition_owner_code => l_line_definition_owner_code
108779       ,p_line_definition_code       => l_line_definition_code
108780       ,p_accounting_line_code       => l_component_code
108781       ,p_accounting_line_type_code  => l_component_type_code
108782       ,p_accounting_line_appl_id    => l_component_appl_id
108783       ,p_amb_context_code           => l_amb_context_code
108784       ,p_entity_code                => l_entity_code
108785       ,p_event_class_code           => l_event_class_code);
108786    --
108787    -- set accounting class
108788    --
108789    xla_ae_lines_pkg.SetAcctClass(
108790            p_accounting_class_code  => 'NRTAX'
108791          , p_ae_header_id           => l_ae_header_id
108792          );
108793 
108794    --
108795    -- set rounding class
108796    --
108797    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108798                       'NRTAX';
108799 
108800    --
108801    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108802    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108803    --
108804    -- bulk performance
108805    --
108806    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108807 
108808    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108809       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108810 
108811    -- 4955764
108812    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108813       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108814 
108815    -- 4458381 Public Sector Enh
108816    
108817    --
108818    -- set accounting attributes for the line type
108819    --
108820    l_entered_amt_idx := 23;
108821    l_accted_amt_idx  := 28;
108822    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
108823    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108824    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
108825    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
108826    l_rec_acct_attrs.array_num_value(2)  := 
108827 xla_ae_sources_pkg.GetSystemSourceNum(
108828    p_source_code           => 'XLA_EVENT_APPL_ID'
108829  , p_source_type_code      => 'Y'
108830  , p_source_application_id =>  602
108831 );
108832    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
108833    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
108834    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
108835    l_rec_acct_attrs.array_char_value(4)  := 
108836 xla_ae_sources_pkg.GetSystemSourceChar(
108837    p_source_code           => 'XLA_ENTITY_CODE'
108838  , p_source_type_code      => 'Y'
108839  , p_source_application_id =>  602
108840 );
108841    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
108842    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
108843    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
108844    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
108845    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
108846    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
108847    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108848    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
108849    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
108850    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
108851    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
108852    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
108853    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108854    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
108855    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
108856    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
108857    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
108858    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
108859    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
108860    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
108861    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
108862    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
108863    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
108864    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
108865    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
108866    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
108870    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
108867    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
108868    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
108869    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
108871    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
108872    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
108873    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
108874    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
108875    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
108876    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
108877    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
108878    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
108879    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
108880    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
108881    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
108882    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
108883    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
108884    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
108885    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
108886    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
108887    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
108888    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
108889    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
108890    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
108891    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
108892    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
108893    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
108894    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
108895    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
108896    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
108897    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
108898    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
108899    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
108900    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
108901    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
108902    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
108903    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
108904    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
108905    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
108906    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
108907    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
108908    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
108909    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
108910    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
108911    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
108912    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
108913    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
108914    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
108915    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
108916    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
108917    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
108918    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
108919 
108920    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108921    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108922 
108923    ---------------------------------------------------------------------------------------------------------------
108924    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108925    ---------------------------------------------------------------------------------------------------------------
108926    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108927 
108928    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108929    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108930 
108931    IF xla_accounting_cache_pkg.GetValueChar
108932          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108933          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108934    AND l_bflow_method_code = 'PRIOR_ENTRY'
108935 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108936    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108937          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108938        )
108939    THEN
108940          xla_ae_lines_pkg.BflowUpgEntry
108941            (p_business_method_code    => l_bflow_method_code
108942            ,p_business_class_code     => l_bflow_class_code
108943            ,p_balance_type            => l_balance_type_code);
108944    ELSE
108945       NULL;
108946 -- No business flow processing for business flow method of NONE.
108947    END IF;
108948 
108949    --
108950    -- call analytical criteria
108951    --
108952    
108953    --
108954    -- call description
108955    --
108956    
108957 xla_ae_lines_pkg.SetLineDescription(
108958    p_ae_header_id => l_ae_header_id
108959   ,p_description  => Description_2 (
108963    )
108960      p_application_id         => p_application_id
108961    , p_ae_header_id           => l_ae_header_id 
108962 , p_source_1 => p_source_1
108964 );
108965 
108966 
108967    --
108968    -- call ADRs
108969    -- Bug 4922099
108970    --
108971    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108972         (NVL(l_actual_upg_option, 'N') = 'O') OR
108973         (NVL(l_enc_upg_option, 'N') = 'O')
108974       )
108975    THEN
108976    NULL;
108977    --
108978    --
108979    
108980   l_ccid := AcctDerRule_35(
108981            p_application_id           => p_application_id
108982          , p_ae_header_id             => l_ae_header_id 
108983 , p_source_25 => p_source_25
108984          , x_transaction_coa_id       => l_adr_transaction_coa_id
108985          , x_accounting_coa_id        => l_adr_accounting_coa_id
108986          , x_value_type_code          => l_adr_value_type_code
108987          , p_side                     => 'NA'
108988    );
108989 
108990    xla_ae_lines_pkg.set_ccid(
108991     p_code_combination_id          => l_ccid
108992   , p_value_type_code              => l_adr_value_type_code
108993   , p_transaction_coa_id           => l_adr_transaction_coa_id
108994   , p_accounting_coa_id            => l_adr_accounting_coa_id
108995   , p_adr_code                     => 'AP_INVOICE_DIST'
108996   , p_adr_type_code                => 'S'
108997   , p_component_type               => l_component_type
108998   , p_component_code               => l_component_code
108999   , p_component_type_code          => l_component_type_code
109000   , p_component_appl_id            => l_component_appl_id
109001   , p_amb_context_code             => l_amb_context_code
109002   , p_side                         => 'NA'
109003   );
109004 
109005 
109006    --
109007    --
109008    END IF;
109009    --
109010    -- Bug 4922099
109011    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109012           (NVL(l_enc_upg_option, 'N') = 'O')
109013         ) AND
109014         (l_bflow_method_code = 'PRIOR_ENTRY')
109015       )
109016    THEN
109017       IF
109018       --
109019       1 = 2
109020       --
109021       THEN
109022       xla_accounting_err_pkg.build_message
109023                                     (p_appli_s_name            => 'XLA'
109024                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109025                                     ,p_token_1                 => 'LINE_NUMBER'
109026                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109027                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109028                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109029                                                                              l_component_type
109030                                                                             ,l_component_code
109031                                                                             ,l_component_type_code
109032                                                                             ,l_component_appl_id
109033                                                                             ,l_amb_context_code
109034                                                                             ,l_entity_code
109035                                                                             ,l_event_class_code
109036                                                                            )
109037                                     ,p_token_3                 => 'OWNER'
109038                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109039                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109040                                                                           ,p_lookup_code    => l_component_type_code
109041                                                                          )
109042                                     ,p_token_4                 => 'PRODUCT_NAME'
109043                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109044                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109045                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109046                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109047                                     ,p_ae_header_id            =>  NULL
109048                                        );
109049 
109050         IF (C_LEVEL_ERROR>= g_log_level) THEN
109051                  trace
109052                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109053                       ,p_level    => C_LEVEL_ERROR
109054                       ,p_module   => l_log_module);
109055         END IF;
109056       END IF;
109057    END IF;
109058    --
109059    --
109060    ------------------------------------------------------------------------------------------------
109061    -- 4219869 Business Flow
109062    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109063    -- Prior Entry.  Currently, the following code is always generated.
109064    ------------------------------------------------------------------------------------------------
109065    XLA_AE_LINES_PKG.ValidateCurrentLine;
109066 
109070    ------------------------------------------------------------------------------------
109067    ------------------------------------------------------------------------------------
109068    -- 4219869 Business Flow
109069    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109071    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109072 
109073    ----------------------------------------------------------------------------------
109074    -- 4219869 Business Flow
109075    -- Update journal entry status -- Need to generate this within IF <condition>
109076    ----------------------------------------------------------------------------------
109077    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109078          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109079          ,p_balance_type_code => l_balance_type_code
109080          );
109081 
109082    -------------------------------------------------------------------------------------------
109083    -- 4262811 - Generate the Accrual Reversal lines
109084    -------------------------------------------------------------------------------------------
109085    BEGIN
109086       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109087                               (g_array_event(p_event_id).array_value_num('header_index'));
109088       IF l_acc_rev_flag IS NULL THEN
109089          l_acc_rev_flag := 'N';
109090       END IF;
109091    EXCEPTION
109092       WHEN OTHERS THEN
109093          l_acc_rev_flag := 'N';
109094    END;
109095    --
109096    IF (l_acc_rev_flag = 'Y') THEN
109097 
109098        -- 4645092  ------------------------------------------------------------------------------
109099        -- To allow MPA report to determine if it should generate report process
109100        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109101        ------------------------------------------------------------------------------------------
109102 
109103        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109104        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109105    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109106    -- call ADRs
109107    -- Bug 4922099
109108    --
109109    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109110         (NVL(l_actual_upg_option, 'N') = 'O') OR
109111         (NVL(l_enc_upg_option, 'N') = 'O')
109112       )
109113    THEN
109114    NULL;
109115    --
109116    --
109117    
109118   l_ccid := AcctDerRule_35(
109119            p_application_id           => p_application_id
109120          , p_ae_header_id             => l_ae_header_id 
109121 , p_source_25 => p_source_25
109122          , x_transaction_coa_id       => l_adr_transaction_coa_id
109123          , x_accounting_coa_id        => l_adr_accounting_coa_id
109124          , x_value_type_code          => l_adr_value_type_code
109125          , p_side                     => 'NA'
109126    );
109127 
109128    xla_ae_lines_pkg.set_ccid(
109129     p_code_combination_id          => l_ccid
109130   , p_value_type_code              => l_adr_value_type_code
109131   , p_transaction_coa_id           => l_adr_transaction_coa_id
109132   , p_accounting_coa_id            => l_adr_accounting_coa_id
109133   , p_adr_code                     => 'AP_INVOICE_DIST'
109134   , p_adr_type_code                => 'S'
109135   , p_component_type               => l_component_type
109136   , p_component_code               => l_component_code
109137   , p_component_type_code          => l_component_type_code
109138   , p_component_appl_id            => l_component_appl_id
109139   , p_amb_context_code             => l_amb_context_code
109140   , p_side                         => 'NA'
109141   );
109142 
109143 
109144    --
109145    --
109146    END IF;
109147 
109148        --
109149        -- Update the line information that should be overwritten
109150        --
109151        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109152                                          p_header_num   => 1);
109153        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109154 
109155        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109156 
109157        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109158           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109159        END IF;
109160 
109161       --
109162       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109163       --
109164       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109165           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109166       ELSE
109167           ---------------------------------------------------------------------------------------------------
109168           -- 4262811a Switch Sign
109169           ---------------------------------------------------------------------------------------------------
109170           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109171           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109172                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109173           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109177                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109174                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109175           -- 5132302
109176           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109178 
109179       END IF;
109180 
109181       -- 4955764
109182       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109183       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109184 
109185 
109186       XLA_AE_LINES_PKG.ValidateCurrentLine;
109187       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109188 
109189       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109190                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109191                ,p_balance_type_code => l_balance_type_code);
109192 
109193    END IF;
109194 
109195    -----------------------------------------------------------------------------------------
109196    -- 4262811 Multiperiod Accounting
109197    -----------------------------------------------------------------------------------------
109198      -- No MPA option is assigned.
109199 
109200 
109201 END IF;
109202 END IF;
109203 --
109204 
109205 --
109206 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109207    trace
109208       (p_msg      => 'END of AcctLineType_191'
109209       ,p_level    => C_LEVEL_PROCEDURE
109210       ,p_module   => l_log_module);
109211 END IF;
109212 --
109213 EXCEPTION
109214   WHEN xla_exceptions_pkg.application_exception THEN
109215       RAISE;
109216   WHEN OTHERS THEN
109217        xla_exceptions_pkg.raise_message
109218            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_191');
109219 END AcctLineType_191;
109220 --
109221 
109222 ---------------------------------------
109223 --
109224 -- PRIVATE FUNCTION
109225 --         AcctLineType_192
109226 --
109227 ---------------------------------------
109228 PROCEDURE AcctLineType_192 (
109229   p_application_id        IN NUMBER
109230  ,p_event_id              IN NUMBER
109231  ,p_calculate_acctd_flag  IN VARCHAR2
109232  ,p_calculate_g_l_flag    IN VARCHAR2
109233  ,p_actual_flag           IN OUT VARCHAR2
109234  ,p_balance_type_code     OUT VARCHAR2
109235  ,p_gain_or_loss_ref      OUT VARCHAR2
109236  
109237 --Payment Currency Code
109238  , p_source_8            IN VARCHAR2
109239 --Payment Card Accrued Account
109240  , p_source_44            IN NUMBER
109241 --Accounting Reversal Indicator
109242  , p_source_58            IN VARCHAR2
109243 --Distribution Link Type
109244  , p_source_60            IN VARCHAR2
109245 --Override Accounted Amount Indicator
109246  , p_source_85            IN VARCHAR2
109247  , p_source_85_meaning    IN VARCHAR2
109248 --Third Party Type
109249  , p_source_88            IN VARCHAR2
109250 --Invoice Distribution Tax Line Identifier
109251  , p_source_91            IN NUMBER
109252 --Invoice Distribution Tax Distribution Identifier from Tax
109253  , p_source_92            IN NUMBER
109254 --Invoice Distribution Summary Tax Line Identifier
109255  , p_source_93            IN NUMBER
109256 --Business Flow Accounts Payable Application Identifier
109257  , p_source_96            IN NUMBER
109258 --Business Flow Invoice Distribution Type
109259  , p_source_97            IN VARCHAR2
109260 --Business Flow Invoice Entity Code
109261  , p_source_98            IN VARCHAR2
109262 --Business Flow Invoice Distribution Identifier
109263  , p_source_99            IN NUMBER
109264 --Business Flow Invoice Identifier
109265  , p_source_100            IN NUMBER
109266 --Payment Distribution Amount
109267  , p_source_102            IN NUMBER
109268 --Payment Distribution Identifier
109269  , p_source_107            IN NUMBER
109270 --Payment Supplier Identifier
109271  , p_source_113            IN NUMBER
109272 --Payment Supplier Site Identifier
109273  , p_source_114            IN NUMBER
109274 --Payment Distribution Reversed Identifier
109275  , p_source_115            IN NUMBER
109276 --Payment Distribution (Payment Rate) Ledger Amount
109277  , p_source_118            IN NUMBER
109278 --Payment Exchange Date
109279  , p_source_120            IN DATE
109280 --Payment Exchange Rate
109281  , p_source_121            IN NUMBER
109282 --Payment Exchange Rate Type
109283  , p_source_122            IN VARCHAR2
109284 --Payment Processing Type
109285  , p_source_126            IN VARCHAR2
109286 --Invoice Distribution Amount of the Payment Distribution
109287  , p_source_127            IN NUMBER
109288 )
109289 IS
109290 
109291 l_component_type              VARCHAR2(80);
109292 l_component_code              VARCHAR2(30);
109293 l_component_type_code         VARCHAR2(1);
109294 l_component_appl_id           INTEGER;
109295 l_amb_context_code            VARCHAR2(30);
109296 l_entity_code                 VARCHAR2(30);
109297 l_event_class_code            VARCHAR2(30);
109298 l_ae_header_id                NUMBER;
109299 l_event_type_code             VARCHAR2(30);
109300 l_line_definition_code        VARCHAR2(30);
109301 l_line_definition_owner_code  VARCHAR2(1);
109302 --
109303 -- adr variables
109304 l_segment                     VARCHAR2(30);
109305 l_ccid                        NUMBER;
109306 l_adr_transaction_coa_id      NUMBER;
109307 l_adr_accounting_coa_id       NUMBER;
109308 l_adr_flexfield_segment_code  VARCHAR2(30);
109309 l_adr_flex_value_set_id       NUMBER;
109310 l_adr_value_type_code         VARCHAR2(30);
109314 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109311 l_adr_value_combination_id    NUMBER;
109312 l_adr_value_segment_code      VARCHAR2(30);
109313 
109315 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109316 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109317 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109318 
109319 -- 4262811 Variables ------------------------------------------------------------------------------------------
109320 l_entered_amt_idx             NUMBER;
109321 l_accted_amt_idx              NUMBER;
109322 l_acc_rev_flag                VARCHAR2(1);
109323 l_accrual_line_num            NUMBER;
109324 l_tmp_amt                     NUMBER;
109325 l_acc_rev_natural_side_code   VARCHAR2(1);
109326 
109327 l_num_entries                 NUMBER;
109328 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109329 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109330 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109331 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109332 l_recog_line_1                NUMBER;
109333 l_recog_line_2                NUMBER;
109334 
109335 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109336 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109337 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109338 
109339 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109340 
109341 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109342 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109343 
109344 ---------------------------------------------------------------------------------------------------------------
109345 
109346 
109347 --
109348 -- bulk performance
109349 --
109350 l_balance_type_code           VARCHAR2(1);
109351 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109352 l_log_module                  VARCHAR2(240);
109353 
109354 --
109355 -- Upgrade strategy
109356 --
109357 l_actual_upg_option           VARCHAR2(1);
109358 l_enc_upg_option           VARCHAR2(1);
109359 
109360 --
109361 BEGIN
109362 --
109363 IF g_log_enabled THEN
109364       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_192';
109365 END IF;
109366 --
109367 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109368 
109369       trace
109370          (p_msg      => 'BEGIN of AcctLineType_192'
109371          ,p_level    => C_LEVEL_PROCEDURE
109372          ,p_module   => l_log_module);
109373 
109374 END IF;
109375 --
109376 l_component_type             := 'AMB_JLT';
109377 l_component_code             := 'AP_PAYCARD_PMT';
109378 l_component_type_code        := 'S';
109379 l_component_appl_id          :=  200;
109380 l_amb_context_code           := 'DEFAULT';
109381 l_entity_code                := 'AP_PAYMENTS';
109382 l_event_class_code           := 'PAYMENTS';
109383 l_event_type_code            := 'PAYMENTS_ALL';
109384 l_line_definition_owner_code := 'S';
109385 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
109386 --
109387 l_balance_type_code          := 'A';
109388 l_segment                     := NULL;
109389 l_ccid                        := NULL;
109390 l_adr_transaction_coa_id      := NULL;
109391 l_adr_accounting_coa_id       := NULL;
109392 l_adr_flexfield_segment_code  := NULL;
109393 l_adr_flex_value_set_id       := NULL;
109394 l_adr_value_type_code         := NULL;
109395 l_adr_value_combination_id    := NULL;
109396 l_adr_value_segment_code      := NULL;
109397 
109398 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
109399 l_bflow_class_code           := '';    -- 4219869 Business Flow
109400 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
109401 l_budgetary_control_flag     := 'N';
109402 
109403 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
109404 l_bflow_applied_to_amt       := NULL; -- 5132302
109405 l_entered_amt_idx            := NULL;          -- 4262811
109406 l_accted_amt_idx             := NULL;          -- 4262811
109407 l_acc_rev_flag               := NULL;          -- 4262811
109408 l_accrual_line_num           := NULL;          -- 4262811
109409 l_tmp_amt                    := NULL;          -- 4262811
109410 --
109411  
109412 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109413     l_balance_type_code <> 'B' THEN
109414 IF NVL(p_source_126,'
109415 ') =  'PAYMENTCARD'
109416  THEN 
109417 
109418    --
109419    XLA_AE_LINES_PKG.SetNewLine;
109420 
109421    p_balance_type_code          := l_balance_type_code;
109422    -- set the flag so later we will know whether the gain loss line needs to be created
109423    
109424    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109425      p_actual_flag :='A';
109426    END IF;
109427 
109428    --
109429    -- bulk performance
109430    --
109431    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109432                                       p_header_num   => 0); -- 4262811
109433    --
109434    -- set accounting line options
109435    --
109436    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109437            p_natural_side_code          => 'C'
109438          , p_gain_or_loss_flag          => 'N'
109439          , p_gl_transfer_mode_code      => 'S'
109443          );
109440          , p_acct_entry_type_code       => 'A'
109441          , p_switch_side_flag           => 'Y'
109442          , p_merge_duplicate_code       => 'A'
109444    --
109445    l_acc_rev_natural_side_code := 'D';  -- 4262811
109446    -- 
109447    --
109448    -- set accounting line type info
109449    --
109450    xla_ae_lines_pkg.SetAcctLineType
109451       (p_component_type             => l_component_type
109452       ,p_event_type_code            => l_event_type_code
109453       ,p_line_definition_owner_code => l_line_definition_owner_code
109454       ,p_line_definition_code       => l_line_definition_code
109455       ,p_accounting_line_code       => l_component_code
109456       ,p_accounting_line_type_code  => l_component_type_code
109457       ,p_accounting_line_appl_id    => l_component_appl_id
109458       ,p_amb_context_code           => l_amb_context_code
109459       ,p_entity_code                => l_entity_code
109460       ,p_event_class_code           => l_event_class_code);
109461    --
109462    -- set accounting class
109463    --
109464    xla_ae_lines_pkg.SetAcctClass(
109465            p_accounting_class_code  => 'PAYMENTCARD'
109466          , p_ae_header_id           => l_ae_header_id
109467          );
109468 
109469    --
109470    -- set rounding class
109471    --
109472    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109473                       'PAYMENTCARD';
109474 
109475    --
109476    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109477    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109478    --
109479    -- bulk performance
109480    --
109481    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109482 
109483    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109484       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109485 
109486    -- 4955764
109487    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109488       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109489 
109490    -- 4458381 Public Sector Enh
109491    
109492    --
109493    -- set accounting attributes for the line type
109494    --
109495    l_entered_amt_idx := 10;
109496    l_accted_amt_idx  := 15;
109497    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
109498    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109499    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
109500    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
109501    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
109502    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
109503    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
109504    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109505    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
109506    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
109507    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
109508    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
109509    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
109510    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109511    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
109512    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
109513    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
109514    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
109515    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
109516    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
109517    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
109518    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
109519    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
109520    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
109521    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
109522    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
109523    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
109524    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
109525    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
109526    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
109527    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
109528    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
109529    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
109530    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
109531    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
109532    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
109533    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
109534    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
109535    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
109536    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
109537    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
109538    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
109539    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
109540    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
109541    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
109542    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
109546 
109543    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
109544    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
109545    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
109547    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109548    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109549 
109550    ---------------------------------------------------------------------------------------------------------------
109551    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109552    ---------------------------------------------------------------------------------------------------------------
109553    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109554 
109555    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109556    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109557 
109558    IF xla_accounting_cache_pkg.GetValueChar
109559          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109560          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109561    AND l_bflow_method_code = 'PRIOR_ENTRY'
109562 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109563    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109564          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109565        )
109566    THEN
109567          xla_ae_lines_pkg.BflowUpgEntry
109568            (p_business_method_code    => l_bflow_method_code
109569            ,p_business_class_code     => l_bflow_class_code
109570            ,p_balance_type            => l_balance_type_code);
109571    ELSE
109572       NULL;
109573 -- No business flow processing for business flow method of NONE.
109574    END IF;
109575 
109576    --
109577    -- call analytical criteria
109578    --
109579    
109580    --
109581    -- call description
109582    --
109583    -- No description or it is inherited.
109584    --
109585    -- call ADRs
109586    -- Bug 4922099
109587    --
109588    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109589         (NVL(l_actual_upg_option, 'N') = 'O') OR
109590         (NVL(l_enc_upg_option, 'N') = 'O')
109591       )
109592    THEN
109593    NULL;
109594    --
109595    --
109596    
109597   l_ccid := AcctDerRule_37(
109598            p_application_id           => p_application_id
109599          , p_ae_header_id             => l_ae_header_id 
109600 , p_source_44 => p_source_44
109601          , x_transaction_coa_id       => l_adr_transaction_coa_id
109602          , x_accounting_coa_id        => l_adr_accounting_coa_id
109603          , x_value_type_code          => l_adr_value_type_code
109604          , p_side                     => 'NA'
109605    );
109606 
109607    xla_ae_lines_pkg.set_ccid(
109608     p_code_combination_id          => l_ccid
109609   , p_value_type_code              => l_adr_value_type_code
109610   , p_transaction_coa_id           => l_adr_transaction_coa_id
109611   , p_accounting_coa_id            => l_adr_accounting_coa_id
109612   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
109613   , p_adr_type_code                => 'S'
109614   , p_component_type               => l_component_type
109615   , p_component_code               => l_component_code
109616   , p_component_type_code          => l_component_type_code
109617   , p_component_appl_id            => l_component_appl_id
109618   , p_amb_context_code             => l_amb_context_code
109619   , p_side                         => 'NA'
109620   );
109621 
109622 
109623    --
109624    --
109625    END IF;
109626    --
109627    -- Bug 4922099
109628    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109629           (NVL(l_enc_upg_option, 'N') = 'O')
109630         ) AND
109631         (l_bflow_method_code = 'PRIOR_ENTRY')
109632       )
109633    THEN
109634       IF
109635       --
109636       1 = 2
109637       --
109638       THEN
109639       xla_accounting_err_pkg.build_message
109640                                     (p_appli_s_name            => 'XLA'
109641                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109642                                     ,p_token_1                 => 'LINE_NUMBER'
109643                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109644                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109645                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109646                                                                              l_component_type
109647                                                                             ,l_component_code
109648                                                                             ,l_component_type_code
109649                                                                             ,l_component_appl_id
109650                                                                             ,l_amb_context_code
109651                                                                             ,l_entity_code
109652                                                                             ,l_event_class_code
109653                                                                            )
109657                                                                           ,p_lookup_code    => l_component_type_code
109654                                     ,p_token_3                 => 'OWNER'
109655                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109656                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109658                                                                          )
109659                                     ,p_token_4                 => 'PRODUCT_NAME'
109660                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109661                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109662                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109663                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109664                                     ,p_ae_header_id            =>  NULL
109665                                        );
109666 
109667         IF (C_LEVEL_ERROR>= g_log_level) THEN
109668                  trace
109669                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109670                       ,p_level    => C_LEVEL_ERROR
109671                       ,p_module   => l_log_module);
109672         END IF;
109673       END IF;
109674    END IF;
109675    --
109676    --
109677    ------------------------------------------------------------------------------------------------
109678    -- 4219869 Business Flow
109679    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109680    -- Prior Entry.  Currently, the following code is always generated.
109681    ------------------------------------------------------------------------------------------------
109682    XLA_AE_LINES_PKG.ValidateCurrentLine;
109683 
109684    ------------------------------------------------------------------------------------
109685    -- 4219869 Business Flow
109686    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109687    ------------------------------------------------------------------------------------
109688    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109689 
109690    ----------------------------------------------------------------------------------
109691    -- 4219869 Business Flow
109692    -- Update journal entry status -- Need to generate this within IF <condition>
109693    ----------------------------------------------------------------------------------
109694    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109695          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109696          ,p_balance_type_code => l_balance_type_code
109697          );
109698 
109699    -------------------------------------------------------------------------------------------
109700    -- 4262811 - Generate the Accrual Reversal lines
109701    -------------------------------------------------------------------------------------------
109702    BEGIN
109703       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109704                               (g_array_event(p_event_id).array_value_num('header_index'));
109705       IF l_acc_rev_flag IS NULL THEN
109706          l_acc_rev_flag := 'N';
109707       END IF;
109708    EXCEPTION
109709       WHEN OTHERS THEN
109710          l_acc_rev_flag := 'N';
109711    END;
109712    --
109713    IF (l_acc_rev_flag = 'Y') THEN
109714 
109715        -- 4645092  ------------------------------------------------------------------------------
109716        -- To allow MPA report to determine if it should generate report process
109717        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109718        ------------------------------------------------------------------------------------------
109719 
109720        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109721        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109722    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109723    -- call ADRs
109724    -- Bug 4922099
109725    --
109726    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109727         (NVL(l_actual_upg_option, 'N') = 'O') OR
109728         (NVL(l_enc_upg_option, 'N') = 'O')
109729       )
109730    THEN
109731    NULL;
109732    --
109733    --
109734    
109735   l_ccid := AcctDerRule_37(
109736            p_application_id           => p_application_id
109737          , p_ae_header_id             => l_ae_header_id 
109738 , p_source_44 => p_source_44
109739          , x_transaction_coa_id       => l_adr_transaction_coa_id
109740          , x_accounting_coa_id        => l_adr_accounting_coa_id
109741          , x_value_type_code          => l_adr_value_type_code
109742          , p_side                     => 'NA'
109743    );
109744 
109745    xla_ae_lines_pkg.set_ccid(
109746     p_code_combination_id          => l_ccid
109747   , p_value_type_code              => l_adr_value_type_code
109748   , p_transaction_coa_id           => l_adr_transaction_coa_id
109749   , p_accounting_coa_id            => l_adr_accounting_coa_id
109750   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
109751   , p_adr_type_code                => 'S'
109752   , p_component_type               => l_component_type
109753   , p_component_code               => l_component_code
109754   , p_component_type_code          => l_component_type_code
109758   );
109755   , p_component_appl_id            => l_component_appl_id
109756   , p_amb_context_code             => l_amb_context_code
109757   , p_side                         => 'NA'
109759 
109760 
109761    --
109762    --
109763    END IF;
109764 
109765        --
109766        -- Update the line information that should be overwritten
109767        --
109768        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109769                                          p_header_num   => 1);
109770        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109771 
109772        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109773 
109774        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109775           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109776        END IF;
109777 
109778       --
109779       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109780       --
109781       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109782           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109783       ELSE
109784           ---------------------------------------------------------------------------------------------------
109785           -- 4262811a Switch Sign
109786           ---------------------------------------------------------------------------------------------------
109787           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109788           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109789                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109790           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109791                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109792           -- 5132302
109793           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109794                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109795 
109796       END IF;
109797 
109798       -- 4955764
109799       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109800       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109801 
109802 
109803       XLA_AE_LINES_PKG.ValidateCurrentLine;
109804       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109805 
109806       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109807                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109808                ,p_balance_type_code => l_balance_type_code);
109809 
109810    END IF;
109811 
109812    -----------------------------------------------------------------------------------------
109813    -- 4262811 Multiperiod Accounting
109814    -----------------------------------------------------------------------------------------
109815      -- No MPA option is assigned.
109816 
109817 
109818 END IF;
109819 END IF;
109820 --
109821 
109822 --
109823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109824    trace
109825       (p_msg      => 'END of AcctLineType_192'
109826       ,p_level    => C_LEVEL_PROCEDURE
109827       ,p_module   => l_log_module);
109828 END IF;
109829 --
109830 EXCEPTION
109831   WHEN xla_exceptions_pkg.application_exception THEN
109832       RAISE;
109833   WHEN OTHERS THEN
109834        xla_exceptions_pkg.raise_message
109835            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_192');
109836 END AcctLineType_192;
109837 --
109838 
109839 ---------------------------------------
109840 --
109841 -- PRIVATE FUNCTION
109842 --         AcctLineType_193
109843 --
109844 ---------------------------------------
109845 PROCEDURE AcctLineType_193 (
109846   p_application_id        IN NUMBER
109847  ,p_event_id              IN NUMBER
109848  ,p_calculate_acctd_flag  IN VARCHAR2
109849  ,p_calculate_g_l_flag    IN VARCHAR2
109850  ,p_actual_flag           IN OUT VARCHAR2
109851  ,p_balance_type_code     OUT VARCHAR2
109852  ,p_gain_or_loss_ref      OUT VARCHAR2
109853  
109854 --Payment Currency Code
109855  , p_source_8            IN VARCHAR2
109856 --Automatic Offsets Value
109857  , p_source_10            IN VARCHAR2
109858  , p_source_10_meaning    IN VARCHAR2
109859 --Invoice Distribution Account
109860  , p_source_25            IN NUMBER
109861 --Payables Options Rounding Account
109862  , p_source_45            IN NUMBER
109863 --When to Account for Payment Option
109864  , p_source_57            IN VARCHAR2
109865 --Accounting Reversal Indicator
109866  , p_source_58            IN VARCHAR2
109867 --Distribution Link Type
109868  , p_source_60            IN VARCHAR2
109869 --Override Accounted Amount Indicator
109870  , p_source_85            IN VARCHAR2
109871  , p_source_85_meaning    IN VARCHAR2
109872 --Third Party Type
109873  , p_source_88            IN VARCHAR2
109874 --Invoice Distribution Tax Line Identifier
109875  , p_source_91            IN NUMBER
109876 --Invoice Distribution Summary Tax Line Identifier
109877  , p_source_93            IN NUMBER
109878 --Business Flow Accounts Payable Application Identifier
109879  , p_source_96            IN NUMBER
109880 --Payment Distribution Type
109884  , p_source_102            IN NUMBER
109881  , p_source_101            IN VARCHAR2
109882  , p_source_101_meaning    IN VARCHAR2
109883 --Payment Distribution Amount
109885 --Business Flow Payment Distribution Type
109886  , p_source_103            IN VARCHAR2
109887 --Business Flow Payment Entity Code
109888  , p_source_104            IN VARCHAR2
109889 --Business Flow Payment Distribution Identifier
109890  , p_source_105            IN NUMBER
109891 --Business Flow Payment Identifier
109892  , p_source_106            IN NUMBER
109893 --Payment Distribution Identifier
109894  , p_source_107            IN NUMBER
109895 --Payment Supplier Identifier
109896  , p_source_113            IN NUMBER
109897 --Payment Supplier Site Identifier
109898  , p_source_114            IN NUMBER
109899 --Payment Distribution Reversed Identifier
109900  , p_source_115            IN NUMBER
109901 --Payment Maturity Date
109902  , p_source_117            IN DATE
109903 --Payment Distribution (Payment Rate) Ledger Amount
109904  , p_source_118            IN NUMBER
109905 --Payment Exchange Date
109906  , p_source_120            IN DATE
109907 --Payment Exchange Rate
109908  , p_source_121            IN NUMBER
109909 --Payment Exchange Rate Type
109910  , p_source_122            IN VARCHAR2
109911 )
109912 IS
109913 
109914 l_component_type              VARCHAR2(80);
109915 l_component_code              VARCHAR2(30);
109916 l_component_type_code         VARCHAR2(1);
109917 l_component_appl_id           INTEGER;
109918 l_amb_context_code            VARCHAR2(30);
109919 l_entity_code                 VARCHAR2(30);
109920 l_event_class_code            VARCHAR2(30);
109921 l_ae_header_id                NUMBER;
109922 l_event_type_code             VARCHAR2(30);
109923 l_line_definition_code        VARCHAR2(30);
109924 l_line_definition_owner_code  VARCHAR2(1);
109925 --
109926 -- adr variables
109927 l_segment                     VARCHAR2(30);
109928 l_ccid                        NUMBER;
109929 l_adr_transaction_coa_id      NUMBER;
109930 l_adr_accounting_coa_id       NUMBER;
109931 l_adr_flexfield_segment_code  VARCHAR2(30);
109932 l_adr_flex_value_set_id       NUMBER;
109933 l_adr_value_type_code         VARCHAR2(30);
109934 l_adr_value_combination_id    NUMBER;
109935 l_adr_value_segment_code      VARCHAR2(30);
109936 
109937 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109938 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109939 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109940 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109941 
109942 -- 4262811 Variables ------------------------------------------------------------------------------------------
109943 l_entered_amt_idx             NUMBER;
109944 l_accted_amt_idx              NUMBER;
109945 l_acc_rev_flag                VARCHAR2(1);
109946 l_accrual_line_num            NUMBER;
109947 l_tmp_amt                     NUMBER;
109948 l_acc_rev_natural_side_code   VARCHAR2(1);
109949 
109950 l_num_entries                 NUMBER;
109951 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109952 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109953 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109954 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109955 l_recog_line_1                NUMBER;
109956 l_recog_line_2                NUMBER;
109957 
109958 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109959 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109960 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109961 
109962 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109963 
109964 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109965 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109966 
109967 ---------------------------------------------------------------------------------------------------------------
109968 
109969 
109970 --
109971 -- bulk performance
109972 --
109973 l_balance_type_code           VARCHAR2(1);
109974 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109975 l_log_module                  VARCHAR2(240);
109976 
109977 --
109978 -- Upgrade strategy
109979 --
109980 l_actual_upg_option           VARCHAR2(1);
109981 l_enc_upg_option           VARCHAR2(1);
109982 
109983 --
109984 BEGIN
109985 --
109986 IF g_log_enabled THEN
109987       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_193';
109988 END IF;
109989 --
109990 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109991 
109992       trace
109993          (p_msg      => 'BEGIN of AcctLineType_193'
109994          ,p_level    => C_LEVEL_PROCEDURE
109995          ,p_module   => l_log_module);
109996 
109997 END IF;
109998 --
109999 l_component_type             := 'AMB_JLT';
110000 l_component_code             := 'AP_PMT_CLR_ROUNDING_CLEAR';
110001 l_component_type_code        := 'S';
110002 l_component_appl_id          :=  200;
110003 l_amb_context_code           := 'DEFAULT';
110004 l_entity_code                := 'AP_PAYMENTS';
110005 l_event_class_code           := 'RECONCILED PAYMENTS';
110006 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
110007 l_line_definition_owner_code := 'S';
110008 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
110009 --
110010 l_balance_type_code          := 'A';
110011 l_segment                     := NULL;
110015 l_adr_flexfield_segment_code  := NULL;
110012 l_ccid                        := NULL;
110013 l_adr_transaction_coa_id      := NULL;
110014 l_adr_accounting_coa_id       := NULL;
110016 l_adr_flex_value_set_id       := NULL;
110017 l_adr_value_type_code         := NULL;
110018 l_adr_value_combination_id    := NULL;
110019 l_adr_value_segment_code      := NULL;
110020 
110021 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
110022 l_bflow_class_code           := '';    -- 4219869 Business Flow
110023 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110024 l_budgetary_control_flag     := 'N';
110025 
110026 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110027 l_bflow_applied_to_amt       := NULL; -- 5132302
110028 l_entered_amt_idx            := NULL;          -- 4262811
110029 l_accted_amt_idx             := NULL;          -- 4262811
110030 l_acc_rev_flag               := NULL;          -- 4262811
110031 l_accrual_line_num           := NULL;          -- 4262811
110032 l_tmp_amt                    := NULL;          -- 4262811
110033 --
110034  
110035 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110036     l_balance_type_code <> 'B' THEN
110037 IF (NVL(p_source_57,'
110038 ') =  'ALWAYS_ALWAYS' OR 
110039 NVL(p_source_57,'
110040 ') =  'ALWAYS_CLEAR') AND 
110041 NVL(p_source_101,'
110042 ') =  'PAYMENT TO CLEARING ROUNDING' AND 
110043 p_source_117 IS NULL 
110044  THEN 
110045 
110046    --
110047    XLA_AE_LINES_PKG.SetNewLine;
110048 
110049    p_balance_type_code          := l_balance_type_code;
110050    -- set the flag so later we will know whether the gain loss line needs to be created
110051    
110052    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110053      p_actual_flag :='A';
110054    END IF;
110055 
110056    --
110057    -- bulk performance
110058    --
110059    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110060                                       p_header_num   => 0); -- 4262811
110061    --
110062    -- set accounting line options
110063    --
110064    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110065            p_natural_side_code          => 'D'
110066          , p_gain_or_loss_flag          => 'N'
110067          , p_gl_transfer_mode_code      => 'S'
110068          , p_acct_entry_type_code       => 'A'
110069          , p_switch_side_flag           => 'Y'
110070          , p_merge_duplicate_code       => 'A'
110071          );
110072    --
110073    l_acc_rev_natural_side_code := 'C';  -- 4262811
110074    -- 
110075    --
110076    -- set accounting line type info
110077    --
110078    xla_ae_lines_pkg.SetAcctLineType
110079       (p_component_type             => l_component_type
110080       ,p_event_type_code            => l_event_type_code
110081       ,p_line_definition_owner_code => l_line_definition_owner_code
110082       ,p_line_definition_code       => l_line_definition_code
110083       ,p_accounting_line_code       => l_component_code
110084       ,p_accounting_line_type_code  => l_component_type_code
110085       ,p_accounting_line_appl_id    => l_component_appl_id
110086       ,p_amb_context_code           => l_amb_context_code
110087       ,p_entity_code                => l_entity_code
110088       ,p_event_class_code           => l_event_class_code);
110089    --
110090    -- set accounting class
110091    --
110092    xla_ae_lines_pkg.SetAcctClass(
110093            p_accounting_class_code  => 'ROUNDING'
110094          , p_ae_header_id           => l_ae_header_id
110095          );
110096 
110097    --
110098    -- set rounding class
110099    --
110100    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110101                       'ROUNDING';
110102 
110103    --
110104    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110105    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110106    --
110107    -- bulk performance
110108    --
110109    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110110 
110111    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110112       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110113 
110114    -- 4955764
110115    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110116       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110117 
110118    -- 4458381 Public Sector Enh
110119    
110120    --
110121    -- set accounting attributes for the line type
110122    --
110123    l_entered_amt_idx := 10;
110124    l_accted_amt_idx  := 15;
110125    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
110126    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110127    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
110128    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
110129    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
110130    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
110131    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
110132    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110133    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
110134    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
110135    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
110136    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
110140    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
110137    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
110138    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110139    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
110141    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
110142    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
110143    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
110144    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
110145    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
110146    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
110147    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
110148    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
110149    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
110150    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
110151    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
110152    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
110153    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
110154    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
110155    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
110156    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
110157    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
110158    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
110159    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
110160    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
110161    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
110162    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
110163    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
110164    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
110165    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
110166    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
110167    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
110168    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
110169    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
110170    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
110171    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
110172    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
110173    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
110174 
110175    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110176    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110177 
110178    ---------------------------------------------------------------------------------------------------------------
110179    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110180    ---------------------------------------------------------------------------------------------------------------
110181    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110182 
110183    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110184    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110185 
110186    IF xla_accounting_cache_pkg.GetValueChar
110187          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110188          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110189    AND l_bflow_method_code = 'PRIOR_ENTRY'
110190 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110191    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110192          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110193        )
110194    THEN
110195          xla_ae_lines_pkg.BflowUpgEntry
110196            (p_business_method_code    => l_bflow_method_code
110197            ,p_business_class_code     => l_bflow_class_code
110198            ,p_balance_type            => l_balance_type_code);
110199    ELSE
110200       NULL;
110201 -- No business flow processing for business flow method of NONE.
110202    END IF;
110203 
110204    --
110205    -- call analytical criteria
110206    --
110207    
110208    --
110209    -- call description
110210    --
110211    -- No description or it is inherited.
110212    --
110213    -- call ADRs
110214    -- Bug 4922099
110215    --
110216    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110217         (NVL(l_actual_upg_option, 'N') = 'O') OR
110218         (NVL(l_enc_upg_option, 'N') = 'O')
110219       )
110220    THEN
110221    NULL;
110222    --
110223    --
110224    
110225   l_ccid := AcctDerRule_43(
110226            p_application_id           => p_application_id
110227          , p_ae_header_id             => l_ae_header_id 
110228 , p_source_10 => p_source_10
110229 , p_source_10_meaning => p_source_10_meaning
110230 , p_source_25 => p_source_25
110231 , p_source_45 => p_source_45
110232          , x_transaction_coa_id       => l_adr_transaction_coa_id
110233          , x_accounting_coa_id        => l_adr_accounting_coa_id
110234          , x_value_type_code          => l_adr_value_type_code
110235          , p_side                     => 'NA'
110236    );
110237 
110238    xla_ae_lines_pkg.set_ccid(
110239     p_code_combination_id          => l_ccid
110240   , p_value_type_code              => l_adr_value_type_code
110241   , p_transaction_coa_id           => l_adr_transaction_coa_id
110245   , p_component_type               => l_component_type
110242   , p_accounting_coa_id            => l_adr_accounting_coa_id
110243   , p_adr_code                     => 'AP_ROUNDING'
110244   , p_adr_type_code                => 'S'
110246   , p_component_code               => l_component_code
110247   , p_component_type_code          => l_component_type_code
110248   , p_component_appl_id            => l_component_appl_id
110249   , p_amb_context_code             => l_amb_context_code
110250   , p_side                         => 'NA'
110251   );
110252 
110253 
110254    --
110255    --
110256    END IF;
110257    --
110258    -- Bug 4922099
110259    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110260           (NVL(l_enc_upg_option, 'N') = 'O')
110261         ) AND
110262         (l_bflow_method_code = 'PRIOR_ENTRY')
110263       )
110264    THEN
110265       IF
110266       --
110267       1 = 2
110268       --
110269       THEN
110270       xla_accounting_err_pkg.build_message
110271                                     (p_appli_s_name            => 'XLA'
110272                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110273                                     ,p_token_1                 => 'LINE_NUMBER'
110274                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110275                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110276                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110277                                                                              l_component_type
110278                                                                             ,l_component_code
110279                                                                             ,l_component_type_code
110280                                                                             ,l_component_appl_id
110281                                                                             ,l_amb_context_code
110282                                                                             ,l_entity_code
110283                                                                             ,l_event_class_code
110284                                                                            )
110285                                     ,p_token_3                 => 'OWNER'
110286                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110287                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110288                                                                           ,p_lookup_code    => l_component_type_code
110289                                                                          )
110290                                     ,p_token_4                 => 'PRODUCT_NAME'
110291                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110292                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110293                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110294                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110295                                     ,p_ae_header_id            =>  NULL
110296                                        );
110297 
110298         IF (C_LEVEL_ERROR>= g_log_level) THEN
110299                  trace
110300                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110301                       ,p_level    => C_LEVEL_ERROR
110302                       ,p_module   => l_log_module);
110303         END IF;
110304       END IF;
110305    END IF;
110306    --
110307    --
110308    ------------------------------------------------------------------------------------------------
110309    -- 4219869 Business Flow
110310    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110311    -- Prior Entry.  Currently, the following code is always generated.
110312    ------------------------------------------------------------------------------------------------
110313    XLA_AE_LINES_PKG.ValidateCurrentLine;
110314 
110315    ------------------------------------------------------------------------------------
110316    -- 4219869 Business Flow
110317    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110318    ------------------------------------------------------------------------------------
110319    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110320 
110321    ----------------------------------------------------------------------------------
110322    -- 4219869 Business Flow
110323    -- Update journal entry status -- Need to generate this within IF <condition>
110324    ----------------------------------------------------------------------------------
110325    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110326          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110327          ,p_balance_type_code => l_balance_type_code
110328          );
110329 
110330    -------------------------------------------------------------------------------------------
110331    -- 4262811 - Generate the Accrual Reversal lines
110332    -------------------------------------------------------------------------------------------
110333    BEGIN
110334       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110338       END IF;
110335                               (g_array_event(p_event_id).array_value_num('header_index'));
110336       IF l_acc_rev_flag IS NULL THEN
110337          l_acc_rev_flag := 'N';
110339    EXCEPTION
110340       WHEN OTHERS THEN
110341          l_acc_rev_flag := 'N';
110342    END;
110343    --
110344    IF (l_acc_rev_flag = 'Y') THEN
110345 
110346        -- 4645092  ------------------------------------------------------------------------------
110347        -- To allow MPA report to determine if it should generate report process
110348        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110349        ------------------------------------------------------------------------------------------
110350 
110351        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110352        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110353    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110354    -- call ADRs
110355    -- Bug 4922099
110356    --
110357    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110358         (NVL(l_actual_upg_option, 'N') = 'O') OR
110359         (NVL(l_enc_upg_option, 'N') = 'O')
110360       )
110361    THEN
110362    NULL;
110363    --
110364    --
110365    
110366   l_ccid := AcctDerRule_43(
110367            p_application_id           => p_application_id
110368          , p_ae_header_id             => l_ae_header_id 
110369 , p_source_10 => p_source_10
110370 , p_source_10_meaning => p_source_10_meaning
110371 , p_source_25 => p_source_25
110372 , p_source_45 => p_source_45
110373          , x_transaction_coa_id       => l_adr_transaction_coa_id
110374          , x_accounting_coa_id        => l_adr_accounting_coa_id
110375          , x_value_type_code          => l_adr_value_type_code
110376          , p_side                     => 'NA'
110377    );
110378 
110379    xla_ae_lines_pkg.set_ccid(
110380     p_code_combination_id          => l_ccid
110381   , p_value_type_code              => l_adr_value_type_code
110382   , p_transaction_coa_id           => l_adr_transaction_coa_id
110383   , p_accounting_coa_id            => l_adr_accounting_coa_id
110384   , p_adr_code                     => 'AP_ROUNDING'
110385   , p_adr_type_code                => 'S'
110386   , p_component_type               => l_component_type
110387   , p_component_code               => l_component_code
110388   , p_component_type_code          => l_component_type_code
110389   , p_component_appl_id            => l_component_appl_id
110390   , p_amb_context_code             => l_amb_context_code
110391   , p_side                         => 'NA'
110392   );
110393 
110394 
110395    --
110396    --
110397    END IF;
110398 
110399        --
110400        -- Update the line information that should be overwritten
110401        --
110402        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110403                                          p_header_num   => 1);
110404        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110405 
110406        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110407 
110408        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110409           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110410        END IF;
110411 
110412       --
110413       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110414       --
110415       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110416           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110417       ELSE
110418           ---------------------------------------------------------------------------------------------------
110419           -- 4262811a Switch Sign
110420           ---------------------------------------------------------------------------------------------------
110421           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110422           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110423                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110424           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110425                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110426           -- 5132302
110427           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110428                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110429 
110430       END IF;
110431 
110432       -- 4955764
110433       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110434       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110435 
110436 
110437       XLA_AE_LINES_PKG.ValidateCurrentLine;
110438       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110439 
110440       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110441                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110442                ,p_balance_type_code => l_balance_type_code);
110443 
110444    END IF;
110445 
110446    -----------------------------------------------------------------------------------------
110450 
110447    -- 4262811 Multiperiod Accounting
110448    -----------------------------------------------------------------------------------------
110449      -- No MPA option is assigned.
110451 
110452 END IF;
110453 END IF;
110454 --
110455 
110456 --
110457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110458    trace
110459       (p_msg      => 'END of AcctLineType_193'
110460       ,p_level    => C_LEVEL_PROCEDURE
110461       ,p_module   => l_log_module);
110462 END IF;
110463 --
110464 EXCEPTION
110465   WHEN xla_exceptions_pkg.application_exception THEN
110466       RAISE;
110467   WHEN OTHERS THEN
110468        xla_exceptions_pkg.raise_message
110469            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_193');
110470 END AcctLineType_193;
110471 --
110472 
110473 ---------------------------------------
110474 --
110475 -- PRIVATE FUNCTION
110476 --         AcctLineType_194
110477 --
110478 ---------------------------------------
110479 PROCEDURE AcctLineType_194 (
110480   p_application_id        IN NUMBER
110481  ,p_event_id              IN NUMBER
110482  ,p_calculate_acctd_flag  IN VARCHAR2
110483  ,p_calculate_g_l_flag    IN VARCHAR2
110484  ,p_actual_flag           IN OUT VARCHAR2
110485  ,p_balance_type_code     OUT VARCHAR2
110486  ,p_gain_or_loss_ref      OUT VARCHAR2
110487  
110488 --Invoice Distribution Description
110489  , p_source_1            IN VARCHAR2
110490 --Invoice Distribution Ledger Amount
110491  , p_source_16            IN NUMBER
110492 --Invoice Distribution Account
110493  , p_source_25            IN NUMBER
110494 --Prepaid Expense Account Source Option
110495  , p_source_26            IN VARCHAR2
110496  , p_source_26_meaning    IN VARCHAR2
110497 --Purchase Order Number
110498  , p_source_27            IN VARCHAR2
110499 --Invoice Distribution Type
110500  , p_source_28            IN VARCHAR2
110501  , p_source_28_meaning    IN VARCHAR2
110502 --Purchase Order Charge Account
110503  , p_source_41            IN NUMBER
110504 --Accrue on Receipt Option
110505  , p_source_54            IN VARCHAR2
110506  , p_source_54_meaning    IN VARCHAR2
110507 --Accounting Reversal Indicator
110508  , p_source_58            IN VARCHAR2
110509 --Distribution Link Type
110510  , p_source_60            IN VARCHAR2
110511 --Allocation to Main Distribution Identifier
110512  , p_source_62            IN NUMBER
110513 --Invoice Identifier
110514  , p_source_63            IN NUMBER
110515 --Invoice Distribution Identifier
110516  , p_source_69            IN NUMBER
110517 --Payables Encumbrance Upgrade Credit Account
110518  , p_source_70            IN NUMBER
110519 --Payables Encumbrance Upgrade Credit Amount
110520  , p_source_71            IN NUMBER
110521 --Invoice Currency Code
110522  , p_source_72            IN VARCHAR2
110523 --Payables Encumbrance Upgrade Credit Base Amount
110524  , p_source_73            IN NUMBER
110525 --Payables Encumbrance Upgrade Debit Account
110526  , p_source_74            IN NUMBER
110527 --Payables Encumbrance Upgrade Debit Amount
110528  , p_source_75            IN NUMBER
110529 --Payables Encumbrance Upgrade Debit Base Amount
110530  , p_source_76            IN NUMBER
110531 --Payables Encumbrance Upgrade Option
110532  , p_source_77            IN VARCHAR2
110533 --Invoice Distribution Amount
110534  , p_source_78            IN NUMBER
110535 --Deferred Accounting End Date
110536  , p_source_82            IN DATE
110537 --Deferred Accounting Option
110538  , p_source_83            IN VARCHAR2
110539 --Deferred Accounting Start Date
110540  , p_source_84            IN DATE
110541 --Override Accounted Amount Indicator
110542  , p_source_85            IN VARCHAR2
110543  , p_source_85_meaning    IN VARCHAR2
110544 --Invoice Supplier Identifier
110545  , p_source_86            IN NUMBER
110546 --Invoice Supplier Site Identifier
110547  , p_source_87            IN NUMBER
110548 --Third Party Type
110549  , p_source_88            IN VARCHAR2
110550 --Parent Reversal Identifier
110551  , p_source_89            IN NUMBER
110552 --Invoice Distribution Statistical Amount
110553  , p_source_90            IN NUMBER
110554 --Invoice Distribution Tax Line Identifier
110555  , p_source_91            IN NUMBER
110556 --Invoice Distribution Tax Distribution Identifier from Tax
110557  , p_source_92            IN NUMBER
110558 --Invoice Distribution Summary Tax Line Identifier
110559  , p_source_93            IN NUMBER
110560 --Payables Upgrade Credit Encumbrance Type Identifier
110561  , p_source_94            IN NUMBER
110562 --Payables Upgrade Debit Encumbrance Type Identifier
110563  , p_source_95            IN NUMBER
110564 --Business Flow Accounts Payable Application Identifier
110565  , p_source_96            IN NUMBER
110566 --Business Flow Invoice Distribution Type
110567  , p_source_97            IN VARCHAR2
110568 --Business Flow Invoice Entity Code
110569  , p_source_98            IN VARCHAR2
110570 --Business Flow Invoice Distribution Identifier
110571  , p_source_99            IN NUMBER
110572 --Business Flow Invoice Identifier
110573  , p_source_100            IN NUMBER
110574 --Invoice Exchange Date
110575  , p_source_146            IN DATE
110576 --Invoice Exchange Rate
110577  , p_source_147            IN NUMBER
110578 --Invoice Exchange Rate Type
110579  , p_source_148            IN VARCHAR2
110580 )
110581 IS
110582 
110583 l_component_type              VARCHAR2(80);
110584 l_component_code              VARCHAR2(30);
110585 l_component_type_code         VARCHAR2(1);
110586 l_component_appl_id           INTEGER;
110590 l_ae_header_id                NUMBER;
110587 l_amb_context_code            VARCHAR2(30);
110588 l_entity_code                 VARCHAR2(30);
110589 l_event_class_code            VARCHAR2(30);
110591 l_event_type_code             VARCHAR2(30);
110592 l_line_definition_code        VARCHAR2(30);
110593 l_line_definition_owner_code  VARCHAR2(1);
110594 --
110595 -- adr variables
110596 l_segment                     VARCHAR2(30);
110597 l_ccid                        NUMBER;
110598 l_adr_transaction_coa_id      NUMBER;
110599 l_adr_accounting_coa_id       NUMBER;
110600 l_adr_flexfield_segment_code  VARCHAR2(30);
110601 l_adr_flex_value_set_id       NUMBER;
110602 l_adr_value_type_code         VARCHAR2(30);
110603 l_adr_value_combination_id    NUMBER;
110604 l_adr_value_segment_code      VARCHAR2(30);
110605 
110606 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110607 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110608 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110609 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110610 
110611 -- 4262811 Variables ------------------------------------------------------------------------------------------
110612 l_entered_amt_idx             NUMBER;
110613 l_accted_amt_idx              NUMBER;
110614 l_acc_rev_flag                VARCHAR2(1);
110615 l_accrual_line_num            NUMBER;
110616 l_tmp_amt                     NUMBER;
110617 l_acc_rev_natural_side_code   VARCHAR2(1);
110618 
110619 l_num_entries                 NUMBER;
110620 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110621 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110622 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110623 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110624 l_recog_line_1                NUMBER;
110625 l_recog_line_2                NUMBER;
110626 
110627 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110628 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110629 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110630 
110631 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110632 
110633 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110634 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110635 
110636 ---------------------------------------------------------------------------------------------------------------
110637 
110638 
110639 --
110640 -- bulk performance
110641 --
110642 l_balance_type_code           VARCHAR2(1);
110643 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110644 l_log_module                  VARCHAR2(240);
110645 
110646 --
110647 -- Upgrade strategy
110648 --
110649 l_actual_upg_option           VARCHAR2(1);
110650 l_enc_upg_option           VARCHAR2(1);
110651 
110652 --
110653 BEGIN
110654 --
110655 IF g_log_enabled THEN
110656       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_194';
110657 END IF;
110658 --
110659 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110660 
110661       trace
110662          (p_msg      => 'BEGIN of AcctLineType_194'
110663          ,p_level    => C_LEVEL_PROCEDURE
110664          ,p_module   => l_log_module);
110665 
110666 END IF;
110667 --
110668 l_component_type             := 'AMB_JLT';
110669 l_component_code             := 'AP_PREPAID_EXPENSE_PREPAY';
110670 l_component_type_code        := 'S';
110671 l_component_appl_id          :=  200;
110672 l_amb_context_code           := 'DEFAULT';
110673 l_entity_code                := 'AP_INVOICES';
110674 l_event_class_code           := 'PREPAYMENTS';
110675 l_event_type_code            := 'PREPAYMENTS_ALL';
110676 l_line_definition_owner_code := 'S';
110677 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
110678 --
110679 l_balance_type_code          := 'A';
110680 l_segment                     := NULL;
110681 l_ccid                        := NULL;
110682 l_adr_transaction_coa_id      := NULL;
110683 l_adr_accounting_coa_id       := NULL;
110684 l_adr_flexfield_segment_code  := NULL;
110685 l_adr_flex_value_set_id       := NULL;
110686 l_adr_value_type_code         := NULL;
110687 l_adr_value_combination_id    := NULL;
110688 l_adr_value_segment_code      := NULL;
110689 
110690 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
110691 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
110692 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110693 l_budgetary_control_flag     := 'N';
110694 
110695 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110696 l_bflow_applied_to_amt       := NULL; -- 5132302
110697 l_entered_amt_idx            := NULL;          -- 4262811
110698 l_accted_amt_idx             := NULL;          -- 4262811
110699 l_acc_rev_flag               := NULL;          -- 4262811
110700 l_accrual_line_num           := NULL;          -- 4262811
110701 l_tmp_amt                    := NULL;          -- 4262811
110702 --
110703  
110704 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110705     l_balance_type_code <> 'B' THEN
110706 IF NVL(p_source_28,'
110707 ') =  'RETROEXPENSE' OR 
110708 NVL(p_source_28,'
110709 ') =  'ITEM' OR 
110710 (NVL(p_source_28,'
110711 ') =  'ERV' AND 
110712 NVL(p_source_54,'
110713 ') <>  'Y') OR 
110714 (NVL(p_source_28,'
110715 ') =  'IPV' AND 
110719 
110716 NVL(p_source_54,'
110717 ') <>  'Y')
110718  THEN 
110720    --
110721    XLA_AE_LINES_PKG.SetNewLine;
110722 
110723    p_balance_type_code          := l_balance_type_code;
110724    -- set the flag so later we will know whether the gain loss line needs to be created
110725    
110726    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110727      p_actual_flag :='A';
110728    END IF;
110729 
110730    --
110731    -- bulk performance
110732    --
110733    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110734                                       p_header_num   => 0); -- 4262811
110735    --
110736    -- set accounting line options
110737    --
110738    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110739            p_natural_side_code          => 'D'
110740          , p_gain_or_loss_flag          => 'N'
110741          , p_gl_transfer_mode_code      => 'S'
110742          , p_acct_entry_type_code       => 'A'
110743          , p_switch_side_flag           => 'Y'
110744          , p_merge_duplicate_code       => 'A'
110745          );
110746    --
110747    l_acc_rev_natural_side_code := 'C';  -- 4262811
110748    -- 
110749    --
110750    -- set accounting line type info
110751    --
110752    xla_ae_lines_pkg.SetAcctLineType
110753       (p_component_type             => l_component_type
110754       ,p_event_type_code            => l_event_type_code
110755       ,p_line_definition_owner_code => l_line_definition_owner_code
110756       ,p_line_definition_code       => l_line_definition_code
110757       ,p_accounting_line_code       => l_component_code
110758       ,p_accounting_line_type_code  => l_component_type_code
110759       ,p_accounting_line_appl_id    => l_component_appl_id
110760       ,p_amb_context_code           => l_amb_context_code
110761       ,p_entity_code                => l_entity_code
110762       ,p_event_class_code           => l_event_class_code);
110763    --
110764    -- set accounting class
110765    --
110766    xla_ae_lines_pkg.SetAcctClass(
110767            p_accounting_class_code  => 'PREPAID_EXPENSE'
110768          , p_ae_header_id           => l_ae_header_id
110769          );
110770 
110771    --
110772    -- set rounding class
110773    --
110774    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110775                       'PREPAID_EXPENSE';
110776 
110777    --
110778    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110779    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110780    --
110781    -- bulk performance
110782    --
110783    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110784 
110785    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110786       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110787 
110788    -- 4955764
110789    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110790       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110791 
110792    -- 4458381 Public Sector Enh
110793    
110794    --
110795    -- set accounting attributes for the line type
110796    --
110797    l_entered_amt_idx := 23;
110798    l_accted_amt_idx  := 28;
110799    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
110800    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110801    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
110802    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
110803    l_rec_acct_attrs.array_num_value(2)  := 
110804 xla_ae_sources_pkg.GetSystemSourceNum(
110805    p_source_code           => 'XLA_EVENT_APPL_ID'
110806  , p_source_type_code      => 'Y'
110807  , p_source_application_id =>  602
110808 );
110809    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
110810    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
110811    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
110812    l_rec_acct_attrs.array_char_value(4)  := 
110813 xla_ae_sources_pkg.GetSystemSourceChar(
110814    p_source_code           => 'XLA_ENTITY_CODE'
110815  , p_source_type_code      => 'Y'
110816  , p_source_application_id =>  602
110817 );
110818    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
110819    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
110820    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
110821    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
110822    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
110823    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
110824    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110825    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
110826    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
110827    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
110828    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
110829    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
110830    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110831    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
110832    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
110833    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
110834    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
110838    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
110835    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
110836    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
110837    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
110839    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
110840    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
110841    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
110842    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
110843    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
110844    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
110845    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
110846    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
110847    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
110848    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
110849    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
110850    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
110851    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
110852    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
110853    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
110854    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
110855    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
110856    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
110857    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
110858    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
110859    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
110860    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
110861    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
110862    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
110863    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
110864    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
110865    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
110866    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
110867    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
110868    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
110869    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
110870    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
110871    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
110872    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
110873    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
110874    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
110875    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
110876    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
110877    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
110878    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
110879    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
110880    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
110881    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
110882    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
110883    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
110884    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
110885    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
110886    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
110887    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
110888    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
110889    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
110890    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
110891    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
110892    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
110893    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
110894    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
110895    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
110896 
110897    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110898    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110899 
110900    ---------------------------------------------------------------------------------------------------------------
110901    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110902    ---------------------------------------------------------------------------------------------------------------
110903    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110904 
110905    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110906    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110907 
110908    IF xla_accounting_cache_pkg.GetValueChar
110909          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110910          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110911    AND l_bflow_method_code = 'PRIOR_ENTRY'
110912 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110913    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110914          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110915        )
110916    THEN
110917          xla_ae_lines_pkg.BflowUpgEntry
110918            (p_business_method_code    => l_bflow_method_code
110922       NULL;
110919            ,p_business_class_code     => l_bflow_class_code
110920            ,p_balance_type            => l_balance_type_code);
110921    ELSE
110923 -- No business flow processing for business flow method of NONE.
110924    END IF;
110925 
110926    --
110927    -- call analytical criteria
110928    --
110929    
110930    --
110931    -- call description
110932    --
110933    
110934 xla_ae_lines_pkg.SetLineDescription(
110935    p_ae_header_id => l_ae_header_id
110936   ,p_description  => Description_2 (
110937      p_application_id         => p_application_id
110938    , p_ae_header_id           => l_ae_header_id 
110939 , p_source_1 => p_source_1
110940    )
110941 );
110942 
110943 
110944    --
110945    -- call ADRs
110946    -- Bug 4922099
110947    --
110948    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110949         (NVL(l_actual_upg_option, 'N') = 'O') OR
110950         (NVL(l_enc_upg_option, 'N') = 'O')
110951       )
110952    THEN
110953    NULL;
110954    --
110955    --
110956    
110957   l_ccid := AcctDerRule_39(
110958            p_application_id           => p_application_id
110959          , p_ae_header_id             => l_ae_header_id 
110960 , p_source_25 => p_source_25
110961 , p_source_26 => p_source_26
110962 , p_source_26_meaning => p_source_26_meaning
110963 , p_source_27 => p_source_27
110964 , p_source_28 => p_source_28
110965 , p_source_28_meaning => p_source_28_meaning
110966 , p_source_41 => p_source_41
110967          , x_transaction_coa_id       => l_adr_transaction_coa_id
110968          , x_accounting_coa_id        => l_adr_accounting_coa_id
110969          , x_value_type_code          => l_adr_value_type_code
110970          , p_side                     => 'NA'
110971    );
110972 
110973    xla_ae_lines_pkg.set_ccid(
110974     p_code_combination_id          => l_ccid
110975   , p_value_type_code              => l_adr_value_type_code
110976   , p_transaction_coa_id           => l_adr_transaction_coa_id
110977   , p_accounting_coa_id            => l_adr_accounting_coa_id
110978   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
110979   , p_adr_type_code                => 'S'
110980   , p_component_type               => l_component_type
110981   , p_component_code               => l_component_code
110982   , p_component_type_code          => l_component_type_code
110983   , p_component_appl_id            => l_component_appl_id
110984   , p_amb_context_code             => l_amb_context_code
110985   , p_side                         => 'NA'
110986   );
110987 
110988 
110989    l_segment := AcctDerRule_13(
110990            p_application_id           => p_application_id
110991          , p_ae_header_id             => l_ae_header_id 
110992 , p_source_25 => p_source_25
110993 , p_source_26 => p_source_26
110994 , p_source_26_meaning => p_source_26_meaning
110995 , p_source_27 => p_source_27
110996 , p_source_28 => p_source_28
110997 , p_source_28_meaning => p_source_28_meaning
110998          , x_transaction_coa_id       => l_adr_transaction_coa_id
110999          , x_accounting_coa_id        => l_adr_accounting_coa_id
111000          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
111001          , x_flex_value_set_id        => l_adr_flex_value_set_id
111002          , x_value_type_code          => l_adr_value_type_code
111003          , x_value_combination_id     => l_adr_value_combination_id
111004          , x_value_segment_code       => l_adr_value_segment_code
111005          , p_side                     => 'NA'
111006          , p_override_seg_flag        => 'Y'
111007    );
111008 
111009    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
111010 
111011       xla_ae_lines_pkg.set_segment(
111012           p_to_segment_code         => 'GL_ACCOUNT'
111013         , p_segment_value           => l_segment
111014         , p_from_segment_code       => l_adr_value_segment_code
111015         , p_from_combination_id     => l_adr_value_combination_id
111016         , p_value_type_code         => l_adr_value_type_code
111017         , p_transaction_coa_id      => l_adr_transaction_coa_id
111018         , p_accounting_coa_id       => l_adr_accounting_coa_id
111019         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
111020         , p_flex_value_set_id       => l_adr_flex_value_set_id
111021         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
111022         , p_adr_type_code           => 'S'
111023         , p_component_type          => l_component_type
111024         , p_component_code          => l_component_code
111025         , p_component_type_code     => l_component_type_code
111026         , p_component_appl_id       => l_component_appl_id
111027         , p_amb_context_code        => l_amb_context_code
111028         , p_entity_code             => 'AP_INVOICES'
111029         , p_event_class_code        => 'PREPAYMENTS'
111030         , p_side                    => 'NA'
111031         );
111032 
111033   END IF;
111034 
111035    --
111036    --
111037    END IF;
111038    --
111039    -- Bug 4922099
111040    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111041           (NVL(l_enc_upg_option, 'N') = 'O')
111042         ) AND
111043         (l_bflow_method_code = 'PRIOR_ENTRY')
111044       )
111045    THEN
111046       IF
111047       --
111048       1 = 2
111049       --
111050       THEN
111051       xla_accounting_err_pkg.build_message
111055                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111052                                     (p_appli_s_name            => 'XLA'
111053                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111054                                     ,p_token_1                 => 'LINE_NUMBER'
111056                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111057                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111058                                                                              l_component_type
111059                                                                             ,l_component_code
111060                                                                             ,l_component_type_code
111061                                                                             ,l_component_appl_id
111062                                                                             ,l_amb_context_code
111063                                                                             ,l_entity_code
111064                                                                             ,l_event_class_code
111065                                                                            )
111066                                     ,p_token_3                 => 'OWNER'
111067                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111068                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111069                                                                           ,p_lookup_code    => l_component_type_code
111070                                                                          )
111071                                     ,p_token_4                 => 'PRODUCT_NAME'
111072                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111073                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111074                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111075                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111076                                     ,p_ae_header_id            =>  NULL
111077                                        );
111078 
111079         IF (C_LEVEL_ERROR>= g_log_level) THEN
111080                  trace
111081                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111082                       ,p_level    => C_LEVEL_ERROR
111083                       ,p_module   => l_log_module);
111084         END IF;
111085       END IF;
111086    END IF;
111087    --
111088    --
111089    ------------------------------------------------------------------------------------------------
111090    -- 4219869 Business Flow
111091    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111092    -- Prior Entry.  Currently, the following code is always generated.
111093    ------------------------------------------------------------------------------------------------
111094    XLA_AE_LINES_PKG.ValidateCurrentLine;
111095 
111096    ------------------------------------------------------------------------------------
111097    -- 4219869 Business Flow
111098    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111099    ------------------------------------------------------------------------------------
111100    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111101 
111102    ----------------------------------------------------------------------------------
111103    -- 4219869 Business Flow
111104    -- Update journal entry status -- Need to generate this within IF <condition>
111105    ----------------------------------------------------------------------------------
111106    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111107          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111108          ,p_balance_type_code => l_balance_type_code
111109          );
111110 
111111    -------------------------------------------------------------------------------------------
111112    -- 4262811 - Generate the Accrual Reversal lines
111113    -------------------------------------------------------------------------------------------
111114    BEGIN
111115       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111116                               (g_array_event(p_event_id).array_value_num('header_index'));
111117       IF l_acc_rev_flag IS NULL THEN
111118          l_acc_rev_flag := 'N';
111119       END IF;
111120    EXCEPTION
111121       WHEN OTHERS THEN
111122          l_acc_rev_flag := 'N';
111123    END;
111124    --
111125    IF (l_acc_rev_flag = 'Y') THEN
111126 
111127        -- 4645092  ------------------------------------------------------------------------------
111128        -- To allow MPA report to determine if it should generate report process
111129        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111130        ------------------------------------------------------------------------------------------
111131 
111132        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111133        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111134    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111135    -- call ADRs
111136    -- Bug 4922099
111137    --
111138    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111139         (NVL(l_actual_upg_option, 'N') = 'O') OR
111140         (NVL(l_enc_upg_option, 'N') = 'O')
111144    --
111141       )
111142    THEN
111143    NULL;
111145    --
111146    
111147   l_ccid := AcctDerRule_39(
111148            p_application_id           => p_application_id
111149          , p_ae_header_id             => l_ae_header_id 
111150 , p_source_25 => p_source_25
111151 , p_source_26 => p_source_26
111152 , p_source_26_meaning => p_source_26_meaning
111153 , p_source_27 => p_source_27
111154 , p_source_28 => p_source_28
111155 , p_source_28_meaning => p_source_28_meaning
111156 , p_source_41 => p_source_41
111157          , x_transaction_coa_id       => l_adr_transaction_coa_id
111158          , x_accounting_coa_id        => l_adr_accounting_coa_id
111159          , x_value_type_code          => l_adr_value_type_code
111160          , p_side                     => 'NA'
111161    );
111162 
111163    xla_ae_lines_pkg.set_ccid(
111164     p_code_combination_id          => l_ccid
111165   , p_value_type_code              => l_adr_value_type_code
111166   , p_transaction_coa_id           => l_adr_transaction_coa_id
111167   , p_accounting_coa_id            => l_adr_accounting_coa_id
111168   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
111169   , p_adr_type_code                => 'S'
111170   , p_component_type               => l_component_type
111171   , p_component_code               => l_component_code
111172   , p_component_type_code          => l_component_type_code
111173   , p_component_appl_id            => l_component_appl_id
111174   , p_amb_context_code             => l_amb_context_code
111175   , p_side                         => 'NA'
111176   );
111177 
111178 
111179    l_segment := AcctDerRule_13(
111180            p_application_id           => p_application_id
111181          , p_ae_header_id             => l_ae_header_id 
111182 , p_source_25 => p_source_25
111183 , p_source_26 => p_source_26
111184 , p_source_26_meaning => p_source_26_meaning
111185 , p_source_27 => p_source_27
111186 , p_source_28 => p_source_28
111187 , p_source_28_meaning => p_source_28_meaning
111188          , x_transaction_coa_id       => l_adr_transaction_coa_id
111189          , x_accounting_coa_id        => l_adr_accounting_coa_id
111190          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
111191          , x_flex_value_set_id        => l_adr_flex_value_set_id
111192          , x_value_type_code          => l_adr_value_type_code
111193          , x_value_combination_id     => l_adr_value_combination_id
111194          , x_value_segment_code       => l_adr_value_segment_code
111195          , p_side                     => 'NA'
111196          , p_override_seg_flag        => 'Y'
111197    );
111198 
111199    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
111200 
111201       xla_ae_lines_pkg.set_segment(
111202           p_to_segment_code         => 'GL_ACCOUNT'
111203         , p_segment_value           => l_segment
111204         , p_from_segment_code       => l_adr_value_segment_code
111205         , p_from_combination_id     => l_adr_value_combination_id
111206         , p_value_type_code         => l_adr_value_type_code
111207         , p_transaction_coa_id      => l_adr_transaction_coa_id
111208         , p_accounting_coa_id       => l_adr_accounting_coa_id
111209         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
111210         , p_flex_value_set_id       => l_adr_flex_value_set_id
111211         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
111212         , p_adr_type_code           => 'S'
111213         , p_component_type          => l_component_type
111214         , p_component_code          => l_component_code
111215         , p_component_type_code     => l_component_type_code
111216         , p_component_appl_id       => l_component_appl_id
111217         , p_amb_context_code        => l_amb_context_code
111218         , p_entity_code             => 'AP_INVOICES'
111219         , p_event_class_code        => 'PREPAYMENTS'
111220         , p_side                    => 'NA'
111221         );
111222 
111223   END IF;
111224 
111225    --
111226    --
111227    END IF;
111228 
111229        --
111230        -- Update the line information that should be overwritten
111231        --
111232        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111233                                          p_header_num   => 1);
111234        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111235 
111236        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111237 
111238        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111239           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111240        END IF;
111241 
111242       --
111243       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111244       --
111245       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111246           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111247       ELSE
111248           ---------------------------------------------------------------------------------------------------
111249           -- 4262811a Switch Sign
111250           ---------------------------------------------------------------------------------------------------
111251           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111252           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111256           -- 5132302
111253                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111254           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111255                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111257           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111258                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111259 
111260       END IF;
111261 
111262       -- 4955764
111263       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111264       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111265 
111266 
111267       XLA_AE_LINES_PKG.ValidateCurrentLine;
111268       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111269 
111270       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111271                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111272                ,p_balance_type_code => l_balance_type_code);
111273 
111274    END IF;
111275 
111276    -----------------------------------------------------------------------------------------
111277    -- 4262811 Multiperiod Accounting
111278    -----------------------------------------------------------------------------------------
111279      -- No MPA option is assigned.
111280 
111281 
111282 END IF;
111283 END IF;
111284 --
111285 
111286 --
111287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111288    trace
111289       (p_msg      => 'END of AcctLineType_194'
111290       ,p_level    => C_LEVEL_PROCEDURE
111291       ,p_module   => l_log_module);
111292 END IF;
111293 --
111294 EXCEPTION
111295   WHEN xla_exceptions_pkg.application_exception THEN
111296       RAISE;
111297   WHEN OTHERS THEN
111298        xla_exceptions_pkg.raise_message
111299            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_194');
111300 END AcctLineType_194;
111301 --
111302 
111303 ---------------------------------------
111304 --
111305 -- PRIVATE FUNCTION
111306 --         AcctLineType_195
111307 --
111308 ---------------------------------------
111309 PROCEDURE AcctLineType_195 (
111310   p_application_id        IN NUMBER
111311  ,p_event_id              IN NUMBER
111312  ,p_calculate_acctd_flag  IN VARCHAR2
111313  ,p_calculate_g_l_flag    IN VARCHAR2
111314  ,p_actual_flag           IN OUT VARCHAR2
111315  ,p_balance_type_code     OUT VARCHAR2
111316  ,p_gain_or_loss_ref      OUT VARCHAR2
111317  
111318 --Accounting Reversal Indicator
111319  , p_source_58            IN VARCHAR2
111320 --Distribution Link Type
111321  , p_source_60            IN VARCHAR2
111322 --Invoice Identifier
111323  , p_source_63            IN NUMBER
111324 --Payables Encumbrance Upgrade Credit Account
111325  , p_source_70            IN NUMBER
111326 --Payables Encumbrance Upgrade Credit Amount
111327  , p_source_71            IN NUMBER
111328 --Invoice Currency Code
111329  , p_source_72            IN VARCHAR2
111330 --Payables Encumbrance Upgrade Credit Base Amount
111331  , p_source_73            IN NUMBER
111332 --Payables Encumbrance Upgrade Debit Account
111333  , p_source_74            IN NUMBER
111334 --Payables Encumbrance Upgrade Debit Amount
111335  , p_source_75            IN NUMBER
111336 --Payables Encumbrance Upgrade Debit Base Amount
111337  , p_source_76            IN NUMBER
111338 --Payables Encumbrance Upgrade Option
111339  , p_source_77            IN VARCHAR2
111340 --Deferred Accounting End Date
111341  , p_source_82            IN DATE
111342 --Deferred Accounting Option
111343  , p_source_83            IN VARCHAR2
111344 --Deferred Accounting Start Date
111345  , p_source_84            IN DATE
111346 --Override Accounted Amount Indicator
111347  , p_source_85            IN VARCHAR2
111348  , p_source_85_meaning    IN VARCHAR2
111349 --Third Party Type
111350  , p_source_88            IN VARCHAR2
111351 --Invoice Distribution Tax Line Identifier
111352  , p_source_91            IN NUMBER
111353 --Invoice Distribution Tax Distribution Identifier from Tax
111354  , p_source_92            IN NUMBER
111355 --Invoice Distribution Summary Tax Line Identifier
111356  , p_source_93            IN NUMBER
111357 --Payables Upgrade Credit Encumbrance Type Identifier
111358  , p_source_94            IN NUMBER
111359 --Payables Upgrade Debit Encumbrance Type Identifier
111360  , p_source_95            IN NUMBER
111361 --Business Flow Accounts Payable Application Identifier
111362  , p_source_96            IN NUMBER
111363 --Prepayment Distribution Type
111364  , p_source_128            IN VARCHAR2
111365 --Deferred Prepayment Settlement Option Code
111366  , p_source_129            IN VARCHAR2
111367  , p_source_129_meaning    IN VARCHAR2
111368 --Prepayment Application Distribution Identifier
111369  , p_source_130            IN NUMBER
111370 --Upgrade Encumbrance Credit Account Class
111371  , p_source_135            IN VARCHAR2
111372 --Upgrade Encumbrance Debit Account Class
111373  , p_source_136            IN VARCHAR2
111374 --Prepayment Distribution Amount
111375  , p_source_137            IN NUMBER
111376 --Prepayment Distribution (Prepayment Rate) Ledger Amount
111377  , p_source_138            IN NUMBER
111378 --Identifier of the Prepayment Application Reversed
111379  , p_source_139            IN NUMBER
111380 --Business Flow Prepayment Invoice Distribution Type
111381  , p_source_149            IN VARCHAR2
111385  , p_source_151            IN NUMBER
111382 --Business Flow Prepayment Invoice Entity Code
111383  , p_source_150            IN VARCHAR2
111384 --Business Flow Prepayment Invoice Distribution Identifier
111386 --Business Flow Prepayment Invoice Identifier
111387  , p_source_152            IN NUMBER
111388 )
111389 IS
111390 
111391 l_component_type              VARCHAR2(80);
111392 l_component_code              VARCHAR2(30);
111393 l_component_type_code         VARCHAR2(1);
111394 l_component_appl_id           INTEGER;
111395 l_amb_context_code            VARCHAR2(30);
111396 l_entity_code                 VARCHAR2(30);
111397 l_event_class_code            VARCHAR2(30);
111398 l_ae_header_id                NUMBER;
111399 l_event_type_code             VARCHAR2(30);
111400 l_line_definition_code        VARCHAR2(30);
111401 l_line_definition_owner_code  VARCHAR2(1);
111402 --
111403 -- adr variables
111404 l_segment                     VARCHAR2(30);
111405 l_ccid                        NUMBER;
111406 l_adr_transaction_coa_id      NUMBER;
111407 l_adr_accounting_coa_id       NUMBER;
111408 l_adr_flexfield_segment_code  VARCHAR2(30);
111409 l_adr_flex_value_set_id       NUMBER;
111410 l_adr_value_type_code         VARCHAR2(30);
111411 l_adr_value_combination_id    NUMBER;
111412 l_adr_value_segment_code      VARCHAR2(30);
111413 
111414 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
111415 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
111416 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
111417 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
111418 
111419 -- 4262811 Variables ------------------------------------------------------------------------------------------
111420 l_entered_amt_idx             NUMBER;
111421 l_accted_amt_idx              NUMBER;
111422 l_acc_rev_flag                VARCHAR2(1);
111423 l_accrual_line_num            NUMBER;
111424 l_tmp_amt                     NUMBER;
111425 l_acc_rev_natural_side_code   VARCHAR2(1);
111426 
111427 l_num_entries                 NUMBER;
111428 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
111429 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
111430 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
111431 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
111432 l_recog_line_1                NUMBER;
111433 l_recog_line_2                NUMBER;
111434 
111435 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
111436 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
111437 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
111438 
111439 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111440 
111441 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
111442 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
111443 
111444 ---------------------------------------------------------------------------------------------------------------
111445 
111446 
111447 --
111448 -- bulk performance
111449 --
111450 l_balance_type_code           VARCHAR2(1);
111451 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
111452 l_log_module                  VARCHAR2(240);
111453 
111454 --
111455 -- Upgrade strategy
111456 --
111457 l_actual_upg_option           VARCHAR2(1);
111458 l_enc_upg_option           VARCHAR2(1);
111459 
111460 --
111461 BEGIN
111462 --
111463 IF g_log_enabled THEN
111464       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_195';
111465 END IF;
111466 --
111467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111468 
111469       trace
111470          (p_msg      => 'BEGIN of AcctLineType_195'
111471          ,p_level    => C_LEVEL_PROCEDURE
111472          ,p_module   => l_log_module);
111473 
111474 END IF;
111475 --
111476 l_component_type             := 'AMB_JLT';
111477 l_component_code             := 'AP_PREPAID_EXP_ACCR_PREPAY_APP';
111478 l_component_type_code        := 'S';
111479 l_component_appl_id          :=  200;
111480 l_amb_context_code           := 'DEFAULT';
111481 l_entity_code                := 'AP_INVOICES';
111482 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
111483 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
111484 l_line_definition_owner_code := 'S';
111485 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
111486 --
111487 l_balance_type_code          := 'A';
111488 l_segment                     := NULL;
111489 l_ccid                        := NULL;
111490 l_adr_transaction_coa_id      := NULL;
111491 l_adr_accounting_coa_id       := NULL;
111492 l_adr_flexfield_segment_code  := NULL;
111493 l_adr_flex_value_set_id       := NULL;
111494 l_adr_value_type_code         := NULL;
111495 l_adr_value_combination_id    := NULL;
111496 l_adr_value_segment_code      := NULL;
111497 
111498 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
111499 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
111500 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111501 l_budgetary_control_flag     := 'N';
111502 
111503 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111504 l_bflow_applied_to_amt       := NULL; -- 5132302
111505 l_entered_amt_idx            := NULL;          -- 4262811
111506 l_accted_amt_idx             := NULL;          -- 4262811
111507 l_acc_rev_flag               := NULL;          -- 4262811
111508 l_accrual_line_num           := NULL;          -- 4262811
111512 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111509 l_tmp_amt                    := NULL;          -- 4262811
111510 --
111511  
111513     l_balance_type_code <> 'B' THEN
111514 IF NVL(p_source_128,'
111515 ') =  'PREPAY APPL' OR 
111516 NVL(p_source_128,'
111517 ') =  'TAX DIFF' OR 
111518 NVL(p_source_128,'
111519 ') =  'FINAL APPLICATION ROUNDING' OR 
111520 (NVL(p_source_128,'
111521 ') =  'PREPAY APPL REC TAX' AND 
111522 NVL(p_source_129,'
111523 ') <>  'DEFERRED') OR 
111524 NVL(p_source_128,'
111525 ') =  'PREPAY APPL NONREC TAX'
111526  THEN 
111527 
111528    --
111529    XLA_AE_LINES_PKG.SetNewLine;
111530 
111531    p_balance_type_code          := l_balance_type_code;
111532    -- set the flag so later we will know whether the gain loss line needs to be created
111533    
111534    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111535      p_actual_flag :='A';
111536    END IF;
111537 
111538    --
111539    -- bulk performance
111540    --
111541    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111542                                       p_header_num   => 0); -- 4262811
111543    --
111544    -- set accounting line options
111545    --
111546    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111547            p_natural_side_code          => 'D'
111548          , p_gain_or_loss_flag          => 'N'
111549          , p_gl_transfer_mode_code      => 'S'
111550          , p_acct_entry_type_code       => 'A'
111551          , p_switch_side_flag           => 'Y'
111552          , p_merge_duplicate_code       => 'A'
111553          );
111554    --
111555    l_acc_rev_natural_side_code := 'C';  -- 4262811
111556    -- 
111557    --
111558    -- set accounting line type info
111559    --
111560    xla_ae_lines_pkg.SetAcctLineType
111561       (p_component_type             => l_component_type
111562       ,p_event_type_code            => l_event_type_code
111563       ,p_line_definition_owner_code => l_line_definition_owner_code
111564       ,p_line_definition_code       => l_line_definition_code
111565       ,p_accounting_line_code       => l_component_code
111566       ,p_accounting_line_type_code  => l_component_type_code
111567       ,p_accounting_line_appl_id    => l_component_appl_id
111568       ,p_amb_context_code           => l_amb_context_code
111569       ,p_entity_code                => l_entity_code
111570       ,p_event_class_code           => l_event_class_code);
111571    --
111572    -- set accounting class
111573    --
111574    xla_ae_lines_pkg.SetAcctClass(
111575            p_accounting_class_code  => 'PREPAID_EXPENSE'
111576          , p_ae_header_id           => l_ae_header_id
111577          );
111578 
111579    --
111580    -- set rounding class
111581    --
111582    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111583                       'PREPAID_EXPENSE';
111584 
111585    --
111586    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111587    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111588    --
111589    -- bulk performance
111590    --
111591    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111592 
111593    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111594       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111595 
111596    -- 4955764
111597    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111598       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111599 
111600    -- 4458381 Public Sector Enh
111601    
111602    --
111603    -- set accounting attributes for the line type
111604    --
111605    l_entered_amt_idx := 25;
111606    l_accted_amt_idx  := 27;
111607    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
111608    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111609    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
111610    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
111611    l_rec_acct_attrs.array_num_value(2)  := 
111612 xla_ae_sources_pkg.GetSystemSourceNum(
111613    p_source_code           => 'XLA_EVENT_APPL_ID'
111614  , p_source_type_code      => 'Y'
111615  , p_source_application_id =>  602
111616 );
111617    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
111618    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
111619    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
111620    l_rec_acct_attrs.array_char_value(4)  := 
111621 xla_ae_sources_pkg.GetSystemSourceChar(
111622    p_source_code           => 'XLA_ENTITY_CODE'
111623  , p_source_type_code      => 'Y'
111624  , p_source_application_id =>  602
111625 );
111626    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
111627    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
111628    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
111629    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
111630    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
111631    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
111632    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111636    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
111633    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
111634    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
111635    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
111637    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
111638    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111639    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
111640    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
111641    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
111642    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
111643    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
111644    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
111645    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
111646    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
111647    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
111648    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
111649    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
111650    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
111651    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
111652    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
111653    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
111654    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
111655    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
111656    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
111657    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
111658    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
111659    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
111660    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
111661    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
111662    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
111663    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
111664    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
111665    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
111666    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
111667    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
111668    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
111669    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
111670    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
111671    l_rec_acct_attrs.array_num_value(27)  := p_source_138;
111672    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
111673    l_rec_acct_attrs.array_date_value(28)  := p_source_82;
111674    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
111675    l_rec_acct_attrs.array_char_value(29)  := p_source_83;
111676    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
111677    l_rec_acct_attrs.array_date_value(30)  := p_source_84;
111678    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
111679    l_rec_acct_attrs.array_char_value(31)  := p_source_85;
111680    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
111681    l_rec_acct_attrs.array_char_value(32)  := p_source_88;
111682    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
111683    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_139);
111684    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
111685    l_rec_acct_attrs.array_char_value(34)  := p_source_60;
111686    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
111687    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
111688    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
111689    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
111690    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
111691    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
111692    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
111693    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
111694    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
111695    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
111696 
111697    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111698    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111699 
111700    ---------------------------------------------------------------------------------------------------------------
111701    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111702    ---------------------------------------------------------------------------------------------------------------
111703    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111704 
111705    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111706    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111707 
111708    IF xla_accounting_cache_pkg.GetValueChar
111709          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111710          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111711    AND l_bflow_method_code = 'PRIOR_ENTRY'
111712 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111713    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111717          xla_ae_lines_pkg.BflowUpgEntry
111714          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111715        )
111716    THEN
111718            (p_business_method_code    => l_bflow_method_code
111719            ,p_business_class_code     => l_bflow_class_code
111720            ,p_balance_type            => l_balance_type_code);
111721    ELSE
111722       NULL;
111723 XLA_AE_LINES_PKG.business_flow_validation(
111724                                 p_business_method_code     => l_bflow_method_code
111725                                ,p_business_class_code      => l_bflow_class_code
111726                                ,p_inherit_description_flag => l_inherit_desc_flag);
111727    END IF;
111728 
111729    --
111730    -- call analytical criteria
111731    --
111732    -- Inherited Analytical Criteria for business flow method of Prior Entry.
111733    --
111734    -- call description
111735    --
111736    -- No description or it is inherited.
111737    --
111738    -- call ADRs
111739    -- Bug 4922099
111740    --
111741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111742         (NVL(l_actual_upg_option, 'N') = 'O') OR
111743         (NVL(l_enc_upg_option, 'N') = 'O')
111744       )
111745    THEN
111746    NULL;
111747    --
111748    --
111749    
111750    --
111751    --
111752    END IF;
111753    --
111754    -- Bug 4922099
111755    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111756           (NVL(l_enc_upg_option, 'N') = 'O')
111757         ) AND
111758         (l_bflow_method_code = 'PRIOR_ENTRY')
111759       )
111760    THEN
111761       IF
111762       --
111763       1 = 1
111764       --
111765       THEN
111766       xla_accounting_err_pkg.build_message
111767                                     (p_appli_s_name            => 'XLA'
111768                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111769                                     ,p_token_1                 => 'LINE_NUMBER'
111770                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111771                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111772                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111773                                                                              l_component_type
111774                                                                             ,l_component_code
111775                                                                             ,l_component_type_code
111776                                                                             ,l_component_appl_id
111777                                                                             ,l_amb_context_code
111778                                                                             ,l_entity_code
111779                                                                             ,l_event_class_code
111780                                                                            )
111781                                     ,p_token_3                 => 'OWNER'
111782                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111783                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111784                                                                           ,p_lookup_code    => l_component_type_code
111785                                                                          )
111786                                     ,p_token_4                 => 'PRODUCT_NAME'
111787                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111788                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111789                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111790                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111791                                     ,p_ae_header_id            =>  NULL
111792                                        );
111793 
111794         IF (C_LEVEL_ERROR>= g_log_level) THEN
111795                  trace
111796                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111797                       ,p_level    => C_LEVEL_ERROR
111798                       ,p_module   => l_log_module);
111799         END IF;
111800       END IF;
111801    END IF;
111802    --
111803    --
111804    ------------------------------------------------------------------------------------------------
111805    -- 4219869 Business Flow
111806    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111807    -- Prior Entry.  Currently, the following code is always generated.
111808    ------------------------------------------------------------------------------------------------
111809    -- No ValidateCurrentLine for business flow method of Prior Entry
111810 
111811    ------------------------------------------------------------------------------------
111812    -- 4219869 Business Flow
111813    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111814    ------------------------------------------------------------------------------------
111815    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111816 
111817    ----------------------------------------------------------------------------------
111818    -- 4219869 Business Flow
111819    -- Update journal entry status -- Need to generate this within IF <condition>
111823          ,p_balance_type_code => l_balance_type_code
111820    ----------------------------------------------------------------------------------
111821    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111822          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111824          );
111825 
111826    -------------------------------------------------------------------------------------------
111827    -- 4262811 - Generate the Accrual Reversal lines
111828    -------------------------------------------------------------------------------------------
111829    BEGIN
111830       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111831                               (g_array_event(p_event_id).array_value_num('header_index'));
111832       IF l_acc_rev_flag IS NULL THEN
111833          l_acc_rev_flag := 'N';
111834       END IF;
111835    EXCEPTION
111836       WHEN OTHERS THEN
111837          l_acc_rev_flag := 'N';
111838    END;
111839    --
111840    IF (l_acc_rev_flag = 'Y') THEN
111841 
111842        -- 4645092  ------------------------------------------------------------------------------
111843        -- To allow MPA report to determine if it should generate report process
111844        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111845        ------------------------------------------------------------------------------------------
111846 
111847        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111848        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111849    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111850    -- call ADRs
111851    -- Bug 4922099
111852    --
111853    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111854         (NVL(l_actual_upg_option, 'N') = 'O') OR
111855         (NVL(l_enc_upg_option, 'N') = 'O')
111856       )
111857    THEN
111858    NULL;
111859    --
111860    --
111861    
111862    --
111863    --
111864    END IF;
111865 
111866        --
111867        -- Update the line information that should be overwritten
111868        --
111869        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111870                                          p_header_num   => 1);
111871        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111872 
111873        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111874 
111875        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111876           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111877        END IF;
111878 
111879       --
111880       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111881       --
111882       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111883           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111884       ELSE
111885           ---------------------------------------------------------------------------------------------------
111886           -- 4262811a Switch Sign
111887           ---------------------------------------------------------------------------------------------------
111888           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111889           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111890                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111891           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111892                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111893           -- 5132302
111894           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111895                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111896 
111897       END IF;
111898 
111899       -- 4955764
111900       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111901       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111902 
111903 
111904       XLA_AE_LINES_PKG.ValidateCurrentLine;
111905       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111906 
111907       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111908                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111909                ,p_balance_type_code => l_balance_type_code);
111910 
111911    END IF;
111912 
111913    -----------------------------------------------------------------------------------------
111914    -- 4262811 Multiperiod Accounting
111915    -----------------------------------------------------------------------------------------
111916      -- No MPA option is assigned.
111917 
111918 
111919 END IF;
111920 END IF;
111921 --
111922 
111923 --
111924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111925    trace
111926       (p_msg      => 'END of AcctLineType_195'
111927       ,p_level    => C_LEVEL_PROCEDURE
111928       ,p_module   => l_log_module);
111929 END IF;
111930 --
111931 EXCEPTION
111932   WHEN xla_exceptions_pkg.application_exception THEN
111933       RAISE;
111934   WHEN OTHERS THEN
111935        xla_exceptions_pkg.raise_message
111936            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_195');
111937 END AcctLineType_195;
111938 --
111939 
111943 --         AcctLineType_196
111940 ---------------------------------------
111941 --
111942 -- PRIVATE FUNCTION
111944 --
111945 ---------------------------------------
111946 PROCEDURE AcctLineType_196 (
111947   p_application_id        IN NUMBER
111948  ,p_event_id              IN NUMBER
111949  ,p_calculate_acctd_flag  IN VARCHAR2
111950  ,p_calculate_g_l_flag    IN VARCHAR2
111951  ,p_actual_flag           IN OUT VARCHAR2
111952  ,p_balance_type_code     OUT VARCHAR2
111953  ,p_gain_or_loss_ref      OUT VARCHAR2
111954  
111955 --Invoice Distribution Description
111956  , p_source_1            IN VARCHAR2
111957 --Invoice Distribution Ledger Amount
111958  , p_source_16            IN NUMBER
111959 --Invoice Distribution Account
111960  , p_source_25            IN NUMBER
111961 --Invoice Distribution Type
111962  , p_source_28            IN VARCHAR2
111963  , p_source_28_meaning    IN VARCHAR2
111964 --Accounting Reversal Indicator
111965  , p_source_58            IN VARCHAR2
111966 --Distribution Link Type
111967  , p_source_60            IN VARCHAR2
111968 --Allocation to Main Distribution Identifier
111969  , p_source_62            IN NUMBER
111970 --Invoice Identifier
111971  , p_source_63            IN NUMBER
111972 --Invoice Distribution Identifier
111973  , p_source_69            IN NUMBER
111974 --Payables Encumbrance Upgrade Credit Account
111975  , p_source_70            IN NUMBER
111976 --Payables Encumbrance Upgrade Credit Amount
111977  , p_source_71            IN NUMBER
111978 --Invoice Currency Code
111979  , p_source_72            IN VARCHAR2
111980 --Payables Encumbrance Upgrade Credit Base Amount
111981  , p_source_73            IN NUMBER
111982 --Payables Encumbrance Upgrade Debit Account
111983  , p_source_74            IN NUMBER
111984 --Payables Encumbrance Upgrade Debit Amount
111985  , p_source_75            IN NUMBER
111986 --Payables Encumbrance Upgrade Debit Base Amount
111987  , p_source_76            IN NUMBER
111988 --Payables Encumbrance Upgrade Option
111989  , p_source_77            IN VARCHAR2
111990 --Invoice Distribution Amount
111991  , p_source_78            IN NUMBER
111992 --Deferred Accounting End Date
111993  , p_source_82            IN DATE
111994 --Deferred Accounting Option
111995  , p_source_83            IN VARCHAR2
111996 --Deferred Accounting Start Date
111997  , p_source_84            IN DATE
111998 --Override Accounted Amount Indicator
111999  , p_source_85            IN VARCHAR2
112000  , p_source_85_meaning    IN VARCHAR2
112001 --Invoice Supplier Identifier
112002  , p_source_86            IN NUMBER
112003 --Invoice Supplier Site Identifier
112004  , p_source_87            IN NUMBER
112005 --Third Party Type
112006  , p_source_88            IN VARCHAR2
112007 --Parent Reversal Identifier
112008  , p_source_89            IN NUMBER
112009 --Invoice Distribution Statistical Amount
112010  , p_source_90            IN NUMBER
112011 --Invoice Distribution Tax Line Identifier
112012  , p_source_91            IN NUMBER
112013 --Invoice Distribution Tax Distribution Identifier from Tax
112014  , p_source_92            IN NUMBER
112015 --Invoice Distribution Summary Tax Line Identifier
112016  , p_source_93            IN NUMBER
112017 --Payables Upgrade Credit Encumbrance Type Identifier
112018  , p_source_94            IN NUMBER
112019 --Payables Upgrade Debit Encumbrance Type Identifier
112020  , p_source_95            IN NUMBER
112021 --Business Flow Accounts Payable Application Identifier
112022  , p_source_96            IN NUMBER
112023 --Business Flow Invoice Distribution Type
112024  , p_source_97            IN VARCHAR2
112025 --Business Flow Invoice Entity Code
112026  , p_source_98            IN VARCHAR2
112027 --Business Flow Invoice Distribution Identifier
112028  , p_source_99            IN NUMBER
112029 --Business Flow Invoice Identifier
112030  , p_source_100            IN NUMBER
112031 --Self-Assessed Tax Flag
112032  , p_source_145            IN VARCHAR2
112033  , p_source_145_meaning    IN VARCHAR2
112034 --Invoice Exchange Date
112035  , p_source_146            IN DATE
112036 --Invoice Exchange Rate
112037  , p_source_147            IN NUMBER
112038 --Invoice Exchange Rate Type
112039  , p_source_148            IN VARCHAR2
112040 )
112041 IS
112042 
112043 l_component_type              VARCHAR2(80);
112044 l_component_code              VARCHAR2(30);
112045 l_component_type_code         VARCHAR2(1);
112046 l_component_appl_id           INTEGER;
112047 l_amb_context_code            VARCHAR2(30);
112048 l_entity_code                 VARCHAR2(30);
112049 l_event_class_code            VARCHAR2(30);
112050 l_ae_header_id                NUMBER;
112051 l_event_type_code             VARCHAR2(30);
112052 l_line_definition_code        VARCHAR2(30);
112053 l_line_definition_owner_code  VARCHAR2(1);
112054 --
112055 -- adr variables
112056 l_segment                     VARCHAR2(30);
112057 l_ccid                        NUMBER;
112058 l_adr_transaction_coa_id      NUMBER;
112059 l_adr_accounting_coa_id       NUMBER;
112060 l_adr_flexfield_segment_code  VARCHAR2(30);
112061 l_adr_flex_value_set_id       NUMBER;
112062 l_adr_value_type_code         VARCHAR2(30);
112063 l_adr_value_combination_id    NUMBER;
112064 l_adr_value_segment_code      VARCHAR2(30);
112065 
112066 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112067 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112068 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112069 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112070 
112074 l_acc_rev_flag                VARCHAR2(1);
112071 -- 4262811 Variables ------------------------------------------------------------------------------------------
112072 l_entered_amt_idx             NUMBER;
112073 l_accted_amt_idx              NUMBER;
112075 l_accrual_line_num            NUMBER;
112076 l_tmp_amt                     NUMBER;
112077 l_acc_rev_natural_side_code   VARCHAR2(1);
112078 
112079 l_num_entries                 NUMBER;
112080 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112081 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112082 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112083 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112084 l_recog_line_1                NUMBER;
112085 l_recog_line_2                NUMBER;
112086 
112087 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112088 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112089 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112090 
112091 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112092 
112093 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112094 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112095 
112096 ---------------------------------------------------------------------------------------------------------------
112097 
112098 
112099 --
112100 -- bulk performance
112101 --
112102 l_balance_type_code           VARCHAR2(1);
112103 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112104 l_log_module                  VARCHAR2(240);
112105 
112106 --
112107 -- Upgrade strategy
112108 --
112109 l_actual_upg_option           VARCHAR2(1);
112110 l_enc_upg_option           VARCHAR2(1);
112111 
112112 --
112113 BEGIN
112114 --
112115 IF g_log_enabled THEN
112116       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_196';
112117 END IF;
112118 --
112119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112120 
112121       trace
112122          (p_msg      => 'BEGIN of AcctLineType_196'
112123          ,p_level    => C_LEVEL_PROCEDURE
112124          ,p_module   => l_log_module);
112125 
112126 END IF;
112127 --
112128 l_component_type             := 'AMB_JLT';
112129 l_component_code             := 'AP_RECOV_TAX_CM';
112130 l_component_type_code        := 'S';
112131 l_component_appl_id          :=  200;
112132 l_amb_context_code           := 'DEFAULT';
112133 l_entity_code                := 'AP_INVOICES';
112134 l_event_class_code           := 'CREDIT MEMOS';
112135 l_event_type_code            := 'CREDIT MEMOS_ALL';
112136 l_line_definition_owner_code := 'S';
112137 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
112138 --
112139 l_balance_type_code          := 'A';
112140 l_segment                     := NULL;
112141 l_ccid                        := NULL;
112142 l_adr_transaction_coa_id      := NULL;
112143 l_adr_accounting_coa_id       := NULL;
112144 l_adr_flexfield_segment_code  := NULL;
112145 l_adr_flex_value_set_id       := NULL;
112146 l_adr_value_type_code         := NULL;
112147 l_adr_value_combination_id    := NULL;
112148 l_adr_value_segment_code      := NULL;
112149 
112150 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112151 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
112152 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112153 l_budgetary_control_flag     := 'N';
112154 
112155 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112156 l_bflow_applied_to_amt       := NULL; -- 5132302
112157 l_entered_amt_idx            := NULL;          -- 4262811
112158 l_accted_amt_idx             := NULL;          -- 4262811
112159 l_acc_rev_flag               := NULL;          -- 4262811
112160 l_accrual_line_num           := NULL;          -- 4262811
112161 l_tmp_amt                    := NULL;          -- 4262811
112162 --
112163  
112164 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112165     l_balance_type_code <> 'B' THEN
112166 IF NVL(p_source_28,'
112167 ') =  'REC_TAX' AND 
112168 NVL(p_source_145,'
112169 ') <>  'Y'
112170  THEN 
112171 
112172    --
112173    XLA_AE_LINES_PKG.SetNewLine;
112174 
112175    p_balance_type_code          := l_balance_type_code;
112176    -- set the flag so later we will know whether the gain loss line needs to be created
112177    
112178    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
112179      p_actual_flag :='A';
112180    END IF;
112181 
112182    --
112183    -- bulk performance
112184    --
112185    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112186                                       p_header_num   => 0); -- 4262811
112187    --
112188    -- set accounting line options
112189    --
112190    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112191            p_natural_side_code          => 'D'
112192          , p_gain_or_loss_flag          => 'N'
112193          , p_gl_transfer_mode_code      => 'S'
112194          , p_acct_entry_type_code       => 'A'
112195          , p_switch_side_flag           => 'Y'
112196          , p_merge_duplicate_code       => 'A'
112197          );
112198    --
112199    l_acc_rev_natural_side_code := 'C';  -- 4262811
112200    -- 
112201    --
112202    -- set accounting line type info
112206       ,p_event_type_code            => l_event_type_code
112203    --
112204    xla_ae_lines_pkg.SetAcctLineType
112205       (p_component_type             => l_component_type
112207       ,p_line_definition_owner_code => l_line_definition_owner_code
112208       ,p_line_definition_code       => l_line_definition_code
112209       ,p_accounting_line_code       => l_component_code
112210       ,p_accounting_line_type_code  => l_component_type_code
112211       ,p_accounting_line_appl_id    => l_component_appl_id
112212       ,p_amb_context_code           => l_amb_context_code
112213       ,p_entity_code                => l_entity_code
112214       ,p_event_class_code           => l_event_class_code);
112215    --
112216    -- set accounting class
112217    --
112218    xla_ae_lines_pkg.SetAcctClass(
112219            p_accounting_class_code  => 'RTAX'
112220          , p_ae_header_id           => l_ae_header_id
112221          );
112222 
112223    --
112224    -- set rounding class
112225    --
112226    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112227                       'RTAX';
112228 
112229    --
112230    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112231    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112232    --
112233    -- bulk performance
112234    --
112235    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112236 
112237    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112238       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112239 
112240    -- 4955764
112241    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112242       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112243 
112244    -- 4458381 Public Sector Enh
112245    
112246    --
112247    -- set accounting attributes for the line type
112248    --
112249    l_entered_amt_idx := 23;
112250    l_accted_amt_idx  := 28;
112251    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
112252    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112253    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
112254    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112255    l_rec_acct_attrs.array_num_value(2)  := 
112256 xla_ae_sources_pkg.GetSystemSourceNum(
112257    p_source_code           => 'XLA_EVENT_APPL_ID'
112258  , p_source_type_code      => 'Y'
112259  , p_source_application_id =>  602
112260 );
112261    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112262    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
112263    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112264    l_rec_acct_attrs.array_char_value(4)  := 
112265 xla_ae_sources_pkg.GetSystemSourceChar(
112266    p_source_code           => 'XLA_ENTITY_CODE'
112267  , p_source_type_code      => 'Y'
112268  , p_source_application_id =>  602
112269 );
112270    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112271    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
112272    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112273    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
112274    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
112275    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
112276    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112277    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
112278    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
112279    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
112280    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
112281    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
112282    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112283    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
112284    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
112285    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
112286    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
112287    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
112288    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
112289    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
112290    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
112291    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
112292    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
112293    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
112294    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
112295    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
112296    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
112297    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
112298    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
112299    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
112300    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
112301    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
112302    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
112303    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
112304    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
112308    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
112305    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
112306    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
112307    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
112309    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
112310    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
112311    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
112312    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
112313    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
112314    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
112315    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
112316    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
112317    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
112318    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
112319    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
112320    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
112321    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
112322    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
112323    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
112324    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
112325    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
112326    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
112327    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
112328    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
112329    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
112330    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
112331    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
112332    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
112333    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
112334    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
112335    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
112336    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
112337    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
112338    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
112339    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
112340    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
112341    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
112342    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
112343    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
112344    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
112345    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
112346    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
112347    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
112348 
112349    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112350    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112351 
112352    ---------------------------------------------------------------------------------------------------------------
112353    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
112354    ---------------------------------------------------------------------------------------------------------------
112355    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
112356 
112357    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112358    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112359 
112360    IF xla_accounting_cache_pkg.GetValueChar
112361          (p_source_code         => 'LEDGER_CATEGORY_CODE'
112362          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
112363    AND l_bflow_method_code = 'PRIOR_ENTRY'
112364 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
112365    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
112366          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
112367        )
112368    THEN
112369          xla_ae_lines_pkg.BflowUpgEntry
112370            (p_business_method_code    => l_bflow_method_code
112371            ,p_business_class_code     => l_bflow_class_code
112372            ,p_balance_type            => l_balance_type_code);
112373    ELSE
112374       NULL;
112375 -- No business flow processing for business flow method of NONE.
112376    END IF;
112377 
112378    --
112379    -- call analytical criteria
112380    --
112381    
112382    --
112383    -- call description
112384    --
112385    
112386 xla_ae_lines_pkg.SetLineDescription(
112387    p_ae_header_id => l_ae_header_id
112388   ,p_description  => Description_2 (
112389      p_application_id         => p_application_id
112390    , p_ae_header_id           => l_ae_header_id 
112391 , p_source_1 => p_source_1
112392    )
112393 );
112394 
112395 
112396    --
112397    -- call ADRs
112398    -- Bug 4922099
112399    --
112400    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112401         (NVL(l_actual_upg_option, 'N') = 'O') OR
112402         (NVL(l_enc_upg_option, 'N') = 'O')
112403       )
112404    THEN
112405    NULL;
112406    --
112407    --
112408    
112409   l_ccid := AcctDerRule_35(
112410            p_application_id           => p_application_id
112414          , x_accounting_coa_id        => l_adr_accounting_coa_id
112411          , p_ae_header_id             => l_ae_header_id 
112412 , p_source_25 => p_source_25
112413          , x_transaction_coa_id       => l_adr_transaction_coa_id
112415          , x_value_type_code          => l_adr_value_type_code
112416          , p_side                     => 'NA'
112417    );
112418 
112419    xla_ae_lines_pkg.set_ccid(
112420     p_code_combination_id          => l_ccid
112421   , p_value_type_code              => l_adr_value_type_code
112422   , p_transaction_coa_id           => l_adr_transaction_coa_id
112423   , p_accounting_coa_id            => l_adr_accounting_coa_id
112424   , p_adr_code                     => 'AP_INVOICE_DIST'
112425   , p_adr_type_code                => 'S'
112426   , p_component_type               => l_component_type
112427   , p_component_code               => l_component_code
112428   , p_component_type_code          => l_component_type_code
112429   , p_component_appl_id            => l_component_appl_id
112430   , p_amb_context_code             => l_amb_context_code
112431   , p_side                         => 'NA'
112432   );
112433 
112434 
112435    --
112436    --
112437    END IF;
112438    --
112439    -- Bug 4922099
112440    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112441           (NVL(l_enc_upg_option, 'N') = 'O')
112442         ) AND
112443         (l_bflow_method_code = 'PRIOR_ENTRY')
112444       )
112445    THEN
112446       IF
112447       --
112448       1 = 2
112449       --
112450       THEN
112451       xla_accounting_err_pkg.build_message
112452                                     (p_appli_s_name            => 'XLA'
112453                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112454                                     ,p_token_1                 => 'LINE_NUMBER'
112455                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
112456                                     ,p_token_2                 => 'LINE_TYPE_NAME'
112457                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
112458                                                                              l_component_type
112459                                                                             ,l_component_code
112460                                                                             ,l_component_type_code
112461                                                                             ,l_component_appl_id
112462                                                                             ,l_amb_context_code
112463                                                                             ,l_entity_code
112464                                                                             ,l_event_class_code
112465                                                                            )
112466                                     ,p_token_3                 => 'OWNER'
112467                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
112468                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
112469                                                                           ,p_lookup_code    => l_component_type_code
112470                                                                          )
112471                                     ,p_token_4                 => 'PRODUCT_NAME'
112472                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112473                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112474                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112475                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112476                                     ,p_ae_header_id            =>  NULL
112477                                        );
112478 
112479         IF (C_LEVEL_ERROR>= g_log_level) THEN
112480                  trace
112481                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112482                       ,p_level    => C_LEVEL_ERROR
112483                       ,p_module   => l_log_module);
112484         END IF;
112485       END IF;
112486    END IF;
112487    --
112488    --
112489    ------------------------------------------------------------------------------------------------
112490    -- 4219869 Business Flow
112491    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112492    -- Prior Entry.  Currently, the following code is always generated.
112493    ------------------------------------------------------------------------------------------------
112494    XLA_AE_LINES_PKG.ValidateCurrentLine;
112495 
112496    ------------------------------------------------------------------------------------
112497    -- 4219869 Business Flow
112498    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112499    ------------------------------------------------------------------------------------
112500    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112501 
112502    ----------------------------------------------------------------------------------
112503    -- 4219869 Business Flow
112504    -- Update journal entry status -- Need to generate this within IF <condition>
112505    ----------------------------------------------------------------------------------
112506    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112507          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112511    -------------------------------------------------------------------------------------------
112508          ,p_balance_type_code => l_balance_type_code
112509          );
112510 
112512    -- 4262811 - Generate the Accrual Reversal lines
112513    -------------------------------------------------------------------------------------------
112514    BEGIN
112515       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112516                               (g_array_event(p_event_id).array_value_num('header_index'));
112517       IF l_acc_rev_flag IS NULL THEN
112518          l_acc_rev_flag := 'N';
112519       END IF;
112520    EXCEPTION
112521       WHEN OTHERS THEN
112522          l_acc_rev_flag := 'N';
112523    END;
112524    --
112525    IF (l_acc_rev_flag = 'Y') THEN
112526 
112527        -- 4645092  ------------------------------------------------------------------------------
112528        -- To allow MPA report to determine if it should generate report process
112529        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112530        ------------------------------------------------------------------------------------------
112531 
112532        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112533        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112534    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112535    -- call ADRs
112536    -- Bug 4922099
112537    --
112538    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112539         (NVL(l_actual_upg_option, 'N') = 'O') OR
112540         (NVL(l_enc_upg_option, 'N') = 'O')
112541       )
112542    THEN
112543    NULL;
112544    --
112545    --
112546    
112547   l_ccid := AcctDerRule_35(
112548            p_application_id           => p_application_id
112549          , p_ae_header_id             => l_ae_header_id 
112550 , p_source_25 => p_source_25
112551          , x_transaction_coa_id       => l_adr_transaction_coa_id
112552          , x_accounting_coa_id        => l_adr_accounting_coa_id
112553          , x_value_type_code          => l_adr_value_type_code
112554          , p_side                     => 'NA'
112555    );
112556 
112557    xla_ae_lines_pkg.set_ccid(
112558     p_code_combination_id          => l_ccid
112559   , p_value_type_code              => l_adr_value_type_code
112560   , p_transaction_coa_id           => l_adr_transaction_coa_id
112561   , p_accounting_coa_id            => l_adr_accounting_coa_id
112562   , p_adr_code                     => 'AP_INVOICE_DIST'
112563   , p_adr_type_code                => 'S'
112564   , p_component_type               => l_component_type
112565   , p_component_code               => l_component_code
112566   , p_component_type_code          => l_component_type_code
112567   , p_component_appl_id            => l_component_appl_id
112568   , p_amb_context_code             => l_amb_context_code
112569   , p_side                         => 'NA'
112570   );
112571 
112572 
112573    --
112574    --
112575    END IF;
112576 
112577        --
112578        -- Update the line information that should be overwritten
112579        --
112580        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112581                                          p_header_num   => 1);
112582        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112583 
112584        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112585 
112586        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112587           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112588        END IF;
112589 
112590       --
112591       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112592       --
112593       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112594           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112595       ELSE
112596           ---------------------------------------------------------------------------------------------------
112597           -- 4262811a Switch Sign
112598           ---------------------------------------------------------------------------------------------------
112599           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112600           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112601                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112602           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112603                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112604           -- 5132302
112605           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112606                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112607 
112608       END IF;
112609 
112610       -- 4955764
112611       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112612       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112613 
112614 
112615       XLA_AE_LINES_PKG.ValidateCurrentLine;
112616       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112617 
112618       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112622    END IF;
112619                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112620                ,p_balance_type_code => l_balance_type_code);
112621 
112623 
112624    -----------------------------------------------------------------------------------------
112625    -- 4262811 Multiperiod Accounting
112626    -----------------------------------------------------------------------------------------
112627      -- No MPA option is assigned.
112628 
112629 
112630 END IF;
112631 END IF;
112632 --
112633 
112634 --
112635 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112636    trace
112637       (p_msg      => 'END of AcctLineType_196'
112638       ,p_level    => C_LEVEL_PROCEDURE
112639       ,p_module   => l_log_module);
112640 END IF;
112641 --
112642 EXCEPTION
112643   WHEN xla_exceptions_pkg.application_exception THEN
112644       RAISE;
112645   WHEN OTHERS THEN
112646        xla_exceptions_pkg.raise_message
112647            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_196');
112648 END AcctLineType_196;
112649 --
112650 
112651 ---------------------------------------
112652 --
112653 -- PRIVATE FUNCTION
112654 --         AcctLineType_197
112655 --
112656 ---------------------------------------
112657 PROCEDURE AcctLineType_197 (
112658   p_application_id        IN NUMBER
112659  ,p_event_id              IN NUMBER
112660  ,p_calculate_acctd_flag  IN VARCHAR2
112661  ,p_calculate_g_l_flag    IN VARCHAR2
112662  ,p_actual_flag           IN OUT VARCHAR2
112663  ,p_balance_type_code     OUT VARCHAR2
112664  ,p_gain_or_loss_ref      OUT VARCHAR2
112665  
112666 --Invoice Distribution Description
112667  , p_source_1            IN VARCHAR2
112668 --Invoice Distribution Ledger Amount
112669  , p_source_16            IN NUMBER
112670 --Invoice Distribution Account
112671  , p_source_25            IN NUMBER
112672 --Invoice Distribution Type
112673  , p_source_28            IN VARCHAR2
112674  , p_source_28_meaning    IN VARCHAR2
112675 --Accounting Reversal Indicator
112676  , p_source_58            IN VARCHAR2
112677 --Distribution Link Type
112678  , p_source_60            IN VARCHAR2
112679 --Allocation to Main Distribution Identifier
112680  , p_source_62            IN NUMBER
112681 --Invoice Identifier
112682  , p_source_63            IN NUMBER
112683 --Invoice Distribution Identifier
112684  , p_source_69            IN NUMBER
112685 --Payables Encumbrance Upgrade Credit Account
112686  , p_source_70            IN NUMBER
112687 --Payables Encumbrance Upgrade Credit Amount
112688  , p_source_71            IN NUMBER
112689 --Invoice Currency Code
112690  , p_source_72            IN VARCHAR2
112691 --Payables Encumbrance Upgrade Credit Base Amount
112692  , p_source_73            IN NUMBER
112693 --Payables Encumbrance Upgrade Debit Account
112694  , p_source_74            IN NUMBER
112695 --Payables Encumbrance Upgrade Debit Amount
112696  , p_source_75            IN NUMBER
112697 --Payables Encumbrance Upgrade Debit Base Amount
112698  , p_source_76            IN NUMBER
112699 --Payables Encumbrance Upgrade Option
112700  , p_source_77            IN VARCHAR2
112701 --Invoice Distribution Amount
112702  , p_source_78            IN NUMBER
112703 --Deferred Accounting End Date
112704  , p_source_82            IN DATE
112705 --Deferred Accounting Option
112706  , p_source_83            IN VARCHAR2
112707 --Deferred Accounting Start Date
112708  , p_source_84            IN DATE
112709 --Override Accounted Amount Indicator
112710  , p_source_85            IN VARCHAR2
112711  , p_source_85_meaning    IN VARCHAR2
112712 --Invoice Supplier Identifier
112713  , p_source_86            IN NUMBER
112714 --Invoice Supplier Site Identifier
112715  , p_source_87            IN NUMBER
112716 --Third Party Type
112717  , p_source_88            IN VARCHAR2
112718 --Parent Reversal Identifier
112719  , p_source_89            IN NUMBER
112720 --Invoice Distribution Tax Line Identifier
112721  , p_source_91            IN NUMBER
112722 --Invoice Distribution Tax Distribution Identifier from Tax
112723  , p_source_92            IN NUMBER
112724 --Invoice Distribution Summary Tax Line Identifier
112725  , p_source_93            IN NUMBER
112726 --Payables Upgrade Credit Encumbrance Type Identifier
112727  , p_source_94            IN NUMBER
112728 --Payables Upgrade Debit Encumbrance Type Identifier
112729  , p_source_95            IN NUMBER
112730 --Business Flow Accounts Payable Application Identifier
112731  , p_source_96            IN NUMBER
112732 --Business Flow Invoice Distribution Type
112733  , p_source_97            IN VARCHAR2
112734 --Business Flow Invoice Entity Code
112735  , p_source_98            IN VARCHAR2
112736 --Business Flow Invoice Distribution Identifier
112737  , p_source_99            IN NUMBER
112738 --Business Flow Invoice Identifier
112739  , p_source_100            IN NUMBER
112740 --Self-Assessed Tax Flag
112741  , p_source_145            IN VARCHAR2
112742  , p_source_145_meaning    IN VARCHAR2
112743 --Invoice Exchange Date
112744  , p_source_146            IN DATE
112745 --Invoice Exchange Rate
112746  , p_source_147            IN NUMBER
112747 --Invoice Exchange Rate Type
112748  , p_source_148            IN VARCHAR2
112749 )
112750 IS
112751 
112752 l_component_type              VARCHAR2(80);
112753 l_component_code              VARCHAR2(30);
112754 l_component_type_code         VARCHAR2(1);
112755 l_component_appl_id           INTEGER;
112759 l_ae_header_id                NUMBER;
112756 l_amb_context_code            VARCHAR2(30);
112757 l_entity_code                 VARCHAR2(30);
112758 l_event_class_code            VARCHAR2(30);
112760 l_event_type_code             VARCHAR2(30);
112761 l_line_definition_code        VARCHAR2(30);
112762 l_line_definition_owner_code  VARCHAR2(1);
112763 --
112764 -- adr variables
112765 l_segment                     VARCHAR2(30);
112766 l_ccid                        NUMBER;
112767 l_adr_transaction_coa_id      NUMBER;
112768 l_adr_accounting_coa_id       NUMBER;
112769 l_adr_flexfield_segment_code  VARCHAR2(30);
112770 l_adr_flex_value_set_id       NUMBER;
112771 l_adr_value_type_code         VARCHAR2(30);
112772 l_adr_value_combination_id    NUMBER;
112773 l_adr_value_segment_code      VARCHAR2(30);
112774 
112775 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112776 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112777 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112778 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112779 
112780 -- 4262811 Variables ------------------------------------------------------------------------------------------
112781 l_entered_amt_idx             NUMBER;
112782 l_accted_amt_idx              NUMBER;
112783 l_acc_rev_flag                VARCHAR2(1);
112784 l_accrual_line_num            NUMBER;
112785 l_tmp_amt                     NUMBER;
112786 l_acc_rev_natural_side_code   VARCHAR2(1);
112787 
112788 l_num_entries                 NUMBER;
112789 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112790 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112791 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112792 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112793 l_recog_line_1                NUMBER;
112794 l_recog_line_2                NUMBER;
112795 
112796 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112797 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112798 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112799 
112800 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112801 
112802 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112803 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112804 
112805 ---------------------------------------------------------------------------------------------------------------
112806 
112807 
112808 --
112809 -- bulk performance
112810 --
112811 l_balance_type_code           VARCHAR2(1);
112812 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112813 l_log_module                  VARCHAR2(240);
112814 
112815 --
112816 -- Upgrade strategy
112817 --
112818 l_actual_upg_option           VARCHAR2(1);
112819 l_enc_upg_option           VARCHAR2(1);
112820 
112821 --
112822 BEGIN
112823 --
112824 IF g_log_enabled THEN
112825       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_197';
112826 END IF;
112827 --
112828 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112829 
112830       trace
112831          (p_msg      => 'BEGIN of AcctLineType_197'
112832          ,p_level    => C_LEVEL_PROCEDURE
112833          ,p_module   => l_log_module);
112834 
112835 END IF;
112836 --
112837 l_component_type             := 'AMB_JLT';
112838 l_component_code             := 'AP_RECOV_TAX_DM';
112839 l_component_type_code        := 'S';
112840 l_component_appl_id          :=  200;
112841 l_amb_context_code           := 'DEFAULT';
112842 l_entity_code                := 'AP_INVOICES';
112843 l_event_class_code           := 'DEBIT MEMOS';
112844 l_event_type_code            := 'DEBIT MEMOS_ALL';
112845 l_line_definition_owner_code := 'S';
112846 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
112847 --
112848 l_balance_type_code          := 'A';
112849 l_segment                     := NULL;
112850 l_ccid                        := NULL;
112851 l_adr_transaction_coa_id      := NULL;
112852 l_adr_accounting_coa_id       := NULL;
112853 l_adr_flexfield_segment_code  := NULL;
112854 l_adr_flex_value_set_id       := NULL;
112855 l_adr_value_type_code         := NULL;
112856 l_adr_value_combination_id    := NULL;
112857 l_adr_value_segment_code      := NULL;
112858 
112859 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112860 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
112861 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112862 l_budgetary_control_flag     := 'N';
112863 
112864 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112865 l_bflow_applied_to_amt       := NULL; -- 5132302
112866 l_entered_amt_idx            := NULL;          -- 4262811
112867 l_accted_amt_idx             := NULL;          -- 4262811
112868 l_acc_rev_flag               := NULL;          -- 4262811
112869 l_accrual_line_num           := NULL;          -- 4262811
112870 l_tmp_amt                    := NULL;          -- 4262811
112871 --
112872  
112873 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112874     l_balance_type_code <> 'B' THEN
112875 IF NVL(p_source_28,'
112876 ') =  'REC_TAX' AND 
112877 NVL(p_source_145,'
112878 ') <>  'Y'
112879  THEN 
112880 
112881    --
112882    XLA_AE_LINES_PKG.SetNewLine;
112883 
112887    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
112884    p_balance_type_code          := l_balance_type_code;
112885    -- set the flag so later we will know whether the gain loss line needs to be created
112886    
112888      p_actual_flag :='A';
112889    END IF;
112890 
112891    --
112892    -- bulk performance
112893    --
112894    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112895                                       p_header_num   => 0); -- 4262811
112896    --
112897    -- set accounting line options
112898    --
112899    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112900            p_natural_side_code          => 'D'
112901          , p_gain_or_loss_flag          => 'N'
112902          , p_gl_transfer_mode_code      => 'S'
112903          , p_acct_entry_type_code       => 'A'
112904          , p_switch_side_flag           => 'Y'
112905          , p_merge_duplicate_code       => 'A'
112906          );
112907    --
112908    l_acc_rev_natural_side_code := 'C';  -- 4262811
112909    -- 
112910    --
112911    -- set accounting line type info
112912    --
112913    xla_ae_lines_pkg.SetAcctLineType
112914       (p_component_type             => l_component_type
112915       ,p_event_type_code            => l_event_type_code
112916       ,p_line_definition_owner_code => l_line_definition_owner_code
112917       ,p_line_definition_code       => l_line_definition_code
112918       ,p_accounting_line_code       => l_component_code
112919       ,p_accounting_line_type_code  => l_component_type_code
112920       ,p_accounting_line_appl_id    => l_component_appl_id
112921       ,p_amb_context_code           => l_amb_context_code
112922       ,p_entity_code                => l_entity_code
112923       ,p_event_class_code           => l_event_class_code);
112924    --
112925    -- set accounting class
112926    --
112927    xla_ae_lines_pkg.SetAcctClass(
112928            p_accounting_class_code  => 'RTAX'
112929          , p_ae_header_id           => l_ae_header_id
112930          );
112931 
112932    --
112933    -- set rounding class
112934    --
112935    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112936                       'RTAX';
112937 
112938    --
112939    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112940    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112941    --
112942    -- bulk performance
112943    --
112944    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112945 
112946    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112947       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112948 
112949    -- 4955764
112950    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112951       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112952 
112953    -- 4458381 Public Sector Enh
112954    
112955    --
112956    -- set accounting attributes for the line type
112957    --
112958    l_entered_amt_idx := 23;
112959    l_accted_amt_idx  := 28;
112960    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
112961    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112962    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
112963    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112964    l_rec_acct_attrs.array_num_value(2)  := 
112965 xla_ae_sources_pkg.GetSystemSourceNum(
112966    p_source_code           => 'XLA_EVENT_APPL_ID'
112967  , p_source_type_code      => 'Y'
112968  , p_source_application_id =>  602
112969 );
112970    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112971    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
112972    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112973    l_rec_acct_attrs.array_char_value(4)  := 
112974 xla_ae_sources_pkg.GetSystemSourceChar(
112975    p_source_code           => 'XLA_ENTITY_CODE'
112976  , p_source_type_code      => 'Y'
112977  , p_source_application_id =>  602
112978 );
112979    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112980    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
112981    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112982    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
112983    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
112984    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
112985    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112986    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
112987    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
112988    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
112989    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
112990    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
112991    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112992    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
112993    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
112994    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
112995    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
112996    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
112997    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
113001    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
112998    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
112999    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
113000    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
113002    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
113003    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
113004    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
113005    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
113006    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
113007    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
113008    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
113009    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
113010    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
113011    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
113012    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
113013    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
113014    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
113015    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
113016    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
113017    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
113018    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
113019    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
113020    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
113021    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
113022    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
113023    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
113024    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
113025    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
113026    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
113027    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
113028    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
113029    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
113030    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
113031    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
113032    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
113033    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
113034    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
113035    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
113036    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
113037    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
113038    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
113039    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
113040    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
113041    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
113042    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
113043    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
113044    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
113045    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
113046    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
113047    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
113048    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
113049    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
113050    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
113051    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
113052    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
113053    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
113054    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
113055 
113056    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113057    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113058 
113059    ---------------------------------------------------------------------------------------------------------------
113060    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113061    ---------------------------------------------------------------------------------------------------------------
113062    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113063 
113064    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113065    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113066 
113067    IF xla_accounting_cache_pkg.GetValueChar
113068          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113069          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113070    AND l_bflow_method_code = 'PRIOR_ENTRY'
113071 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113072    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113073          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113074        )
113075    THEN
113076          xla_ae_lines_pkg.BflowUpgEntry
113077            (p_business_method_code    => l_bflow_method_code
113078            ,p_business_class_code     => l_bflow_class_code
113079            ,p_balance_type            => l_balance_type_code);
113080    ELSE
113081       NULL;
113082 -- No business flow processing for business flow method of NONE.
113083    END IF;
113084 
113085    --
113086    -- call analytical criteria
113087    --
113088    
113089    --
113090    -- call description
113094    p_ae_header_id => l_ae_header_id
113091    --
113092    
113093 xla_ae_lines_pkg.SetLineDescription(
113095   ,p_description  => Description_2 (
113096      p_application_id         => p_application_id
113097    , p_ae_header_id           => l_ae_header_id 
113098 , p_source_1 => p_source_1
113099    )
113100 );
113101 
113102 
113103    --
113104    -- call ADRs
113105    -- Bug 4922099
113106    --
113107    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113108         (NVL(l_actual_upg_option, 'N') = 'O') OR
113109         (NVL(l_enc_upg_option, 'N') = 'O')
113110       )
113111    THEN
113112    NULL;
113113    --
113114    --
113115    
113116   l_ccid := AcctDerRule_35(
113117            p_application_id           => p_application_id
113118          , p_ae_header_id             => l_ae_header_id 
113119 , p_source_25 => p_source_25
113120          , x_transaction_coa_id       => l_adr_transaction_coa_id
113121          , x_accounting_coa_id        => l_adr_accounting_coa_id
113122          , x_value_type_code          => l_adr_value_type_code
113123          , p_side                     => 'NA'
113124    );
113125 
113126    xla_ae_lines_pkg.set_ccid(
113127     p_code_combination_id          => l_ccid
113128   , p_value_type_code              => l_adr_value_type_code
113129   , p_transaction_coa_id           => l_adr_transaction_coa_id
113130   , p_accounting_coa_id            => l_adr_accounting_coa_id
113131   , p_adr_code                     => 'AP_INVOICE_DIST'
113132   , p_adr_type_code                => 'S'
113133   , p_component_type               => l_component_type
113134   , p_component_code               => l_component_code
113135   , p_component_type_code          => l_component_type_code
113136   , p_component_appl_id            => l_component_appl_id
113137   , p_amb_context_code             => l_amb_context_code
113138   , p_side                         => 'NA'
113139   );
113140 
113141 
113142    --
113143    --
113144    END IF;
113145    --
113146    -- Bug 4922099
113147    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113148           (NVL(l_enc_upg_option, 'N') = 'O')
113149         ) AND
113150         (l_bflow_method_code = 'PRIOR_ENTRY')
113151       )
113152    THEN
113153       IF
113154       --
113155       1 = 2
113156       --
113157       THEN
113158       xla_accounting_err_pkg.build_message
113159                                     (p_appli_s_name            => 'XLA'
113160                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113161                                     ,p_token_1                 => 'LINE_NUMBER'
113162                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113163                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113164                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113165                                                                              l_component_type
113166                                                                             ,l_component_code
113167                                                                             ,l_component_type_code
113168                                                                             ,l_component_appl_id
113169                                                                             ,l_amb_context_code
113170                                                                             ,l_entity_code
113171                                                                             ,l_event_class_code
113172                                                                            )
113173                                     ,p_token_3                 => 'OWNER'
113174                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113175                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113176                                                                           ,p_lookup_code    => l_component_type_code
113177                                                                          )
113178                                     ,p_token_4                 => 'PRODUCT_NAME'
113179                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113180                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113181                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113182                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113183                                     ,p_ae_header_id            =>  NULL
113184                                        );
113185 
113186         IF (C_LEVEL_ERROR>= g_log_level) THEN
113187                  trace
113188                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113189                       ,p_level    => C_LEVEL_ERROR
113190                       ,p_module   => l_log_module);
113191         END IF;
113192       END IF;
113193    END IF;
113194    --
113195    --
113196    ------------------------------------------------------------------------------------------------
113197    -- 4219869 Business Flow
113198    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113199    -- Prior Entry.  Currently, the following code is always generated.
113200    ------------------------------------------------------------------------------------------------
113204    -- 4219869 Business Flow
113201    XLA_AE_LINES_PKG.ValidateCurrentLine;
113202 
113203    ------------------------------------------------------------------------------------
113205    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113206    ------------------------------------------------------------------------------------
113207    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113208 
113209    ----------------------------------------------------------------------------------
113210    -- 4219869 Business Flow
113211    -- Update journal entry status -- Need to generate this within IF <condition>
113212    ----------------------------------------------------------------------------------
113213    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113214          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113215          ,p_balance_type_code => l_balance_type_code
113216          );
113217 
113218    -------------------------------------------------------------------------------------------
113219    -- 4262811 - Generate the Accrual Reversal lines
113220    -------------------------------------------------------------------------------------------
113221    BEGIN
113222       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113223                               (g_array_event(p_event_id).array_value_num('header_index'));
113224       IF l_acc_rev_flag IS NULL THEN
113225          l_acc_rev_flag := 'N';
113226       END IF;
113227    EXCEPTION
113228       WHEN OTHERS THEN
113229          l_acc_rev_flag := 'N';
113230    END;
113231    --
113232    IF (l_acc_rev_flag = 'Y') THEN
113233 
113234        -- 4645092  ------------------------------------------------------------------------------
113235        -- To allow MPA report to determine if it should generate report process
113236        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113237        ------------------------------------------------------------------------------------------
113238 
113239        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113240        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113241    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113242    -- call ADRs
113243    -- Bug 4922099
113244    --
113245    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113246         (NVL(l_actual_upg_option, 'N') = 'O') OR
113247         (NVL(l_enc_upg_option, 'N') = 'O')
113248       )
113249    THEN
113250    NULL;
113251    --
113252    --
113253    
113254   l_ccid := AcctDerRule_35(
113255            p_application_id           => p_application_id
113256          , p_ae_header_id             => l_ae_header_id 
113257 , p_source_25 => p_source_25
113258          , x_transaction_coa_id       => l_adr_transaction_coa_id
113259          , x_accounting_coa_id        => l_adr_accounting_coa_id
113260          , x_value_type_code          => l_adr_value_type_code
113261          , p_side                     => 'NA'
113262    );
113263 
113264    xla_ae_lines_pkg.set_ccid(
113265     p_code_combination_id          => l_ccid
113266   , p_value_type_code              => l_adr_value_type_code
113267   , p_transaction_coa_id           => l_adr_transaction_coa_id
113268   , p_accounting_coa_id            => l_adr_accounting_coa_id
113269   , p_adr_code                     => 'AP_INVOICE_DIST'
113270   , p_adr_type_code                => 'S'
113271   , p_component_type               => l_component_type
113272   , p_component_code               => l_component_code
113273   , p_component_type_code          => l_component_type_code
113274   , p_component_appl_id            => l_component_appl_id
113275   , p_amb_context_code             => l_amb_context_code
113276   , p_side                         => 'NA'
113277   );
113278 
113279 
113280    --
113281    --
113282    END IF;
113283 
113284        --
113285        -- Update the line information that should be overwritten
113286        --
113287        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113288                                          p_header_num   => 1);
113289        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
113290 
113291        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113292 
113293        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
113294           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113295        END IF;
113296 
113297       --
113298       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113299       --
113300       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113301           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
113302       ELSE
113303           ---------------------------------------------------------------------------------------------------
113304           -- 4262811a Switch Sign
113305           ---------------------------------------------------------------------------------------------------
113306           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
113307           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113308                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113309           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113313                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113310                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113311           -- 5132302
113312           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113314 
113315       END IF;
113316 
113317       -- 4955764
113318       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113319       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113320 
113321 
113322       XLA_AE_LINES_PKG.ValidateCurrentLine;
113323       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113324 
113325       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113326                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113327                ,p_balance_type_code => l_balance_type_code);
113328 
113329    END IF;
113330 
113331    -----------------------------------------------------------------------------------------
113332    -- 4262811 Multiperiod Accounting
113333    -----------------------------------------------------------------------------------------
113334      -- No MPA option is assigned.
113335 
113336 
113337 END IF;
113338 END IF;
113339 --
113340 
113341 --
113342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113343    trace
113344       (p_msg      => 'END of AcctLineType_197'
113345       ,p_level    => C_LEVEL_PROCEDURE
113346       ,p_module   => l_log_module);
113347 END IF;
113348 --
113349 EXCEPTION
113350   WHEN xla_exceptions_pkg.application_exception THEN
113351       RAISE;
113352   WHEN OTHERS THEN
113353        xla_exceptions_pkg.raise_message
113354            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_197');
113355 END AcctLineType_197;
113356 --
113357 
113358 ---------------------------------------
113359 --
113360 -- PRIVATE FUNCTION
113361 --         AcctLineType_198
113362 --
113363 ---------------------------------------
113364 PROCEDURE AcctLineType_198 (
113365   p_application_id        IN NUMBER
113366  ,p_event_id              IN NUMBER
113367  ,p_calculate_acctd_flag  IN VARCHAR2
113368  ,p_calculate_g_l_flag    IN VARCHAR2
113369  ,p_actual_flag           IN OUT VARCHAR2
113370  ,p_balance_type_code     OUT VARCHAR2
113371  ,p_gain_or_loss_ref      OUT VARCHAR2
113372  
113373 --Invoice Distribution Description
113374  , p_source_1            IN VARCHAR2
113375 --Invoice Distribution Ledger Amount
113376  , p_source_16            IN NUMBER
113377 --Invoice Distribution Account
113378  , p_source_25            IN NUMBER
113379 --Invoice Distribution Type
113380  , p_source_28            IN VARCHAR2
113381  , p_source_28_meaning    IN VARCHAR2
113382 --Accounting Reversal Indicator
113383  , p_source_58            IN VARCHAR2
113384 --Distribution Link Type
113385  , p_source_60            IN VARCHAR2
113386 --Allocation to Main Distribution Identifier
113387  , p_source_62            IN NUMBER
113388 --Invoice Identifier
113389  , p_source_63            IN NUMBER
113390 --Invoice Distribution Identifier
113391  , p_source_69            IN NUMBER
113392 --Payables Encumbrance Upgrade Credit Account
113393  , p_source_70            IN NUMBER
113394 --Payables Encumbrance Upgrade Credit Amount
113395  , p_source_71            IN NUMBER
113396 --Invoice Currency Code
113397  , p_source_72            IN VARCHAR2
113398 --Payables Encumbrance Upgrade Credit Base Amount
113399  , p_source_73            IN NUMBER
113400 --Payables Encumbrance Upgrade Debit Account
113401  , p_source_74            IN NUMBER
113402 --Payables Encumbrance Upgrade Debit Amount
113403  , p_source_75            IN NUMBER
113404 --Payables Encumbrance Upgrade Debit Base Amount
113405  , p_source_76            IN NUMBER
113406 --Payables Encumbrance Upgrade Option
113407  , p_source_77            IN VARCHAR2
113408 --Invoice Distribution Amount
113409  , p_source_78            IN NUMBER
113410 --Deferred Accounting End Date
113411  , p_source_82            IN DATE
113412 --Deferred Accounting Option
113413  , p_source_83            IN VARCHAR2
113414 --Deferred Accounting Start Date
113415  , p_source_84            IN DATE
113416 --Override Accounted Amount Indicator
113417  , p_source_85            IN VARCHAR2
113418  , p_source_85_meaning    IN VARCHAR2
113419 --Invoice Supplier Identifier
113420  , p_source_86            IN NUMBER
113421 --Invoice Supplier Site Identifier
113422  , p_source_87            IN NUMBER
113423 --Third Party Type
113424  , p_source_88            IN VARCHAR2
113425 --Parent Reversal Identifier
113426  , p_source_89            IN NUMBER
113427 --Invoice Distribution Statistical Amount
113428  , p_source_90            IN NUMBER
113429 --Invoice Distribution Tax Line Identifier
113430  , p_source_91            IN NUMBER
113431 --Invoice Distribution Tax Distribution Identifier from Tax
113432  , p_source_92            IN NUMBER
113433 --Invoice Distribution Summary Tax Line Identifier
113434  , p_source_93            IN NUMBER
113435 --Payables Upgrade Credit Encumbrance Type Identifier
113436  , p_source_94            IN NUMBER
113437 --Payables Upgrade Debit Encumbrance Type Identifier
113438  , p_source_95            IN NUMBER
113439 --Business Flow Accounts Payable Application Identifier
113440  , p_source_96            IN NUMBER
113441 --Business Flow Invoice Distribution Type
113445 --Business Flow Invoice Distribution Identifier
113442  , p_source_97            IN VARCHAR2
113443 --Business Flow Invoice Entity Code
113444  , p_source_98            IN VARCHAR2
113446  , p_source_99            IN NUMBER
113447 --Business Flow Invoice Identifier
113448  , p_source_100            IN NUMBER
113449 --Self-Assessed Tax Flag
113450  , p_source_145            IN VARCHAR2
113451  , p_source_145_meaning    IN VARCHAR2
113452 --Invoice Exchange Date
113453  , p_source_146            IN DATE
113454 --Invoice Exchange Rate
113455  , p_source_147            IN NUMBER
113456 --Invoice Exchange Rate Type
113457  , p_source_148            IN VARCHAR2
113458 )
113459 IS
113460 
113461 l_component_type              VARCHAR2(80);
113462 l_component_code              VARCHAR2(30);
113463 l_component_type_code         VARCHAR2(1);
113464 l_component_appl_id           INTEGER;
113465 l_amb_context_code            VARCHAR2(30);
113466 l_entity_code                 VARCHAR2(30);
113467 l_event_class_code            VARCHAR2(30);
113468 l_ae_header_id                NUMBER;
113469 l_event_type_code             VARCHAR2(30);
113470 l_line_definition_code        VARCHAR2(30);
113471 l_line_definition_owner_code  VARCHAR2(1);
113472 --
113473 -- adr variables
113474 l_segment                     VARCHAR2(30);
113475 l_ccid                        NUMBER;
113476 l_adr_transaction_coa_id      NUMBER;
113477 l_adr_accounting_coa_id       NUMBER;
113478 l_adr_flexfield_segment_code  VARCHAR2(30);
113479 l_adr_flex_value_set_id       NUMBER;
113480 l_adr_value_type_code         VARCHAR2(30);
113481 l_adr_value_combination_id    NUMBER;
113482 l_adr_value_segment_code      VARCHAR2(30);
113483 
113484 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
113485 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
113486 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
113487 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
113488 
113489 -- 4262811 Variables ------------------------------------------------------------------------------------------
113490 l_entered_amt_idx             NUMBER;
113491 l_accted_amt_idx              NUMBER;
113492 l_acc_rev_flag                VARCHAR2(1);
113493 l_accrual_line_num            NUMBER;
113494 l_tmp_amt                     NUMBER;
113495 l_acc_rev_natural_side_code   VARCHAR2(1);
113496 
113497 l_num_entries                 NUMBER;
113498 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
113499 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
113500 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
113501 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
113502 l_recog_line_1                NUMBER;
113503 l_recog_line_2                NUMBER;
113504 
113505 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
113506 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
113507 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
113508 
113509 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113510 
113511 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
113512 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
113513 
113514 ---------------------------------------------------------------------------------------------------------------
113515 
113516 
113517 --
113518 -- bulk performance
113519 --
113520 l_balance_type_code           VARCHAR2(1);
113521 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
113522 l_log_module                  VARCHAR2(240);
113523 
113524 --
113525 -- Upgrade strategy
113526 --
113527 l_actual_upg_option           VARCHAR2(1);
113528 l_enc_upg_option           VARCHAR2(1);
113529 
113530 --
113531 BEGIN
113532 --
113533 IF g_log_enabled THEN
113534       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_198';
113535 END IF;
113536 --
113537 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113538 
113539       trace
113540          (p_msg      => 'BEGIN of AcctLineType_198'
113541          ,p_level    => C_LEVEL_PROCEDURE
113542          ,p_module   => l_log_module);
113543 
113544 END IF;
113545 --
113546 l_component_type             := 'AMB_JLT';
113547 l_component_code             := 'AP_RECOV_TAX_INV';
113548 l_component_type_code        := 'S';
113549 l_component_appl_id          :=  200;
113550 l_amb_context_code           := 'DEFAULT';
113551 l_entity_code                := 'AP_INVOICES';
113552 l_event_class_code           := 'INVOICES';
113553 l_event_type_code            := 'INVOICES_ALL';
113554 l_line_definition_owner_code := 'S';
113555 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
113556 --
113557 l_balance_type_code          := 'A';
113558 l_segment                     := NULL;
113559 l_ccid                        := NULL;
113560 l_adr_transaction_coa_id      := NULL;
113561 l_adr_accounting_coa_id       := NULL;
113562 l_adr_flexfield_segment_code  := NULL;
113563 l_adr_flex_value_set_id       := NULL;
113564 l_adr_value_type_code         := NULL;
113565 l_adr_value_combination_id    := NULL;
113566 l_adr_value_segment_code      := NULL;
113567 
113568 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
113569 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
113573 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
113570 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
113571 l_budgetary_control_flag     := 'N';
113572 
113574 l_bflow_applied_to_amt       := NULL; -- 5132302
113575 l_entered_amt_idx            := NULL;          -- 4262811
113576 l_accted_amt_idx             := NULL;          -- 4262811
113577 l_acc_rev_flag               := NULL;          -- 4262811
113578 l_accrual_line_num           := NULL;          -- 4262811
113579 l_tmp_amt                    := NULL;          -- 4262811
113580 --
113581  
113582 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113583     l_balance_type_code <> 'B' THEN
113584 IF NVL(p_source_28,'
113585 ') =  'REC_TAX' AND 
113586 NVL(p_source_145,'
113587 ') <>  'Y'
113588  THEN 
113589 
113590    --
113591    XLA_AE_LINES_PKG.SetNewLine;
113592 
113593    p_balance_type_code          := l_balance_type_code;
113594    -- set the flag so later we will know whether the gain loss line needs to be created
113595    
113596    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
113597      p_actual_flag :='A';
113598    END IF;
113599 
113600    --
113601    -- bulk performance
113602    --
113603    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113604                                       p_header_num   => 0); -- 4262811
113605    --
113606    -- set accounting line options
113607    --
113608    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113609            p_natural_side_code          => 'D'
113610          , p_gain_or_loss_flag          => 'N'
113611          , p_gl_transfer_mode_code      => 'S'
113612          , p_acct_entry_type_code       => 'A'
113613          , p_switch_side_flag           => 'Y'
113614          , p_merge_duplicate_code       => 'A'
113615          );
113616    --
113617    l_acc_rev_natural_side_code := 'C';  -- 4262811
113618    -- 
113619    --
113620    -- set accounting line type info
113621    --
113622    xla_ae_lines_pkg.SetAcctLineType
113623       (p_component_type             => l_component_type
113624       ,p_event_type_code            => l_event_type_code
113625       ,p_line_definition_owner_code => l_line_definition_owner_code
113626       ,p_line_definition_code       => l_line_definition_code
113627       ,p_accounting_line_code       => l_component_code
113628       ,p_accounting_line_type_code  => l_component_type_code
113629       ,p_accounting_line_appl_id    => l_component_appl_id
113630       ,p_amb_context_code           => l_amb_context_code
113631       ,p_entity_code                => l_entity_code
113632       ,p_event_class_code           => l_event_class_code);
113633    --
113634    -- set accounting class
113635    --
113636    xla_ae_lines_pkg.SetAcctClass(
113637            p_accounting_class_code  => 'RTAX'
113638          , p_ae_header_id           => l_ae_header_id
113639          );
113640 
113641    --
113642    -- set rounding class
113643    --
113644    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113645                       'RTAX';
113646 
113647    --
113648    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113649    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113650    --
113651    -- bulk performance
113652    --
113653    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113654 
113655    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113656       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113657 
113658    -- 4955764
113659    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113661 
113662    -- 4458381 Public Sector Enh
113663    
113664    --
113665    -- set accounting attributes for the line type
113666    --
113667    l_entered_amt_idx := 24;
113668    l_accted_amt_idx  := 29;
113669    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
113670    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113671    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
113672    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113673    l_rec_acct_attrs.array_num_value(2)  := 
113674 xla_ae_sources_pkg.GetSystemSourceNum(
113675    p_source_code           => 'XLA_EVENT_APPL_ID'
113676  , p_source_type_code      => 'Y'
113677  , p_source_application_id =>  602
113678 );
113679    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113680    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
113681    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113682    l_rec_acct_attrs.array_char_value(4)  := 
113683 xla_ae_sources_pkg.GetSystemSourceChar(
113684    p_source_code           => 'XLA_ENTITY_CODE'
113685  , p_source_type_code      => 'Y'
113686  , p_source_application_id =>  602
113687 );
113688    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113689    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
113690    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113691    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
113692    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
113693    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
113694    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
113698    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
113695    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
113696    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113697    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
113699    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
113700    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
113701    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
113702    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113703    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
113704    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
113705    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
113706    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
113707    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
113708    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
113709    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
113710    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
113711    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
113712    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
113713    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
113714    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
113715    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
113716    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
113717    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
113718    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
113719    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
113720    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
113721    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
113722    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
113723    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
113724    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
113725    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
113726    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
113727    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
113728    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
113729    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
113730    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
113731    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
113732    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
113733    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
113734    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
113735    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
113736    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
113737    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
113738    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
113739    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
113740    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
113741    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
113742    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
113743    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
113744    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
113745    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
113746    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
113747    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
113748    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
113749    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
113750    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
113751    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
113752    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
113753    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
113754    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
113755    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
113756    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
113757    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
113758    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
113759    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
113760    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
113761    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
113762    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
113763    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
113764    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
113765    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
113766    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
113767    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
113768 
113769    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113770    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113771 
113772    ---------------------------------------------------------------------------------------------------------------
113773    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113774    ---------------------------------------------------------------------------------------------------------------
113775    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113776 
113777    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113781          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113778    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113779 
113780    IF xla_accounting_cache_pkg.GetValueChar
113782          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113783    AND l_bflow_method_code = 'PRIOR_ENTRY'
113784 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113785    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113786          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113787        )
113788    THEN
113789          xla_ae_lines_pkg.BflowUpgEntry
113790            (p_business_method_code    => l_bflow_method_code
113791            ,p_business_class_code     => l_bflow_class_code
113792            ,p_balance_type            => l_balance_type_code);
113793    ELSE
113794       NULL;
113795 -- No business flow processing for business flow method of NONE.
113796    END IF;
113797 
113798    --
113799    -- call analytical criteria
113800    --
113801    
113802    --
113803    -- call description
113804    --
113805    
113806 xla_ae_lines_pkg.SetLineDescription(
113807    p_ae_header_id => l_ae_header_id
113808   ,p_description  => Description_2 (
113809      p_application_id         => p_application_id
113810    , p_ae_header_id           => l_ae_header_id 
113811 , p_source_1 => p_source_1
113812    )
113813 );
113814 
113815 
113816    --
113817    -- call ADRs
113818    -- Bug 4922099
113819    --
113820    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113821         (NVL(l_actual_upg_option, 'N') = 'O') OR
113822         (NVL(l_enc_upg_option, 'N') = 'O')
113823       )
113824    THEN
113825    NULL;
113826    --
113827    --
113828    
113829   l_ccid := AcctDerRule_35(
113830            p_application_id           => p_application_id
113831          , p_ae_header_id             => l_ae_header_id 
113832 , p_source_25 => p_source_25
113833          , x_transaction_coa_id       => l_adr_transaction_coa_id
113834          , x_accounting_coa_id        => l_adr_accounting_coa_id
113835          , x_value_type_code          => l_adr_value_type_code
113836          , p_side                     => 'NA'
113837    );
113838 
113839    xla_ae_lines_pkg.set_ccid(
113840     p_code_combination_id          => l_ccid
113841   , p_value_type_code              => l_adr_value_type_code
113842   , p_transaction_coa_id           => l_adr_transaction_coa_id
113843   , p_accounting_coa_id            => l_adr_accounting_coa_id
113844   , p_adr_code                     => 'AP_INVOICE_DIST'
113845   , p_adr_type_code                => 'S'
113846   , p_component_type               => l_component_type
113847   , p_component_code               => l_component_code
113848   , p_component_type_code          => l_component_type_code
113849   , p_component_appl_id            => l_component_appl_id
113850   , p_amb_context_code             => l_amb_context_code
113851   , p_side                         => 'NA'
113852   );
113853 
113854 
113855    --
113856    --
113857    END IF;
113858    --
113859    -- Bug 4922099
113860    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113861           (NVL(l_enc_upg_option, 'N') = 'O')
113862         ) AND
113863         (l_bflow_method_code = 'PRIOR_ENTRY')
113864       )
113865    THEN
113866       IF
113867       --
113868       1 = 2
113869       --
113870       THEN
113871       xla_accounting_err_pkg.build_message
113872                                     (p_appli_s_name            => 'XLA'
113873                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113874                                     ,p_token_1                 => 'LINE_NUMBER'
113875                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113876                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113877                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113878                                                                              l_component_type
113879                                                                             ,l_component_code
113880                                                                             ,l_component_type_code
113881                                                                             ,l_component_appl_id
113882                                                                             ,l_amb_context_code
113883                                                                             ,l_entity_code
113884                                                                             ,l_event_class_code
113885                                                                            )
113886                                     ,p_token_3                 => 'OWNER'
113887                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113888                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113889                                                                           ,p_lookup_code    => l_component_type_code
113890                                                                          )
113891                                     ,p_token_4                 => 'PRODUCT_NAME'
113892                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113893                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113897                                        );
113894                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113895                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113896                                     ,p_ae_header_id            =>  NULL
113898 
113899         IF (C_LEVEL_ERROR>= g_log_level) THEN
113900                  trace
113901                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113902                       ,p_level    => C_LEVEL_ERROR
113903                       ,p_module   => l_log_module);
113904         END IF;
113905       END IF;
113906    END IF;
113907    --
113908    --
113909    ------------------------------------------------------------------------------------------------
113910    -- 4219869 Business Flow
113911    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113912    -- Prior Entry.  Currently, the following code is always generated.
113913    ------------------------------------------------------------------------------------------------
113914    XLA_AE_LINES_PKG.ValidateCurrentLine;
113915 
113916    ------------------------------------------------------------------------------------
113917    -- 4219869 Business Flow
113918    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113919    ------------------------------------------------------------------------------------
113920    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113921 
113922    ----------------------------------------------------------------------------------
113923    -- 4219869 Business Flow
113924    -- Update journal entry status -- Need to generate this within IF <condition>
113925    ----------------------------------------------------------------------------------
113926    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113927          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113928          ,p_balance_type_code => l_balance_type_code
113929          );
113930 
113931    -------------------------------------------------------------------------------------------
113932    -- 4262811 - Generate the Accrual Reversal lines
113933    -------------------------------------------------------------------------------------------
113934    BEGIN
113935       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113936                               (g_array_event(p_event_id).array_value_num('header_index'));
113937       IF l_acc_rev_flag IS NULL THEN
113938          l_acc_rev_flag := 'N';
113939       END IF;
113940    EXCEPTION
113941       WHEN OTHERS THEN
113942          l_acc_rev_flag := 'N';
113943    END;
113944    --
113945    IF (l_acc_rev_flag = 'Y') THEN
113946 
113947        -- 4645092  ------------------------------------------------------------------------------
113948        -- To allow MPA report to determine if it should generate report process
113949        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113950        ------------------------------------------------------------------------------------------
113951 
113952        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113953        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113954    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113955    -- call ADRs
113956    -- Bug 4922099
113957    --
113958    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113959         (NVL(l_actual_upg_option, 'N') = 'O') OR
113960         (NVL(l_enc_upg_option, 'N') = 'O')
113961       )
113962    THEN
113963    NULL;
113964    --
113965    --
113966    
113967   l_ccid := AcctDerRule_35(
113968            p_application_id           => p_application_id
113969          , p_ae_header_id             => l_ae_header_id 
113970 , p_source_25 => p_source_25
113971          , x_transaction_coa_id       => l_adr_transaction_coa_id
113972          , x_accounting_coa_id        => l_adr_accounting_coa_id
113973          , x_value_type_code          => l_adr_value_type_code
113974          , p_side                     => 'NA'
113975    );
113976 
113977    xla_ae_lines_pkg.set_ccid(
113978     p_code_combination_id          => l_ccid
113979   , p_value_type_code              => l_adr_value_type_code
113980   , p_transaction_coa_id           => l_adr_transaction_coa_id
113981   , p_accounting_coa_id            => l_adr_accounting_coa_id
113982   , p_adr_code                     => 'AP_INVOICE_DIST'
113983   , p_adr_type_code                => 'S'
113984   , p_component_type               => l_component_type
113985   , p_component_code               => l_component_code
113986   , p_component_type_code          => l_component_type_code
113987   , p_component_appl_id            => l_component_appl_id
113988   , p_amb_context_code             => l_amb_context_code
113989   , p_side                         => 'NA'
113990   );
113991 
113992 
113993    --
113994    --
113995    END IF;
113996 
113997        --
113998        -- Update the line information that should be overwritten
113999        --
114000        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114001                                          p_header_num   => 1);
114002        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
114003 
114004        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114005 
114006        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
114010       --
114007           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114008        END IF;
114009 
114011       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114012       --
114013       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114014           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
114015       ELSE
114016           ---------------------------------------------------------------------------------------------------
114017           -- 4262811a Switch Sign
114018           ---------------------------------------------------------------------------------------------------
114019           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
114020           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114021                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114022           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114023                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114024           -- 5132302
114025           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114026                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114027 
114028       END IF;
114029 
114030       -- 4955764
114031       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114032       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114033 
114034 
114035       XLA_AE_LINES_PKG.ValidateCurrentLine;
114036       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114037 
114038       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114039                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114040                ,p_balance_type_code => l_balance_type_code);
114041 
114042    END IF;
114043 
114044    -----------------------------------------------------------------------------------------
114045    -- 4262811 Multiperiod Accounting
114046    -----------------------------------------------------------------------------------------
114047      -- No MPA option is assigned.
114048 
114049 
114050 END IF;
114051 END IF;
114052 --
114053 
114054 --
114055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114056    trace
114057       (p_msg      => 'END of AcctLineType_198'
114058       ,p_level    => C_LEVEL_PROCEDURE
114059       ,p_module   => l_log_module);
114060 END IF;
114061 --
114062 EXCEPTION
114063   WHEN xla_exceptions_pkg.application_exception THEN
114064       RAISE;
114065   WHEN OTHERS THEN
114066        xla_exceptions_pkg.raise_message
114067            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_198');
114068 END AcctLineType_198;
114069 --
114070 
114071 ---------------------------------------
114072 --
114073 -- PRIVATE FUNCTION
114074 --         AcctLineType_199
114075 --
114076 ---------------------------------------
114077 PROCEDURE AcctLineType_199 (
114078   p_application_id        IN NUMBER
114079  ,p_event_id              IN NUMBER
114080  ,p_calculate_acctd_flag  IN VARCHAR2
114081  ,p_calculate_g_l_flag    IN VARCHAR2
114082  ,p_actual_flag           IN OUT VARCHAR2
114083  ,p_balance_type_code     OUT VARCHAR2
114084  ,p_gain_or_loss_ref      OUT VARCHAR2
114085  
114086 --Invoice Distribution Description
114087  , p_source_1            IN VARCHAR2
114088 --Invoice Distribution Ledger Amount
114089  , p_source_16            IN NUMBER
114090 --Invoice Distribution Account
114091  , p_source_25            IN NUMBER
114092 --Invoice Distribution Type
114093  , p_source_28            IN VARCHAR2
114094  , p_source_28_meaning    IN VARCHAR2
114095 --Accounting Reversal Indicator
114096  , p_source_58            IN VARCHAR2
114097 --Distribution Link Type
114098  , p_source_60            IN VARCHAR2
114099 --Allocation to Main Distribution Identifier
114100  , p_source_62            IN NUMBER
114101 --Invoice Identifier
114102  , p_source_63            IN NUMBER
114103 --Invoice Distribution Identifier
114104  , p_source_69            IN NUMBER
114105 --Payables Encumbrance Upgrade Credit Account
114106  , p_source_70            IN NUMBER
114107 --Payables Encumbrance Upgrade Credit Amount
114108  , p_source_71            IN NUMBER
114109 --Invoice Currency Code
114110  , p_source_72            IN VARCHAR2
114111 --Payables Encumbrance Upgrade Credit Base Amount
114112  , p_source_73            IN NUMBER
114113 --Payables Encumbrance Upgrade Debit Account
114114  , p_source_74            IN NUMBER
114115 --Payables Encumbrance Upgrade Debit Amount
114116  , p_source_75            IN NUMBER
114117 --Payables Encumbrance Upgrade Debit Base Amount
114118  , p_source_76            IN NUMBER
114119 --Payables Encumbrance Upgrade Option
114120  , p_source_77            IN VARCHAR2
114121 --Invoice Distribution Amount
114122  , p_source_78            IN NUMBER
114123 --Deferred Accounting End Date
114124  , p_source_82            IN DATE
114125 --Deferred Accounting Option
114126  , p_source_83            IN VARCHAR2
114127 --Deferred Accounting Start Date
114128  , p_source_84            IN DATE
114129 --Override Accounted Amount Indicator
114133  , p_source_86            IN NUMBER
114130  , p_source_85            IN VARCHAR2
114131  , p_source_85_meaning    IN VARCHAR2
114132 --Invoice Supplier Identifier
114134 --Invoice Supplier Site Identifier
114135  , p_source_87            IN NUMBER
114136 --Third Party Type
114137  , p_source_88            IN VARCHAR2
114138 --Parent Reversal Identifier
114139  , p_source_89            IN NUMBER
114140 --Invoice Distribution Statistical Amount
114141  , p_source_90            IN NUMBER
114142 --Invoice Distribution Tax Line Identifier
114143  , p_source_91            IN NUMBER
114144 --Invoice Distribution Tax Distribution Identifier from Tax
114145  , p_source_92            IN NUMBER
114146 --Invoice Distribution Summary Tax Line Identifier
114147  , p_source_93            IN NUMBER
114148 --Payables Upgrade Credit Encumbrance Type Identifier
114149  , p_source_94            IN NUMBER
114150 --Payables Upgrade Debit Encumbrance Type Identifier
114151  , p_source_95            IN NUMBER
114152 --Business Flow Accounts Payable Application Identifier
114153  , p_source_96            IN NUMBER
114154 --Business Flow Invoice Distribution Type
114155  , p_source_97            IN VARCHAR2
114156 --Business Flow Invoice Entity Code
114157  , p_source_98            IN VARCHAR2
114158 --Business Flow Invoice Distribution Identifier
114159  , p_source_99            IN NUMBER
114160 --Business Flow Invoice Identifier
114161  , p_source_100            IN NUMBER
114162 --Deferred Recoverable Tax Option
114163  , p_source_140            IN VARCHAR2
114164  , p_source_140_meaning    IN VARCHAR2
114165 --Self-Assessed Tax Flag
114166  , p_source_145            IN VARCHAR2
114167  , p_source_145_meaning    IN VARCHAR2
114168 --Invoice Exchange Date
114169  , p_source_146            IN DATE
114170 --Invoice Exchange Rate
114171  , p_source_147            IN NUMBER
114172 --Invoice Exchange Rate Type
114173  , p_source_148            IN VARCHAR2
114174 )
114175 IS
114176 
114177 l_component_type              VARCHAR2(80);
114178 l_component_code              VARCHAR2(30);
114179 l_component_type_code         VARCHAR2(1);
114180 l_component_appl_id           INTEGER;
114181 l_amb_context_code            VARCHAR2(30);
114182 l_entity_code                 VARCHAR2(30);
114183 l_event_class_code            VARCHAR2(30);
114184 l_ae_header_id                NUMBER;
114185 l_event_type_code             VARCHAR2(30);
114186 l_line_definition_code        VARCHAR2(30);
114187 l_line_definition_owner_code  VARCHAR2(1);
114188 --
114189 -- adr variables
114190 l_segment                     VARCHAR2(30);
114191 l_ccid                        NUMBER;
114192 l_adr_transaction_coa_id      NUMBER;
114193 l_adr_accounting_coa_id       NUMBER;
114194 l_adr_flexfield_segment_code  VARCHAR2(30);
114195 l_adr_flex_value_set_id       NUMBER;
114196 l_adr_value_type_code         VARCHAR2(30);
114197 l_adr_value_combination_id    NUMBER;
114198 l_adr_value_segment_code      VARCHAR2(30);
114199 
114200 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114201 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114202 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114203 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114204 
114205 -- 4262811 Variables ------------------------------------------------------------------------------------------
114206 l_entered_amt_idx             NUMBER;
114207 l_accted_amt_idx              NUMBER;
114208 l_acc_rev_flag                VARCHAR2(1);
114209 l_accrual_line_num            NUMBER;
114210 l_tmp_amt                     NUMBER;
114211 l_acc_rev_natural_side_code   VARCHAR2(1);
114212 
114213 l_num_entries                 NUMBER;
114214 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114215 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114216 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114217 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114218 l_recog_line_1                NUMBER;
114219 l_recog_line_2                NUMBER;
114220 
114221 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114222 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114223 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114224 
114225 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114226 
114227 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114228 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114229 
114230 ---------------------------------------------------------------------------------------------------------------
114231 
114232 
114233 --
114234 -- bulk performance
114235 --
114236 l_balance_type_code           VARCHAR2(1);
114237 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114238 l_log_module                  VARCHAR2(240);
114239 
114240 --
114241 -- Upgrade strategy
114242 --
114243 l_actual_upg_option           VARCHAR2(1);
114244 l_enc_upg_option           VARCHAR2(1);
114245 
114246 --
114247 BEGIN
114248 --
114249 IF g_log_enabled THEN
114250       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_199';
114251 END IF;
114252 --
114253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114254 
114255       trace
114256          (p_msg      => 'BEGIN of AcctLineType_199'
114260 END IF;
114257          ,p_level    => C_LEVEL_PROCEDURE
114258          ,p_module   => l_log_module);
114259 
114261 --
114262 l_component_type             := 'AMB_JLT';
114263 l_component_code             := 'AP_RECOV_TAX_PREPAY';
114264 l_component_type_code        := 'S';
114265 l_component_appl_id          :=  200;
114266 l_amb_context_code           := 'DEFAULT';
114267 l_entity_code                := 'AP_INVOICES';
114268 l_event_class_code           := 'PREPAYMENTS';
114269 l_event_type_code            := 'PREPAYMENTS_ALL';
114270 l_line_definition_owner_code := 'S';
114271 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
114272 --
114273 l_balance_type_code          := 'A';
114274 l_segment                     := NULL;
114275 l_ccid                        := NULL;
114276 l_adr_transaction_coa_id      := NULL;
114277 l_adr_accounting_coa_id       := NULL;
114278 l_adr_flexfield_segment_code  := NULL;
114279 l_adr_flex_value_set_id       := NULL;
114280 l_adr_value_type_code         := NULL;
114281 l_adr_value_combination_id    := NULL;
114282 l_adr_value_segment_code      := NULL;
114283 
114284 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
114285 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
114286 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114287 l_budgetary_control_flag     := 'N';
114288 
114289 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114290 l_bflow_applied_to_amt       := NULL; -- 5132302
114291 l_entered_amt_idx            := NULL;          -- 4262811
114292 l_accted_amt_idx             := NULL;          -- 4262811
114293 l_acc_rev_flag               := NULL;          -- 4262811
114294 l_accrual_line_num           := NULL;          -- 4262811
114295 l_tmp_amt                    := NULL;          -- 4262811
114296 --
114297  
114298 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114299     l_balance_type_code <> 'B' THEN
114300 IF NVL(p_source_28,'
114301 ') =  'REC_TAX' AND 
114302 NVL(p_source_140,'
114303 ') =  'IMMEDIATE' AND 
114304 NVL(p_source_145,'
114305 ') <>  'Y'
114306  THEN 
114307 
114308    --
114309    XLA_AE_LINES_PKG.SetNewLine;
114310 
114311    p_balance_type_code          := l_balance_type_code;
114312    -- set the flag so later we will know whether the gain loss line needs to be created
114313    
114314    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114315      p_actual_flag :='A';
114316    END IF;
114317 
114318    --
114319    -- bulk performance
114320    --
114321    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114322                                       p_header_num   => 0); -- 4262811
114323    --
114324    -- set accounting line options
114325    --
114326    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114327            p_natural_side_code          => 'D'
114328          , p_gain_or_loss_flag          => 'N'
114329          , p_gl_transfer_mode_code      => 'S'
114330          , p_acct_entry_type_code       => 'A'
114331          , p_switch_side_flag           => 'Y'
114332          , p_merge_duplicate_code       => 'A'
114333          );
114334    --
114335    l_acc_rev_natural_side_code := 'C';  -- 4262811
114336    -- 
114337    --
114338    -- set accounting line type info
114339    --
114340    xla_ae_lines_pkg.SetAcctLineType
114341       (p_component_type             => l_component_type
114342       ,p_event_type_code            => l_event_type_code
114343       ,p_line_definition_owner_code => l_line_definition_owner_code
114344       ,p_line_definition_code       => l_line_definition_code
114345       ,p_accounting_line_code       => l_component_code
114346       ,p_accounting_line_type_code  => l_component_type_code
114347       ,p_accounting_line_appl_id    => l_component_appl_id
114348       ,p_amb_context_code           => l_amb_context_code
114349       ,p_entity_code                => l_entity_code
114350       ,p_event_class_code           => l_event_class_code);
114351    --
114352    -- set accounting class
114353    --
114354    xla_ae_lines_pkg.SetAcctClass(
114355            p_accounting_class_code  => 'RTAX'
114356          , p_ae_header_id           => l_ae_header_id
114357          );
114358 
114359    --
114360    -- set rounding class
114361    --
114362    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114363                       'RTAX';
114364 
114365    --
114366    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114367    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114368    --
114369    -- bulk performance
114370    --
114371    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114372 
114373    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114374       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114375 
114376    -- 4955764
114377    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114378       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114379 
114380    -- 4458381 Public Sector Enh
114381    
114382    --
114383    -- set accounting attributes for the line type
114384    --
114385    l_entered_amt_idx := 23;
114386    l_accted_amt_idx  := 28;
114387    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
114388    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114392 xla_ae_sources_pkg.GetSystemSourceNum(
114389    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
114390    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114391    l_rec_acct_attrs.array_num_value(2)  := 
114393    p_source_code           => 'XLA_EVENT_APPL_ID'
114394  , p_source_type_code      => 'Y'
114395  , p_source_application_id =>  602
114396 );
114397    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114398    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
114399    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114400    l_rec_acct_attrs.array_char_value(4)  := 
114401 xla_ae_sources_pkg.GetSystemSourceChar(
114402    p_source_code           => 'XLA_ENTITY_CODE'
114403  , p_source_type_code      => 'Y'
114404  , p_source_application_id =>  602
114405 );
114406    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114407    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
114408    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114409    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
114410    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
114411    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
114412    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114413    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
114414    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
114415    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
114416    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
114417    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
114418    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114419    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
114420    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
114421    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
114422    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
114423    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
114424    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
114425    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
114426    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
114427    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
114428    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
114429    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
114430    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
114431    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
114432    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
114433    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
114434    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
114435    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
114436    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
114437    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
114438    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
114439    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
114440    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
114441    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
114442    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
114443    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
114444    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
114445    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
114446    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
114447    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
114448    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
114449    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
114450    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
114451    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
114452    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
114453    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
114454    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
114455    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
114456    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
114457    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
114458    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
114459    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
114460    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
114461    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
114462    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
114463    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
114464    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
114465    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
114466    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
114467    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
114468    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
114469    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
114470    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
114471    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
114472    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
114473    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
114474    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
114475    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
114479    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
114476    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
114477    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
114478    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
114480    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
114481    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
114482    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
114483    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
114484 
114485    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114486    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114487 
114488    ---------------------------------------------------------------------------------------------------------------
114489    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114490    ---------------------------------------------------------------------------------------------------------------
114491    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114492 
114493    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114494    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114495 
114496    IF xla_accounting_cache_pkg.GetValueChar
114497          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114498          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114499    AND l_bflow_method_code = 'PRIOR_ENTRY'
114500 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114501    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114502          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114503        )
114504    THEN
114505          xla_ae_lines_pkg.BflowUpgEntry
114506            (p_business_method_code    => l_bflow_method_code
114507            ,p_business_class_code     => l_bflow_class_code
114508            ,p_balance_type            => l_balance_type_code);
114509    ELSE
114510       NULL;
114511 -- No business flow processing for business flow method of NONE.
114512    END IF;
114513 
114514    --
114515    -- call analytical criteria
114516    --
114517    
114518    --
114519    -- call description
114520    --
114521    
114522 xla_ae_lines_pkg.SetLineDescription(
114523    p_ae_header_id => l_ae_header_id
114524   ,p_description  => Description_2 (
114525      p_application_id         => p_application_id
114526    , p_ae_header_id           => l_ae_header_id 
114527 , p_source_1 => p_source_1
114528    )
114529 );
114530 
114531 
114532    --
114533    -- call ADRs
114534    -- Bug 4922099
114535    --
114536    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114537         (NVL(l_actual_upg_option, 'N') = 'O') OR
114538         (NVL(l_enc_upg_option, 'N') = 'O')
114539       )
114540    THEN
114541    NULL;
114542    --
114543    --
114544    
114545   l_ccid := AcctDerRule_35(
114546            p_application_id           => p_application_id
114547          , p_ae_header_id             => l_ae_header_id 
114548 , p_source_25 => p_source_25
114549          , x_transaction_coa_id       => l_adr_transaction_coa_id
114550          , x_accounting_coa_id        => l_adr_accounting_coa_id
114551          , x_value_type_code          => l_adr_value_type_code
114552          , p_side                     => 'NA'
114553    );
114554 
114555    xla_ae_lines_pkg.set_ccid(
114556     p_code_combination_id          => l_ccid
114557   , p_value_type_code              => l_adr_value_type_code
114558   , p_transaction_coa_id           => l_adr_transaction_coa_id
114559   , p_accounting_coa_id            => l_adr_accounting_coa_id
114560   , p_adr_code                     => 'AP_INVOICE_DIST'
114561   , p_adr_type_code                => 'S'
114562   , p_component_type               => l_component_type
114563   , p_component_code               => l_component_code
114564   , p_component_type_code          => l_component_type_code
114565   , p_component_appl_id            => l_component_appl_id
114566   , p_amb_context_code             => l_amb_context_code
114567   , p_side                         => 'NA'
114568   );
114569 
114570 
114571    --
114572    --
114573    END IF;
114574    --
114575    -- Bug 4922099
114576    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114577           (NVL(l_enc_upg_option, 'N') = 'O')
114578         ) AND
114579         (l_bflow_method_code = 'PRIOR_ENTRY')
114580       )
114581    THEN
114582       IF
114583       --
114584       1 = 2
114585       --
114586       THEN
114587       xla_accounting_err_pkg.build_message
114588                                     (p_appli_s_name            => 'XLA'
114589                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114590                                     ,p_token_1                 => 'LINE_NUMBER'
114591                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
114592                                     ,p_token_2                 => 'LINE_TYPE_NAME'
114593                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
114594                                                                              l_component_type
114595                                                                             ,l_component_code
114599                                                                             ,l_entity_code
114596                                                                             ,l_component_type_code
114597                                                                             ,l_component_appl_id
114598                                                                             ,l_amb_context_code
114600                                                                             ,l_event_class_code
114601                                                                            )
114602                                     ,p_token_3                 => 'OWNER'
114603                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
114604                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
114605                                                                           ,p_lookup_code    => l_component_type_code
114606                                                                          )
114607                                     ,p_token_4                 => 'PRODUCT_NAME'
114608                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
114609                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
114610                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
114611                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
114612                                     ,p_ae_header_id            =>  NULL
114613                                        );
114614 
114615         IF (C_LEVEL_ERROR>= g_log_level) THEN
114616                  trace
114617                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114618                       ,p_level    => C_LEVEL_ERROR
114619                       ,p_module   => l_log_module);
114620         END IF;
114621       END IF;
114622    END IF;
114623    --
114624    --
114625    ------------------------------------------------------------------------------------------------
114626    -- 4219869 Business Flow
114627    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
114628    -- Prior Entry.  Currently, the following code is always generated.
114629    ------------------------------------------------------------------------------------------------
114630    XLA_AE_LINES_PKG.ValidateCurrentLine;
114631 
114632    ------------------------------------------------------------------------------------
114633    -- 4219869 Business Flow
114634    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
114635    ------------------------------------------------------------------------------------
114636    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114637 
114638    ----------------------------------------------------------------------------------
114639    -- 4219869 Business Flow
114640    -- Update journal entry status -- Need to generate this within IF <condition>
114641    ----------------------------------------------------------------------------------
114642    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114643          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
114644          ,p_balance_type_code => l_balance_type_code
114645          );
114646 
114647    -------------------------------------------------------------------------------------------
114648    -- 4262811 - Generate the Accrual Reversal lines
114649    -------------------------------------------------------------------------------------------
114650    BEGIN
114651       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
114652                               (g_array_event(p_event_id).array_value_num('header_index'));
114653       IF l_acc_rev_flag IS NULL THEN
114654          l_acc_rev_flag := 'N';
114655       END IF;
114656    EXCEPTION
114657       WHEN OTHERS THEN
114658          l_acc_rev_flag := 'N';
114659    END;
114660    --
114661    IF (l_acc_rev_flag = 'Y') THEN
114662 
114663        -- 4645092  ------------------------------------------------------------------------------
114664        -- To allow MPA report to determine if it should generate report process
114665        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
114666        ------------------------------------------------------------------------------------------
114667 
114668        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
114669        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
114670    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
114671    -- call ADRs
114672    -- Bug 4922099
114673    --
114674    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114675         (NVL(l_actual_upg_option, 'N') = 'O') OR
114676         (NVL(l_enc_upg_option, 'N') = 'O')
114677       )
114678    THEN
114679    NULL;
114680    --
114681    --
114682    
114683   l_ccid := AcctDerRule_35(
114684            p_application_id           => p_application_id
114685          , p_ae_header_id             => l_ae_header_id 
114686 , p_source_25 => p_source_25
114687          , x_transaction_coa_id       => l_adr_transaction_coa_id
114688          , x_accounting_coa_id        => l_adr_accounting_coa_id
114689          , x_value_type_code          => l_adr_value_type_code
114690          , p_side                     => 'NA'
114691    );
114692 
114693    xla_ae_lines_pkg.set_ccid(
114694     p_code_combination_id          => l_ccid
114698   , p_adr_code                     => 'AP_INVOICE_DIST'
114695   , p_value_type_code              => l_adr_value_type_code
114696   , p_transaction_coa_id           => l_adr_transaction_coa_id
114697   , p_accounting_coa_id            => l_adr_accounting_coa_id
114699   , p_adr_type_code                => 'S'
114700   , p_component_type               => l_component_type
114701   , p_component_code               => l_component_code
114702   , p_component_type_code          => l_component_type_code
114703   , p_component_appl_id            => l_component_appl_id
114704   , p_amb_context_code             => l_amb_context_code
114705   , p_side                         => 'NA'
114706   );
114707 
114708 
114709    --
114710    --
114711    END IF;
114712 
114713        --
114714        -- Update the line information that should be overwritten
114715        --
114716        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114717                                          p_header_num   => 1);
114718        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
114719 
114720        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114721 
114722        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
114723           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114724        END IF;
114725 
114726       --
114727       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114728       --
114729       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114730           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
114731       ELSE
114732           ---------------------------------------------------------------------------------------------------
114733           -- 4262811a Switch Sign
114734           ---------------------------------------------------------------------------------------------------
114735           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
114736           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114737                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114738           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114739                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114740           -- 5132302
114741           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114742                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114743 
114744       END IF;
114745 
114746       -- 4955764
114747       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114748       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114749 
114750 
114751       XLA_AE_LINES_PKG.ValidateCurrentLine;
114752       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114753 
114754       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114755                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114756                ,p_balance_type_code => l_balance_type_code);
114757 
114758    END IF;
114759 
114760    -----------------------------------------------------------------------------------------
114761    -- 4262811 Multiperiod Accounting
114762    -----------------------------------------------------------------------------------------
114763      -- No MPA option is assigned.
114764 
114765 
114766 END IF;
114767 END IF;
114768 --
114769 
114770 --
114771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114772    trace
114773       (p_msg      => 'END of AcctLineType_199'
114774       ,p_level    => C_LEVEL_PROCEDURE
114775       ,p_module   => l_log_module);
114776 END IF;
114777 --
114778 EXCEPTION
114779   WHEN xla_exceptions_pkg.application_exception THEN
114780       RAISE;
114781   WHEN OTHERS THEN
114782        xla_exceptions_pkg.raise_message
114783            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_199');
114784 END AcctLineType_199;
114785 --
114786 
114787 ---------------------------------------
114788 --
114789 -- PRIVATE FUNCTION
114790 --         AcctLineType_200
114791 --
114792 ---------------------------------------
114793 PROCEDURE AcctLineType_200 (
114794   p_application_id        IN NUMBER
114795  ,p_event_id              IN NUMBER
114796  ,p_calculate_acctd_flag  IN VARCHAR2
114797  ,p_calculate_g_l_flag    IN VARCHAR2
114798  ,p_actual_flag           IN OUT VARCHAR2
114799  ,p_balance_type_code     OUT VARCHAR2
114800  ,p_gain_or_loss_ref      OUT VARCHAR2
114801  
114802 --Invoice Distribution Description
114803  , p_source_1            IN VARCHAR2
114804 --Automatic Offsets Value
114805  , p_source_10            IN VARCHAR2
114806  , p_source_10_meaning    IN VARCHAR2
114807 --Invoice Distribution Ledger Amount
114808  , p_source_16            IN NUMBER
114809 --Invoice Distribution Account
114810  , p_source_25            IN NUMBER
114811 --Invoice Distribution Type
114812  , p_source_28            IN VARCHAR2
114813  , p_source_28_meaning    IN VARCHAR2
114814 --Retainage Account
114815  , p_source_35            IN NUMBER
114819  , p_source_58            IN VARCHAR2
114816 --Retainage Related Item Distribution Account
114817  , p_source_38            IN NUMBER
114818 --Accounting Reversal Indicator
114820 --Distribution Link Type
114821  , p_source_60            IN VARCHAR2
114822 --Allocation to Main Distribution Identifier
114823  , p_source_62            IN NUMBER
114824 --Invoice Identifier
114825  , p_source_63            IN NUMBER
114826 --Invoice Distribution Identifier
114827  , p_source_69            IN NUMBER
114828 --Payables Encumbrance Upgrade Credit Account
114829  , p_source_70            IN NUMBER
114830 --Payables Encumbrance Upgrade Credit Amount
114831  , p_source_71            IN NUMBER
114832 --Invoice Currency Code
114833  , p_source_72            IN VARCHAR2
114834 --Payables Encumbrance Upgrade Credit Base Amount
114835  , p_source_73            IN NUMBER
114836 --Payables Encumbrance Upgrade Debit Account
114837  , p_source_74            IN NUMBER
114838 --Payables Encumbrance Upgrade Debit Amount
114839  , p_source_75            IN NUMBER
114840 --Payables Encumbrance Upgrade Debit Base Amount
114841  , p_source_76            IN NUMBER
114842 --Payables Encumbrance Upgrade Option
114843  , p_source_77            IN VARCHAR2
114844 --Invoice Distribution Amount
114845  , p_source_78            IN NUMBER
114846 --Deferred Accounting End Date
114847  , p_source_82            IN DATE
114848 --Deferred Accounting Option
114849  , p_source_83            IN VARCHAR2
114850 --Deferred Accounting Start Date
114851  , p_source_84            IN DATE
114852 --Override Accounted Amount Indicator
114853  , p_source_85            IN VARCHAR2
114854  , p_source_85_meaning    IN VARCHAR2
114855 --Invoice Supplier Identifier
114856  , p_source_86            IN NUMBER
114857 --Invoice Supplier Site Identifier
114858  , p_source_87            IN NUMBER
114859 --Third Party Type
114860  , p_source_88            IN VARCHAR2
114861 --Parent Reversal Identifier
114862  , p_source_89            IN NUMBER
114863 --Invoice Distribution Statistical Amount
114864  , p_source_90            IN NUMBER
114865 --Invoice Distribution Tax Line Identifier
114866  , p_source_91            IN NUMBER
114867 --Invoice Distribution Tax Distribution Identifier from Tax
114868  , p_source_92            IN NUMBER
114869 --Invoice Distribution Summary Tax Line Identifier
114870  , p_source_93            IN NUMBER
114871 --Payables Upgrade Credit Encumbrance Type Identifier
114872  , p_source_94            IN NUMBER
114873 --Payables Upgrade Debit Encumbrance Type Identifier
114874  , p_source_95            IN NUMBER
114875 --Business Flow Accounts Payable Application Identifier
114876  , p_source_96            IN NUMBER
114877 --Business Flow Invoice Distribution Type
114878  , p_source_97            IN VARCHAR2
114879 --Business Flow Invoice Entity Code
114880  , p_source_98            IN VARCHAR2
114881 --Business Flow Invoice Distribution Identifier
114882  , p_source_99            IN NUMBER
114883 --Business Flow Invoice Identifier
114884  , p_source_100            IN NUMBER
114885 --Invoice Exchange Date
114886  , p_source_146            IN DATE
114887 --Invoice Exchange Rate
114888  , p_source_147            IN NUMBER
114889 --Invoice Exchange Rate Type
114890  , p_source_148            IN VARCHAR2
114891 --Invoice Type
114892  , p_source_167            IN VARCHAR2
114893  , p_source_167_meaning    IN VARCHAR2
114894 )
114895 IS
114896 
114897 l_component_type              VARCHAR2(80);
114898 l_component_code              VARCHAR2(30);
114899 l_component_type_code         VARCHAR2(1);
114900 l_component_appl_id           INTEGER;
114901 l_amb_context_code            VARCHAR2(30);
114902 l_entity_code                 VARCHAR2(30);
114903 l_event_class_code            VARCHAR2(30);
114904 l_ae_header_id                NUMBER;
114905 l_event_type_code             VARCHAR2(30);
114906 l_line_definition_code        VARCHAR2(30);
114907 l_line_definition_owner_code  VARCHAR2(1);
114908 --
114909 -- adr variables
114910 l_segment                     VARCHAR2(30);
114911 l_ccid                        NUMBER;
114912 l_adr_transaction_coa_id      NUMBER;
114913 l_adr_accounting_coa_id       NUMBER;
114914 l_adr_flexfield_segment_code  VARCHAR2(30);
114915 l_adr_flex_value_set_id       NUMBER;
114916 l_adr_value_type_code         VARCHAR2(30);
114917 l_adr_value_combination_id    NUMBER;
114918 l_adr_value_segment_code      VARCHAR2(30);
114919 
114920 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114921 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114922 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114923 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114924 
114925 -- 4262811 Variables ------------------------------------------------------------------------------------------
114926 l_entered_amt_idx             NUMBER;
114927 l_accted_amt_idx              NUMBER;
114928 l_acc_rev_flag                VARCHAR2(1);
114929 l_accrual_line_num            NUMBER;
114930 l_tmp_amt                     NUMBER;
114931 l_acc_rev_natural_side_code   VARCHAR2(1);
114932 
114933 l_num_entries                 NUMBER;
114934 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114935 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114936 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114937 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114938 l_recog_line_1                NUMBER;
114939 l_recog_line_2                NUMBER;
114940 
114941 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114945 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114942 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114943 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114944 
114946 
114947 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114948 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114949 
114950 ---------------------------------------------------------------------------------------------------------------
114951 
114952 
114953 --
114954 -- bulk performance
114955 --
114956 l_balance_type_code           VARCHAR2(1);
114957 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114958 l_log_module                  VARCHAR2(240);
114959 
114960 --
114961 -- Upgrade strategy
114962 --
114963 l_actual_upg_option           VARCHAR2(1);
114964 l_enc_upg_option           VARCHAR2(1);
114965 
114966 --
114967 BEGIN
114968 --
114969 IF g_log_enabled THEN
114970       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_200';
114971 END IF;
114972 --
114973 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114974 
114975       trace
114976          (p_msg      => 'BEGIN of AcctLineType_200'
114977          ,p_level    => C_LEVEL_PROCEDURE
114978          ,p_module   => l_log_module);
114979 
114980 END IF;
114981 --
114982 l_component_type             := 'AMB_JLT';
114983 l_component_code             := 'AP_RETAINAGE_ACC';
114984 l_component_type_code        := 'S';
114985 l_component_appl_id          :=  200;
114986 l_amb_context_code           := 'DEFAULT';
114987 l_entity_code                := 'AP_INVOICES';
114988 l_event_class_code           := 'INVOICES';
114989 l_event_type_code            := 'INVOICES_ALL';
114990 l_line_definition_owner_code := 'S';
114991 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
114992 --
114993 l_balance_type_code          := 'A';
114994 l_segment                     := NULL;
114995 l_ccid                        := NULL;
114996 l_adr_transaction_coa_id      := NULL;
114997 l_adr_accounting_coa_id       := NULL;
114998 l_adr_flexfield_segment_code  := NULL;
114999 l_adr_flex_value_set_id       := NULL;
115000 l_adr_value_type_code         := NULL;
115001 l_adr_value_combination_id    := NULL;
115002 l_adr_value_segment_code      := NULL;
115003 
115004 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
115005 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
115006 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
115007 l_budgetary_control_flag     := 'N';
115008 
115009 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
115010 l_bflow_applied_to_amt       := NULL; -- 5132302
115011 l_entered_amt_idx            := NULL;          -- 4262811
115012 l_accted_amt_idx             := NULL;          -- 4262811
115013 l_acc_rev_flag               := NULL;          -- 4262811
115014 l_accrual_line_num           := NULL;          -- 4262811
115015 l_tmp_amt                    := NULL;          -- 4262811
115016 --
115017  
115018 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115019     l_balance_type_code <> 'B' THEN
115020 IF NVL(p_source_167,'
115021 ') =  'STANDARD' AND 
115022 NVL(p_source_28,'
115023 ') =  'RETAINAGE'
115024  THEN 
115025 
115026    --
115027    XLA_AE_LINES_PKG.SetNewLine;
115028 
115029    p_balance_type_code          := l_balance_type_code;
115030    -- set the flag so later we will know whether the gain loss line needs to be created
115031    
115032    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115033      p_actual_flag :='A';
115034    END IF;
115035 
115036    --
115037    -- bulk performance
115038    --
115039    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115040                                       p_header_num   => 0); -- 4262811
115041    --
115042    -- set accounting line options
115043    --
115044    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115045            p_natural_side_code          => 'D'
115046          , p_gain_or_loss_flag          => 'N'
115047          , p_gl_transfer_mode_code      => 'S'
115048          , p_acct_entry_type_code       => 'A'
115049          , p_switch_side_flag           => 'Y'
115050          , p_merge_duplicate_code       => 'A'
115051          );
115052    --
115053    l_acc_rev_natural_side_code := 'C';  -- 4262811
115054    -- 
115055    --
115056    -- set accounting line type info
115057    --
115058    xla_ae_lines_pkg.SetAcctLineType
115059       (p_component_type             => l_component_type
115060       ,p_event_type_code            => l_event_type_code
115061       ,p_line_definition_owner_code => l_line_definition_owner_code
115062       ,p_line_definition_code       => l_line_definition_code
115063       ,p_accounting_line_code       => l_component_code
115064       ,p_accounting_line_type_code  => l_component_type_code
115065       ,p_accounting_line_appl_id    => l_component_appl_id
115066       ,p_amb_context_code           => l_amb_context_code
115067       ,p_entity_code                => l_entity_code
115068       ,p_event_class_code           => l_event_class_code);
115069    --
115070    -- set accounting class
115071    --
115072    xla_ae_lines_pkg.SetAcctClass(
115073            p_accounting_class_code  => 'RETAINAGE'
115074          , p_ae_header_id           => l_ae_header_id
115075          );
115076 
115077    --
115081                       'RETAINAGE';
115078    -- set rounding class
115079    --
115080    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115082 
115083    --
115084    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115085    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115086    --
115087    -- bulk performance
115088    --
115089    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115090 
115091    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115092       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115093 
115094    -- 4955764
115095    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115097 
115098    -- 4458381 Public Sector Enh
115099    
115100    --
115101    -- set accounting attributes for the line type
115102    --
115103    l_entered_amt_idx := 24;
115104    l_accted_amt_idx  := 29;
115105    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
115106    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115107    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
115108    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115109    l_rec_acct_attrs.array_num_value(2)  := 
115110 xla_ae_sources_pkg.GetSystemSourceNum(
115111    p_source_code           => 'XLA_EVENT_APPL_ID'
115112  , p_source_type_code      => 'Y'
115113  , p_source_application_id =>  602
115114 );
115115    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115116    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
115117    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115118    l_rec_acct_attrs.array_char_value(4)  := 
115119 xla_ae_sources_pkg.GetSystemSourceChar(
115120    p_source_code           => 'XLA_ENTITY_CODE'
115121  , p_source_type_code      => 'Y'
115122  , p_source_application_id =>  602
115123 );
115124    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115125    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
115126    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115127    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
115128    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
115129    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
115130    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
115131    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
115132    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115133    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
115134    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
115135    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
115136    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
115137    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
115138    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115139    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
115140    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
115141    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
115142    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
115143    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
115144    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
115145    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
115146    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
115147    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
115148    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
115149    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
115150    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
115151    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
115152    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
115153    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
115154    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
115155    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
115156    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
115157    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
115158    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
115159    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
115160    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
115161    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
115162    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
115163    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
115164    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
115165    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
115166    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
115167    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
115168    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
115169    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
115170    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
115171    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
115172    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
115176    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
115173    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
115174    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
115175    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
115177    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
115178    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
115179    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
115180    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
115181    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
115182    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
115183    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
115184    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
115185    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
115186    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
115187    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
115188    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
115189    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
115190    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
115191    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
115192    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
115193    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
115194    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
115195    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
115196    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
115197    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
115198    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
115199    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
115200    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
115201    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
115202    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
115203    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
115204 
115205    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115206    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115207 
115208    ---------------------------------------------------------------------------------------------------------------
115209    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115210    ---------------------------------------------------------------------------------------------------------------
115211    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115212 
115213    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115214    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115215 
115216    IF xla_accounting_cache_pkg.GetValueChar
115217          (p_source_code         => 'LEDGER_CATEGORY_CODE'
115218          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115219    AND l_bflow_method_code = 'PRIOR_ENTRY'
115220 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115221    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115222          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115223        )
115224    THEN
115225          xla_ae_lines_pkg.BflowUpgEntry
115226            (p_business_method_code    => l_bflow_method_code
115227            ,p_business_class_code     => l_bflow_class_code
115228            ,p_balance_type            => l_balance_type_code);
115229    ELSE
115230       NULL;
115231 -- No business flow processing for business flow method of NONE.
115232    END IF;
115233 
115234    --
115235    -- call analytical criteria
115236    --
115237    
115238    --
115239    -- call description
115240    --
115241    
115242 xla_ae_lines_pkg.SetLineDescription(
115243    p_ae_header_id => l_ae_header_id
115244   ,p_description  => Description_2 (
115245      p_application_id         => p_application_id
115246    , p_ae_header_id           => l_ae_header_id 
115247 , p_source_1 => p_source_1
115248    )
115249 );
115250 
115251 
115252    --
115253    -- call ADRs
115254    -- Bug 4922099
115255    --
115256    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115257         (NVL(l_actual_upg_option, 'N') = 'O') OR
115258         (NVL(l_enc_upg_option, 'N') = 'O')
115259       )
115260    THEN
115261    NULL;
115262    --
115263    --
115264    
115265   l_ccid := AcctDerRule_42(
115266            p_application_id           => p_application_id
115267          , p_ae_header_id             => l_ae_header_id 
115268 , p_source_10 => p_source_10
115269 , p_source_10_meaning => p_source_10_meaning
115270 , p_source_25 => p_source_25
115271 , p_source_38 => p_source_38
115272          , x_transaction_coa_id       => l_adr_transaction_coa_id
115273          , x_accounting_coa_id        => l_adr_accounting_coa_id
115274          , x_value_type_code          => l_adr_value_type_code
115275          , p_side                     => 'NA'
115276    );
115277 
115278    xla_ae_lines_pkg.set_ccid(
115279     p_code_combination_id          => l_ccid
115280   , p_value_type_code              => l_adr_value_type_code
115281   , p_transaction_coa_id           => l_adr_transaction_coa_id
115282   , p_accounting_coa_id            => l_adr_accounting_coa_id
115286   , p_component_code               => l_component_code
115283   , p_adr_code                     => 'AP_RETAINAGE'
115284   , p_adr_type_code                => 'S'
115285   , p_component_type               => l_component_type
115287   , p_component_type_code          => l_component_type_code
115288   , p_component_appl_id            => l_component_appl_id
115289   , p_amb_context_code             => l_amb_context_code
115290   , p_side                         => 'NA'
115291   );
115292 
115293 
115294    l_segment := AcctDerRule_19(
115295            p_application_id           => p_application_id
115296          , p_ae_header_id             => l_ae_header_id 
115297 , p_source_35 => p_source_35
115298          , x_transaction_coa_id       => l_adr_transaction_coa_id
115299          , x_accounting_coa_id        => l_adr_accounting_coa_id
115300          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115301          , x_flex_value_set_id        => l_adr_flex_value_set_id
115302          , x_value_type_code          => l_adr_value_type_code
115303          , x_value_combination_id     => l_adr_value_combination_id
115304          , x_value_segment_code       => l_adr_value_segment_code
115305          , p_side                     => 'NA'
115306          , p_override_seg_flag        => 'Y'
115307    );
115308 
115309    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115310 
115311       xla_ae_lines_pkg.set_segment(
115312           p_to_segment_code         => 'GL_ACCOUNT'
115313         , p_segment_value           => l_segment
115314         , p_from_segment_code       => l_adr_value_segment_code
115315         , p_from_combination_id     => l_adr_value_combination_id
115316         , p_value_type_code         => l_adr_value_type_code
115317         , p_transaction_coa_id      => l_adr_transaction_coa_id
115318         , p_accounting_coa_id       => l_adr_accounting_coa_id
115319         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115320         , p_flex_value_set_id       => l_adr_flex_value_set_id
115321         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115322         , p_adr_type_code           => 'S'
115323         , p_component_type          => l_component_type
115324         , p_component_code          => l_component_code
115325         , p_component_type_code     => l_component_type_code
115326         , p_component_appl_id       => l_component_appl_id
115327         , p_amb_context_code        => l_amb_context_code
115328         , p_entity_code             => 'AP_INVOICES'
115329         , p_event_class_code        => 'INVOICES'
115330         , p_side                    => 'NA'
115331         );
115332 
115333   END IF;
115334 
115335    l_segment := AcctDerRule_25(
115336            p_application_id           => p_application_id
115337          , p_ae_header_id             => l_ae_header_id 
115338 , p_source_10 => p_source_10
115339 , p_source_10_meaning => p_source_10_meaning
115340 , p_source_38 => p_source_38
115341          , x_transaction_coa_id       => l_adr_transaction_coa_id
115342          , x_accounting_coa_id        => l_adr_accounting_coa_id
115343          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115344          , x_flex_value_set_id        => l_adr_flex_value_set_id
115345          , x_value_type_code          => l_adr_value_type_code
115346          , x_value_combination_id     => l_adr_value_combination_id
115347          , x_value_segment_code       => l_adr_value_segment_code
115348          , p_side                     => 'NA'
115349          , p_override_seg_flag        => 'Y'
115350    );
115351 
115352    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115353 
115354       xla_ae_lines_pkg.set_segment(
115355           p_to_segment_code         => 'GL_BALANCING'
115356         , p_segment_value           => l_segment
115357         , p_from_segment_code       => l_adr_value_segment_code
115358         , p_from_combination_id     => l_adr_value_combination_id
115359         , p_value_type_code         => l_adr_value_type_code
115360         , p_transaction_coa_id      => l_adr_transaction_coa_id
115361         , p_accounting_coa_id       => l_adr_accounting_coa_id
115362         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115363         , p_flex_value_set_id       => l_adr_flex_value_set_id
115364         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
115365         , p_adr_type_code           => 'S'
115366         , p_component_type          => l_component_type
115367         , p_component_code          => l_component_code
115368         , p_component_type_code     => l_component_type_code
115369         , p_component_appl_id       => l_component_appl_id
115370         , p_amb_context_code        => l_amb_context_code
115371         , p_entity_code             => 'AP_INVOICES'
115372         , p_event_class_code        => 'INVOICES'
115373         , p_side                    => 'NA'
115374         );
115375 
115376   END IF;
115377 
115378    --
115379    --
115380    END IF;
115381    --
115382    -- Bug 4922099
115383    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115384           (NVL(l_enc_upg_option, 'N') = 'O')
115385         ) AND
115386         (l_bflow_method_code = 'PRIOR_ENTRY')
115387       )
115388    THEN
115389       IF
115390       --
115391       1 = 2
115392       --
115393       THEN
115394       xla_accounting_err_pkg.build_message
115395                                     (p_appli_s_name            => 'XLA'
115396                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115400                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115397                                     ,p_token_1                 => 'LINE_NUMBER'
115398                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115399                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115401                                                                              l_component_type
115402                                                                             ,l_component_code
115403                                                                             ,l_component_type_code
115404                                                                             ,l_component_appl_id
115405                                                                             ,l_amb_context_code
115406                                                                             ,l_entity_code
115407                                                                             ,l_event_class_code
115408                                                                            )
115409                                     ,p_token_3                 => 'OWNER'
115410                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115411                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115412                                                                           ,p_lookup_code    => l_component_type_code
115413                                                                          )
115414                                     ,p_token_4                 => 'PRODUCT_NAME'
115415                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115416                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115417                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115418                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115419                                     ,p_ae_header_id            =>  NULL
115420                                        );
115421 
115422         IF (C_LEVEL_ERROR>= g_log_level) THEN
115423                  trace
115424                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115425                       ,p_level    => C_LEVEL_ERROR
115426                       ,p_module   => l_log_module);
115427         END IF;
115428       END IF;
115429    END IF;
115430    --
115431    --
115432    ------------------------------------------------------------------------------------------------
115433    -- 4219869 Business Flow
115434    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115435    -- Prior Entry.  Currently, the following code is always generated.
115436    ------------------------------------------------------------------------------------------------
115437    XLA_AE_LINES_PKG.ValidateCurrentLine;
115438 
115439    ------------------------------------------------------------------------------------
115440    -- 4219869 Business Flow
115441    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115442    ------------------------------------------------------------------------------------
115443    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115444 
115445    ----------------------------------------------------------------------------------
115446    -- 4219869 Business Flow
115447    -- Update journal entry status -- Need to generate this within IF <condition>
115448    ----------------------------------------------------------------------------------
115449    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115450          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115451          ,p_balance_type_code => l_balance_type_code
115452          );
115453 
115454    -------------------------------------------------------------------------------------------
115455    -- 4262811 - Generate the Accrual Reversal lines
115456    -------------------------------------------------------------------------------------------
115457    BEGIN
115458       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115459                               (g_array_event(p_event_id).array_value_num('header_index'));
115460       IF l_acc_rev_flag IS NULL THEN
115461          l_acc_rev_flag := 'N';
115462       END IF;
115463    EXCEPTION
115464       WHEN OTHERS THEN
115465          l_acc_rev_flag := 'N';
115466    END;
115467    --
115468    IF (l_acc_rev_flag = 'Y') THEN
115469 
115470        -- 4645092  ------------------------------------------------------------------------------
115471        -- To allow MPA report to determine if it should generate report process
115472        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115473        ------------------------------------------------------------------------------------------
115474 
115475        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115476        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115477    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115478    -- call ADRs
115479    -- Bug 4922099
115480    --
115481    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115482         (NVL(l_actual_upg_option, 'N') = 'O') OR
115483         (NVL(l_enc_upg_option, 'N') = 'O')
115484       )
115485    THEN
115486    NULL;
115487    --
115488    --
115489    
115490   l_ccid := AcctDerRule_42(
115494 , p_source_10_meaning => p_source_10_meaning
115491            p_application_id           => p_application_id
115492          , p_ae_header_id             => l_ae_header_id 
115493 , p_source_10 => p_source_10
115495 , p_source_25 => p_source_25
115496 , p_source_38 => p_source_38
115497          , x_transaction_coa_id       => l_adr_transaction_coa_id
115498          , x_accounting_coa_id        => l_adr_accounting_coa_id
115499          , x_value_type_code          => l_adr_value_type_code
115500          , p_side                     => 'NA'
115501    );
115502 
115503    xla_ae_lines_pkg.set_ccid(
115504     p_code_combination_id          => l_ccid
115505   , p_value_type_code              => l_adr_value_type_code
115506   , p_transaction_coa_id           => l_adr_transaction_coa_id
115507   , p_accounting_coa_id            => l_adr_accounting_coa_id
115508   , p_adr_code                     => 'AP_RETAINAGE'
115509   , p_adr_type_code                => 'S'
115510   , p_component_type               => l_component_type
115511   , p_component_code               => l_component_code
115512   , p_component_type_code          => l_component_type_code
115513   , p_component_appl_id            => l_component_appl_id
115514   , p_amb_context_code             => l_amb_context_code
115515   , p_side                         => 'NA'
115516   );
115517 
115518 
115519    l_segment := AcctDerRule_19(
115520            p_application_id           => p_application_id
115521          , p_ae_header_id             => l_ae_header_id 
115522 , p_source_35 => p_source_35
115523          , x_transaction_coa_id       => l_adr_transaction_coa_id
115524          , x_accounting_coa_id        => l_adr_accounting_coa_id
115525          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115526          , x_flex_value_set_id        => l_adr_flex_value_set_id
115527          , x_value_type_code          => l_adr_value_type_code
115528          , x_value_combination_id     => l_adr_value_combination_id
115529          , x_value_segment_code       => l_adr_value_segment_code
115530          , p_side                     => 'NA'
115531          , p_override_seg_flag        => 'Y'
115532    );
115533 
115534    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115535 
115536       xla_ae_lines_pkg.set_segment(
115537           p_to_segment_code         => 'GL_ACCOUNT'
115538         , p_segment_value           => l_segment
115539         , p_from_segment_code       => l_adr_value_segment_code
115540         , p_from_combination_id     => l_adr_value_combination_id
115541         , p_value_type_code         => l_adr_value_type_code
115542         , p_transaction_coa_id      => l_adr_transaction_coa_id
115543         , p_accounting_coa_id       => l_adr_accounting_coa_id
115544         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115545         , p_flex_value_set_id       => l_adr_flex_value_set_id
115546         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115547         , p_adr_type_code           => 'S'
115548         , p_component_type          => l_component_type
115549         , p_component_code          => l_component_code
115550         , p_component_type_code     => l_component_type_code
115551         , p_component_appl_id       => l_component_appl_id
115552         , p_amb_context_code        => l_amb_context_code
115553         , p_entity_code             => 'AP_INVOICES'
115554         , p_event_class_code        => 'INVOICES'
115555         , p_side                    => 'NA'
115556         );
115557 
115558   END IF;
115559 
115560    l_segment := AcctDerRule_25(
115561            p_application_id           => p_application_id
115562          , p_ae_header_id             => l_ae_header_id 
115563 , p_source_10 => p_source_10
115564 , p_source_10_meaning => p_source_10_meaning
115565 , p_source_38 => p_source_38
115566          , x_transaction_coa_id       => l_adr_transaction_coa_id
115567          , x_accounting_coa_id        => l_adr_accounting_coa_id
115568          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115569          , x_flex_value_set_id        => l_adr_flex_value_set_id
115570          , x_value_type_code          => l_adr_value_type_code
115571          , x_value_combination_id     => l_adr_value_combination_id
115572          , x_value_segment_code       => l_adr_value_segment_code
115573          , p_side                     => 'NA'
115574          , p_override_seg_flag        => 'Y'
115575    );
115576 
115577    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115578 
115579       xla_ae_lines_pkg.set_segment(
115580           p_to_segment_code         => 'GL_BALANCING'
115581         , p_segment_value           => l_segment
115582         , p_from_segment_code       => l_adr_value_segment_code
115583         , p_from_combination_id     => l_adr_value_combination_id
115584         , p_value_type_code         => l_adr_value_type_code
115585         , p_transaction_coa_id      => l_adr_transaction_coa_id
115586         , p_accounting_coa_id       => l_adr_accounting_coa_id
115587         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115588         , p_flex_value_set_id       => l_adr_flex_value_set_id
115589         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
115590         , p_adr_type_code           => 'S'
115591         , p_component_type          => l_component_type
115592         , p_component_code          => l_component_code
115593         , p_component_type_code     => l_component_type_code
115594         , p_component_appl_id       => l_component_appl_id
115595         , p_amb_context_code        => l_amb_context_code
115596         , p_entity_code             => 'AP_INVOICES'
115597         , p_event_class_code        => 'INVOICES'
115601   END IF;
115598         , p_side                    => 'NA'
115599         );
115600 
115602 
115603    --
115604    --
115605    END IF;
115606 
115607        --
115608        -- Update the line information that should be overwritten
115609        --
115610        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115611                                          p_header_num   => 1);
115612        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
115613 
115614        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115615 
115616        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
115617           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115618        END IF;
115619 
115620       --
115621       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115622       --
115623       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115624           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
115625       ELSE
115626           ---------------------------------------------------------------------------------------------------
115627           -- 4262811a Switch Sign
115628           ---------------------------------------------------------------------------------------------------
115629           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
115630           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115631                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115632           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115633                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115634           -- 5132302
115635           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115636                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115637 
115638       END IF;
115639 
115640       -- 4955764
115641       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115642       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115643 
115644 
115645       XLA_AE_LINES_PKG.ValidateCurrentLine;
115646       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115647 
115648       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115649                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115650                ,p_balance_type_code => l_balance_type_code);
115651 
115652    END IF;
115653 
115654    -----------------------------------------------------------------------------------------
115655    -- 4262811 Multiperiod Accounting
115656    -----------------------------------------------------------------------------------------
115657      -- No MPA option is assigned.
115658 
115659 
115660 END IF;
115661 END IF;
115662 --
115663 
115664 --
115665 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115666    trace
115667       (p_msg      => 'END of AcctLineType_200'
115668       ,p_level    => C_LEVEL_PROCEDURE
115669       ,p_module   => l_log_module);
115670 END IF;
115671 --
115672 EXCEPTION
115673   WHEN xla_exceptions_pkg.application_exception THEN
115674       RAISE;
115675   WHEN OTHERS THEN
115676        xla_exceptions_pkg.raise_message
115677            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_200');
115678 END AcctLineType_200;
115679 --
115680 
115681 ---------------------------------------
115682 --
115683 -- PRIVATE FUNCTION
115684 --         AcctLineType_201
115685 --
115686 ---------------------------------------
115687 PROCEDURE AcctLineType_201 (
115688   p_application_id        IN NUMBER
115689  ,p_event_id              IN NUMBER
115690  ,p_calculate_acctd_flag  IN VARCHAR2
115691  ,p_calculate_g_l_flag    IN VARCHAR2
115692  ,p_actual_flag           IN OUT VARCHAR2
115693  ,p_balance_type_code     OUT VARCHAR2
115694  ,p_gain_or_loss_ref      OUT VARCHAR2
115695  
115696 --Invoice Distribution Description
115697  , p_source_1            IN VARCHAR2
115698 --Automatic Offsets Value
115699  , p_source_10            IN VARCHAR2
115700  , p_source_10_meaning    IN VARCHAR2
115701 --Invoice Distribution Ledger Amount
115702  , p_source_16            IN NUMBER
115703 --Invoice Distribution Account
115704  , p_source_25            IN NUMBER
115705 --Invoice Distribution Type
115706  , p_source_28            IN VARCHAR2
115707  , p_source_28_meaning    IN VARCHAR2
115708 --Retainage Account
115709  , p_source_35            IN NUMBER
115710 --Retainage Related Item Distribution Account
115711  , p_source_38            IN NUMBER
115712 --Accounting Reversal Indicator
115713  , p_source_58            IN VARCHAR2
115714 --Distribution Link Type
115715  , p_source_60            IN VARCHAR2
115716 --Allocation to Main Distribution Identifier
115717  , p_source_62            IN NUMBER
115718 --Invoice Identifier
115719  , p_source_63            IN NUMBER
115720 --Invoice Distribution Identifier
115721  , p_source_69            IN NUMBER
115722 --Payables Encumbrance Upgrade Credit Account
115723  , p_source_70            IN NUMBER
115727  , p_source_72            IN VARCHAR2
115724 --Payables Encumbrance Upgrade Credit Amount
115725  , p_source_71            IN NUMBER
115726 --Invoice Currency Code
115728 --Payables Encumbrance Upgrade Credit Base Amount
115729  , p_source_73            IN NUMBER
115730 --Payables Encumbrance Upgrade Debit Account
115731  , p_source_74            IN NUMBER
115732 --Payables Encumbrance Upgrade Debit Amount
115733  , p_source_75            IN NUMBER
115734 --Payables Encumbrance Upgrade Debit Base Amount
115735  , p_source_76            IN NUMBER
115736 --Payables Encumbrance Upgrade Option
115737  , p_source_77            IN VARCHAR2
115738 --Invoice Distribution Amount
115739  , p_source_78            IN NUMBER
115740 --Deferred Accounting End Date
115741  , p_source_82            IN DATE
115742 --Deferred Accounting Option
115743  , p_source_83            IN VARCHAR2
115744 --Deferred Accounting Start Date
115745  , p_source_84            IN DATE
115746 --Override Accounted Amount Indicator
115747  , p_source_85            IN VARCHAR2
115748  , p_source_85_meaning    IN VARCHAR2
115749 --Invoice Supplier Identifier
115750  , p_source_86            IN NUMBER
115751 --Invoice Supplier Site Identifier
115752  , p_source_87            IN NUMBER
115753 --Third Party Type
115754  , p_source_88            IN VARCHAR2
115755 --Parent Reversal Identifier
115756  , p_source_89            IN NUMBER
115757 --Invoice Distribution Statistical Amount
115758  , p_source_90            IN NUMBER
115759 --Invoice Distribution Tax Line Identifier
115760  , p_source_91            IN NUMBER
115761 --Invoice Distribution Tax Distribution Identifier from Tax
115762  , p_source_92            IN NUMBER
115763 --Invoice Distribution Summary Tax Line Identifier
115764  , p_source_93            IN NUMBER
115765 --Payables Upgrade Credit Encumbrance Type Identifier
115766  , p_source_94            IN NUMBER
115767 --Payables Upgrade Debit Encumbrance Type Identifier
115768  , p_source_95            IN NUMBER
115769 --Business Flow Accounts Payable Application Identifier
115770  , p_source_96            IN NUMBER
115771 --Business Flow Invoice Distribution Type
115772  , p_source_97            IN VARCHAR2
115773 --Business Flow Invoice Entity Code
115774  , p_source_98            IN VARCHAR2
115775 --Business Flow Invoice Distribution Identifier
115776  , p_source_99            IN NUMBER
115777 --Business Flow Invoice Identifier
115778  , p_source_100            IN NUMBER
115779 --Invoice Exchange Date
115780  , p_source_146            IN DATE
115781 --Invoice Exchange Rate
115782  , p_source_147            IN NUMBER
115783 --Invoice Exchange Rate Type
115784  , p_source_148            IN VARCHAR2
115785 --Invoice Type
115786  , p_source_167            IN VARCHAR2
115787  , p_source_167_meaning    IN VARCHAR2
115788 )
115789 IS
115790 
115791 l_component_type              VARCHAR2(80);
115792 l_component_code              VARCHAR2(30);
115793 l_component_type_code         VARCHAR2(1);
115794 l_component_appl_id           INTEGER;
115795 l_amb_context_code            VARCHAR2(30);
115796 l_entity_code                 VARCHAR2(30);
115797 l_event_class_code            VARCHAR2(30);
115798 l_ae_header_id                NUMBER;
115799 l_event_type_code             VARCHAR2(30);
115800 l_line_definition_code        VARCHAR2(30);
115801 l_line_definition_owner_code  VARCHAR2(1);
115802 --
115803 -- adr variables
115804 l_segment                     VARCHAR2(30);
115805 l_ccid                        NUMBER;
115806 l_adr_transaction_coa_id      NUMBER;
115807 l_adr_accounting_coa_id       NUMBER;
115808 l_adr_flexfield_segment_code  VARCHAR2(30);
115809 l_adr_flex_value_set_id       NUMBER;
115810 l_adr_value_type_code         VARCHAR2(30);
115811 l_adr_value_combination_id    NUMBER;
115812 l_adr_value_segment_code      VARCHAR2(30);
115813 
115814 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
115815 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
115816 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
115817 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
115818 
115819 -- 4262811 Variables ------------------------------------------------------------------------------------------
115820 l_entered_amt_idx             NUMBER;
115821 l_accted_amt_idx              NUMBER;
115822 l_acc_rev_flag                VARCHAR2(1);
115823 l_accrual_line_num            NUMBER;
115824 l_tmp_amt                     NUMBER;
115825 l_acc_rev_natural_side_code   VARCHAR2(1);
115826 
115827 l_num_entries                 NUMBER;
115828 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
115829 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
115830 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
115831 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
115832 l_recog_line_1                NUMBER;
115833 l_recog_line_2                NUMBER;
115834 
115835 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
115836 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
115837 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
115838 
115839 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
115840 
115841 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
115842 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
115843 
115847 --
115844 ---------------------------------------------------------------------------------------------------------------
115845 
115846 
115848 -- bulk performance
115849 --
115850 l_balance_type_code           VARCHAR2(1);
115851 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
115852 l_log_module                  VARCHAR2(240);
115853 
115854 --
115855 -- Upgrade strategy
115856 --
115857 l_actual_upg_option           VARCHAR2(1);
115858 l_enc_upg_option           VARCHAR2(1);
115859 
115860 --
115861 BEGIN
115862 --
115863 IF g_log_enabled THEN
115864       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_201';
115865 END IF;
115866 --
115867 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115868 
115869       trace
115870          (p_msg      => 'BEGIN of AcctLineType_201'
115871          ,p_level    => C_LEVEL_PROCEDURE
115872          ,p_module   => l_log_module);
115873 
115874 END IF;
115875 --
115876 l_component_type             := 'AMB_JLT';
115877 l_component_code             := 'AP_RETAINAGE_ACC_CM';
115878 l_component_type_code        := 'S';
115879 l_component_appl_id          :=  200;
115880 l_amb_context_code           := 'DEFAULT';
115881 l_entity_code                := 'AP_INVOICES';
115882 l_event_class_code           := 'CREDIT MEMOS';
115883 l_event_type_code            := 'CREDIT MEMOS_ALL';
115884 l_line_definition_owner_code := 'S';
115885 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
115886 --
115887 l_balance_type_code          := 'A';
115888 l_segment                     := NULL;
115889 l_ccid                        := NULL;
115890 l_adr_transaction_coa_id      := NULL;
115891 l_adr_accounting_coa_id       := NULL;
115892 l_adr_flexfield_segment_code  := NULL;
115893 l_adr_flex_value_set_id       := NULL;
115894 l_adr_value_type_code         := NULL;
115895 l_adr_value_combination_id    := NULL;
115896 l_adr_value_segment_code      := NULL;
115897 
115898 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
115899 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
115900 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
115901 l_budgetary_control_flag     := 'N';
115902 
115903 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
115904 l_bflow_applied_to_amt       := NULL; -- 5132302
115905 l_entered_amt_idx            := NULL;          -- 4262811
115906 l_accted_amt_idx             := NULL;          -- 4262811
115907 l_acc_rev_flag               := NULL;          -- 4262811
115908 l_accrual_line_num           := NULL;          -- 4262811
115909 l_tmp_amt                    := NULL;          -- 4262811
115910 --
115911  
115912 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115913     l_balance_type_code <> 'B' THEN
115914 IF NVL(p_source_28,'
115915 ') =  'RETAINAGE' AND 
115916 NVL(p_source_167,'
115917 ') <>  'RETAINAGE RELEASE'
115918  THEN 
115919 
115920    --
115921    XLA_AE_LINES_PKG.SetNewLine;
115922 
115923    p_balance_type_code          := l_balance_type_code;
115924    -- set the flag so later we will know whether the gain loss line needs to be created
115925    
115926    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115927      p_actual_flag :='A';
115928    END IF;
115929 
115930    --
115931    -- bulk performance
115932    --
115933    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115934                                       p_header_num   => 0); -- 4262811
115935    --
115936    -- set accounting line options
115937    --
115938    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115939            p_natural_side_code          => 'D'
115940          , p_gain_or_loss_flag          => 'N'
115941          , p_gl_transfer_mode_code      => 'S'
115942          , p_acct_entry_type_code       => 'A'
115943          , p_switch_side_flag           => 'Y'
115944          , p_merge_duplicate_code       => 'A'
115945          );
115946    --
115947    l_acc_rev_natural_side_code := 'C';  -- 4262811
115948    -- 
115949    --
115950    -- set accounting line type info
115951    --
115952    xla_ae_lines_pkg.SetAcctLineType
115953       (p_component_type             => l_component_type
115954       ,p_event_type_code            => l_event_type_code
115955       ,p_line_definition_owner_code => l_line_definition_owner_code
115956       ,p_line_definition_code       => l_line_definition_code
115957       ,p_accounting_line_code       => l_component_code
115958       ,p_accounting_line_type_code  => l_component_type_code
115959       ,p_accounting_line_appl_id    => l_component_appl_id
115960       ,p_amb_context_code           => l_amb_context_code
115961       ,p_entity_code                => l_entity_code
115962       ,p_event_class_code           => l_event_class_code);
115963    --
115964    -- set accounting class
115965    --
115966    xla_ae_lines_pkg.SetAcctClass(
115967            p_accounting_class_code  => 'RETAINAGE'
115968          , p_ae_header_id           => l_ae_header_id
115969          );
115970 
115971    --
115972    -- set rounding class
115973    --
115974    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115975                       'RETAINAGE';
115976 
115977    --
115978    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115982    --
115979    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115980    --
115981    -- bulk performance
115983    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115984 
115985    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115986       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115987 
115988    -- 4955764
115989    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115990       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115991 
115992    -- 4458381 Public Sector Enh
115993    
115994    --
115995    -- set accounting attributes for the line type
115996    --
115997    l_entered_amt_idx := 23;
115998    l_accted_amt_idx  := 28;
115999    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
116000    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116001    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
116002    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116003    l_rec_acct_attrs.array_num_value(2)  := 
116004 xla_ae_sources_pkg.GetSystemSourceNum(
116005    p_source_code           => 'XLA_EVENT_APPL_ID'
116006  , p_source_type_code      => 'Y'
116007  , p_source_application_id =>  602
116008 );
116009    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116010    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
116011    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116012    l_rec_acct_attrs.array_char_value(4)  := 
116013 xla_ae_sources_pkg.GetSystemSourceChar(
116014    p_source_code           => 'XLA_ENTITY_CODE'
116015  , p_source_type_code      => 'Y'
116016  , p_source_application_id =>  602
116017 );
116018    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116019    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
116020    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116021    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
116022    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
116023    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
116024    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116025    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
116026    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
116027    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
116028    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
116029    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
116030    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116031    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
116032    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
116033    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
116034    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
116035    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
116036    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
116037    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
116038    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
116039    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
116040    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
116041    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
116042    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
116043    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
116044    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
116045    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
116046    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
116047    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
116048    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
116049    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
116050    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
116051    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
116052    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
116053    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
116054    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
116055    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
116056    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
116057    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
116058    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
116059    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
116060    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
116061    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
116062    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
116063    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
116064    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
116065    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
116066    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
116067    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
116068    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
116069    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
116070    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
116071    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
116072    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
116073    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
116077    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
116074    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
116075    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
116076    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
116078    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
116079    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
116080    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
116081    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
116082    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
116083    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
116084    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
116085    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
116086    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
116087    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
116088    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
116089    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
116090    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
116091    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
116092    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
116093    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
116094    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
116095    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
116096 
116097    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116098    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116099 
116100    ---------------------------------------------------------------------------------------------------------------
116101    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116102    ---------------------------------------------------------------------------------------------------------------
116103    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116104 
116105    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116106    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116107 
116108    IF xla_accounting_cache_pkg.GetValueChar
116109          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116110          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116111    AND l_bflow_method_code = 'PRIOR_ENTRY'
116112 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116113    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116114          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116115        )
116116    THEN
116117          xla_ae_lines_pkg.BflowUpgEntry
116118            (p_business_method_code    => l_bflow_method_code
116119            ,p_business_class_code     => l_bflow_class_code
116120            ,p_balance_type            => l_balance_type_code);
116121    ELSE
116122       NULL;
116123 -- No business flow processing for business flow method of NONE.
116124    END IF;
116125 
116126    --
116127    -- call analytical criteria
116128    --
116129    
116130    --
116131    -- call description
116132    --
116133    
116134 xla_ae_lines_pkg.SetLineDescription(
116135    p_ae_header_id => l_ae_header_id
116136   ,p_description  => Description_2 (
116137      p_application_id         => p_application_id
116138    , p_ae_header_id           => l_ae_header_id 
116139 , p_source_1 => p_source_1
116140    )
116141 );
116142 
116143 
116144    --
116145    -- call ADRs
116146    -- Bug 4922099
116147    --
116148    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116149         (NVL(l_actual_upg_option, 'N') = 'O') OR
116150         (NVL(l_enc_upg_option, 'N') = 'O')
116151       )
116152    THEN
116153    NULL;
116154    --
116155    --
116156    
116157   l_ccid := AcctDerRule_42(
116158            p_application_id           => p_application_id
116159          , p_ae_header_id             => l_ae_header_id 
116160 , p_source_10 => p_source_10
116161 , p_source_10_meaning => p_source_10_meaning
116162 , p_source_25 => p_source_25
116163 , p_source_38 => p_source_38
116164          , x_transaction_coa_id       => l_adr_transaction_coa_id
116165          , x_accounting_coa_id        => l_adr_accounting_coa_id
116166          , x_value_type_code          => l_adr_value_type_code
116167          , p_side                     => 'NA'
116168    );
116169 
116170    xla_ae_lines_pkg.set_ccid(
116171     p_code_combination_id          => l_ccid
116172   , p_value_type_code              => l_adr_value_type_code
116173   , p_transaction_coa_id           => l_adr_transaction_coa_id
116174   , p_accounting_coa_id            => l_adr_accounting_coa_id
116175   , p_adr_code                     => 'AP_RETAINAGE'
116176   , p_adr_type_code                => 'S'
116177   , p_component_type               => l_component_type
116178   , p_component_code               => l_component_code
116179   , p_component_type_code          => l_component_type_code
116180   , p_component_appl_id            => l_component_appl_id
116181   , p_amb_context_code             => l_amb_context_code
116182   , p_side                         => 'NA'
116183   );
116184 
116185 
116186    l_segment := AcctDerRule_19(
116187            p_application_id           => p_application_id
116188          , p_ae_header_id             => l_ae_header_id 
116189 , p_source_35 => p_source_35
116193          , x_flex_value_set_id        => l_adr_flex_value_set_id
116190          , x_transaction_coa_id       => l_adr_transaction_coa_id
116191          , x_accounting_coa_id        => l_adr_accounting_coa_id
116192          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116194          , x_value_type_code          => l_adr_value_type_code
116195          , x_value_combination_id     => l_adr_value_combination_id
116196          , x_value_segment_code       => l_adr_value_segment_code
116197          , p_side                     => 'NA'
116198          , p_override_seg_flag        => 'Y'
116199    );
116200 
116201    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116202 
116203       xla_ae_lines_pkg.set_segment(
116204           p_to_segment_code         => 'GL_ACCOUNT'
116205         , p_segment_value           => l_segment
116206         , p_from_segment_code       => l_adr_value_segment_code
116207         , p_from_combination_id     => l_adr_value_combination_id
116208         , p_value_type_code         => l_adr_value_type_code
116209         , p_transaction_coa_id      => l_adr_transaction_coa_id
116210         , p_accounting_coa_id       => l_adr_accounting_coa_id
116211         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116212         , p_flex_value_set_id       => l_adr_flex_value_set_id
116213         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
116214         , p_adr_type_code           => 'S'
116215         , p_component_type          => l_component_type
116216         , p_component_code          => l_component_code
116217         , p_component_type_code     => l_component_type_code
116218         , p_component_appl_id       => l_component_appl_id
116219         , p_amb_context_code        => l_amb_context_code
116220         , p_entity_code             => 'AP_INVOICES'
116221         , p_event_class_code        => 'CREDIT MEMOS'
116222         , p_side                    => 'NA'
116223         );
116224 
116225   END IF;
116226 
116227    l_segment := AcctDerRule_25(
116228            p_application_id           => p_application_id
116229          , p_ae_header_id             => l_ae_header_id 
116230 , p_source_10 => p_source_10
116231 , p_source_10_meaning => p_source_10_meaning
116232 , p_source_38 => p_source_38
116233          , x_transaction_coa_id       => l_adr_transaction_coa_id
116234          , x_accounting_coa_id        => l_adr_accounting_coa_id
116235          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116236          , x_flex_value_set_id        => l_adr_flex_value_set_id
116237          , x_value_type_code          => l_adr_value_type_code
116238          , x_value_combination_id     => l_adr_value_combination_id
116239          , x_value_segment_code       => l_adr_value_segment_code
116240          , p_side                     => 'NA'
116241          , p_override_seg_flag        => 'Y'
116242    );
116243 
116244    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116245 
116246       xla_ae_lines_pkg.set_segment(
116247           p_to_segment_code         => 'GL_BALANCING'
116248         , p_segment_value           => l_segment
116249         , p_from_segment_code       => l_adr_value_segment_code
116250         , p_from_combination_id     => l_adr_value_combination_id
116251         , p_value_type_code         => l_adr_value_type_code
116252         , p_transaction_coa_id      => l_adr_transaction_coa_id
116253         , p_accounting_coa_id       => l_adr_accounting_coa_id
116254         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116255         , p_flex_value_set_id       => l_adr_flex_value_set_id
116256         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
116257         , p_adr_type_code           => 'S'
116258         , p_component_type          => l_component_type
116259         , p_component_code          => l_component_code
116260         , p_component_type_code     => l_component_type_code
116261         , p_component_appl_id       => l_component_appl_id
116262         , p_amb_context_code        => l_amb_context_code
116263         , p_entity_code             => 'AP_INVOICES'
116264         , p_event_class_code        => 'CREDIT MEMOS'
116265         , p_side                    => 'NA'
116266         );
116267 
116268   END IF;
116269 
116270    --
116271    --
116272    END IF;
116273    --
116274    -- Bug 4922099
116275    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116276           (NVL(l_enc_upg_option, 'N') = 'O')
116277         ) AND
116278         (l_bflow_method_code = 'PRIOR_ENTRY')
116279       )
116280    THEN
116281       IF
116282       --
116283       1 = 2
116284       --
116285       THEN
116286       xla_accounting_err_pkg.build_message
116287                                     (p_appli_s_name            => 'XLA'
116288                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116289                                     ,p_token_1                 => 'LINE_NUMBER'
116290                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
116291                                     ,p_token_2                 => 'LINE_TYPE_NAME'
116292                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
116293                                                                              l_component_type
116294                                                                             ,l_component_code
116295                                                                             ,l_component_type_code
116296                                                                             ,l_component_appl_id
116300                                                                            )
116297                                                                             ,l_amb_context_code
116298                                                                             ,l_entity_code
116299                                                                             ,l_event_class_code
116301                                     ,p_token_3                 => 'OWNER'
116302                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
116303                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
116304                                                                           ,p_lookup_code    => l_component_type_code
116305                                                                          )
116306                                     ,p_token_4                 => 'PRODUCT_NAME'
116307                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116308                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116309                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116310                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116311                                     ,p_ae_header_id            =>  NULL
116312                                        );
116313 
116314         IF (C_LEVEL_ERROR>= g_log_level) THEN
116315                  trace
116316                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116317                       ,p_level    => C_LEVEL_ERROR
116318                       ,p_module   => l_log_module);
116319         END IF;
116320       END IF;
116321    END IF;
116322    --
116323    --
116324    ------------------------------------------------------------------------------------------------
116325    -- 4219869 Business Flow
116326    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116327    -- Prior Entry.  Currently, the following code is always generated.
116328    ------------------------------------------------------------------------------------------------
116329    XLA_AE_LINES_PKG.ValidateCurrentLine;
116330 
116331    ------------------------------------------------------------------------------------
116332    -- 4219869 Business Flow
116333    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116334    ------------------------------------------------------------------------------------
116335    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116336 
116337    ----------------------------------------------------------------------------------
116338    -- 4219869 Business Flow
116339    -- Update journal entry status -- Need to generate this within IF <condition>
116340    ----------------------------------------------------------------------------------
116341    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116342          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116343          ,p_balance_type_code => l_balance_type_code
116344          );
116345 
116346    -------------------------------------------------------------------------------------------
116347    -- 4262811 - Generate the Accrual Reversal lines
116348    -------------------------------------------------------------------------------------------
116349    BEGIN
116350       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116351                               (g_array_event(p_event_id).array_value_num('header_index'));
116352       IF l_acc_rev_flag IS NULL THEN
116353          l_acc_rev_flag := 'N';
116354       END IF;
116355    EXCEPTION
116356       WHEN OTHERS THEN
116357          l_acc_rev_flag := 'N';
116358    END;
116359    --
116360    IF (l_acc_rev_flag = 'Y') THEN
116361 
116362        -- 4645092  ------------------------------------------------------------------------------
116363        -- To allow MPA report to determine if it should generate report process
116364        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116365        ------------------------------------------------------------------------------------------
116366 
116367        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116368        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116369    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116370    -- call ADRs
116371    -- Bug 4922099
116372    --
116373    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116374         (NVL(l_actual_upg_option, 'N') = 'O') OR
116375         (NVL(l_enc_upg_option, 'N') = 'O')
116376       )
116377    THEN
116378    NULL;
116379    --
116380    --
116381    
116382   l_ccid := AcctDerRule_42(
116383            p_application_id           => p_application_id
116384          , p_ae_header_id             => l_ae_header_id 
116385 , p_source_10 => p_source_10
116386 , p_source_10_meaning => p_source_10_meaning
116387 , p_source_25 => p_source_25
116388 , p_source_38 => p_source_38
116389          , x_transaction_coa_id       => l_adr_transaction_coa_id
116390          , x_accounting_coa_id        => l_adr_accounting_coa_id
116391          , x_value_type_code          => l_adr_value_type_code
116392          , p_side                     => 'NA'
116393    );
116394 
116395    xla_ae_lines_pkg.set_ccid(
116396     p_code_combination_id          => l_ccid
116397   , p_value_type_code              => l_adr_value_type_code
116401   , p_adr_type_code                => 'S'
116398   , p_transaction_coa_id           => l_adr_transaction_coa_id
116399   , p_accounting_coa_id            => l_adr_accounting_coa_id
116400   , p_adr_code                     => 'AP_RETAINAGE'
116402   , p_component_type               => l_component_type
116403   , p_component_code               => l_component_code
116404   , p_component_type_code          => l_component_type_code
116405   , p_component_appl_id            => l_component_appl_id
116406   , p_amb_context_code             => l_amb_context_code
116407   , p_side                         => 'NA'
116408   );
116409 
116410 
116411    l_segment := AcctDerRule_19(
116412            p_application_id           => p_application_id
116413          , p_ae_header_id             => l_ae_header_id 
116414 , p_source_35 => p_source_35
116415          , x_transaction_coa_id       => l_adr_transaction_coa_id
116416          , x_accounting_coa_id        => l_adr_accounting_coa_id
116417          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116418          , x_flex_value_set_id        => l_adr_flex_value_set_id
116419          , x_value_type_code          => l_adr_value_type_code
116420          , x_value_combination_id     => l_adr_value_combination_id
116421          , x_value_segment_code       => l_adr_value_segment_code
116422          , p_side                     => 'NA'
116423          , p_override_seg_flag        => 'Y'
116424    );
116425 
116426    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116427 
116428       xla_ae_lines_pkg.set_segment(
116429           p_to_segment_code         => 'GL_ACCOUNT'
116430         , p_segment_value           => l_segment
116431         , p_from_segment_code       => l_adr_value_segment_code
116432         , p_from_combination_id     => l_adr_value_combination_id
116433         , p_value_type_code         => l_adr_value_type_code
116434         , p_transaction_coa_id      => l_adr_transaction_coa_id
116435         , p_accounting_coa_id       => l_adr_accounting_coa_id
116436         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116437         , p_flex_value_set_id       => l_adr_flex_value_set_id
116438         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
116439         , p_adr_type_code           => 'S'
116440         , p_component_type          => l_component_type
116441         , p_component_code          => l_component_code
116442         , p_component_type_code     => l_component_type_code
116443         , p_component_appl_id       => l_component_appl_id
116444         , p_amb_context_code        => l_amb_context_code
116445         , p_entity_code             => 'AP_INVOICES'
116446         , p_event_class_code        => 'CREDIT MEMOS'
116447         , p_side                    => 'NA'
116448         );
116449 
116450   END IF;
116451 
116452    l_segment := AcctDerRule_25(
116453            p_application_id           => p_application_id
116454          , p_ae_header_id             => l_ae_header_id 
116455 , p_source_10 => p_source_10
116456 , p_source_10_meaning => p_source_10_meaning
116457 , p_source_38 => p_source_38
116458          , x_transaction_coa_id       => l_adr_transaction_coa_id
116459          , x_accounting_coa_id        => l_adr_accounting_coa_id
116460          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116461          , x_flex_value_set_id        => l_adr_flex_value_set_id
116462          , x_value_type_code          => l_adr_value_type_code
116463          , x_value_combination_id     => l_adr_value_combination_id
116464          , x_value_segment_code       => l_adr_value_segment_code
116465          , p_side                     => 'NA'
116466          , p_override_seg_flag        => 'Y'
116467    );
116468 
116469    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116470 
116471       xla_ae_lines_pkg.set_segment(
116472           p_to_segment_code         => 'GL_BALANCING'
116473         , p_segment_value           => l_segment
116474         , p_from_segment_code       => l_adr_value_segment_code
116475         , p_from_combination_id     => l_adr_value_combination_id
116476         , p_value_type_code         => l_adr_value_type_code
116477         , p_transaction_coa_id      => l_adr_transaction_coa_id
116478         , p_accounting_coa_id       => l_adr_accounting_coa_id
116479         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116480         , p_flex_value_set_id       => l_adr_flex_value_set_id
116481         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
116482         , p_adr_type_code           => 'S'
116483         , p_component_type          => l_component_type
116484         , p_component_code          => l_component_code
116485         , p_component_type_code     => l_component_type_code
116486         , p_component_appl_id       => l_component_appl_id
116487         , p_amb_context_code        => l_amb_context_code
116488         , p_entity_code             => 'AP_INVOICES'
116489         , p_event_class_code        => 'CREDIT MEMOS'
116490         , p_side                    => 'NA'
116491         );
116492 
116493   END IF;
116494 
116495    --
116496    --
116497    END IF;
116498 
116499        --
116500        -- Update the line information that should be overwritten
116501        --
116502        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116503                                          p_header_num   => 1);
116504        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116505 
116509           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116506        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116507 
116508        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116510        END IF;
116511 
116512       --
116513       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116514       --
116515       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116516           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116517       ELSE
116518           ---------------------------------------------------------------------------------------------------
116519           -- 4262811a Switch Sign
116520           ---------------------------------------------------------------------------------------------------
116521           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116522           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116523                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116524           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116525                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116526           -- 5132302
116527           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116528                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116529 
116530       END IF;
116531 
116532       -- 4955764
116533       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116534       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116535 
116536 
116537       XLA_AE_LINES_PKG.ValidateCurrentLine;
116538       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116539 
116540       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116541                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116542                ,p_balance_type_code => l_balance_type_code);
116543 
116544    END IF;
116545 
116546    -----------------------------------------------------------------------------------------
116547    -- 4262811 Multiperiod Accounting
116548    -----------------------------------------------------------------------------------------
116549      -- No MPA option is assigned.
116550 
116551 
116552 END IF;
116553 END IF;
116554 --
116555 
116556 --
116557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116558    trace
116559       (p_msg      => 'END of AcctLineType_201'
116560       ,p_level    => C_LEVEL_PROCEDURE
116561       ,p_module   => l_log_module);
116562 END IF;
116563 --
116564 EXCEPTION
116565   WHEN xla_exceptions_pkg.application_exception THEN
116566       RAISE;
116567   WHEN OTHERS THEN
116568        xla_exceptions_pkg.raise_message
116569            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_201');
116570 END AcctLineType_201;
116571 --
116572 
116573 ---------------------------------------
116574 --
116575 -- PRIVATE FUNCTION
116576 --         AcctLineType_202
116577 --
116578 ---------------------------------------
116579 PROCEDURE AcctLineType_202 (
116580   p_application_id        IN NUMBER
116581  ,p_event_id              IN NUMBER
116582  ,p_calculate_acctd_flag  IN VARCHAR2
116583  ,p_calculate_g_l_flag    IN VARCHAR2
116584  ,p_actual_flag           IN OUT VARCHAR2
116585  ,p_balance_type_code     OUT VARCHAR2
116586  ,p_gain_or_loss_ref      OUT VARCHAR2
116587  
116588 --Invoice Distribution Description
116589  , p_source_1            IN VARCHAR2
116590 --Automatic Offsets Value
116591  , p_source_10            IN VARCHAR2
116592  , p_source_10_meaning    IN VARCHAR2
116593 --Invoice Distribution Ledger Amount
116594  , p_source_16            IN NUMBER
116595 --Invoice Distribution Account
116596  , p_source_25            IN NUMBER
116597 --Invoice Distribution Type
116598  , p_source_28            IN VARCHAR2
116599  , p_source_28_meaning    IN VARCHAR2
116600 --Retainage Account
116601  , p_source_35            IN NUMBER
116602 --Retainage Related Item Distribution Account
116603  , p_source_38            IN NUMBER
116604 --Accounting Reversal Indicator
116605  , p_source_58            IN VARCHAR2
116606 --Distribution Link Type
116607  , p_source_60            IN VARCHAR2
116608 --Allocation to Main Distribution Identifier
116609  , p_source_62            IN NUMBER
116610 --Invoice Identifier
116611  , p_source_63            IN NUMBER
116612 --Invoice Distribution Identifier
116613  , p_source_69            IN NUMBER
116614 --Payables Encumbrance Upgrade Credit Account
116615  , p_source_70            IN NUMBER
116616 --Payables Encumbrance Upgrade Credit Amount
116617  , p_source_71            IN NUMBER
116618 --Invoice Currency Code
116619  , p_source_72            IN VARCHAR2
116620 --Payables Encumbrance Upgrade Credit Base Amount
116621  , p_source_73            IN NUMBER
116622 --Payables Encumbrance Upgrade Debit Account
116623  , p_source_74            IN NUMBER
116624 --Payables Encumbrance Upgrade Debit Amount
116625  , p_source_75            IN NUMBER
116626 --Payables Encumbrance Upgrade Debit Base Amount
116627  , p_source_76            IN NUMBER
116631  , p_source_78            IN NUMBER
116628 --Payables Encumbrance Upgrade Option
116629  , p_source_77            IN VARCHAR2
116630 --Invoice Distribution Amount
116632 --Deferred Accounting End Date
116633  , p_source_82            IN DATE
116634 --Deferred Accounting Option
116635  , p_source_83            IN VARCHAR2
116636 --Deferred Accounting Start Date
116637  , p_source_84            IN DATE
116638 --Override Accounted Amount Indicator
116639  , p_source_85            IN VARCHAR2
116640  , p_source_85_meaning    IN VARCHAR2
116641 --Invoice Supplier Identifier
116642  , p_source_86            IN NUMBER
116643 --Invoice Supplier Site Identifier
116644  , p_source_87            IN NUMBER
116645 --Third Party Type
116646  , p_source_88            IN VARCHAR2
116647 --Parent Reversal Identifier
116648  , p_source_89            IN NUMBER
116649 --Invoice Distribution Tax Line Identifier
116650  , p_source_91            IN NUMBER
116651 --Invoice Distribution Tax Distribution Identifier from Tax
116652  , p_source_92            IN NUMBER
116653 --Invoice Distribution Summary Tax Line Identifier
116654  , p_source_93            IN NUMBER
116655 --Payables Upgrade Credit Encumbrance Type Identifier
116656  , p_source_94            IN NUMBER
116657 --Payables Upgrade Debit Encumbrance Type Identifier
116658  , p_source_95            IN NUMBER
116659 --Business Flow Accounts Payable Application Identifier
116660  , p_source_96            IN NUMBER
116661 --Business Flow Invoice Distribution Type
116662  , p_source_97            IN VARCHAR2
116663 --Business Flow Invoice Entity Code
116664  , p_source_98            IN VARCHAR2
116665 --Business Flow Invoice Distribution Identifier
116666  , p_source_99            IN NUMBER
116667 --Business Flow Invoice Identifier
116668  , p_source_100            IN NUMBER
116669 --Invoice Exchange Date
116670  , p_source_146            IN DATE
116671 --Invoice Exchange Rate
116672  , p_source_147            IN NUMBER
116673 --Invoice Exchange Rate Type
116674  , p_source_148            IN VARCHAR2
116675 )
116676 IS
116677 
116678 l_component_type              VARCHAR2(80);
116679 l_component_code              VARCHAR2(30);
116680 l_component_type_code         VARCHAR2(1);
116681 l_component_appl_id           INTEGER;
116682 l_amb_context_code            VARCHAR2(30);
116683 l_entity_code                 VARCHAR2(30);
116684 l_event_class_code            VARCHAR2(30);
116685 l_ae_header_id                NUMBER;
116686 l_event_type_code             VARCHAR2(30);
116687 l_line_definition_code        VARCHAR2(30);
116688 l_line_definition_owner_code  VARCHAR2(1);
116689 --
116690 -- adr variables
116691 l_segment                     VARCHAR2(30);
116692 l_ccid                        NUMBER;
116693 l_adr_transaction_coa_id      NUMBER;
116694 l_adr_accounting_coa_id       NUMBER;
116695 l_adr_flexfield_segment_code  VARCHAR2(30);
116696 l_adr_flex_value_set_id       NUMBER;
116697 l_adr_value_type_code         VARCHAR2(30);
116698 l_adr_value_combination_id    NUMBER;
116699 l_adr_value_segment_code      VARCHAR2(30);
116700 
116701 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116702 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116703 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116704 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116705 
116706 -- 4262811 Variables ------------------------------------------------------------------------------------------
116707 l_entered_amt_idx             NUMBER;
116708 l_accted_amt_idx              NUMBER;
116709 l_acc_rev_flag                VARCHAR2(1);
116710 l_accrual_line_num            NUMBER;
116711 l_tmp_amt                     NUMBER;
116712 l_acc_rev_natural_side_code   VARCHAR2(1);
116713 
116714 l_num_entries                 NUMBER;
116715 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116716 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116717 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116718 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116719 l_recog_line_1                NUMBER;
116720 l_recog_line_2                NUMBER;
116721 
116722 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116723 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116724 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116725 
116726 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116727 
116728 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116729 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116730 
116731 ---------------------------------------------------------------------------------------------------------------
116732 
116733 
116734 --
116735 -- bulk performance
116736 --
116737 l_balance_type_code           VARCHAR2(1);
116738 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116739 l_log_module                  VARCHAR2(240);
116740 
116741 --
116742 -- Upgrade strategy
116743 --
116744 l_actual_upg_option           VARCHAR2(1);
116745 l_enc_upg_option           VARCHAR2(1);
116746 
116747 --
116748 BEGIN
116749 --
116750 IF g_log_enabled THEN
116751       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_202';
116752 END IF;
116753 --
116754 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116755 
116756       trace
116757          (p_msg      => 'BEGIN of AcctLineType_202'
116761 END IF;
116758          ,p_level    => C_LEVEL_PROCEDURE
116759          ,p_module   => l_log_module);
116760 
116762 --
116763 l_component_type             := 'AMB_JLT';
116764 l_component_code             := 'AP_RETAINAGE_ACC_DM';
116765 l_component_type_code        := 'S';
116766 l_component_appl_id          :=  200;
116767 l_amb_context_code           := 'DEFAULT';
116768 l_entity_code                := 'AP_INVOICES';
116769 l_event_class_code           := 'DEBIT MEMOS';
116770 l_event_type_code            := 'DEBIT MEMOS_ALL';
116771 l_line_definition_owner_code := 'S';
116772 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
116773 --
116774 l_balance_type_code          := 'A';
116775 l_segment                     := NULL;
116776 l_ccid                        := NULL;
116777 l_adr_transaction_coa_id      := NULL;
116778 l_adr_accounting_coa_id       := NULL;
116779 l_adr_flexfield_segment_code  := NULL;
116780 l_adr_flex_value_set_id       := NULL;
116781 l_adr_value_type_code         := NULL;
116782 l_adr_value_combination_id    := NULL;
116783 l_adr_value_segment_code      := NULL;
116784 
116785 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
116786 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
116787 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
116788 l_budgetary_control_flag     := 'N';
116789 
116790 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
116791 l_bflow_applied_to_amt       := NULL; -- 5132302
116792 l_entered_amt_idx            := NULL;          -- 4262811
116793 l_accted_amt_idx             := NULL;          -- 4262811
116794 l_acc_rev_flag               := NULL;          -- 4262811
116795 l_accrual_line_num           := NULL;          -- 4262811
116796 l_tmp_amt                    := NULL;          -- 4262811
116797 --
116798  
116799 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116800     l_balance_type_code <> 'B' THEN
116801 IF NVL(p_source_28,'
116802 ') =  'RETAINAGE'
116803  THEN 
116804 
116805    --
116806    XLA_AE_LINES_PKG.SetNewLine;
116807 
116808    p_balance_type_code          := l_balance_type_code;
116809    -- set the flag so later we will know whether the gain loss line needs to be created
116810    
116811    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116812      p_actual_flag :='A';
116813    END IF;
116814 
116815    --
116816    -- bulk performance
116817    --
116818    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116819                                       p_header_num   => 0); -- 4262811
116820    --
116821    -- set accounting line options
116822    --
116823    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116824            p_natural_side_code          => 'D'
116825          , p_gain_or_loss_flag          => 'N'
116826          , p_gl_transfer_mode_code      => 'S'
116827          , p_acct_entry_type_code       => 'A'
116828          , p_switch_side_flag           => 'Y'
116829          , p_merge_duplicate_code       => 'A'
116830          );
116831    --
116832    l_acc_rev_natural_side_code := 'C';  -- 4262811
116833    -- 
116834    --
116835    -- set accounting line type info
116836    --
116837    xla_ae_lines_pkg.SetAcctLineType
116838       (p_component_type             => l_component_type
116839       ,p_event_type_code            => l_event_type_code
116840       ,p_line_definition_owner_code => l_line_definition_owner_code
116841       ,p_line_definition_code       => l_line_definition_code
116842       ,p_accounting_line_code       => l_component_code
116843       ,p_accounting_line_type_code  => l_component_type_code
116844       ,p_accounting_line_appl_id    => l_component_appl_id
116845       ,p_amb_context_code           => l_amb_context_code
116846       ,p_entity_code                => l_entity_code
116847       ,p_event_class_code           => l_event_class_code);
116848    --
116849    -- set accounting class
116850    --
116851    xla_ae_lines_pkg.SetAcctClass(
116852            p_accounting_class_code  => 'RETAINAGE'
116853          , p_ae_header_id           => l_ae_header_id
116854          );
116855 
116856    --
116857    -- set rounding class
116858    --
116859    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116860                       'RETAINAGE';
116861 
116862    --
116863    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116864    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116865    --
116866    -- bulk performance
116867    --
116868    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116869 
116870    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116871       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116872 
116873    -- 4955764
116874    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116875       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116876 
116877    -- 4458381 Public Sector Enh
116878    
116879    --
116880    -- set accounting attributes for the line type
116881    --
116882    l_entered_amt_idx := 23;
116883    l_accted_amt_idx  := 28;
116884    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
116885    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116889 xla_ae_sources_pkg.GetSystemSourceNum(
116886    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
116887    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116888    l_rec_acct_attrs.array_num_value(2)  := 
116890    p_source_code           => 'XLA_EVENT_APPL_ID'
116891  , p_source_type_code      => 'Y'
116892  , p_source_application_id =>  602
116893 );
116894    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116895    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
116896    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116897    l_rec_acct_attrs.array_char_value(4)  := 
116898 xla_ae_sources_pkg.GetSystemSourceChar(
116899    p_source_code           => 'XLA_ENTITY_CODE'
116900  , p_source_type_code      => 'Y'
116901  , p_source_application_id =>  602
116902 );
116903    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116904    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
116905    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116906    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
116907    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
116908    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
116909    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116910    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
116911    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
116912    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
116913    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
116914    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
116915    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116916    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
116917    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
116918    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
116919    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
116920    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
116921    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
116922    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
116923    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
116924    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
116925    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
116926    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
116927    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
116928    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
116929    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
116930    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
116931    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
116932    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
116933    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
116934    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
116935    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
116936    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
116937    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
116938    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
116939    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
116940    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
116941    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
116942    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
116943    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
116944    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
116945    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
116946    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
116947    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
116948    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
116949    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
116950    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
116951    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
116952    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
116953    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
116954    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
116955    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
116956    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
116957    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
116958    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
116959    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
116960    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
116961    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
116962    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
116963    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
116964    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
116965    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
116966    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
116967    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
116968    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
116969    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
116970    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
116971    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
116975    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
116972    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
116973    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
116974    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
116976    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
116977    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
116978    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
116979 
116980    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116981    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116982 
116983    ---------------------------------------------------------------------------------------------------------------
116984    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116985    ---------------------------------------------------------------------------------------------------------------
116986    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116987 
116988    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116989    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116990 
116991    IF xla_accounting_cache_pkg.GetValueChar
116992          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116993          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116994    AND l_bflow_method_code = 'PRIOR_ENTRY'
116995 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116996    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116997          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116998        )
116999    THEN
117000          xla_ae_lines_pkg.BflowUpgEntry
117001            (p_business_method_code    => l_bflow_method_code
117002            ,p_business_class_code     => l_bflow_class_code
117003            ,p_balance_type            => l_balance_type_code);
117004    ELSE
117005       NULL;
117006 -- No business flow processing for business flow method of NONE.
117007    END IF;
117008 
117009    --
117010    -- call analytical criteria
117011    --
117012    
117013    --
117014    -- call description
117015    --
117016    
117017 xla_ae_lines_pkg.SetLineDescription(
117018    p_ae_header_id => l_ae_header_id
117019   ,p_description  => Description_2 (
117020      p_application_id         => p_application_id
117021    , p_ae_header_id           => l_ae_header_id 
117022 , p_source_1 => p_source_1
117023    )
117024 );
117025 
117026 
117027    --
117028    -- call ADRs
117029    -- Bug 4922099
117030    --
117031    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117032         (NVL(l_actual_upg_option, 'N') = 'O') OR
117033         (NVL(l_enc_upg_option, 'N') = 'O')
117034       )
117035    THEN
117036    NULL;
117037    --
117038    --
117039    
117040   l_ccid := AcctDerRule_42(
117041            p_application_id           => p_application_id
117042          , p_ae_header_id             => l_ae_header_id 
117043 , p_source_10 => p_source_10
117044 , p_source_10_meaning => p_source_10_meaning
117045 , p_source_25 => p_source_25
117046 , p_source_38 => p_source_38
117047          , x_transaction_coa_id       => l_adr_transaction_coa_id
117048          , x_accounting_coa_id        => l_adr_accounting_coa_id
117049          , x_value_type_code          => l_adr_value_type_code
117050          , p_side                     => 'NA'
117051    );
117052 
117053    xla_ae_lines_pkg.set_ccid(
117054     p_code_combination_id          => l_ccid
117055   , p_value_type_code              => l_adr_value_type_code
117056   , p_transaction_coa_id           => l_adr_transaction_coa_id
117057   , p_accounting_coa_id            => l_adr_accounting_coa_id
117058   , p_adr_code                     => 'AP_RETAINAGE'
117059   , p_adr_type_code                => 'S'
117060   , p_component_type               => l_component_type
117061   , p_component_code               => l_component_code
117062   , p_component_type_code          => l_component_type_code
117063   , p_component_appl_id            => l_component_appl_id
117064   , p_amb_context_code             => l_amb_context_code
117065   , p_side                         => 'NA'
117066   );
117067 
117068 
117069    l_segment := AcctDerRule_19(
117070            p_application_id           => p_application_id
117071          , p_ae_header_id             => l_ae_header_id 
117072 , p_source_35 => p_source_35
117073          , x_transaction_coa_id       => l_adr_transaction_coa_id
117074          , x_accounting_coa_id        => l_adr_accounting_coa_id
117075          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117076          , x_flex_value_set_id        => l_adr_flex_value_set_id
117077          , x_value_type_code          => l_adr_value_type_code
117078          , x_value_combination_id     => l_adr_value_combination_id
117079          , x_value_segment_code       => l_adr_value_segment_code
117080          , p_side                     => 'NA'
117081          , p_override_seg_flag        => 'Y'
117082    );
117083 
117084    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117085 
117086       xla_ae_lines_pkg.set_segment(
117087           p_to_segment_code         => 'GL_ACCOUNT'
117088         , p_segment_value           => l_segment
117089         , p_from_segment_code       => l_adr_value_segment_code
117093         , p_accounting_coa_id       => l_adr_accounting_coa_id
117090         , p_from_combination_id     => l_adr_value_combination_id
117091         , p_value_type_code         => l_adr_value_type_code
117092         , p_transaction_coa_id      => l_adr_transaction_coa_id
117094         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117095         , p_flex_value_set_id       => l_adr_flex_value_set_id
117096         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
117097         , p_adr_type_code           => 'S'
117098         , p_component_type          => l_component_type
117099         , p_component_code          => l_component_code
117100         , p_component_type_code     => l_component_type_code
117101         , p_component_appl_id       => l_component_appl_id
117102         , p_amb_context_code        => l_amb_context_code
117103         , p_entity_code             => 'AP_INVOICES'
117104         , p_event_class_code        => 'DEBIT MEMOS'
117105         , p_side                    => 'NA'
117106         );
117107 
117108   END IF;
117109 
117110    l_segment := AcctDerRule_25(
117111            p_application_id           => p_application_id
117112          , p_ae_header_id             => l_ae_header_id 
117113 , p_source_10 => p_source_10
117114 , p_source_10_meaning => p_source_10_meaning
117115 , p_source_38 => p_source_38
117116          , x_transaction_coa_id       => l_adr_transaction_coa_id
117117          , x_accounting_coa_id        => l_adr_accounting_coa_id
117118          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117119          , x_flex_value_set_id        => l_adr_flex_value_set_id
117120          , x_value_type_code          => l_adr_value_type_code
117121          , x_value_combination_id     => l_adr_value_combination_id
117122          , x_value_segment_code       => l_adr_value_segment_code
117123          , p_side                     => 'NA'
117124          , p_override_seg_flag        => 'Y'
117125    );
117126 
117127    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117128 
117129       xla_ae_lines_pkg.set_segment(
117130           p_to_segment_code         => 'GL_BALANCING'
117131         , p_segment_value           => l_segment
117132         , p_from_segment_code       => l_adr_value_segment_code
117133         , p_from_combination_id     => l_adr_value_combination_id
117134         , p_value_type_code         => l_adr_value_type_code
117135         , p_transaction_coa_id      => l_adr_transaction_coa_id
117136         , p_accounting_coa_id       => l_adr_accounting_coa_id
117137         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117138         , p_flex_value_set_id       => l_adr_flex_value_set_id
117139         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
117140         , p_adr_type_code           => 'S'
117141         , p_component_type          => l_component_type
117142         , p_component_code          => l_component_code
117143         , p_component_type_code     => l_component_type_code
117144         , p_component_appl_id       => l_component_appl_id
117145         , p_amb_context_code        => l_amb_context_code
117146         , p_entity_code             => 'AP_INVOICES'
117147         , p_event_class_code        => 'DEBIT MEMOS'
117148         , p_side                    => 'NA'
117149         );
117150 
117151   END IF;
117152 
117153    --
117154    --
117155    END IF;
117156    --
117157    -- Bug 4922099
117158    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117159           (NVL(l_enc_upg_option, 'N') = 'O')
117160         ) AND
117161         (l_bflow_method_code = 'PRIOR_ENTRY')
117162       )
117163    THEN
117164       IF
117165       --
117166       1 = 2
117167       --
117168       THEN
117169       xla_accounting_err_pkg.build_message
117170                                     (p_appli_s_name            => 'XLA'
117171                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117172                                     ,p_token_1                 => 'LINE_NUMBER'
117173                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117174                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117175                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117176                                                                              l_component_type
117177                                                                             ,l_component_code
117178                                                                             ,l_component_type_code
117179                                                                             ,l_component_appl_id
117180                                                                             ,l_amb_context_code
117181                                                                             ,l_entity_code
117182                                                                             ,l_event_class_code
117183                                                                            )
117184                                     ,p_token_3                 => 'OWNER'
117185                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117186                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117187                                                                           ,p_lookup_code    => l_component_type_code
117188                                                                          )
117189                                     ,p_token_4                 => 'PRODUCT_NAME'
117193                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117190                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117191                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117192                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117194                                     ,p_ae_header_id            =>  NULL
117195                                        );
117196 
117197         IF (C_LEVEL_ERROR>= g_log_level) THEN
117198                  trace
117199                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117200                       ,p_level    => C_LEVEL_ERROR
117201                       ,p_module   => l_log_module);
117202         END IF;
117203       END IF;
117204    END IF;
117205    --
117206    --
117207    ------------------------------------------------------------------------------------------------
117208    -- 4219869 Business Flow
117209    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117210    -- Prior Entry.  Currently, the following code is always generated.
117211    ------------------------------------------------------------------------------------------------
117212    XLA_AE_LINES_PKG.ValidateCurrentLine;
117213 
117214    ------------------------------------------------------------------------------------
117215    -- 4219869 Business Flow
117216    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117217    ------------------------------------------------------------------------------------
117218    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117219 
117220    ----------------------------------------------------------------------------------
117221    -- 4219869 Business Flow
117222    -- Update journal entry status -- Need to generate this within IF <condition>
117223    ----------------------------------------------------------------------------------
117224    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117225          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117226          ,p_balance_type_code => l_balance_type_code
117227          );
117228 
117229    -------------------------------------------------------------------------------------------
117230    -- 4262811 - Generate the Accrual Reversal lines
117231    -------------------------------------------------------------------------------------------
117232    BEGIN
117233       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117234                               (g_array_event(p_event_id).array_value_num('header_index'));
117235       IF l_acc_rev_flag IS NULL THEN
117236          l_acc_rev_flag := 'N';
117237       END IF;
117238    EXCEPTION
117239       WHEN OTHERS THEN
117240          l_acc_rev_flag := 'N';
117241    END;
117242    --
117243    IF (l_acc_rev_flag = 'Y') THEN
117244 
117245        -- 4645092  ------------------------------------------------------------------------------
117246        -- To allow MPA report to determine if it should generate report process
117247        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117248        ------------------------------------------------------------------------------------------
117249 
117250        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117251        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117252    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
117253    -- call ADRs
117254    -- Bug 4922099
117255    --
117256    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117257         (NVL(l_actual_upg_option, 'N') = 'O') OR
117258         (NVL(l_enc_upg_option, 'N') = 'O')
117259       )
117260    THEN
117261    NULL;
117262    --
117263    --
117264    
117265   l_ccid := AcctDerRule_42(
117266            p_application_id           => p_application_id
117267          , p_ae_header_id             => l_ae_header_id 
117268 , p_source_10 => p_source_10
117269 , p_source_10_meaning => p_source_10_meaning
117270 , p_source_25 => p_source_25
117271 , p_source_38 => p_source_38
117272          , x_transaction_coa_id       => l_adr_transaction_coa_id
117273          , x_accounting_coa_id        => l_adr_accounting_coa_id
117274          , x_value_type_code          => l_adr_value_type_code
117275          , p_side                     => 'NA'
117276    );
117277 
117278    xla_ae_lines_pkg.set_ccid(
117279     p_code_combination_id          => l_ccid
117280   , p_value_type_code              => l_adr_value_type_code
117281   , p_transaction_coa_id           => l_adr_transaction_coa_id
117282   , p_accounting_coa_id            => l_adr_accounting_coa_id
117283   , p_adr_code                     => 'AP_RETAINAGE'
117284   , p_adr_type_code                => 'S'
117285   , p_component_type               => l_component_type
117286   , p_component_code               => l_component_code
117287   , p_component_type_code          => l_component_type_code
117288   , p_component_appl_id            => l_component_appl_id
117289   , p_amb_context_code             => l_amb_context_code
117290   , p_side                         => 'NA'
117291   );
117292 
117293 
117294    l_segment := AcctDerRule_19(
117295            p_application_id           => p_application_id
117296          , p_ae_header_id             => l_ae_header_id 
117297 , p_source_35 => p_source_35
117298          , x_transaction_coa_id       => l_adr_transaction_coa_id
117299          , x_accounting_coa_id        => l_adr_accounting_coa_id
117303          , x_value_combination_id     => l_adr_value_combination_id
117300          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117301          , x_flex_value_set_id        => l_adr_flex_value_set_id
117302          , x_value_type_code          => l_adr_value_type_code
117304          , x_value_segment_code       => l_adr_value_segment_code
117305          , p_side                     => 'NA'
117306          , p_override_seg_flag        => 'Y'
117307    );
117308 
117309    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117310 
117311       xla_ae_lines_pkg.set_segment(
117312           p_to_segment_code         => 'GL_ACCOUNT'
117313         , p_segment_value           => l_segment
117314         , p_from_segment_code       => l_adr_value_segment_code
117315         , p_from_combination_id     => l_adr_value_combination_id
117316         , p_value_type_code         => l_adr_value_type_code
117317         , p_transaction_coa_id      => l_adr_transaction_coa_id
117318         , p_accounting_coa_id       => l_adr_accounting_coa_id
117319         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117320         , p_flex_value_set_id       => l_adr_flex_value_set_id
117321         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
117322         , p_adr_type_code           => 'S'
117323         , p_component_type          => l_component_type
117324         , p_component_code          => l_component_code
117325         , p_component_type_code     => l_component_type_code
117326         , p_component_appl_id       => l_component_appl_id
117327         , p_amb_context_code        => l_amb_context_code
117328         , p_entity_code             => 'AP_INVOICES'
117329         , p_event_class_code        => 'DEBIT MEMOS'
117330         , p_side                    => 'NA'
117331         );
117332 
117333   END IF;
117334 
117335    l_segment := AcctDerRule_25(
117336            p_application_id           => p_application_id
117337          , p_ae_header_id             => l_ae_header_id 
117338 , p_source_10 => p_source_10
117339 , p_source_10_meaning => p_source_10_meaning
117340 , p_source_38 => p_source_38
117341          , x_transaction_coa_id       => l_adr_transaction_coa_id
117342          , x_accounting_coa_id        => l_adr_accounting_coa_id
117343          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
117344          , x_flex_value_set_id        => l_adr_flex_value_set_id
117345          , x_value_type_code          => l_adr_value_type_code
117346          , x_value_combination_id     => l_adr_value_combination_id
117347          , x_value_segment_code       => l_adr_value_segment_code
117348          , p_side                     => 'NA'
117349          , p_override_seg_flag        => 'Y'
117350    );
117351 
117352    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
117353 
117354       xla_ae_lines_pkg.set_segment(
117355           p_to_segment_code         => 'GL_BALANCING'
117356         , p_segment_value           => l_segment
117357         , p_from_segment_code       => l_adr_value_segment_code
117358         , p_from_combination_id     => l_adr_value_combination_id
117359         , p_value_type_code         => l_adr_value_type_code
117360         , p_transaction_coa_id      => l_adr_transaction_coa_id
117361         , p_accounting_coa_id       => l_adr_accounting_coa_id
117362         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
117363         , p_flex_value_set_id       => l_adr_flex_value_set_id
117364         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
117365         , p_adr_type_code           => 'S'
117366         , p_component_type          => l_component_type
117367         , p_component_code          => l_component_code
117368         , p_component_type_code     => l_component_type_code
117369         , p_component_appl_id       => l_component_appl_id
117370         , p_amb_context_code        => l_amb_context_code
117371         , p_entity_code             => 'AP_INVOICES'
117372         , p_event_class_code        => 'DEBIT MEMOS'
117373         , p_side                    => 'NA'
117374         );
117375 
117376   END IF;
117377 
117378    --
117379    --
117380    END IF;
117381 
117382        --
117383        -- Update the line information that should be overwritten
117384        --
117385        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117386                                          p_header_num   => 1);
117387        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
117388 
117389        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117390 
117391        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
117392           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117393        END IF;
117394 
117395       --
117396       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117397       --
117398       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117399           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
117400       ELSE
117401           ---------------------------------------------------------------------------------------------------
117402           -- 4262811a Switch Sign
117403           ---------------------------------------------------------------------------------------------------
117404           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
117405           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117409           -- 5132302
117406                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117407           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117408                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117410           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117411                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117412 
117413       END IF;
117414 
117415       -- 4955764
117416       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117417       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117418 
117419 
117420       XLA_AE_LINES_PKG.ValidateCurrentLine;
117421       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117422 
117423       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117424                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117425                ,p_balance_type_code => l_balance_type_code);
117426 
117427    END IF;
117428 
117429    -----------------------------------------------------------------------------------------
117430    -- 4262811 Multiperiod Accounting
117431    -----------------------------------------------------------------------------------------
117432      -- No MPA option is assigned.
117433 
117434 
117435 END IF;
117436 END IF;
117437 --
117438 
117439 --
117440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117441    trace
117442       (p_msg      => 'END of AcctLineType_202'
117443       ,p_level    => C_LEVEL_PROCEDURE
117444       ,p_module   => l_log_module);
117445 END IF;
117446 --
117447 EXCEPTION
117448   WHEN xla_exceptions_pkg.application_exception THEN
117449       RAISE;
117450   WHEN OTHERS THEN
117451        xla_exceptions_pkg.raise_message
117452            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_202');
117453 END AcctLineType_202;
117454 --
117455 
117456 ---------------------------------------
117457 --
117458 -- PRIVATE FUNCTION
117459 --         AcctLineType_203
117460 --
117461 ---------------------------------------
117462 PROCEDURE AcctLineType_203 (
117463   p_application_id        IN NUMBER
117464  ,p_event_id              IN NUMBER
117465  ,p_calculate_acctd_flag  IN VARCHAR2
117466  ,p_calculate_g_l_flag    IN VARCHAR2
117467  ,p_actual_flag           IN OUT VARCHAR2
117468  ,p_balance_type_code     OUT VARCHAR2
117469  ,p_gain_or_loss_ref      OUT VARCHAR2
117470  
117471 --Invoice Distribution Description
117472  , p_source_1            IN VARCHAR2
117473 --Invoice Distribution Ledger Amount
117474  , p_source_16            IN NUMBER
117475 --Invoice Distribution Type
117476  , p_source_28            IN VARCHAR2
117477  , p_source_28_meaning    IN VARCHAR2
117478 --Accounting Reversal Indicator
117479  , p_source_58            IN VARCHAR2
117480 --Distribution Link Type
117481  , p_source_60            IN VARCHAR2
117482 --Allocation to Main Distribution Identifier
117483  , p_source_62            IN NUMBER
117484 --Invoice Identifier
117485  , p_source_63            IN NUMBER
117486 --Invoice Distribution Identifier
117487  , p_source_69            IN NUMBER
117488 --Payables Encumbrance Upgrade Credit Account
117489  , p_source_70            IN NUMBER
117490 --Payables Encumbrance Upgrade Credit Amount
117491  , p_source_71            IN NUMBER
117492 --Invoice Currency Code
117493  , p_source_72            IN VARCHAR2
117494 --Payables Encumbrance Upgrade Credit Base Amount
117495  , p_source_73            IN NUMBER
117496 --Payables Encumbrance Upgrade Debit Account
117497  , p_source_74            IN NUMBER
117498 --Payables Encumbrance Upgrade Debit Amount
117499  , p_source_75            IN NUMBER
117500 --Payables Encumbrance Upgrade Debit Base Amount
117501  , p_source_76            IN NUMBER
117502 --Payables Encumbrance Upgrade Option
117503  , p_source_77            IN VARCHAR2
117504 --Invoice Distribution Amount
117505  , p_source_78            IN NUMBER
117506 --Deferred Accounting End Date
117507  , p_source_82            IN DATE
117508 --Deferred Accounting Option
117509  , p_source_83            IN VARCHAR2
117510 --Deferred Accounting Start Date
117511  , p_source_84            IN DATE
117512 --Override Accounted Amount Indicator
117513  , p_source_85            IN VARCHAR2
117514  , p_source_85_meaning    IN VARCHAR2
117515 --Third Party Type
117516  , p_source_88            IN VARCHAR2
117517 --Parent Reversal Identifier
117518  , p_source_89            IN NUMBER
117519 --Invoice Distribution Statistical Amount
117520  , p_source_90            IN NUMBER
117521 --Invoice Distribution Tax Line Identifier
117522  , p_source_91            IN NUMBER
117523 --Invoice Distribution Tax Distribution Identifier from Tax
117524  , p_source_92            IN NUMBER
117525 --Invoice Distribution Summary Tax Line Identifier
117526  , p_source_93            IN NUMBER
117527 --Payables Upgrade Credit Encumbrance Type Identifier
117528  , p_source_94            IN NUMBER
117529 --Payables Upgrade Debit Encumbrance Type Identifier
117530  , p_source_95            IN NUMBER
117531 --Business Flow Accounts Payable Application Identifier
117532  , p_source_96            IN NUMBER
117533 --Business Flow Invoice Distribution Type
117534  , p_source_97            IN VARCHAR2
117538  , p_source_167            IN VARCHAR2
117535 --Business Flow Invoice Entity Code
117536  , p_source_98            IN VARCHAR2
117537 --Invoice Type
117539  , p_source_167_meaning    IN VARCHAR2
117540 --Business Flow Retained Invoice Distribution
117541  , p_source_168            IN NUMBER
117542 --Business Flow Retained Invoice
117543  , p_source_169            IN NUMBER
117544 )
117545 IS
117546 
117547 l_component_type              VARCHAR2(80);
117548 l_component_code              VARCHAR2(30);
117549 l_component_type_code         VARCHAR2(1);
117550 l_component_appl_id           INTEGER;
117551 l_amb_context_code            VARCHAR2(30);
117552 l_entity_code                 VARCHAR2(30);
117553 l_event_class_code            VARCHAR2(30);
117554 l_ae_header_id                NUMBER;
117555 l_event_type_code             VARCHAR2(30);
117556 l_line_definition_code        VARCHAR2(30);
117557 l_line_definition_owner_code  VARCHAR2(1);
117558 --
117559 -- adr variables
117560 l_segment                     VARCHAR2(30);
117561 l_ccid                        NUMBER;
117562 l_adr_transaction_coa_id      NUMBER;
117563 l_adr_accounting_coa_id       NUMBER;
117564 l_adr_flexfield_segment_code  VARCHAR2(30);
117565 l_adr_flex_value_set_id       NUMBER;
117566 l_adr_value_type_code         VARCHAR2(30);
117567 l_adr_value_combination_id    NUMBER;
117568 l_adr_value_segment_code      VARCHAR2(30);
117569 
117570 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
117571 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
117572 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
117573 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
117574 
117575 -- 4262811 Variables ------------------------------------------------------------------------------------------
117576 l_entered_amt_idx             NUMBER;
117577 l_accted_amt_idx              NUMBER;
117578 l_acc_rev_flag                VARCHAR2(1);
117579 l_accrual_line_num            NUMBER;
117580 l_tmp_amt                     NUMBER;
117581 l_acc_rev_natural_side_code   VARCHAR2(1);
117582 
117583 l_num_entries                 NUMBER;
117584 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
117585 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
117586 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
117587 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
117588 l_recog_line_1                NUMBER;
117589 l_recog_line_2                NUMBER;
117590 
117591 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
117592 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
117593 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
117594 
117595 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117596 
117597 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
117598 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
117599 
117600 ---------------------------------------------------------------------------------------------------------------
117601 
117602 
117603 --
117604 -- bulk performance
117605 --
117606 l_balance_type_code           VARCHAR2(1);
117607 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
117608 l_log_module                  VARCHAR2(240);
117609 
117610 --
117611 -- Upgrade strategy
117612 --
117613 l_actual_upg_option           VARCHAR2(1);
117614 l_enc_upg_option           VARCHAR2(1);
117615 
117616 --
117617 BEGIN
117618 --
117619 IF g_log_enabled THEN
117620       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_203';
117621 END IF;
117622 --
117623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117624 
117625       trace
117626          (p_msg      => 'BEGIN of AcctLineType_203'
117627          ,p_level    => C_LEVEL_PROCEDURE
117628          ,p_module   => l_log_module);
117629 
117630 END IF;
117631 --
117632 l_component_type             := 'AMB_JLT';
117633 l_component_code             := 'AP_RETAINAGE_RELEASE_ACCR';
117634 l_component_type_code        := 'S';
117635 l_component_appl_id          :=  200;
117636 l_amb_context_code           := 'DEFAULT';
117637 l_entity_code                := 'AP_INVOICES';
117638 l_event_class_code           := 'INVOICES';
117639 l_event_type_code            := 'INVOICES_ALL';
117640 l_line_definition_owner_code := 'S';
117641 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
117642 --
117643 l_balance_type_code          := 'A';
117644 l_segment                     := NULL;
117645 l_ccid                        := NULL;
117646 l_adr_transaction_coa_id      := NULL;
117647 l_adr_accounting_coa_id       := NULL;
117648 l_adr_flexfield_segment_code  := NULL;
117649 l_adr_flex_value_set_id       := NULL;
117650 l_adr_value_type_code         := NULL;
117651 l_adr_value_combination_id    := NULL;
117652 l_adr_value_segment_code      := NULL;
117653 
117654 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
117655 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
117656 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117657 l_budgetary_control_flag     := 'N';
117658 
117659 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117660 l_bflow_applied_to_amt       := NULL; -- 5132302
117661 l_entered_amt_idx            := NULL;          -- 4262811
117665 l_tmp_amt                    := NULL;          -- 4262811
117662 l_accted_amt_idx             := NULL;          -- 4262811
117663 l_acc_rev_flag               := NULL;          -- 4262811
117664 l_accrual_line_num           := NULL;          -- 4262811
117666 --
117667  
117668 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117669     l_balance_type_code <> 'B' THEN
117670 IF NVL(p_source_167,'
117671 ') =  'RETAINAGE RELEASE' AND 
117672 NVL(p_source_28,'
117673 ') =  'RETAINAGE'
117674  THEN 
117675 
117676    --
117677    XLA_AE_LINES_PKG.SetNewLine;
117678 
117679    p_balance_type_code          := l_balance_type_code;
117680    -- set the flag so later we will know whether the gain loss line needs to be created
117681    
117682    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117683      p_actual_flag :='A';
117684    END IF;
117685 
117686    --
117687    -- bulk performance
117688    --
117689    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117690                                       p_header_num   => 0); -- 4262811
117691    --
117692    -- set accounting line options
117693    --
117694    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117695            p_natural_side_code          => 'D'
117696          , p_gain_or_loss_flag          => 'N'
117697          , p_gl_transfer_mode_code      => 'S'
117698          , p_acct_entry_type_code       => 'A'
117699          , p_switch_side_flag           => 'Y'
117700          , p_merge_duplicate_code       => 'A'
117701          );
117702    --
117703    l_acc_rev_natural_side_code := 'C';  -- 4262811
117704    -- 
117705    --
117706    -- set accounting line type info
117707    --
117708    xla_ae_lines_pkg.SetAcctLineType
117709       (p_component_type             => l_component_type
117710       ,p_event_type_code            => l_event_type_code
117711       ,p_line_definition_owner_code => l_line_definition_owner_code
117712       ,p_line_definition_code       => l_line_definition_code
117713       ,p_accounting_line_code       => l_component_code
117714       ,p_accounting_line_type_code  => l_component_type_code
117715       ,p_accounting_line_appl_id    => l_component_appl_id
117716       ,p_amb_context_code           => l_amb_context_code
117717       ,p_entity_code                => l_entity_code
117718       ,p_event_class_code           => l_event_class_code);
117719    --
117720    -- set accounting class
117721    --
117722    xla_ae_lines_pkg.SetAcctClass(
117723            p_accounting_class_code  => 'RETAINAGE'
117724          , p_ae_header_id           => l_ae_header_id
117725          );
117726 
117727    --
117728    -- set rounding class
117729    --
117730    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117731                       'RETAINAGE';
117732 
117733    --
117734    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117735    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117736    --
117737    -- bulk performance
117738    --
117739    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117740 
117741    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117742       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117743 
117744    -- 4955764
117745    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117746       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117747 
117748    -- 4458381 Public Sector Enh
117749    
117750    --
117751    -- set accounting attributes for the line type
117752    --
117753    l_entered_amt_idx := 24;
117754    l_accted_amt_idx  := 26;
117755    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
117756    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117757    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
117758    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
117759    l_rec_acct_attrs.array_num_value(2)  := 
117760 xla_ae_sources_pkg.GetSystemSourceNum(
117761    p_source_code           => 'XLA_EVENT_APPL_ID'
117762  , p_source_type_code      => 'Y'
117763  , p_source_application_id =>  602
117764 );
117765    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
117766    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
117767    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
117768    l_rec_acct_attrs.array_char_value(4)  := 
117769 xla_ae_sources_pkg.GetSystemSourceChar(
117770    p_source_code           => 'XLA_ENTITY_CODE'
117771  , p_source_type_code      => 'Y'
117772  , p_source_application_id =>  602
117773 );
117774    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
117775    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
117776    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
117777    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
117778    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
117779    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
117780    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
117781    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
117782    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117786    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
117783    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
117784    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
117785    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
117787    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_168);
117788    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117789    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_169);
117790    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
117791    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
117792    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
117793    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
117794    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
117795    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
117796    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
117797    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
117798    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
117799    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
117800    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
117801    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
117802    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
117803    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
117804    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
117805    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
117806    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
117807    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
117808    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
117809    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
117810    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
117811    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
117812    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
117813    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
117814    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
117815    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
117816    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
117817    l_rec_acct_attrs.array_num_value(26)  := p_source_16;
117818    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
117819    l_rec_acct_attrs.array_date_value(27)  := p_source_82;
117820    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
117821    l_rec_acct_attrs.array_char_value(28)  := p_source_83;
117822    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
117823    l_rec_acct_attrs.array_date_value(29)  := p_source_84;
117824    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
117825    l_rec_acct_attrs.array_char_value(30)  := p_source_85;
117826    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
117827    l_rec_acct_attrs.array_char_value(31)  := p_source_88;
117828    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
117829    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_89);
117830    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
117831    l_rec_acct_attrs.array_char_value(33)  := p_source_60;
117832    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
117833    l_rec_acct_attrs.array_num_value(34)  := p_source_90;
117834    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
117835    l_rec_acct_attrs.array_num_value(35)  := p_source_91;
117836    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
117837    l_rec_acct_attrs.array_num_value(36)  := p_source_92;
117838    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
117839    l_rec_acct_attrs.array_num_value(37)  := p_source_93;
117840    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
117841    l_rec_acct_attrs.array_num_value(38)  := p_source_94;
117842    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
117843    l_rec_acct_attrs.array_num_value(39)  := p_source_95;
117844 
117845    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117846    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117847 
117848    ---------------------------------------------------------------------------------------------------------------
117849    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117850    ---------------------------------------------------------------------------------------------------------------
117851    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117852 
117853    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117854    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117855 
117856    IF xla_accounting_cache_pkg.GetValueChar
117857          (p_source_code         => 'LEDGER_CATEGORY_CODE'
117858          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117859    AND l_bflow_method_code = 'PRIOR_ENTRY'
117860 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117861    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117862          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117863        )
117864    THEN
117865          xla_ae_lines_pkg.BflowUpgEntry
117866            (p_business_method_code    => l_bflow_method_code
117867            ,p_business_class_code     => l_bflow_class_code
117871 XLA_AE_LINES_PKG.business_flow_validation(
117868            ,p_balance_type            => l_balance_type_code);
117869    ELSE
117870       NULL;
117872                                 p_business_method_code     => l_bflow_method_code
117873                                ,p_business_class_code      => l_bflow_class_code
117874                                ,p_inherit_description_flag => l_inherit_desc_flag);
117875    END IF;
117876 
117877    --
117878    -- call analytical criteria
117879    --
117880    -- Inherited Analytical Criteria for business flow method of Prior Entry.
117881    --
117882    -- call description
117883    --
117884    
117885 xla_ae_lines_pkg.SetLineDescription(
117886    p_ae_header_id => l_ae_header_id
117887   ,p_description  => Description_2 (
117888      p_application_id         => p_application_id
117889    , p_ae_header_id           => l_ae_header_id 
117890 , p_source_1 => p_source_1
117891    )
117892 );
117893 
117894 
117895    --
117896    -- call ADRs
117897    -- Bug 4922099
117898    --
117899    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117900         (NVL(l_actual_upg_option, 'N') = 'O') OR
117901         (NVL(l_enc_upg_option, 'N') = 'O')
117902       )
117903    THEN
117904    NULL;
117905    --
117906    --
117907    
117908    --
117909    --
117910    END IF;
117911    --
117912    -- Bug 4922099
117913    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117914           (NVL(l_enc_upg_option, 'N') = 'O')
117915         ) AND
117916         (l_bflow_method_code = 'PRIOR_ENTRY')
117917       )
117918    THEN
117919       IF
117920       --
117921       1 = 1
117922       --
117923       THEN
117924       xla_accounting_err_pkg.build_message
117925                                     (p_appli_s_name            => 'XLA'
117926                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117927                                     ,p_token_1                 => 'LINE_NUMBER'
117928                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117929                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117930                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117931                                                                              l_component_type
117932                                                                             ,l_component_code
117933                                                                             ,l_component_type_code
117934                                                                             ,l_component_appl_id
117935                                                                             ,l_amb_context_code
117936                                                                             ,l_entity_code
117937                                                                             ,l_event_class_code
117938                                                                            )
117939                                     ,p_token_3                 => 'OWNER'
117940                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117941                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117942                                                                           ,p_lookup_code    => l_component_type_code
117943                                                                          )
117944                                     ,p_token_4                 => 'PRODUCT_NAME'
117945                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117946                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117947                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117948                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117949                                     ,p_ae_header_id            =>  NULL
117950                                        );
117951 
117952         IF (C_LEVEL_ERROR>= g_log_level) THEN
117953                  trace
117954                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117955                       ,p_level    => C_LEVEL_ERROR
117956                       ,p_module   => l_log_module);
117957         END IF;
117958       END IF;
117959    END IF;
117960    --
117961    --
117962    ------------------------------------------------------------------------------------------------
117963    -- 4219869 Business Flow
117964    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117965    -- Prior Entry.  Currently, the following code is always generated.
117966    ------------------------------------------------------------------------------------------------
117967    -- No ValidateCurrentLine for business flow method of Prior Entry
117968 
117969    ------------------------------------------------------------------------------------
117970    -- 4219869 Business Flow
117971    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117972    ------------------------------------------------------------------------------------
117973    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117974 
117975    ----------------------------------------------------------------------------------
117976    -- 4219869 Business Flow
117980          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117977    -- Update journal entry status -- Need to generate this within IF <condition>
117978    ----------------------------------------------------------------------------------
117979    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117981          ,p_balance_type_code => l_balance_type_code
117982          );
117983 
117984    -------------------------------------------------------------------------------------------
117985    -- 4262811 - Generate the Accrual Reversal lines
117986    -------------------------------------------------------------------------------------------
117987    BEGIN
117988       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117989                               (g_array_event(p_event_id).array_value_num('header_index'));
117990       IF l_acc_rev_flag IS NULL THEN
117991          l_acc_rev_flag := 'N';
117992       END IF;
117993    EXCEPTION
117994       WHEN OTHERS THEN
117995          l_acc_rev_flag := 'N';
117996    END;
117997    --
117998    IF (l_acc_rev_flag = 'Y') THEN
117999 
118000        -- 4645092  ------------------------------------------------------------------------------
118001        -- To allow MPA report to determine if it should generate report process
118002        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118003        ------------------------------------------------------------------------------------------
118004 
118005        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118006        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118007    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118008    -- call ADRs
118009    -- Bug 4922099
118010    --
118011    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118012         (NVL(l_actual_upg_option, 'N') = 'O') OR
118013         (NVL(l_enc_upg_option, 'N') = 'O')
118014       )
118015    THEN
118016    NULL;
118017    --
118018    --
118019    
118020    --
118021    --
118022    END IF;
118023 
118024        --
118025        -- Update the line information that should be overwritten
118026        --
118027        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118028                                          p_header_num   => 1);
118029        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118030 
118031        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118032 
118033        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118034           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118035        END IF;
118036 
118037       --
118038       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118039       --
118040       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118041           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118042       ELSE
118043           ---------------------------------------------------------------------------------------------------
118044           -- 4262811a Switch Sign
118045           ---------------------------------------------------------------------------------------------------
118046           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118047           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118048                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118049           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118050                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118051           -- 5132302
118052           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118053                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118054 
118055       END IF;
118056 
118057       -- 4955764
118058       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118059       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118060 
118061 
118062       XLA_AE_LINES_PKG.ValidateCurrentLine;
118063       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118064 
118065       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118066                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118067                ,p_balance_type_code => l_balance_type_code);
118068 
118069    END IF;
118070 
118071    -----------------------------------------------------------------------------------------
118072    -- 4262811 Multiperiod Accounting
118073    -----------------------------------------------------------------------------------------
118074      -- No MPA option is assigned.
118075 
118076 
118077 END IF;
118078 END IF;
118079 --
118080 
118081 --
118082 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118083    trace
118084       (p_msg      => 'END of AcctLineType_203'
118085       ,p_level    => C_LEVEL_PROCEDURE
118086       ,p_module   => l_log_module);
118087 END IF;
118088 --
118089 EXCEPTION
118090   WHEN xla_exceptions_pkg.application_exception THEN
118091       RAISE;
118092   WHEN OTHERS THEN
118096 --
118093        xla_exceptions_pkg.raise_message
118094            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_203');
118095 END AcctLineType_203;
118097 
118098 ---------------------------------------
118099 --
118100 -- PRIVATE FUNCTION
118101 --         AcctLineType_204
118102 --
118103 ---------------------------------------
118104 PROCEDURE AcctLineType_204 (
118105   p_application_id        IN NUMBER
118106  ,p_event_id              IN NUMBER
118107  ,p_calculate_acctd_flag  IN VARCHAR2
118108  ,p_calculate_g_l_flag    IN VARCHAR2
118109  ,p_actual_flag           IN OUT VARCHAR2
118110  ,p_balance_type_code     OUT VARCHAR2
118111  ,p_gain_or_loss_ref      OUT VARCHAR2
118112  
118113 --Invoice Distribution Description
118114  , p_source_1            IN VARCHAR2
118115 --Invoice Distribution Ledger Amount
118116  , p_source_16            IN NUMBER
118117 --Invoice Distribution Type
118118  , p_source_28            IN VARCHAR2
118119  , p_source_28_meaning    IN VARCHAR2
118120 --Self-Assessed Tax Account
118121  , p_source_46            IN NUMBER
118122 --Accrue on Receipt Option
118123  , p_source_54            IN VARCHAR2
118124  , p_source_54_meaning    IN VARCHAR2
118125 --Accounting Reversal Indicator
118126  , p_source_58            IN VARCHAR2
118127 --Distribution Link Type
118128  , p_source_60            IN VARCHAR2
118129 --Allocation to Main Distribution Identifier
118130  , p_source_62            IN NUMBER
118131 --Invoice Identifier
118132  , p_source_63            IN NUMBER
118133 --Invoice Distribution Identifier
118134  , p_source_69            IN NUMBER
118135 --Payables Encumbrance Upgrade Credit Account
118136  , p_source_70            IN NUMBER
118137 --Payables Encumbrance Upgrade Credit Amount
118138  , p_source_71            IN NUMBER
118139 --Invoice Currency Code
118140  , p_source_72            IN VARCHAR2
118141 --Payables Encumbrance Upgrade Credit Base Amount
118142  , p_source_73            IN NUMBER
118143 --Payables Encumbrance Upgrade Debit Account
118144  , p_source_74            IN NUMBER
118145 --Payables Encumbrance Upgrade Debit Amount
118146  , p_source_75            IN NUMBER
118147 --Payables Encumbrance Upgrade Debit Base Amount
118148  , p_source_76            IN NUMBER
118149 --Payables Encumbrance Upgrade Option
118150  , p_source_77            IN VARCHAR2
118151 --Invoice Distribution Amount
118152  , p_source_78            IN NUMBER
118153 --Deferred Accounting End Date
118154  , p_source_82            IN DATE
118155 --Deferred Accounting Option
118156  , p_source_83            IN VARCHAR2
118157 --Deferred Accounting Start Date
118158  , p_source_84            IN DATE
118159 --Override Accounted Amount Indicator
118160  , p_source_85            IN VARCHAR2
118161  , p_source_85_meaning    IN VARCHAR2
118162 --Invoice Supplier Identifier
118163  , p_source_86            IN NUMBER
118164 --Invoice Supplier Site Identifier
118165  , p_source_87            IN NUMBER
118166 --Third Party Type
118167  , p_source_88            IN VARCHAR2
118168 --Parent Reversal Identifier
118169  , p_source_89            IN NUMBER
118170 --Invoice Distribution Statistical Amount
118171  , p_source_90            IN NUMBER
118172 --Invoice Distribution Tax Line Identifier
118173  , p_source_91            IN NUMBER
118174 --Invoice Distribution Tax Distribution Identifier from Tax
118175  , p_source_92            IN NUMBER
118176 --Invoice Distribution Summary Tax Line Identifier
118177  , p_source_93            IN NUMBER
118178 --Payables Upgrade Credit Encumbrance Type Identifier
118179  , p_source_94            IN NUMBER
118180 --Payables Upgrade Debit Encumbrance Type Identifier
118181  , p_source_95            IN NUMBER
118182 --Business Flow Accounts Payable Application Identifier
118183  , p_source_96            IN NUMBER
118184 --Business Flow Invoice Distribution Type
118185  , p_source_97            IN VARCHAR2
118186 --Business Flow Invoice Entity Code
118187  , p_source_98            IN VARCHAR2
118188 --Business Flow Invoice Distribution Identifier
118189  , p_source_99            IN NUMBER
118190 --Business Flow Invoice Identifier
118191  , p_source_100            IN NUMBER
118192 --Self-Assessed Tax Flag
118193  , p_source_145            IN VARCHAR2
118194  , p_source_145_meaning    IN VARCHAR2
118195 --Invoice Exchange Date
118196  , p_source_146            IN DATE
118197 --Invoice Exchange Rate
118198  , p_source_147            IN NUMBER
118199 --Invoice Exchange Rate Type
118200  , p_source_148            IN VARCHAR2
118201 )
118202 IS
118203 
118204 l_component_type              VARCHAR2(80);
118205 l_component_code              VARCHAR2(30);
118206 l_component_type_code         VARCHAR2(1);
118207 l_component_appl_id           INTEGER;
118208 l_amb_context_code            VARCHAR2(30);
118209 l_entity_code                 VARCHAR2(30);
118210 l_event_class_code            VARCHAR2(30);
118211 l_ae_header_id                NUMBER;
118212 l_event_type_code             VARCHAR2(30);
118213 l_line_definition_code        VARCHAR2(30);
118214 l_line_definition_owner_code  VARCHAR2(1);
118215 --
118216 -- adr variables
118217 l_segment                     VARCHAR2(30);
118218 l_ccid                        NUMBER;
118219 l_adr_transaction_coa_id      NUMBER;
118220 l_adr_accounting_coa_id       NUMBER;
118221 l_adr_flexfield_segment_code  VARCHAR2(30);
118222 l_adr_flex_value_set_id       NUMBER;
118223 l_adr_value_type_code         VARCHAR2(30);
118224 l_adr_value_combination_id    NUMBER;
118228 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
118225 l_adr_value_segment_code      VARCHAR2(30);
118226 
118227 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
118229 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
118230 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
118231 
118232 -- 4262811 Variables ------------------------------------------------------------------------------------------
118233 l_entered_amt_idx             NUMBER;
118234 l_accted_amt_idx              NUMBER;
118235 l_acc_rev_flag                VARCHAR2(1);
118236 l_accrual_line_num            NUMBER;
118237 l_tmp_amt                     NUMBER;
118238 l_acc_rev_natural_side_code   VARCHAR2(1);
118239 
118240 l_num_entries                 NUMBER;
118241 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
118242 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
118243 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
118244 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
118245 l_recog_line_1                NUMBER;
118246 l_recog_line_2                NUMBER;
118247 
118248 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
118249 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
118250 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
118251 
118252 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
118253 
118254 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
118255 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
118256 
118257 ---------------------------------------------------------------------------------------------------------------
118258 
118259 
118260 --
118261 -- bulk performance
118262 --
118263 l_balance_type_code           VARCHAR2(1);
118264 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
118265 l_log_module                  VARCHAR2(240);
118266 
118267 --
118268 -- Upgrade strategy
118269 --
118270 l_actual_upg_option           VARCHAR2(1);
118271 l_enc_upg_option           VARCHAR2(1);
118272 
118273 --
118274 BEGIN
118275 --
118276 IF g_log_enabled THEN
118277       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_204';
118278 END IF;
118279 --
118280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118281 
118282       trace
118283          (p_msg      => 'BEGIN of AcctLineType_204'
118284          ,p_level    => C_LEVEL_PROCEDURE
118285          ,p_module   => l_log_module);
118286 
118287 END IF;
118288 --
118289 l_component_type             := 'AMB_JLT';
118290 l_component_code             := 'AP_SELF_ASSESSED_NONREC_PREPAY';
118291 l_component_type_code        := 'S';
118292 l_component_appl_id          :=  200;
118293 l_amb_context_code           := 'DEFAULT';
118294 l_entity_code                := 'AP_INVOICES';
118295 l_event_class_code           := 'PREPAYMENTS';
118296 l_event_type_code            := 'PREPAYMENTS_ALL';
118297 l_line_definition_owner_code := 'S';
118298 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
118299 --
118300 l_balance_type_code          := 'A';
118301 l_segment                     := NULL;
118302 l_ccid                        := NULL;
118303 l_adr_transaction_coa_id      := NULL;
118304 l_adr_accounting_coa_id       := NULL;
118305 l_adr_flexfield_segment_code  := NULL;
118306 l_adr_flex_value_set_id       := NULL;
118307 l_adr_value_type_code         := NULL;
118308 l_adr_value_combination_id    := NULL;
118309 l_adr_value_segment_code      := NULL;
118310 
118311 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
118312 l_bflow_class_code           := '';    -- 4219869 Business Flow
118313 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
118314 l_budgetary_control_flag     := 'N';
118315 
118316 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
118317 l_bflow_applied_to_amt       := NULL; -- 5132302
118318 l_entered_amt_idx            := NULL;          -- 4262811
118319 l_accted_amt_idx             := NULL;          -- 4262811
118320 l_acc_rev_flag               := NULL;          -- 4262811
118321 l_accrual_line_num           := NULL;          -- 4262811
118322 l_tmp_amt                    := NULL;          -- 4262811
118323 --
118324  
118325 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
118326     l_balance_type_code <> 'B' THEN
118327 IF (NVL(p_source_28,'
118328 ') =  'NONREC_TAX' OR 
118329 NVL(p_source_28,'
118330 ') =  'TERV' OR 
118331 NVL(p_source_28,'
118332 ') =  'TIPV' OR 
118333 NVL(p_source_28,'
118334 ') =  'TRV') AND 
118335 NVL(p_source_54,'
118336 ') <>  'Y' AND 
118337 NVL(p_source_145,'
118338 ') =  'Y'
118339  THEN 
118340 
118341    --
118342    XLA_AE_LINES_PKG.SetNewLine;
118343 
118344    p_balance_type_code          := l_balance_type_code;
118345    -- set the flag so later we will know whether the gain loss line needs to be created
118346    
118347    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
118348      p_actual_flag :='A';
118349    END IF;
118350 
118351    --
118352    -- bulk performance
118353    --
118354    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
118355                                       p_header_num   => 0); -- 4262811
118356    --
118357    -- set accounting line options
118361          , p_gain_or_loss_flag          => 'N'
118358    --
118359    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
118360            p_natural_side_code          => 'D'
118362          , p_gl_transfer_mode_code      => 'S'
118363          , p_acct_entry_type_code       => 'A'
118364          , p_switch_side_flag           => 'Y'
118365          , p_merge_duplicate_code       => 'A'
118366          );
118367    --
118368    l_acc_rev_natural_side_code := 'C';  -- 4262811
118369    -- 
118370    --
118371    -- set accounting line type info
118372    --
118373    xla_ae_lines_pkg.SetAcctLineType
118374       (p_component_type             => l_component_type
118375       ,p_event_type_code            => l_event_type_code
118376       ,p_line_definition_owner_code => l_line_definition_owner_code
118377       ,p_line_definition_code       => l_line_definition_code
118378       ,p_accounting_line_code       => l_component_code
118379       ,p_accounting_line_type_code  => l_component_type_code
118380       ,p_accounting_line_appl_id    => l_component_appl_id
118381       ,p_amb_context_code           => l_amb_context_code
118382       ,p_entity_code                => l_entity_code
118383       ,p_event_class_code           => l_event_class_code);
118384    --
118385    -- set accounting class
118386    --
118387    xla_ae_lines_pkg.SetAcctClass(
118388            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
118389          , p_ae_header_id           => l_ae_header_id
118390          );
118391 
118392    --
118393    -- set rounding class
118394    --
118395    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
118396                       'SELF_ASSESSED_TAX';
118397 
118398    --
118399    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
118400    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
118401    --
118402    -- bulk performance
118403    --
118404    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
118405 
118406    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
118407       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
118408 
118409    -- 4955764
118410    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118411       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
118412 
118413    -- 4458381 Public Sector Enh
118414    
118415    --
118416    -- set accounting attributes for the line type
118417    --
118418    l_entered_amt_idx := 23;
118419    l_accted_amt_idx  := 28;
118420    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
118421    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
118422    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
118423    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
118424    l_rec_acct_attrs.array_num_value(2)  := 
118425 xla_ae_sources_pkg.GetSystemSourceNum(
118426    p_source_code           => 'XLA_EVENT_APPL_ID'
118427  , p_source_type_code      => 'Y'
118428  , p_source_application_id =>  602
118429 );
118430    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
118431    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
118432    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
118433    l_rec_acct_attrs.array_char_value(4)  := 
118434 xla_ae_sources_pkg.GetSystemSourceChar(
118435    p_source_code           => 'XLA_ENTITY_CODE'
118436  , p_source_type_code      => 'Y'
118437  , p_source_application_id =>  602
118438 );
118439    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
118440    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
118441    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
118442    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
118443    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
118444    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
118445    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
118446    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
118447    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
118448    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
118449    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
118450    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
118451    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
118452    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
118453    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
118454    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
118455    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
118456    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
118457    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
118458    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
118459    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
118460    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
118461    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
118462    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
118463    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
118464    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
118465    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
118466    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
118470    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
118467    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
118468    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
118469    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
118471    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
118472    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
118473    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
118474    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
118475    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
118476    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
118477    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
118478    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
118479    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
118480    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
118481    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
118482    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
118483    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
118484    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
118485    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
118486    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
118487    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
118488    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
118489    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
118490    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
118491    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
118492    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
118493    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
118494    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
118495    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
118496    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
118497    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
118498    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
118499    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
118500    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
118501    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
118502    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
118503    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
118504    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
118505    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
118506    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
118507    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
118508    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
118509    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
118510    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
118511    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
118512    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
118513    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
118514    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
118515    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
118516    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
118517 
118518    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
118519    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
118520 
118521    ---------------------------------------------------------------------------------------------------------------
118522    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
118523    ---------------------------------------------------------------------------------------------------------------
118524    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
118525 
118526    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118527    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118528 
118529    IF xla_accounting_cache_pkg.GetValueChar
118530          (p_source_code         => 'LEDGER_CATEGORY_CODE'
118531          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118532    AND l_bflow_method_code = 'PRIOR_ENTRY'
118533 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118534    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118535          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118536        )
118537    THEN
118538          xla_ae_lines_pkg.BflowUpgEntry
118539            (p_business_method_code    => l_bflow_method_code
118540            ,p_business_class_code     => l_bflow_class_code
118541            ,p_balance_type            => l_balance_type_code);
118542    ELSE
118543       NULL;
118544 -- No business flow processing for business flow method of NONE.
118545    END IF;
118546 
118547    --
118548    -- call analytical criteria
118549    --
118550    
118551    --
118552    -- call description
118553    --
118554    
118555 xla_ae_lines_pkg.SetLineDescription(
118556    p_ae_header_id => l_ae_header_id
118557   ,p_description  => Description_2 (
118558      p_application_id         => p_application_id
118559    , p_ae_header_id           => l_ae_header_id 
118560 , p_source_1 => p_source_1
118561    )
118562 );
118563 
118564 
118565    --
118566    -- call ADRs
118567    -- Bug 4922099
118568    --
118572       )
118569    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118570         (NVL(l_actual_upg_option, 'N') = 'O') OR
118571         (NVL(l_enc_upg_option, 'N') = 'O')
118573    THEN
118574    NULL;
118575    --
118576    --
118577    
118578   l_ccid := AcctDerRule_44(
118579            p_application_id           => p_application_id
118580          , p_ae_header_id             => l_ae_header_id 
118581 , p_source_46 => p_source_46
118582          , x_transaction_coa_id       => l_adr_transaction_coa_id
118583          , x_accounting_coa_id        => l_adr_accounting_coa_id
118584          , x_value_type_code          => l_adr_value_type_code
118585          , p_side                     => 'NA'
118586    );
118587 
118588    xla_ae_lines_pkg.set_ccid(
118589     p_code_combination_id          => l_ccid
118590   , p_value_type_code              => l_adr_value_type_code
118591   , p_transaction_coa_id           => l_adr_transaction_coa_id
118592   , p_accounting_coa_id            => l_adr_accounting_coa_id
118593   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118594   , p_adr_type_code                => 'S'
118595   , p_component_type               => l_component_type
118596   , p_component_code               => l_component_code
118597   , p_component_type_code          => l_component_type_code
118598   , p_component_appl_id            => l_component_appl_id
118599   , p_amb_context_code             => l_amb_context_code
118600   , p_side                         => 'NA'
118601   );
118602 
118603 
118604    --
118605    --
118606    END IF;
118607    --
118608    -- Bug 4922099
118609    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118610           (NVL(l_enc_upg_option, 'N') = 'O')
118611         ) AND
118612         (l_bflow_method_code = 'PRIOR_ENTRY')
118613       )
118614    THEN
118615       IF
118616       --
118617       1 = 2
118618       --
118619       THEN
118620       xla_accounting_err_pkg.build_message
118621                                     (p_appli_s_name            => 'XLA'
118622                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118623                                     ,p_token_1                 => 'LINE_NUMBER'
118624                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118625                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118626                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118627                                                                              l_component_type
118628                                                                             ,l_component_code
118629                                                                             ,l_component_type_code
118630                                                                             ,l_component_appl_id
118631                                                                             ,l_amb_context_code
118632                                                                             ,l_entity_code
118633                                                                             ,l_event_class_code
118634                                                                            )
118635                                     ,p_token_3                 => 'OWNER'
118636                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118637                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118638                                                                           ,p_lookup_code    => l_component_type_code
118639                                                                          )
118640                                     ,p_token_4                 => 'PRODUCT_NAME'
118641                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118642                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118643                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118644                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118645                                     ,p_ae_header_id            =>  NULL
118646                                        );
118647 
118648         IF (C_LEVEL_ERROR>= g_log_level) THEN
118649                  trace
118650                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118651                       ,p_level    => C_LEVEL_ERROR
118652                       ,p_module   => l_log_module);
118653         END IF;
118654       END IF;
118655    END IF;
118656    --
118657    --
118658    ------------------------------------------------------------------------------------------------
118659    -- 4219869 Business Flow
118660    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118661    -- Prior Entry.  Currently, the following code is always generated.
118662    ------------------------------------------------------------------------------------------------
118663    XLA_AE_LINES_PKG.ValidateCurrentLine;
118664 
118665    ------------------------------------------------------------------------------------
118666    -- 4219869 Business Flow
118667    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118668    ------------------------------------------------------------------------------------
118669    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118670 
118674    ----------------------------------------------------------------------------------
118671    ----------------------------------------------------------------------------------
118672    -- 4219869 Business Flow
118673    -- Update journal entry status -- Need to generate this within IF <condition>
118675    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118676          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118677          ,p_balance_type_code => l_balance_type_code
118678          );
118679 
118680    -------------------------------------------------------------------------------------------
118681    -- 4262811 - Generate the Accrual Reversal lines
118682    -------------------------------------------------------------------------------------------
118683    BEGIN
118684       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118685                               (g_array_event(p_event_id).array_value_num('header_index'));
118686       IF l_acc_rev_flag IS NULL THEN
118687          l_acc_rev_flag := 'N';
118688       END IF;
118689    EXCEPTION
118690       WHEN OTHERS THEN
118691          l_acc_rev_flag := 'N';
118692    END;
118693    --
118694    IF (l_acc_rev_flag = 'Y') THEN
118695 
118696        -- 4645092  ------------------------------------------------------------------------------
118697        -- To allow MPA report to determine if it should generate report process
118698        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118699        ------------------------------------------------------------------------------------------
118700 
118701        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118702        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118703    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118704    -- call ADRs
118705    -- Bug 4922099
118706    --
118707    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118708         (NVL(l_actual_upg_option, 'N') = 'O') OR
118709         (NVL(l_enc_upg_option, 'N') = 'O')
118710       )
118711    THEN
118712    NULL;
118713    --
118714    --
118715    
118716   l_ccid := AcctDerRule_44(
118717            p_application_id           => p_application_id
118718          , p_ae_header_id             => l_ae_header_id 
118719 , p_source_46 => p_source_46
118720          , x_transaction_coa_id       => l_adr_transaction_coa_id
118721          , x_accounting_coa_id        => l_adr_accounting_coa_id
118722          , x_value_type_code          => l_adr_value_type_code
118723          , p_side                     => 'NA'
118724    );
118725 
118726    xla_ae_lines_pkg.set_ccid(
118727     p_code_combination_id          => l_ccid
118728   , p_value_type_code              => l_adr_value_type_code
118729   , p_transaction_coa_id           => l_adr_transaction_coa_id
118730   , p_accounting_coa_id            => l_adr_accounting_coa_id
118731   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118732   , p_adr_type_code                => 'S'
118733   , p_component_type               => l_component_type
118734   , p_component_code               => l_component_code
118735   , p_component_type_code          => l_component_type_code
118736   , p_component_appl_id            => l_component_appl_id
118737   , p_amb_context_code             => l_amb_context_code
118738   , p_side                         => 'NA'
118739   );
118740 
118741 
118742    --
118743    --
118744    END IF;
118745 
118746        --
118747        -- Update the line information that should be overwritten
118748        --
118749        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118750                                          p_header_num   => 1);
118751        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118752 
118753        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118754 
118755        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118756           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118757        END IF;
118758 
118759       --
118760       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118761       --
118762       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118763           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118764       ELSE
118765           ---------------------------------------------------------------------------------------------------
118766           -- 4262811a Switch Sign
118767           ---------------------------------------------------------------------------------------------------
118768           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118769           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118770                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118771           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118772                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118773           -- 5132302
118774           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118775                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118776 
118777       END IF;
118778 
118782 
118779       -- 4955764
118780       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118781       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118783 
118784       XLA_AE_LINES_PKG.ValidateCurrentLine;
118785       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118786 
118787       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118788                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118789                ,p_balance_type_code => l_balance_type_code);
118790 
118791    END IF;
118792 
118793    -----------------------------------------------------------------------------------------
118794    -- 4262811 Multiperiod Accounting
118795    -----------------------------------------------------------------------------------------
118796      -- No MPA option is assigned.
118797 
118798 
118799 END IF;
118800 END IF;
118801 --
118802 
118803 --
118804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118805    trace
118806       (p_msg      => 'END of AcctLineType_204'
118807       ,p_level    => C_LEVEL_PROCEDURE
118808       ,p_module   => l_log_module);
118809 END IF;
118810 --
118811 EXCEPTION
118812   WHEN xla_exceptions_pkg.application_exception THEN
118813       RAISE;
118814   WHEN OTHERS THEN
118815        xla_exceptions_pkg.raise_message
118816            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_204');
118817 END AcctLineType_204;
118818 --
118819 
118820 ---------------------------------------
118821 --
118822 -- PRIVATE FUNCTION
118823 --         AcctLineType_205
118824 --
118825 ---------------------------------------
118826 PROCEDURE AcctLineType_205 (
118827   p_application_id        IN NUMBER
118828  ,p_event_id              IN NUMBER
118829  ,p_calculate_acctd_flag  IN VARCHAR2
118830  ,p_calculate_g_l_flag    IN VARCHAR2
118831  ,p_actual_flag           IN OUT VARCHAR2
118832  ,p_balance_type_code     OUT VARCHAR2
118833  ,p_gain_or_loss_ref      OUT VARCHAR2
118834  
118835 --Invoice Distribution Description
118836  , p_source_1            IN VARCHAR2
118837 --Invoice Distribution Ledger Amount
118838  , p_source_16            IN NUMBER
118839 --Invoice Distribution Type
118840  , p_source_28            IN VARCHAR2
118841  , p_source_28_meaning    IN VARCHAR2
118842 --Self-Assessed Tax Account
118843  , p_source_46            IN NUMBER
118844 --Accrue on Receipt Option
118845  , p_source_54            IN VARCHAR2
118846  , p_source_54_meaning    IN VARCHAR2
118847 --Accounting Reversal Indicator
118848  , p_source_58            IN VARCHAR2
118849 --Distribution Link Type
118850  , p_source_60            IN VARCHAR2
118851 --Allocation to Main Distribution Identifier
118852  , p_source_62            IN NUMBER
118853 --Invoice Identifier
118854  , p_source_63            IN NUMBER
118855 --Invoice Distribution Identifier
118856  , p_source_69            IN NUMBER
118857 --Payables Encumbrance Upgrade Credit Account
118858  , p_source_70            IN NUMBER
118859 --Payables Encumbrance Upgrade Credit Amount
118860  , p_source_71            IN NUMBER
118861 --Invoice Currency Code
118862  , p_source_72            IN VARCHAR2
118863 --Payables Encumbrance Upgrade Credit Base Amount
118864  , p_source_73            IN NUMBER
118865 --Payables Encumbrance Upgrade Debit Account
118866  , p_source_74            IN NUMBER
118867 --Payables Encumbrance Upgrade Debit Amount
118868  , p_source_75            IN NUMBER
118869 --Payables Encumbrance Upgrade Debit Base Amount
118870  , p_source_76            IN NUMBER
118871 --Payables Encumbrance Upgrade Option
118872  , p_source_77            IN VARCHAR2
118873 --Invoice Distribution Amount
118874  , p_source_78            IN NUMBER
118875 --Deferred Accounting End Date
118876  , p_source_82            IN DATE
118877 --Deferred Accounting Option
118878  , p_source_83            IN VARCHAR2
118879 --Deferred Accounting Start Date
118880  , p_source_84            IN DATE
118881 --Override Accounted Amount Indicator
118882  , p_source_85            IN VARCHAR2
118883  , p_source_85_meaning    IN VARCHAR2
118884 --Invoice Supplier Identifier
118885  , p_source_86            IN NUMBER
118886 --Invoice Supplier Site Identifier
118887  , p_source_87            IN NUMBER
118888 --Third Party Type
118889  , p_source_88            IN VARCHAR2
118890 --Parent Reversal Identifier
118891  , p_source_89            IN NUMBER
118892 --Invoice Distribution Statistical Amount
118893  , p_source_90            IN NUMBER
118894 --Invoice Distribution Tax Line Identifier
118895  , p_source_91            IN NUMBER
118896 --Invoice Distribution Tax Distribution Identifier from Tax
118897  , p_source_92            IN NUMBER
118898 --Invoice Distribution Summary Tax Line Identifier
118899  , p_source_93            IN NUMBER
118900 --Payables Upgrade Credit Encumbrance Type Identifier
118901  , p_source_94            IN NUMBER
118902 --Payables Upgrade Debit Encumbrance Type Identifier
118903  , p_source_95            IN NUMBER
118904 --Business Flow Accounts Payable Application Identifier
118905  , p_source_96            IN NUMBER
118906 --Business Flow Invoice Distribution Type
118907  , p_source_97            IN VARCHAR2
118908 --Business Flow Invoice Entity Code
118909  , p_source_98            IN VARCHAR2
118910 --Business Flow Invoice Distribution Identifier
118911  , p_source_99            IN NUMBER
118915  , p_source_145            IN VARCHAR2
118912 --Business Flow Invoice Identifier
118913  , p_source_100            IN NUMBER
118914 --Self-Assessed Tax Flag
118916  , p_source_145_meaning    IN VARCHAR2
118917 --Invoice Exchange Date
118918  , p_source_146            IN DATE
118919 --Invoice Exchange Rate
118920  , p_source_147            IN NUMBER
118921 --Invoice Exchange Rate Type
118922  , p_source_148            IN VARCHAR2
118923 )
118924 IS
118925 
118926 l_component_type              VARCHAR2(80);
118927 l_component_code              VARCHAR2(30);
118928 l_component_type_code         VARCHAR2(1);
118929 l_component_appl_id           INTEGER;
118930 l_amb_context_code            VARCHAR2(30);
118931 l_entity_code                 VARCHAR2(30);
118932 l_event_class_code            VARCHAR2(30);
118933 l_ae_header_id                NUMBER;
118934 l_event_type_code             VARCHAR2(30);
118935 l_line_definition_code        VARCHAR2(30);
118936 l_line_definition_owner_code  VARCHAR2(1);
118937 --
118938 -- adr variables
118939 l_segment                     VARCHAR2(30);
118940 l_ccid                        NUMBER;
118941 l_adr_transaction_coa_id      NUMBER;
118942 l_adr_accounting_coa_id       NUMBER;
118943 l_adr_flexfield_segment_code  VARCHAR2(30);
118944 l_adr_flex_value_set_id       NUMBER;
118945 l_adr_value_type_code         VARCHAR2(30);
118946 l_adr_value_combination_id    NUMBER;
118947 l_adr_value_segment_code      VARCHAR2(30);
118948 
118949 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
118950 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
118951 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
118952 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
118953 
118954 -- 4262811 Variables ------------------------------------------------------------------------------------------
118955 l_entered_amt_idx             NUMBER;
118956 l_accted_amt_idx              NUMBER;
118957 l_acc_rev_flag                VARCHAR2(1);
118958 l_accrual_line_num            NUMBER;
118959 l_tmp_amt                     NUMBER;
118960 l_acc_rev_natural_side_code   VARCHAR2(1);
118961 
118962 l_num_entries                 NUMBER;
118963 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
118964 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
118965 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
118966 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
118967 l_recog_line_1                NUMBER;
118968 l_recog_line_2                NUMBER;
118969 
118970 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
118971 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
118972 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
118973 
118974 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
118975 
118976 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
118977 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
118978 
118979 ---------------------------------------------------------------------------------------------------------------
118980 
118981 
118982 --
118983 -- bulk performance
118984 --
118985 l_balance_type_code           VARCHAR2(1);
118986 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
118987 l_log_module                  VARCHAR2(240);
118988 
118989 --
118990 -- Upgrade strategy
118991 --
118992 l_actual_upg_option           VARCHAR2(1);
118993 l_enc_upg_option           VARCHAR2(1);
118994 
118995 --
118996 BEGIN
118997 --
118998 IF g_log_enabled THEN
118999       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_205';
119000 END IF;
119001 --
119002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119003 
119004       trace
119005          (p_msg      => 'BEGIN of AcctLineType_205'
119006          ,p_level    => C_LEVEL_PROCEDURE
119007          ,p_module   => l_log_module);
119008 
119009 END IF;
119010 --
119011 l_component_type             := 'AMB_JLT';
119012 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_CM';
119013 l_component_type_code        := 'S';
119014 l_component_appl_id          :=  200;
119015 l_amb_context_code           := 'DEFAULT';
119016 l_entity_code                := 'AP_INVOICES';
119017 l_event_class_code           := 'CREDIT MEMOS';
119018 l_event_type_code            := 'CREDIT MEMOS_ALL';
119019 l_line_definition_owner_code := 'S';
119020 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
119021 --
119022 l_balance_type_code          := 'A';
119023 l_segment                     := NULL;
119024 l_ccid                        := NULL;
119025 l_adr_transaction_coa_id      := NULL;
119026 l_adr_accounting_coa_id       := NULL;
119027 l_adr_flexfield_segment_code  := NULL;
119028 l_adr_flex_value_set_id       := NULL;
119029 l_adr_value_type_code         := NULL;
119030 l_adr_value_combination_id    := NULL;
119031 l_adr_value_segment_code      := NULL;
119032 
119033 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
119034 l_bflow_class_code           := '';    -- 4219869 Business Flow
119035 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
119036 l_budgetary_control_flag     := 'N';
119037 
119038 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
119039 l_bflow_applied_to_amt       := NULL; -- 5132302
119040 l_entered_amt_idx            := NULL;          -- 4262811
119044 l_tmp_amt                    := NULL;          -- 4262811
119041 l_accted_amt_idx             := NULL;          -- 4262811
119042 l_acc_rev_flag               := NULL;          -- 4262811
119043 l_accrual_line_num           := NULL;          -- 4262811
119045 --
119046  
119047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
119048     l_balance_type_code <> 'B' THEN
119049 IF (NVL(p_source_28,'
119050 ') =  'NONREC_TAX' OR 
119051 NVL(p_source_28,'
119052 ') =  'TERV' OR 
119053 NVL(p_source_28,'
119054 ') =  'TIPV' OR 
119055 NVL(p_source_28,'
119056 ') =  'TRV') AND 
119057 NVL(p_source_54,'
119058 ') <>  'Y' AND 
119059 NVL(p_source_145,'
119060 ') =  'Y'
119061  THEN 
119062 
119063    --
119064    XLA_AE_LINES_PKG.SetNewLine;
119065 
119066    p_balance_type_code          := l_balance_type_code;
119067    -- set the flag so later we will know whether the gain loss line needs to be created
119068    
119069    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
119070      p_actual_flag :='A';
119071    END IF;
119072 
119073    --
119074    -- bulk performance
119075    --
119076    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
119077                                       p_header_num   => 0); -- 4262811
119078    --
119079    -- set accounting line options
119080    --
119081    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
119082            p_natural_side_code          => 'D'
119083          , p_gain_or_loss_flag          => 'N'
119084          , p_gl_transfer_mode_code      => 'S'
119085          , p_acct_entry_type_code       => 'A'
119086          , p_switch_side_flag           => 'Y'
119087          , p_merge_duplicate_code       => 'A'
119088          );
119089    --
119090    l_acc_rev_natural_side_code := 'C';  -- 4262811
119091    -- 
119092    --
119093    -- set accounting line type info
119094    --
119095    xla_ae_lines_pkg.SetAcctLineType
119096       (p_component_type             => l_component_type
119097       ,p_event_type_code            => l_event_type_code
119098       ,p_line_definition_owner_code => l_line_definition_owner_code
119099       ,p_line_definition_code       => l_line_definition_code
119100       ,p_accounting_line_code       => l_component_code
119101       ,p_accounting_line_type_code  => l_component_type_code
119102       ,p_accounting_line_appl_id    => l_component_appl_id
119103       ,p_amb_context_code           => l_amb_context_code
119104       ,p_entity_code                => l_entity_code
119105       ,p_event_class_code           => l_event_class_code);
119106    --
119107    -- set accounting class
119108    --
119109    xla_ae_lines_pkg.SetAcctClass(
119110            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
119111          , p_ae_header_id           => l_ae_header_id
119112          );
119113 
119114    --
119115    -- set rounding class
119116    --
119117    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
119118                       'SELF_ASSESSED_TAX';
119119 
119120    --
119121    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
119122    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
119123    --
119124    -- bulk performance
119125    --
119126    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
119127 
119128    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
119129       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
119130 
119131    -- 4955764
119132    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119133       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
119134 
119135    -- 4458381 Public Sector Enh
119136    
119137    --
119138    -- set accounting attributes for the line type
119139    --
119140    l_entered_amt_idx := 23;
119141    l_accted_amt_idx  := 28;
119142    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
119143    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
119144    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
119145    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
119146    l_rec_acct_attrs.array_num_value(2)  := 
119147 xla_ae_sources_pkg.GetSystemSourceNum(
119148    p_source_code           => 'XLA_EVENT_APPL_ID'
119149  , p_source_type_code      => 'Y'
119150  , p_source_application_id =>  602
119151 );
119152    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
119153    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
119154    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
119155    l_rec_acct_attrs.array_char_value(4)  := 
119156 xla_ae_sources_pkg.GetSystemSourceChar(
119157    p_source_code           => 'XLA_ENTITY_CODE'
119158  , p_source_type_code      => 'Y'
119159  , p_source_application_id =>  602
119160 );
119161    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
119162    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
119163    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
119164    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
119165    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
119166    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
119167    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
119171    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
119168    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
119169    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
119170    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
119172    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
119173    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
119174    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
119175    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
119176    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
119177    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
119178    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
119179    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
119180    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
119181    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
119182    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
119183    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
119184    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
119185    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
119186    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
119187    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
119188    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
119189    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
119190    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
119191    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
119192    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
119193    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
119194    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
119195    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
119196    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
119197    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
119198    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
119199    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
119200    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
119201    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
119202    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
119203    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
119204    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
119205    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
119206    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
119207    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
119208    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
119209    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
119210    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
119211    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
119212    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
119213    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
119214    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
119215    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
119216    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
119217    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
119218    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
119219    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
119220    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
119221    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
119222    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
119223    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
119224    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
119225    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
119226    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
119227    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
119228    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
119229    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
119230    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
119231    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
119232    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
119233    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
119234    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
119235    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
119236    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
119237    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
119238    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
119239 
119240    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
119241    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
119242 
119243    ---------------------------------------------------------------------------------------------------------------
119244    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
119245    ---------------------------------------------------------------------------------------------------------------
119246    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
119247 
119248    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119252          (p_source_code         => 'LEDGER_CATEGORY_CODE'
119249    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119250 
119251    IF xla_accounting_cache_pkg.GetValueChar
119253          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
119254    AND l_bflow_method_code = 'PRIOR_ENTRY'
119255 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
119256    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
119257          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
119258        )
119259    THEN
119260          xla_ae_lines_pkg.BflowUpgEntry
119261            (p_business_method_code    => l_bflow_method_code
119262            ,p_business_class_code     => l_bflow_class_code
119263            ,p_balance_type            => l_balance_type_code);
119264    ELSE
119265       NULL;
119266 -- No business flow processing for business flow method of NONE.
119267    END IF;
119268 
119269    --
119270    -- call analytical criteria
119271    --
119272    
119273    --
119274    -- call description
119275    --
119276    
119277 xla_ae_lines_pkg.SetLineDescription(
119278    p_ae_header_id => l_ae_header_id
119279   ,p_description  => Description_2 (
119280      p_application_id         => p_application_id
119281    , p_ae_header_id           => l_ae_header_id 
119282 , p_source_1 => p_source_1
119283    )
119284 );
119285 
119286 
119287    --
119288    -- call ADRs
119289    -- Bug 4922099
119290    --
119291    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119292         (NVL(l_actual_upg_option, 'N') = 'O') OR
119293         (NVL(l_enc_upg_option, 'N') = 'O')
119294       )
119295    THEN
119296    NULL;
119297    --
119298    --
119299    
119300   l_ccid := AcctDerRule_44(
119301            p_application_id           => p_application_id
119302          , p_ae_header_id             => l_ae_header_id 
119303 , p_source_46 => p_source_46
119304          , x_transaction_coa_id       => l_adr_transaction_coa_id
119305          , x_accounting_coa_id        => l_adr_accounting_coa_id
119306          , x_value_type_code          => l_adr_value_type_code
119307          , p_side                     => 'NA'
119308    );
119309 
119310    xla_ae_lines_pkg.set_ccid(
119311     p_code_combination_id          => l_ccid
119312   , p_value_type_code              => l_adr_value_type_code
119313   , p_transaction_coa_id           => l_adr_transaction_coa_id
119314   , p_accounting_coa_id            => l_adr_accounting_coa_id
119315   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119316   , p_adr_type_code                => 'S'
119317   , p_component_type               => l_component_type
119318   , p_component_code               => l_component_code
119319   , p_component_type_code          => l_component_type_code
119320   , p_component_appl_id            => l_component_appl_id
119321   , p_amb_context_code             => l_amb_context_code
119322   , p_side                         => 'NA'
119323   );
119324 
119325 
119326    --
119327    --
119328    END IF;
119329    --
119330    -- Bug 4922099
119331    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
119332           (NVL(l_enc_upg_option, 'N') = 'O')
119333         ) AND
119334         (l_bflow_method_code = 'PRIOR_ENTRY')
119335       )
119336    THEN
119337       IF
119338       --
119339       1 = 2
119340       --
119341       THEN
119342       xla_accounting_err_pkg.build_message
119343                                     (p_appli_s_name            => 'XLA'
119344                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119345                                     ,p_token_1                 => 'LINE_NUMBER'
119346                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
119347                                     ,p_token_2                 => 'LINE_TYPE_NAME'
119348                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
119349                                                                              l_component_type
119350                                                                             ,l_component_code
119351                                                                             ,l_component_type_code
119352                                                                             ,l_component_appl_id
119353                                                                             ,l_amb_context_code
119354                                                                             ,l_entity_code
119355                                                                             ,l_event_class_code
119356                                                                            )
119357                                     ,p_token_3                 => 'OWNER'
119358                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
119359                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
119360                                                                           ,p_lookup_code    => l_component_type_code
119361                                                                          )
119362                                     ,p_token_4                 => 'PRODUCT_NAME'
119363                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
119364                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
119368                                        );
119365                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
119366                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
119367                                     ,p_ae_header_id            =>  NULL
119369 
119370         IF (C_LEVEL_ERROR>= g_log_level) THEN
119371                  trace
119372                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119373                       ,p_level    => C_LEVEL_ERROR
119374                       ,p_module   => l_log_module);
119375         END IF;
119376       END IF;
119377    END IF;
119378    --
119379    --
119380    ------------------------------------------------------------------------------------------------
119381    -- 4219869 Business Flow
119382    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
119383    -- Prior Entry.  Currently, the following code is always generated.
119384    ------------------------------------------------------------------------------------------------
119385    XLA_AE_LINES_PKG.ValidateCurrentLine;
119386 
119387    ------------------------------------------------------------------------------------
119388    -- 4219869 Business Flow
119389    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
119390    ------------------------------------------------------------------------------------
119391    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119392 
119393    ----------------------------------------------------------------------------------
119394    -- 4219869 Business Flow
119395    -- Update journal entry status -- Need to generate this within IF <condition>
119396    ----------------------------------------------------------------------------------
119397    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119398          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
119399          ,p_balance_type_code => l_balance_type_code
119400          );
119401 
119402    -------------------------------------------------------------------------------------------
119403    -- 4262811 - Generate the Accrual Reversal lines
119404    -------------------------------------------------------------------------------------------
119405    BEGIN
119406       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
119407                               (g_array_event(p_event_id).array_value_num('header_index'));
119408       IF l_acc_rev_flag IS NULL THEN
119409          l_acc_rev_flag := 'N';
119410       END IF;
119411    EXCEPTION
119412       WHEN OTHERS THEN
119413          l_acc_rev_flag := 'N';
119414    END;
119415    --
119416    IF (l_acc_rev_flag = 'Y') THEN
119417 
119418        -- 4645092  ------------------------------------------------------------------------------
119419        -- To allow MPA report to determine if it should generate report process
119420        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
119421        ------------------------------------------------------------------------------------------
119422 
119423        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
119424        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
119425    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
119426    -- call ADRs
119427    -- Bug 4922099
119428    --
119429    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119430         (NVL(l_actual_upg_option, 'N') = 'O') OR
119431         (NVL(l_enc_upg_option, 'N') = 'O')
119432       )
119433    THEN
119434    NULL;
119435    --
119436    --
119437    
119438   l_ccid := AcctDerRule_44(
119439            p_application_id           => p_application_id
119440          , p_ae_header_id             => l_ae_header_id 
119441 , p_source_46 => p_source_46
119442          , x_transaction_coa_id       => l_adr_transaction_coa_id
119443          , x_accounting_coa_id        => l_adr_accounting_coa_id
119444          , x_value_type_code          => l_adr_value_type_code
119445          , p_side                     => 'NA'
119446    );
119447 
119448    xla_ae_lines_pkg.set_ccid(
119449     p_code_combination_id          => l_ccid
119450   , p_value_type_code              => l_adr_value_type_code
119451   , p_transaction_coa_id           => l_adr_transaction_coa_id
119452   , p_accounting_coa_id            => l_adr_accounting_coa_id
119453   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119454   , p_adr_type_code                => 'S'
119455   , p_component_type               => l_component_type
119456   , p_component_code               => l_component_code
119457   , p_component_type_code          => l_component_type_code
119458   , p_component_appl_id            => l_component_appl_id
119459   , p_amb_context_code             => l_amb_context_code
119460   , p_side                         => 'NA'
119461   );
119462 
119463 
119464    --
119465    --
119466    END IF;
119467 
119468        --
119469        -- Update the line information that should be overwritten
119470        --
119471        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
119472                                          p_header_num   => 1);
119473        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
119474 
119475        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
119476 
119477        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
119481       --
119478           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
119479        END IF;
119480 
119482       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
119483       --
119484       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
119485           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
119486       ELSE
119487           ---------------------------------------------------------------------------------------------------
119488           -- 4262811a Switch Sign
119489           ---------------------------------------------------------------------------------------------------
119490           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
119491           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119492                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119493           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119494                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119495           -- 5132302
119496           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
119497                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119498 
119499       END IF;
119500 
119501       -- 4955764
119502       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119503       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
119504 
119505 
119506       XLA_AE_LINES_PKG.ValidateCurrentLine;
119507       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119508 
119509       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119510                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
119511                ,p_balance_type_code => l_balance_type_code);
119512 
119513    END IF;
119514 
119515    -----------------------------------------------------------------------------------------
119516    -- 4262811 Multiperiod Accounting
119517    -----------------------------------------------------------------------------------------
119518      -- No MPA option is assigned.
119519 
119520 
119521 END IF;
119522 END IF;
119523 --
119524 
119525 --
119526 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119527    trace
119528       (p_msg      => 'END of AcctLineType_205'
119529       ,p_level    => C_LEVEL_PROCEDURE
119530       ,p_module   => l_log_module);
119531 END IF;
119532 --
119533 EXCEPTION
119534   WHEN xla_exceptions_pkg.application_exception THEN
119535       RAISE;
119536   WHEN OTHERS THEN
119537        xla_exceptions_pkg.raise_message
119538            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_205');
119539 END AcctLineType_205;
119540 --
119541 
119542 ---------------------------------------
119543 --
119544 -- PRIVATE FUNCTION
119545 --         AcctLineType_206
119546 --
119547 ---------------------------------------
119548 PROCEDURE AcctLineType_206 (
119549   p_application_id        IN NUMBER
119550  ,p_event_id              IN NUMBER
119551  ,p_calculate_acctd_flag  IN VARCHAR2
119552  ,p_calculate_g_l_flag    IN VARCHAR2
119553  ,p_actual_flag           IN OUT VARCHAR2
119554  ,p_balance_type_code     OUT VARCHAR2
119555  ,p_gain_or_loss_ref      OUT VARCHAR2
119556  
119557 --Invoice Distribution Description
119558  , p_source_1            IN VARCHAR2
119559 --Invoice Distribution Ledger Amount
119560  , p_source_16            IN NUMBER
119561 --Invoice Distribution Type
119562  , p_source_28            IN VARCHAR2
119563  , p_source_28_meaning    IN VARCHAR2
119564 --Self-Assessed Tax Account
119565  , p_source_46            IN NUMBER
119566 --Accrue on Receipt Option
119567  , p_source_54            IN VARCHAR2
119568  , p_source_54_meaning    IN VARCHAR2
119569 --Accounting Reversal Indicator
119570  , p_source_58            IN VARCHAR2
119571 --Distribution Link Type
119572  , p_source_60            IN VARCHAR2
119573 --Allocation to Main Distribution Identifier
119574  , p_source_62            IN NUMBER
119575 --Invoice Identifier
119576  , p_source_63            IN NUMBER
119577 --Invoice Distribution Identifier
119578  , p_source_69            IN NUMBER
119579 --Payables Encumbrance Upgrade Credit Account
119580  , p_source_70            IN NUMBER
119581 --Payables Encumbrance Upgrade Credit Amount
119582  , p_source_71            IN NUMBER
119583 --Invoice Currency Code
119584  , p_source_72            IN VARCHAR2
119585 --Payables Encumbrance Upgrade Credit Base Amount
119586  , p_source_73            IN NUMBER
119587 --Payables Encumbrance Upgrade Debit Account
119588  , p_source_74            IN NUMBER
119589 --Payables Encumbrance Upgrade Debit Amount
119590  , p_source_75            IN NUMBER
119591 --Payables Encumbrance Upgrade Debit Base Amount
119592  , p_source_76            IN NUMBER
119593 --Payables Encumbrance Upgrade Option
119594  , p_source_77            IN VARCHAR2
119595 --Invoice Distribution Amount
119596  , p_source_78            IN NUMBER
119597 --Deferred Accounting End Date
119598  , p_source_82            IN DATE
119599 --Deferred Accounting Option
119603 --Override Accounted Amount Indicator
119600  , p_source_83            IN VARCHAR2
119601 --Deferred Accounting Start Date
119602  , p_source_84            IN DATE
119604  , p_source_85            IN VARCHAR2
119605  , p_source_85_meaning    IN VARCHAR2
119606 --Invoice Supplier Identifier
119607  , p_source_86            IN NUMBER
119608 --Invoice Supplier Site Identifier
119609  , p_source_87            IN NUMBER
119610 --Third Party Type
119611  , p_source_88            IN VARCHAR2
119612 --Parent Reversal Identifier
119613  , p_source_89            IN NUMBER
119614 --Invoice Distribution Tax Line Identifier
119615  , p_source_91            IN NUMBER
119616 --Invoice Distribution Tax Distribution Identifier from Tax
119617  , p_source_92            IN NUMBER
119618 --Invoice Distribution Summary Tax Line Identifier
119619  , p_source_93            IN NUMBER
119620 --Payables Upgrade Credit Encumbrance Type Identifier
119621  , p_source_94            IN NUMBER
119622 --Payables Upgrade Debit Encumbrance Type Identifier
119623  , p_source_95            IN NUMBER
119624 --Business Flow Accounts Payable Application Identifier
119625  , p_source_96            IN NUMBER
119626 --Business Flow Invoice Distribution Type
119627  , p_source_97            IN VARCHAR2
119628 --Business Flow Invoice Entity Code
119629  , p_source_98            IN VARCHAR2
119630 --Business Flow Invoice Distribution Identifier
119631  , p_source_99            IN NUMBER
119632 --Business Flow Invoice Identifier
119633  , p_source_100            IN NUMBER
119634 --Self-Assessed Tax Flag
119635  , p_source_145            IN VARCHAR2
119636  , p_source_145_meaning    IN VARCHAR2
119637 --Invoice Exchange Date
119638  , p_source_146            IN DATE
119639 --Invoice Exchange Rate
119640  , p_source_147            IN NUMBER
119641 --Invoice Exchange Rate Type
119642  , p_source_148            IN VARCHAR2
119643 )
119644 IS
119645 
119646 l_component_type              VARCHAR2(80);
119647 l_component_code              VARCHAR2(30);
119648 l_component_type_code         VARCHAR2(1);
119649 l_component_appl_id           INTEGER;
119650 l_amb_context_code            VARCHAR2(30);
119651 l_entity_code                 VARCHAR2(30);
119652 l_event_class_code            VARCHAR2(30);
119653 l_ae_header_id                NUMBER;
119654 l_event_type_code             VARCHAR2(30);
119655 l_line_definition_code        VARCHAR2(30);
119656 l_line_definition_owner_code  VARCHAR2(1);
119657 --
119658 -- adr variables
119659 l_segment                     VARCHAR2(30);
119660 l_ccid                        NUMBER;
119661 l_adr_transaction_coa_id      NUMBER;
119662 l_adr_accounting_coa_id       NUMBER;
119663 l_adr_flexfield_segment_code  VARCHAR2(30);
119664 l_adr_flex_value_set_id       NUMBER;
119665 l_adr_value_type_code         VARCHAR2(30);
119666 l_adr_value_combination_id    NUMBER;
119667 l_adr_value_segment_code      VARCHAR2(30);
119668 
119669 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
119670 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
119671 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
119672 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
119673 
119674 -- 4262811 Variables ------------------------------------------------------------------------------------------
119675 l_entered_amt_idx             NUMBER;
119676 l_accted_amt_idx              NUMBER;
119677 l_acc_rev_flag                VARCHAR2(1);
119678 l_accrual_line_num            NUMBER;
119679 l_tmp_amt                     NUMBER;
119680 l_acc_rev_natural_side_code   VARCHAR2(1);
119681 
119682 l_num_entries                 NUMBER;
119683 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
119684 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
119685 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
119686 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
119687 l_recog_line_1                NUMBER;
119688 l_recog_line_2                NUMBER;
119689 
119690 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
119691 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
119692 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
119693 
119694 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
119695 
119696 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
119697 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
119698 
119699 ---------------------------------------------------------------------------------------------------------------
119700 
119701 
119702 --
119703 -- bulk performance
119704 --
119705 l_balance_type_code           VARCHAR2(1);
119706 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
119707 l_log_module                  VARCHAR2(240);
119708 
119709 --
119710 -- Upgrade strategy
119711 --
119712 l_actual_upg_option           VARCHAR2(1);
119713 l_enc_upg_option           VARCHAR2(1);
119714 
119715 --
119716 BEGIN
119717 --
119718 IF g_log_enabled THEN
119719       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_206';
119720 END IF;
119721 --
119722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119723 
119724       trace
119725          (p_msg      => 'BEGIN of AcctLineType_206'
119726          ,p_level    => C_LEVEL_PROCEDURE
119727          ,p_module   => l_log_module);
119728 
119729 END IF;
119733 l_component_type_code        := 'S';
119730 --
119731 l_component_type             := 'AMB_JLT';
119732 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_DM';
119734 l_component_appl_id          :=  200;
119735 l_amb_context_code           := 'DEFAULT';
119736 l_entity_code                := 'AP_INVOICES';
119737 l_event_class_code           := 'DEBIT MEMOS';
119738 l_event_type_code            := 'DEBIT MEMOS_ALL';
119739 l_line_definition_owner_code := 'S';
119740 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
119741 --
119742 l_balance_type_code          := 'A';
119743 l_segment                     := NULL;
119744 l_ccid                        := NULL;
119745 l_adr_transaction_coa_id      := NULL;
119746 l_adr_accounting_coa_id       := NULL;
119747 l_adr_flexfield_segment_code  := NULL;
119748 l_adr_flex_value_set_id       := NULL;
119749 l_adr_value_type_code         := NULL;
119750 l_adr_value_combination_id    := NULL;
119751 l_adr_value_segment_code      := NULL;
119752 
119753 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
119754 l_bflow_class_code           := '';    -- 4219869 Business Flow
119755 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
119756 l_budgetary_control_flag     := 'N';
119757 
119758 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
119759 l_bflow_applied_to_amt       := NULL; -- 5132302
119760 l_entered_amt_idx            := NULL;          -- 4262811
119761 l_accted_amt_idx             := NULL;          -- 4262811
119762 l_acc_rev_flag               := NULL;          -- 4262811
119763 l_accrual_line_num           := NULL;          -- 4262811
119764 l_tmp_amt                    := NULL;          -- 4262811
119765 --
119766  
119767 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
119768     l_balance_type_code <> 'B' THEN
119769 IF (NVL(p_source_28,'
119770 ') =  'NONREC_TAX' OR 
119771 NVL(p_source_28,'
119772 ') =  'TERV' OR 
119773 NVL(p_source_28,'
119774 ') =  'TIPV' OR 
119775 NVL(p_source_28,'
119776 ') =  'TRV') AND 
119777 NVL(p_source_54,'
119778 ') <>  'Y' AND 
119779 NVL(p_source_145,'
119780 ') =  'Y'
119781  THEN 
119782 
119783    --
119784    XLA_AE_LINES_PKG.SetNewLine;
119785 
119786    p_balance_type_code          := l_balance_type_code;
119787    -- set the flag so later we will know whether the gain loss line needs to be created
119788    
119789    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
119790      p_actual_flag :='A';
119791    END IF;
119792 
119793    --
119794    -- bulk performance
119795    --
119796    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
119797                                       p_header_num   => 0); -- 4262811
119798    --
119799    -- set accounting line options
119800    --
119801    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
119802            p_natural_side_code          => 'D'
119803          , p_gain_or_loss_flag          => 'N'
119804          , p_gl_transfer_mode_code      => 'S'
119805          , p_acct_entry_type_code       => 'A'
119806          , p_switch_side_flag           => 'Y'
119807          , p_merge_duplicate_code       => 'A'
119808          );
119809    --
119810    l_acc_rev_natural_side_code := 'C';  -- 4262811
119811    -- 
119812    --
119813    -- set accounting line type info
119814    --
119815    xla_ae_lines_pkg.SetAcctLineType
119816       (p_component_type             => l_component_type
119817       ,p_event_type_code            => l_event_type_code
119818       ,p_line_definition_owner_code => l_line_definition_owner_code
119819       ,p_line_definition_code       => l_line_definition_code
119820       ,p_accounting_line_code       => l_component_code
119821       ,p_accounting_line_type_code  => l_component_type_code
119822       ,p_accounting_line_appl_id    => l_component_appl_id
119823       ,p_amb_context_code           => l_amb_context_code
119824       ,p_entity_code                => l_entity_code
119825       ,p_event_class_code           => l_event_class_code);
119826    --
119827    -- set accounting class
119828    --
119829    xla_ae_lines_pkg.SetAcctClass(
119830            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
119831          , p_ae_header_id           => l_ae_header_id
119832          );
119833 
119834    --
119835    -- set rounding class
119836    --
119837    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
119838                       'SELF_ASSESSED_TAX';
119839 
119840    --
119841    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
119842    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
119843    --
119844    -- bulk performance
119845    --
119846    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
119847 
119848    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
119849       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
119850 
119851    -- 4955764
119852    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119853       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
119854 
119855    -- 4458381 Public Sector Enh
119856    
119857    --
119858    -- set accounting attributes for the line type
119859    --
119860    l_entered_amt_idx := 23;
119861    l_accted_amt_idx  := 28;
119865    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
119862    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
119863    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
119864    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
119866    l_rec_acct_attrs.array_num_value(2)  := 
119867 xla_ae_sources_pkg.GetSystemSourceNum(
119868    p_source_code           => 'XLA_EVENT_APPL_ID'
119869  , p_source_type_code      => 'Y'
119870  , p_source_application_id =>  602
119871 );
119872    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
119873    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
119874    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
119875    l_rec_acct_attrs.array_char_value(4)  := 
119876 xla_ae_sources_pkg.GetSystemSourceChar(
119877    p_source_code           => 'XLA_ENTITY_CODE'
119878  , p_source_type_code      => 'Y'
119879  , p_source_application_id =>  602
119880 );
119881    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
119882    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
119883    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
119884    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
119885    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
119886    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
119887    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
119888    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
119889    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
119890    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
119891    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
119892    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
119893    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
119894    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
119895    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
119896    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
119897    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
119898    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
119899    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
119900    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
119901    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
119902    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
119903    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
119904    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
119905    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
119906    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
119907    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
119908    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
119909    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
119910    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
119911    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
119912    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
119913    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
119914    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
119915    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
119916    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
119917    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
119918    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
119919    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
119920    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
119921    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
119922    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
119923    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
119924    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
119925    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
119926    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
119927    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
119928    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
119929    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
119930    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
119931    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
119932    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
119933    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
119934    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
119935    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
119936    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
119937    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
119938    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
119939    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
119940    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
119941    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
119942    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
119943    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
119944    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
119945    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
119946    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
119947    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
119948    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
119952    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
119949    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
119950    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
119951    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
119953    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
119954    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
119955    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
119956    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
119957 
119958    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
119959    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
119960 
119961    ---------------------------------------------------------------------------------------------------------------
119962    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
119963    ---------------------------------------------------------------------------------------------------------------
119964    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
119965 
119966    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119967    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119968 
119969    IF xla_accounting_cache_pkg.GetValueChar
119970          (p_source_code         => 'LEDGER_CATEGORY_CODE'
119971          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
119972    AND l_bflow_method_code = 'PRIOR_ENTRY'
119973 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
119974    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
119975          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
119976        )
119977    THEN
119978          xla_ae_lines_pkg.BflowUpgEntry
119979            (p_business_method_code    => l_bflow_method_code
119980            ,p_business_class_code     => l_bflow_class_code
119981            ,p_balance_type            => l_balance_type_code);
119982    ELSE
119983       NULL;
119984 -- No business flow processing for business flow method of NONE.
119985    END IF;
119986 
119987    --
119988    -- call analytical criteria
119989    --
119990    
119991    --
119992    -- call description
119993    --
119994    
119995 xla_ae_lines_pkg.SetLineDescription(
119996    p_ae_header_id => l_ae_header_id
119997   ,p_description  => Description_2 (
119998      p_application_id         => p_application_id
119999    , p_ae_header_id           => l_ae_header_id 
120000 , p_source_1 => p_source_1
120001    )
120002 );
120003 
120004 
120005    --
120006    -- call ADRs
120007    -- Bug 4922099
120008    --
120009    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120010         (NVL(l_actual_upg_option, 'N') = 'O') OR
120011         (NVL(l_enc_upg_option, 'N') = 'O')
120012       )
120013    THEN
120014    NULL;
120015    --
120016    --
120017    
120018   l_ccid := AcctDerRule_44(
120019            p_application_id           => p_application_id
120020          , p_ae_header_id             => l_ae_header_id 
120021 , p_source_46 => p_source_46
120022          , x_transaction_coa_id       => l_adr_transaction_coa_id
120023          , x_accounting_coa_id        => l_adr_accounting_coa_id
120024          , x_value_type_code          => l_adr_value_type_code
120025          , p_side                     => 'NA'
120026    );
120027 
120028    xla_ae_lines_pkg.set_ccid(
120029     p_code_combination_id          => l_ccid
120030   , p_value_type_code              => l_adr_value_type_code
120031   , p_transaction_coa_id           => l_adr_transaction_coa_id
120032   , p_accounting_coa_id            => l_adr_accounting_coa_id
120033   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120034   , p_adr_type_code                => 'S'
120035   , p_component_type               => l_component_type
120036   , p_component_code               => l_component_code
120037   , p_component_type_code          => l_component_type_code
120038   , p_component_appl_id            => l_component_appl_id
120039   , p_amb_context_code             => l_amb_context_code
120040   , p_side                         => 'NA'
120041   );
120042 
120043 
120044    --
120045    --
120046    END IF;
120047    --
120048    -- Bug 4922099
120049    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
120050           (NVL(l_enc_upg_option, 'N') = 'O')
120051         ) AND
120052         (l_bflow_method_code = 'PRIOR_ENTRY')
120053       )
120054    THEN
120055       IF
120056       --
120057       1 = 2
120058       --
120059       THEN
120060       xla_accounting_err_pkg.build_message
120061                                     (p_appli_s_name            => 'XLA'
120062                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120063                                     ,p_token_1                 => 'LINE_NUMBER'
120064                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
120065                                     ,p_token_2                 => 'LINE_TYPE_NAME'
120066                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
120067                                                                              l_component_type
120068                                                                             ,l_component_code
120069                                                                             ,l_component_type_code
120073                                                                             ,l_event_class_code
120070                                                                             ,l_component_appl_id
120071                                                                             ,l_amb_context_code
120072                                                                             ,l_entity_code
120074                                                                            )
120075                                     ,p_token_3                 => 'OWNER'
120076                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
120077                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
120078                                                                           ,p_lookup_code    => l_component_type_code
120079                                                                          )
120080                                     ,p_token_4                 => 'PRODUCT_NAME'
120081                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
120082                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
120083                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
120084                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
120085                                     ,p_ae_header_id            =>  NULL
120086                                        );
120087 
120088         IF (C_LEVEL_ERROR>= g_log_level) THEN
120089                  trace
120090                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120091                       ,p_level    => C_LEVEL_ERROR
120092                       ,p_module   => l_log_module);
120093         END IF;
120094       END IF;
120095    END IF;
120096    --
120097    --
120098    ------------------------------------------------------------------------------------------------
120099    -- 4219869 Business Flow
120100    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
120101    -- Prior Entry.  Currently, the following code is always generated.
120102    ------------------------------------------------------------------------------------------------
120103    XLA_AE_LINES_PKG.ValidateCurrentLine;
120104 
120105    ------------------------------------------------------------------------------------
120106    -- 4219869 Business Flow
120107    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
120108    ------------------------------------------------------------------------------------
120109    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120110 
120111    ----------------------------------------------------------------------------------
120112    -- 4219869 Business Flow
120113    -- Update journal entry status -- Need to generate this within IF <condition>
120114    ----------------------------------------------------------------------------------
120115    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120116          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
120117          ,p_balance_type_code => l_balance_type_code
120118          );
120119 
120120    -------------------------------------------------------------------------------------------
120121    -- 4262811 - Generate the Accrual Reversal lines
120122    -------------------------------------------------------------------------------------------
120123    BEGIN
120124       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
120125                               (g_array_event(p_event_id).array_value_num('header_index'));
120126       IF l_acc_rev_flag IS NULL THEN
120127          l_acc_rev_flag := 'N';
120128       END IF;
120129    EXCEPTION
120130       WHEN OTHERS THEN
120131          l_acc_rev_flag := 'N';
120132    END;
120133    --
120134    IF (l_acc_rev_flag = 'Y') THEN
120135 
120136        -- 4645092  ------------------------------------------------------------------------------
120137        -- To allow MPA report to determine if it should generate report process
120138        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120139        ------------------------------------------------------------------------------------------
120140 
120141        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120142        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120143    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120144    -- call ADRs
120145    -- Bug 4922099
120146    --
120147    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120148         (NVL(l_actual_upg_option, 'N') = 'O') OR
120149         (NVL(l_enc_upg_option, 'N') = 'O')
120150       )
120151    THEN
120152    NULL;
120153    --
120154    --
120155    
120156   l_ccid := AcctDerRule_44(
120157            p_application_id           => p_application_id
120158          , p_ae_header_id             => l_ae_header_id 
120159 , p_source_46 => p_source_46
120160          , x_transaction_coa_id       => l_adr_transaction_coa_id
120161          , x_accounting_coa_id        => l_adr_accounting_coa_id
120162          , x_value_type_code          => l_adr_value_type_code
120163          , p_side                     => 'NA'
120164    );
120165 
120166    xla_ae_lines_pkg.set_ccid(
120167     p_code_combination_id          => l_ccid
120171   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120168   , p_value_type_code              => l_adr_value_type_code
120169   , p_transaction_coa_id           => l_adr_transaction_coa_id
120170   , p_accounting_coa_id            => l_adr_accounting_coa_id
120172   , p_adr_type_code                => 'S'
120173   , p_component_type               => l_component_type
120174   , p_component_code               => l_component_code
120175   , p_component_type_code          => l_component_type_code
120176   , p_component_appl_id            => l_component_appl_id
120177   , p_amb_context_code             => l_amb_context_code
120178   , p_side                         => 'NA'
120179   );
120180 
120181 
120182    --
120183    --
120184    END IF;
120185 
120186        --
120187        -- Update the line information that should be overwritten
120188        --
120189        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
120190                                          p_header_num   => 1);
120191        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
120192 
120193        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
120194 
120195        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
120196           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
120197        END IF;
120198 
120199       --
120200       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
120201       --
120202       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
120203           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
120204       ELSE
120205           ---------------------------------------------------------------------------------------------------
120206           -- 4262811a Switch Sign
120207           ---------------------------------------------------------------------------------------------------
120208           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
120209           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120210                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120211           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120212                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120213           -- 5132302
120214           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
120215                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120216 
120217       END IF;
120218 
120219       -- 4955764
120220       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120221       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
120222 
120223 
120224       XLA_AE_LINES_PKG.ValidateCurrentLine;
120225       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120226 
120227       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120228                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
120229                ,p_balance_type_code => l_balance_type_code);
120230 
120231    END IF;
120232 
120233    -----------------------------------------------------------------------------------------
120234    -- 4262811 Multiperiod Accounting
120235    -----------------------------------------------------------------------------------------
120236      -- No MPA option is assigned.
120237 
120238 
120239 END IF;
120240 END IF;
120241 --
120242 
120243 --
120244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120245    trace
120246       (p_msg      => 'END of AcctLineType_206'
120247       ,p_level    => C_LEVEL_PROCEDURE
120248       ,p_module   => l_log_module);
120249 END IF;
120250 --
120251 EXCEPTION
120252   WHEN xla_exceptions_pkg.application_exception THEN
120253       RAISE;
120254   WHEN OTHERS THEN
120255        xla_exceptions_pkg.raise_message
120256            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_206');
120257 END AcctLineType_206;
120258 --
120259 
120260 ---------------------------------------
120261 --
120262 -- PRIVATE FUNCTION
120263 --         AcctLineType_207
120264 --
120265 ---------------------------------------
120266 PROCEDURE AcctLineType_207 (
120267   p_application_id        IN NUMBER
120268  ,p_event_id              IN NUMBER
120269  ,p_calculate_acctd_flag  IN VARCHAR2
120270  ,p_calculate_g_l_flag    IN VARCHAR2
120271  ,p_actual_flag           IN OUT VARCHAR2
120272  ,p_balance_type_code     OUT VARCHAR2
120273  ,p_gain_or_loss_ref      OUT VARCHAR2
120274  
120275 --Invoice Distribution Description
120276  , p_source_1            IN VARCHAR2
120277 --Invoice Distribution Ledger Amount
120278  , p_source_16            IN NUMBER
120279 --Invoice Distribution Type
120280  , p_source_28            IN VARCHAR2
120281  , p_source_28_meaning    IN VARCHAR2
120282 --Self-Assessed Tax Account
120283  , p_source_46            IN NUMBER
120284 --Accrue on Receipt Option
120285  , p_source_54            IN VARCHAR2
120286  , p_source_54_meaning    IN VARCHAR2
120287 --Accounting Reversal Indicator
120288  , p_source_58            IN VARCHAR2
120292  , p_source_62            IN NUMBER
120289 --Distribution Link Type
120290  , p_source_60            IN VARCHAR2
120291 --Allocation to Main Distribution Identifier
120293 --Invoice Identifier
120294  , p_source_63            IN NUMBER
120295 --Invoice Distribution Identifier
120296  , p_source_69            IN NUMBER
120297 --Payables Encumbrance Upgrade Credit Account
120298  , p_source_70            IN NUMBER
120299 --Payables Encumbrance Upgrade Credit Amount
120300  , p_source_71            IN NUMBER
120301 --Invoice Currency Code
120302  , p_source_72            IN VARCHAR2
120303 --Payables Encumbrance Upgrade Credit Base Amount
120304  , p_source_73            IN NUMBER
120305 --Payables Encumbrance Upgrade Debit Account
120306  , p_source_74            IN NUMBER
120307 --Payables Encumbrance Upgrade Debit Amount
120308  , p_source_75            IN NUMBER
120309 --Payables Encumbrance Upgrade Debit Base Amount
120310  , p_source_76            IN NUMBER
120311 --Payables Encumbrance Upgrade Option
120312  , p_source_77            IN VARCHAR2
120313 --Invoice Distribution Amount
120314  , p_source_78            IN NUMBER
120315 --Deferred Accounting End Date
120316  , p_source_82            IN DATE
120317 --Deferred Accounting Option
120318  , p_source_83            IN VARCHAR2
120319 --Deferred Accounting Start Date
120320  , p_source_84            IN DATE
120321 --Override Accounted Amount Indicator
120322  , p_source_85            IN VARCHAR2
120323  , p_source_85_meaning    IN VARCHAR2
120324 --Invoice Supplier Identifier
120325  , p_source_86            IN NUMBER
120326 --Invoice Supplier Site Identifier
120327  , p_source_87            IN NUMBER
120328 --Third Party Type
120329  , p_source_88            IN VARCHAR2
120330 --Parent Reversal Identifier
120331  , p_source_89            IN NUMBER
120332 --Invoice Distribution Statistical Amount
120333  , p_source_90            IN NUMBER
120334 --Invoice Distribution Tax Line Identifier
120335  , p_source_91            IN NUMBER
120336 --Invoice Distribution Tax Distribution Identifier from Tax
120337  , p_source_92            IN NUMBER
120338 --Invoice Distribution Summary Tax Line Identifier
120339  , p_source_93            IN NUMBER
120340 --Payables Upgrade Credit Encumbrance Type Identifier
120341  , p_source_94            IN NUMBER
120342 --Payables Upgrade Debit Encumbrance Type Identifier
120343  , p_source_95            IN NUMBER
120344 --Business Flow Accounts Payable Application Identifier
120345  , p_source_96            IN NUMBER
120346 --Business Flow Invoice Distribution Type
120347  , p_source_97            IN VARCHAR2
120348 --Business Flow Invoice Entity Code
120349  , p_source_98            IN VARCHAR2
120350 --Business Flow Invoice Distribution Identifier
120351  , p_source_99            IN NUMBER
120352 --Business Flow Invoice Identifier
120353  , p_source_100            IN NUMBER
120354 --Self-Assessed Tax Flag
120355  , p_source_145            IN VARCHAR2
120356  , p_source_145_meaning    IN VARCHAR2
120357 --Invoice Exchange Date
120358  , p_source_146            IN DATE
120359 --Invoice Exchange Rate
120360  , p_source_147            IN NUMBER
120361 --Invoice Exchange Rate Type
120362  , p_source_148            IN VARCHAR2
120363 )
120364 IS
120365 
120366 l_component_type              VARCHAR2(80);
120367 l_component_code              VARCHAR2(30);
120368 l_component_type_code         VARCHAR2(1);
120369 l_component_appl_id           INTEGER;
120370 l_amb_context_code            VARCHAR2(30);
120371 l_entity_code                 VARCHAR2(30);
120372 l_event_class_code            VARCHAR2(30);
120373 l_ae_header_id                NUMBER;
120374 l_event_type_code             VARCHAR2(30);
120375 l_line_definition_code        VARCHAR2(30);
120376 l_line_definition_owner_code  VARCHAR2(1);
120377 --
120378 -- adr variables
120379 l_segment                     VARCHAR2(30);
120380 l_ccid                        NUMBER;
120381 l_adr_transaction_coa_id      NUMBER;
120382 l_adr_accounting_coa_id       NUMBER;
120383 l_adr_flexfield_segment_code  VARCHAR2(30);
120384 l_adr_flex_value_set_id       NUMBER;
120385 l_adr_value_type_code         VARCHAR2(30);
120386 l_adr_value_combination_id    NUMBER;
120387 l_adr_value_segment_code      VARCHAR2(30);
120388 
120389 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
120390 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
120391 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
120392 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
120393 
120394 -- 4262811 Variables ------------------------------------------------------------------------------------------
120395 l_entered_amt_idx             NUMBER;
120396 l_accted_amt_idx              NUMBER;
120397 l_acc_rev_flag                VARCHAR2(1);
120398 l_accrual_line_num            NUMBER;
120399 l_tmp_amt                     NUMBER;
120400 l_acc_rev_natural_side_code   VARCHAR2(1);
120401 
120402 l_num_entries                 NUMBER;
120403 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
120404 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
120405 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
120406 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
120407 l_recog_line_1                NUMBER;
120408 l_recog_line_2                NUMBER;
120409 
120410 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
120411 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
120415 
120412 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
120413 
120414 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
120416 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
120417 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
120418 
120419 ---------------------------------------------------------------------------------------------------------------
120420 
120421 
120422 --
120423 -- bulk performance
120424 --
120425 l_balance_type_code           VARCHAR2(1);
120426 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
120427 l_log_module                  VARCHAR2(240);
120428 
120429 --
120430 -- Upgrade strategy
120431 --
120432 l_actual_upg_option           VARCHAR2(1);
120433 l_enc_upg_option           VARCHAR2(1);
120434 
120435 --
120436 BEGIN
120437 --
120438 IF g_log_enabled THEN
120439       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_207';
120440 END IF;
120441 --
120442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120443 
120444       trace
120445          (p_msg      => 'BEGIN of AcctLineType_207'
120446          ,p_level    => C_LEVEL_PROCEDURE
120447          ,p_module   => l_log_module);
120448 
120449 END IF;
120450 --
120451 l_component_type             := 'AMB_JLT';
120452 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_INV';
120453 l_component_type_code        := 'S';
120454 l_component_appl_id          :=  200;
120455 l_amb_context_code           := 'DEFAULT';
120456 l_entity_code                := 'AP_INVOICES';
120457 l_event_class_code           := 'INVOICES';
120458 l_event_type_code            := 'INVOICES_ALL';
120459 l_line_definition_owner_code := 'S';
120460 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
120461 --
120462 l_balance_type_code          := 'A';
120463 l_segment                     := NULL;
120464 l_ccid                        := NULL;
120465 l_adr_transaction_coa_id      := NULL;
120466 l_adr_accounting_coa_id       := NULL;
120467 l_adr_flexfield_segment_code  := NULL;
120468 l_adr_flex_value_set_id       := NULL;
120469 l_adr_value_type_code         := NULL;
120470 l_adr_value_combination_id    := NULL;
120471 l_adr_value_segment_code      := NULL;
120472 
120473 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
120474 l_bflow_class_code           := '';    -- 4219869 Business Flow
120475 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
120476 l_budgetary_control_flag     := 'N';
120477 
120478 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
120479 l_bflow_applied_to_amt       := NULL; -- 5132302
120480 l_entered_amt_idx            := NULL;          -- 4262811
120481 l_accted_amt_idx             := NULL;          -- 4262811
120482 l_acc_rev_flag               := NULL;          -- 4262811
120483 l_accrual_line_num           := NULL;          -- 4262811
120484 l_tmp_amt                    := NULL;          -- 4262811
120485 --
120486  
120487 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
120488     l_balance_type_code <> 'B' THEN
120489 IF (NVL(p_source_28,'
120490 ') =  'NONREC_TAX' OR 
120491 NVL(p_source_28,'
120492 ') =  'TERV' OR 
120493 NVL(p_source_28,'
120494 ') =  'TIPV' OR 
120495 NVL(p_source_28,'
120496 ') =  'TRV') AND 
120497 NVL(p_source_54,'
120498 ') <>  'Y' AND 
120499 NVL(p_source_145,'
120500 ') =  'Y'
120501  THEN 
120502 
120503    --
120504    XLA_AE_LINES_PKG.SetNewLine;
120505 
120506    p_balance_type_code          := l_balance_type_code;
120507    -- set the flag so later we will know whether the gain loss line needs to be created
120508    
120509    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
120510      p_actual_flag :='A';
120511    END IF;
120512 
120513    --
120514    -- bulk performance
120515    --
120516    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
120517                                       p_header_num   => 0); -- 4262811
120518    --
120519    -- set accounting line options
120520    --
120521    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
120522            p_natural_side_code          => 'D'
120523          , p_gain_or_loss_flag          => 'N'
120524          , p_gl_transfer_mode_code      => 'S'
120525          , p_acct_entry_type_code       => 'A'
120526          , p_switch_side_flag           => 'Y'
120527          , p_merge_duplicate_code       => 'A'
120528          );
120529    --
120530    l_acc_rev_natural_side_code := 'C';  -- 4262811
120531    -- 
120532    --
120533    -- set accounting line type info
120534    --
120535    xla_ae_lines_pkg.SetAcctLineType
120536       (p_component_type             => l_component_type
120537       ,p_event_type_code            => l_event_type_code
120538       ,p_line_definition_owner_code => l_line_definition_owner_code
120539       ,p_line_definition_code       => l_line_definition_code
120540       ,p_accounting_line_code       => l_component_code
120541       ,p_accounting_line_type_code  => l_component_type_code
120542       ,p_accounting_line_appl_id    => l_component_appl_id
120543       ,p_amb_context_code           => l_amb_context_code
120544       ,p_entity_code                => l_entity_code
120545       ,p_event_class_code           => l_event_class_code);
120546    --
120547    -- set accounting class
120548    --
120549    xla_ae_lines_pkg.SetAcctClass(
120550            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
120554    --
120551          , p_ae_header_id           => l_ae_header_id
120552          );
120553 
120555    -- set rounding class
120556    --
120557    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
120558                       'SELF_ASSESSED_TAX';
120559 
120560    --
120561    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
120562    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
120563    --
120564    -- bulk performance
120565    --
120566    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
120567 
120568    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
120569       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
120570 
120571    -- 4955764
120572    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120573       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
120574 
120575    -- 4458381 Public Sector Enh
120576    
120577    --
120578    -- set accounting attributes for the line type
120579    --
120580    l_entered_amt_idx := 24;
120581    l_accted_amt_idx  := 29;
120582    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
120583    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
120584    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
120585    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
120586    l_rec_acct_attrs.array_num_value(2)  := 
120587 xla_ae_sources_pkg.GetSystemSourceNum(
120588    p_source_code           => 'XLA_EVENT_APPL_ID'
120589  , p_source_type_code      => 'Y'
120590  , p_source_application_id =>  602
120591 );
120592    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
120593    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
120594    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
120595    l_rec_acct_attrs.array_char_value(4)  := 
120596 xla_ae_sources_pkg.GetSystemSourceChar(
120597    p_source_code           => 'XLA_ENTITY_CODE'
120598  , p_source_type_code      => 'Y'
120599  , p_source_application_id =>  602
120600 );
120601    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
120602    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
120603    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
120604    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
120605    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
120606    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
120607    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
120608    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
120609    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
120610    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
120611    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
120612    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
120613    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
120614    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
120615    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
120616    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
120617    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
120618    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
120619    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
120620    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
120621    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
120622    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
120623    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
120624    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
120625    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
120626    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
120627    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
120628    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
120629    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
120630    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
120631    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
120632    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
120633    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
120634    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
120635    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
120636    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
120637    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
120638    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
120639    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
120640    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
120641    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
120642    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
120643    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
120644    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
120645    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
120646    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
120647    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
120648    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
120652    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
120649    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
120650    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
120651    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
120653    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
120654    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
120655    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
120656    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
120657    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
120658    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
120659    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
120660    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
120661    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
120662    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
120663    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
120664    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
120665    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
120666    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
120667    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
120668    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
120669    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
120670    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
120671    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
120672    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
120673    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
120674    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
120675    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
120676    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
120677    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
120678    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
120679    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
120680    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
120681 
120682    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
120683    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
120684 
120685    ---------------------------------------------------------------------------------------------------------------
120686    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
120687    ---------------------------------------------------------------------------------------------------------------
120688    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
120689 
120690    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120691    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120692 
120693    IF xla_accounting_cache_pkg.GetValueChar
120694          (p_source_code         => 'LEDGER_CATEGORY_CODE'
120695          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
120696    AND l_bflow_method_code = 'PRIOR_ENTRY'
120697 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
120698    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
120699          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
120700        )
120701    THEN
120702          xla_ae_lines_pkg.BflowUpgEntry
120703            (p_business_method_code    => l_bflow_method_code
120704            ,p_business_class_code     => l_bflow_class_code
120705            ,p_balance_type            => l_balance_type_code);
120706    ELSE
120707       NULL;
120708 -- No business flow processing for business flow method of NONE.
120709    END IF;
120710 
120711    --
120712    -- call analytical criteria
120713    --
120714    
120715    --
120716    -- call description
120717    --
120718    
120719 xla_ae_lines_pkg.SetLineDescription(
120720    p_ae_header_id => l_ae_header_id
120721   ,p_description  => Description_2 (
120722      p_application_id         => p_application_id
120723    , p_ae_header_id           => l_ae_header_id 
120724 , p_source_1 => p_source_1
120725    )
120726 );
120727 
120728 
120729    --
120730    -- call ADRs
120731    -- Bug 4922099
120732    --
120733    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120734         (NVL(l_actual_upg_option, 'N') = 'O') OR
120735         (NVL(l_enc_upg_option, 'N') = 'O')
120736       )
120737    THEN
120738    NULL;
120739    --
120740    --
120741    
120742   l_ccid := AcctDerRule_44(
120743            p_application_id           => p_application_id
120744          , p_ae_header_id             => l_ae_header_id 
120745 , p_source_46 => p_source_46
120746          , x_transaction_coa_id       => l_adr_transaction_coa_id
120747          , x_accounting_coa_id        => l_adr_accounting_coa_id
120748          , x_value_type_code          => l_adr_value_type_code
120749          , p_side                     => 'NA'
120750    );
120751 
120752    xla_ae_lines_pkg.set_ccid(
120753     p_code_combination_id          => l_ccid
120754   , p_value_type_code              => l_adr_value_type_code
120755   , p_transaction_coa_id           => l_adr_transaction_coa_id
120756   , p_accounting_coa_id            => l_adr_accounting_coa_id
120757   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120758   , p_adr_type_code                => 'S'
120762   , p_component_appl_id            => l_component_appl_id
120759   , p_component_type               => l_component_type
120760   , p_component_code               => l_component_code
120761   , p_component_type_code          => l_component_type_code
120763   , p_amb_context_code             => l_amb_context_code
120764   , p_side                         => 'NA'
120765   );
120766 
120767 
120768    --
120769    --
120770    END IF;
120771    --
120772    -- Bug 4922099
120773    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
120774           (NVL(l_enc_upg_option, 'N') = 'O')
120775         ) AND
120776         (l_bflow_method_code = 'PRIOR_ENTRY')
120777       )
120778    THEN
120779       IF
120780       --
120781       1 = 2
120782       --
120783       THEN
120784       xla_accounting_err_pkg.build_message
120785                                     (p_appli_s_name            => 'XLA'
120786                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120787                                     ,p_token_1                 => 'LINE_NUMBER'
120788                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
120789                                     ,p_token_2                 => 'LINE_TYPE_NAME'
120790                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
120791                                                                              l_component_type
120792                                                                             ,l_component_code
120793                                                                             ,l_component_type_code
120794                                                                             ,l_component_appl_id
120795                                                                             ,l_amb_context_code
120796                                                                             ,l_entity_code
120797                                                                             ,l_event_class_code
120798                                                                            )
120799                                     ,p_token_3                 => 'OWNER'
120800                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
120801                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
120802                                                                           ,p_lookup_code    => l_component_type_code
120803                                                                          )
120804                                     ,p_token_4                 => 'PRODUCT_NAME'
120805                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
120806                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
120807                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
120808                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
120809                                     ,p_ae_header_id            =>  NULL
120810                                        );
120811 
120812         IF (C_LEVEL_ERROR>= g_log_level) THEN
120813                  trace
120814                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120815                       ,p_level    => C_LEVEL_ERROR
120816                       ,p_module   => l_log_module);
120817         END IF;
120818       END IF;
120819    END IF;
120820    --
120821    --
120822    ------------------------------------------------------------------------------------------------
120823    -- 4219869 Business Flow
120824    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
120825    -- Prior Entry.  Currently, the following code is always generated.
120826    ------------------------------------------------------------------------------------------------
120827    XLA_AE_LINES_PKG.ValidateCurrentLine;
120828 
120829    ------------------------------------------------------------------------------------
120830    -- 4219869 Business Flow
120831    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
120832    ------------------------------------------------------------------------------------
120833    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120834 
120835    ----------------------------------------------------------------------------------
120836    -- 4219869 Business Flow
120837    -- Update journal entry status -- Need to generate this within IF <condition>
120838    ----------------------------------------------------------------------------------
120839    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120840          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
120841          ,p_balance_type_code => l_balance_type_code
120842          );
120843 
120844    -------------------------------------------------------------------------------------------
120845    -- 4262811 - Generate the Accrual Reversal lines
120846    -------------------------------------------------------------------------------------------
120847    BEGIN
120848       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
120849                               (g_array_event(p_event_id).array_value_num('header_index'));
120850       IF l_acc_rev_flag IS NULL THEN
120851          l_acc_rev_flag := 'N';
120852       END IF;
120853    EXCEPTION
120854       WHEN OTHERS THEN
120855          l_acc_rev_flag := 'N';
120856    END;
120857    --
120858    IF (l_acc_rev_flag = 'Y') THEN
120859 
120863        ------------------------------------------------------------------------------------------
120860        -- 4645092  ------------------------------------------------------------------------------
120861        -- To allow MPA report to determine if it should generate report process
120862        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120864 
120865        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120866        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120867    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120868    -- call ADRs
120869    -- Bug 4922099
120870    --
120871    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120872         (NVL(l_actual_upg_option, 'N') = 'O') OR
120873         (NVL(l_enc_upg_option, 'N') = 'O')
120874       )
120875    THEN
120876    NULL;
120877    --
120878    --
120879    
120880   l_ccid := AcctDerRule_44(
120881            p_application_id           => p_application_id
120882          , p_ae_header_id             => l_ae_header_id 
120883 , p_source_46 => p_source_46
120884          , x_transaction_coa_id       => l_adr_transaction_coa_id
120885          , x_accounting_coa_id        => l_adr_accounting_coa_id
120886          , x_value_type_code          => l_adr_value_type_code
120887          , p_side                     => 'NA'
120888    );
120889 
120890    xla_ae_lines_pkg.set_ccid(
120891     p_code_combination_id          => l_ccid
120892   , p_value_type_code              => l_adr_value_type_code
120893   , p_transaction_coa_id           => l_adr_transaction_coa_id
120894   , p_accounting_coa_id            => l_adr_accounting_coa_id
120895   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120896   , p_adr_type_code                => 'S'
120897   , p_component_type               => l_component_type
120898   , p_component_code               => l_component_code
120899   , p_component_type_code          => l_component_type_code
120900   , p_component_appl_id            => l_component_appl_id
120901   , p_amb_context_code             => l_amb_context_code
120902   , p_side                         => 'NA'
120903   );
120904 
120905 
120906    --
120907    --
120908    END IF;
120909 
120910        --
120911        -- Update the line information that should be overwritten
120912        --
120913        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
120914                                          p_header_num   => 1);
120915        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
120916 
120917        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
120918 
120919        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
120920           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
120921        END IF;
120922 
120923       --
120924       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
120925       --
120926       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
120927           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
120928       ELSE
120929           ---------------------------------------------------------------------------------------------------
120930           -- 4262811a Switch Sign
120931           ---------------------------------------------------------------------------------------------------
120932           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
120933           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120934                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120935           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120936                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120937           -- 5132302
120938           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
120939                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120940 
120941       END IF;
120942 
120943       -- 4955764
120944       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120945       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
120946 
120947 
120948       XLA_AE_LINES_PKG.ValidateCurrentLine;
120949       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120950 
120951       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120952                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
120953                ,p_balance_type_code => l_balance_type_code);
120954 
120955    END IF;
120956 
120957    -----------------------------------------------------------------------------------------
120958    -- 4262811 Multiperiod Accounting
120959    -----------------------------------------------------------------------------------------
120960      -- No MPA option is assigned.
120961 
120962 
120963 END IF;
120964 END IF;
120965 --
120966 
120967 --
120968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120969    trace
120970       (p_msg      => 'END of AcctLineType_207'
120971       ,p_level    => C_LEVEL_PROCEDURE
120972       ,p_module   => l_log_module);
120976   WHEN xla_exceptions_pkg.application_exception THEN
120973 END IF;
120974 --
120975 EXCEPTION
120977       RAISE;
120978   WHEN OTHERS THEN
120979        xla_exceptions_pkg.raise_message
120980            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_207');
120981 END AcctLineType_207;
120982 --
120983 
120984 ---------------------------------------
120985 --
120986 -- PRIVATE FUNCTION
120987 --         AcctLineType_208
120988 --
120989 ---------------------------------------
120990 PROCEDURE AcctLineType_208 (
120991   p_application_id        IN NUMBER
120992  ,p_event_id              IN NUMBER
120993  ,p_calculate_acctd_flag  IN VARCHAR2
120994  ,p_calculate_g_l_flag    IN VARCHAR2
120995  ,p_actual_flag           IN OUT VARCHAR2
120996  ,p_balance_type_code     OUT VARCHAR2
120997  ,p_gain_or_loss_ref      OUT VARCHAR2
120998  
120999 --Invoice Distribution Description
121000  , p_source_1            IN VARCHAR2
121001 --Invoice Distribution Ledger Amount
121002  , p_source_16            IN NUMBER
121003 --Invoice Distribution Type
121004  , p_source_28            IN VARCHAR2
121005  , p_source_28_meaning    IN VARCHAR2
121006 --Self-Assessed Tax Account
121007  , p_source_46            IN NUMBER
121008 --Accounting Reversal Indicator
121009  , p_source_58            IN VARCHAR2
121010 --Distribution Link Type
121011  , p_source_60            IN VARCHAR2
121012 --Allocation to Main Distribution Identifier
121013  , p_source_62            IN NUMBER
121014 --Invoice Identifier
121015  , p_source_63            IN NUMBER
121016 --Invoice Distribution Identifier
121017  , p_source_69            IN NUMBER
121018 --Payables Encumbrance Upgrade Credit Account
121019  , p_source_70            IN NUMBER
121020 --Payables Encumbrance Upgrade Credit Amount
121021  , p_source_71            IN NUMBER
121022 --Invoice Currency Code
121023  , p_source_72            IN VARCHAR2
121024 --Payables Encumbrance Upgrade Credit Base Amount
121025  , p_source_73            IN NUMBER
121026 --Payables Encumbrance Upgrade Debit Account
121027  , p_source_74            IN NUMBER
121028 --Payables Encumbrance Upgrade Debit Amount
121029  , p_source_75            IN NUMBER
121030 --Payables Encumbrance Upgrade Debit Base Amount
121031  , p_source_76            IN NUMBER
121032 --Payables Encumbrance Upgrade Option
121033  , p_source_77            IN VARCHAR2
121034 --Invoice Distribution Amount
121035  , p_source_78            IN NUMBER
121036 --Deferred Accounting End Date
121037  , p_source_82            IN DATE
121038 --Deferred Accounting Option
121039  , p_source_83            IN VARCHAR2
121040 --Deferred Accounting Start Date
121041  , p_source_84            IN DATE
121042 --Override Accounted Amount Indicator
121043  , p_source_85            IN VARCHAR2
121044  , p_source_85_meaning    IN VARCHAR2
121045 --Invoice Supplier Identifier
121046  , p_source_86            IN NUMBER
121047 --Invoice Supplier Site Identifier
121048  , p_source_87            IN NUMBER
121049 --Third Party Type
121050  , p_source_88            IN VARCHAR2
121051 --Parent Reversal Identifier
121052  , p_source_89            IN NUMBER
121053 --Invoice Distribution Statistical Amount
121054  , p_source_90            IN NUMBER
121055 --Invoice Distribution Tax Line Identifier
121056  , p_source_91            IN NUMBER
121057 --Invoice Distribution Tax Distribution Identifier from Tax
121058  , p_source_92            IN NUMBER
121059 --Invoice Distribution Summary Tax Line Identifier
121060  , p_source_93            IN NUMBER
121061 --Payables Upgrade Credit Encumbrance Type Identifier
121062  , p_source_94            IN NUMBER
121063 --Payables Upgrade Debit Encumbrance Type Identifier
121064  , p_source_95            IN NUMBER
121065 --Business Flow Accounts Payable Application Identifier
121066  , p_source_96            IN NUMBER
121067 --Business Flow Invoice Distribution Type
121068  , p_source_97            IN VARCHAR2
121069 --Business Flow Invoice Entity Code
121070  , p_source_98            IN VARCHAR2
121071 --Business Flow Invoice Distribution Identifier
121072  , p_source_99            IN NUMBER
121073 --Business Flow Invoice Identifier
121074  , p_source_100            IN NUMBER
121075 --Self-Assessed Tax Flag
121076  , p_source_145            IN VARCHAR2
121077  , p_source_145_meaning    IN VARCHAR2
121078 --Invoice Exchange Date
121079  , p_source_146            IN DATE
121080 --Invoice Exchange Rate
121081  , p_source_147            IN NUMBER
121082 --Invoice Exchange Rate Type
121083  , p_source_148            IN VARCHAR2
121084 )
121085 IS
121086 
121087 l_component_type              VARCHAR2(80);
121088 l_component_code              VARCHAR2(30);
121089 l_component_type_code         VARCHAR2(1);
121090 l_component_appl_id           INTEGER;
121091 l_amb_context_code            VARCHAR2(30);
121092 l_entity_code                 VARCHAR2(30);
121093 l_event_class_code            VARCHAR2(30);
121094 l_ae_header_id                NUMBER;
121095 l_event_type_code             VARCHAR2(30);
121096 l_line_definition_code        VARCHAR2(30);
121097 l_line_definition_owner_code  VARCHAR2(1);
121098 --
121099 -- adr variables
121100 l_segment                     VARCHAR2(30);
121101 l_ccid                        NUMBER;
121102 l_adr_transaction_coa_id      NUMBER;
121103 l_adr_accounting_coa_id       NUMBER;
121104 l_adr_flexfield_segment_code  VARCHAR2(30);
121105 l_adr_flex_value_set_id       NUMBER;
121106 l_adr_value_type_code         VARCHAR2(30);
121107 l_adr_value_combination_id    NUMBER;
121111 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
121108 l_adr_value_segment_code      VARCHAR2(30);
121109 
121110 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
121112 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
121113 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
121114 
121115 -- 4262811 Variables ------------------------------------------------------------------------------------------
121116 l_entered_amt_idx             NUMBER;
121117 l_accted_amt_idx              NUMBER;
121118 l_acc_rev_flag                VARCHAR2(1);
121119 l_accrual_line_num            NUMBER;
121120 l_tmp_amt                     NUMBER;
121121 l_acc_rev_natural_side_code   VARCHAR2(1);
121122 
121123 l_num_entries                 NUMBER;
121124 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
121125 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
121126 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
121127 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
121128 l_recog_line_1                NUMBER;
121129 l_recog_line_2                NUMBER;
121130 
121131 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
121132 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
121133 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
121134 
121135 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
121136 
121137 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
121138 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
121139 
121140 ---------------------------------------------------------------------------------------------------------------
121141 
121142 
121143 --
121144 -- bulk performance
121145 --
121146 l_balance_type_code           VARCHAR2(1);
121147 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
121148 l_log_module                  VARCHAR2(240);
121149 
121150 --
121151 -- Upgrade strategy
121152 --
121153 l_actual_upg_option           VARCHAR2(1);
121154 l_enc_upg_option           VARCHAR2(1);
121155 
121156 --
121157 BEGIN
121158 --
121159 IF g_log_enabled THEN
121160       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_208';
121161 END IF;
121162 --
121163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121164 
121165       trace
121166          (p_msg      => 'BEGIN of AcctLineType_208'
121167          ,p_level    => C_LEVEL_PROCEDURE
121168          ,p_module   => l_log_module);
121169 
121170 END IF;
121171 --
121172 l_component_type             := 'AMB_JLT';
121173 l_component_code             := 'AP_SELF_ASSESSED_RECTAX_PREPAY';
121174 l_component_type_code        := 'S';
121175 l_component_appl_id          :=  200;
121176 l_amb_context_code           := 'DEFAULT';
121177 l_entity_code                := 'AP_INVOICES';
121178 l_event_class_code           := 'PREPAYMENTS';
121179 l_event_type_code            := 'PREPAYMENTS_ALL';
121180 l_line_definition_owner_code := 'S';
121181 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
121182 --
121183 l_balance_type_code          := 'A';
121184 l_segment                     := NULL;
121185 l_ccid                        := NULL;
121186 l_adr_transaction_coa_id      := NULL;
121187 l_adr_accounting_coa_id       := NULL;
121188 l_adr_flexfield_segment_code  := NULL;
121189 l_adr_flex_value_set_id       := NULL;
121190 l_adr_value_type_code         := NULL;
121191 l_adr_value_combination_id    := NULL;
121192 l_adr_value_segment_code      := NULL;
121193 
121194 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
121195 l_bflow_class_code           := '';    -- 4219869 Business Flow
121196 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
121197 l_budgetary_control_flag     := 'N';
121198 
121199 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
121200 l_bflow_applied_to_amt       := NULL; -- 5132302
121201 l_entered_amt_idx            := NULL;          -- 4262811
121202 l_accted_amt_idx             := NULL;          -- 4262811
121203 l_acc_rev_flag               := NULL;          -- 4262811
121204 l_accrual_line_num           := NULL;          -- 4262811
121205 l_tmp_amt                    := NULL;          -- 4262811
121206 --
121207  
121208 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
121209     l_balance_type_code <> 'B' THEN
121210 IF NVL(p_source_28,'
121211 ') =  'REC_TAX' AND 
121212 NVL(p_source_145,'
121213 ') =  'Y'
121214  THEN 
121215 
121216    --
121217    XLA_AE_LINES_PKG.SetNewLine;
121218 
121219    p_balance_type_code          := l_balance_type_code;
121220    -- set the flag so later we will know whether the gain loss line needs to be created
121221    
121222    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
121223      p_actual_flag :='A';
121224    END IF;
121225 
121226    --
121227    -- bulk performance
121228    --
121229    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
121230                                       p_header_num   => 0); -- 4262811
121231    --
121232    -- set accounting line options
121233    --
121234    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
121235            p_natural_side_code          => 'D'
121236          , p_gain_or_loss_flag          => 'N'
121237          , p_gl_transfer_mode_code      => 'S'
121241          );
121238          , p_acct_entry_type_code       => 'A'
121239          , p_switch_side_flag           => 'Y'
121240          , p_merge_duplicate_code       => 'A'
121242    --
121243    l_acc_rev_natural_side_code := 'C';  -- 4262811
121244    -- 
121245    --
121246    -- set accounting line type info
121247    --
121248    xla_ae_lines_pkg.SetAcctLineType
121249       (p_component_type             => l_component_type
121250       ,p_event_type_code            => l_event_type_code
121251       ,p_line_definition_owner_code => l_line_definition_owner_code
121252       ,p_line_definition_code       => l_line_definition_code
121253       ,p_accounting_line_code       => l_component_code
121254       ,p_accounting_line_type_code  => l_component_type_code
121255       ,p_accounting_line_appl_id    => l_component_appl_id
121256       ,p_amb_context_code           => l_amb_context_code
121257       ,p_entity_code                => l_entity_code
121258       ,p_event_class_code           => l_event_class_code);
121259    --
121260    -- set accounting class
121261    --
121262    xla_ae_lines_pkg.SetAcctClass(
121263            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
121264          , p_ae_header_id           => l_ae_header_id
121265          );
121266 
121267    --
121268    -- set rounding class
121269    --
121270    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
121271                       'SELF_ASSESSED_TAX';
121272 
121273    --
121274    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
121275    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
121276    --
121277    -- bulk performance
121278    --
121279    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
121280 
121281    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
121282       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
121283 
121284    -- 4955764
121285    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121286       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
121287 
121288    -- 4458381 Public Sector Enh
121289    
121290    --
121291    -- set accounting attributes for the line type
121292    --
121293    l_entered_amt_idx := 23;
121294    l_accted_amt_idx  := 28;
121295    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
121296    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
121297    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
121298    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
121299    l_rec_acct_attrs.array_num_value(2)  := 
121300 xla_ae_sources_pkg.GetSystemSourceNum(
121301    p_source_code           => 'XLA_EVENT_APPL_ID'
121302  , p_source_type_code      => 'Y'
121303  , p_source_application_id =>  602
121304 );
121305    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
121306    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
121307    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
121308    l_rec_acct_attrs.array_char_value(4)  := 
121309 xla_ae_sources_pkg.GetSystemSourceChar(
121310    p_source_code           => 'XLA_ENTITY_CODE'
121311  , p_source_type_code      => 'Y'
121312  , p_source_application_id =>  602
121313 );
121314    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
121315    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
121316    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
121317    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
121318    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
121319    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
121320    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
121321    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
121322    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
121323    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
121324    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
121325    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
121326    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
121327    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
121328    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
121329    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
121330    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
121331    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
121332    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
121333    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
121334    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
121335    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
121336    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
121337    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
121338    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
121339    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
121340    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
121341    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
121342    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
121343    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
121344    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
121348    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
121345    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
121346    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
121347    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
121349    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
121350    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
121351    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
121352    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
121353    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
121354    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
121355    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
121356    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
121357    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
121358    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
121359    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
121360    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
121361    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
121362    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
121363    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
121364    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
121365    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
121366    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
121367    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
121368    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
121369    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
121370    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
121371    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
121372    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
121373    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
121374    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
121375    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
121376    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
121377    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
121378    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
121379    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
121380    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
121381    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
121382    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
121383    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
121384    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
121385    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
121386    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
121387    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
121388    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
121389    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
121390    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
121391    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
121392 
121393    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
121394    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
121395 
121396    ---------------------------------------------------------------------------------------------------------------
121397    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
121398    ---------------------------------------------------------------------------------------------------------------
121399    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
121400 
121401    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121402    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121403 
121404    IF xla_accounting_cache_pkg.GetValueChar
121405          (p_source_code         => 'LEDGER_CATEGORY_CODE'
121406          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
121407    AND l_bflow_method_code = 'PRIOR_ENTRY'
121408 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
121409    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
121410          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
121411        )
121412    THEN
121413          xla_ae_lines_pkg.BflowUpgEntry
121414            (p_business_method_code    => l_bflow_method_code
121415            ,p_business_class_code     => l_bflow_class_code
121416            ,p_balance_type            => l_balance_type_code);
121417    ELSE
121418       NULL;
121419 -- No business flow processing for business flow method of NONE.
121420    END IF;
121421 
121422    --
121423    -- call analytical criteria
121424    --
121425    
121426    --
121427    -- call description
121428    --
121429    
121430 xla_ae_lines_pkg.SetLineDescription(
121431    p_ae_header_id => l_ae_header_id
121432   ,p_description  => Description_2 (
121433      p_application_id         => p_application_id
121434    , p_ae_header_id           => l_ae_header_id 
121435 , p_source_1 => p_source_1
121436    )
121437 );
121438 
121439 
121440    --
121441    -- call ADRs
121442    -- Bug 4922099
121443    --
121444    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121445         (NVL(l_actual_upg_option, 'N') = 'O') OR
121446         (NVL(l_enc_upg_option, 'N') = 'O')
121450    --
121447       )
121448    THEN
121449    NULL;
121451    --
121452    
121453   l_ccid := AcctDerRule_44(
121454            p_application_id           => p_application_id
121455          , p_ae_header_id             => l_ae_header_id 
121456 , p_source_46 => p_source_46
121457          , x_transaction_coa_id       => l_adr_transaction_coa_id
121458          , x_accounting_coa_id        => l_adr_accounting_coa_id
121459          , x_value_type_code          => l_adr_value_type_code
121460          , p_side                     => 'NA'
121461    );
121462 
121463    xla_ae_lines_pkg.set_ccid(
121464     p_code_combination_id          => l_ccid
121465   , p_value_type_code              => l_adr_value_type_code
121466   , p_transaction_coa_id           => l_adr_transaction_coa_id
121467   , p_accounting_coa_id            => l_adr_accounting_coa_id
121468   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121469   , p_adr_type_code                => 'S'
121470   , p_component_type               => l_component_type
121471   , p_component_code               => l_component_code
121472   , p_component_type_code          => l_component_type_code
121473   , p_component_appl_id            => l_component_appl_id
121474   , p_amb_context_code             => l_amb_context_code
121475   , p_side                         => 'NA'
121476   );
121477 
121478 
121479    --
121480    --
121481    END IF;
121482    --
121483    -- Bug 4922099
121484    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
121485           (NVL(l_enc_upg_option, 'N') = 'O')
121486         ) AND
121487         (l_bflow_method_code = 'PRIOR_ENTRY')
121488       )
121489    THEN
121490       IF
121491       --
121492       1 = 2
121493       --
121494       THEN
121495       xla_accounting_err_pkg.build_message
121496                                     (p_appli_s_name            => 'XLA'
121497                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121498                                     ,p_token_1                 => 'LINE_NUMBER'
121499                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
121500                                     ,p_token_2                 => 'LINE_TYPE_NAME'
121501                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
121502                                                                              l_component_type
121503                                                                             ,l_component_code
121504                                                                             ,l_component_type_code
121505                                                                             ,l_component_appl_id
121506                                                                             ,l_amb_context_code
121507                                                                             ,l_entity_code
121508                                                                             ,l_event_class_code
121509                                                                            )
121510                                     ,p_token_3                 => 'OWNER'
121511                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
121512                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
121513                                                                           ,p_lookup_code    => l_component_type_code
121514                                                                          )
121515                                     ,p_token_4                 => 'PRODUCT_NAME'
121516                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
121517                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
121518                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
121519                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
121520                                     ,p_ae_header_id            =>  NULL
121521                                        );
121522 
121523         IF (C_LEVEL_ERROR>= g_log_level) THEN
121524                  trace
121525                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121526                       ,p_level    => C_LEVEL_ERROR
121527                       ,p_module   => l_log_module);
121528         END IF;
121529       END IF;
121530    END IF;
121531    --
121532    --
121533    ------------------------------------------------------------------------------------------------
121534    -- 4219869 Business Flow
121535    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
121536    -- Prior Entry.  Currently, the following code is always generated.
121537    ------------------------------------------------------------------------------------------------
121538    XLA_AE_LINES_PKG.ValidateCurrentLine;
121539 
121540    ------------------------------------------------------------------------------------
121541    -- 4219869 Business Flow
121542    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
121543    ------------------------------------------------------------------------------------
121544    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121545 
121546    ----------------------------------------------------------------------------------
121547    -- 4219869 Business Flow
121551          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
121548    -- Update journal entry status -- Need to generate this within IF <condition>
121549    ----------------------------------------------------------------------------------
121550    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121552          ,p_balance_type_code => l_balance_type_code
121553          );
121554 
121555    -------------------------------------------------------------------------------------------
121556    -- 4262811 - Generate the Accrual Reversal lines
121557    -------------------------------------------------------------------------------------------
121558    BEGIN
121559       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
121560                               (g_array_event(p_event_id).array_value_num('header_index'));
121561       IF l_acc_rev_flag IS NULL THEN
121562          l_acc_rev_flag := 'N';
121563       END IF;
121564    EXCEPTION
121565       WHEN OTHERS THEN
121566          l_acc_rev_flag := 'N';
121567    END;
121568    --
121569    IF (l_acc_rev_flag = 'Y') THEN
121570 
121571        -- 4645092  ------------------------------------------------------------------------------
121572        -- To allow MPA report to determine if it should generate report process
121573        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
121574        ------------------------------------------------------------------------------------------
121575 
121576        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
121577        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
121578    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
121579    -- call ADRs
121580    -- Bug 4922099
121581    --
121582    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121583         (NVL(l_actual_upg_option, 'N') = 'O') OR
121584         (NVL(l_enc_upg_option, 'N') = 'O')
121585       )
121586    THEN
121587    NULL;
121588    --
121589    --
121590    
121591   l_ccid := AcctDerRule_44(
121592            p_application_id           => p_application_id
121593          , p_ae_header_id             => l_ae_header_id 
121594 , p_source_46 => p_source_46
121595          , x_transaction_coa_id       => l_adr_transaction_coa_id
121596          , x_accounting_coa_id        => l_adr_accounting_coa_id
121597          , x_value_type_code          => l_adr_value_type_code
121598          , p_side                     => 'NA'
121599    );
121600 
121601    xla_ae_lines_pkg.set_ccid(
121602     p_code_combination_id          => l_ccid
121603   , p_value_type_code              => l_adr_value_type_code
121604   , p_transaction_coa_id           => l_adr_transaction_coa_id
121605   , p_accounting_coa_id            => l_adr_accounting_coa_id
121606   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121607   , p_adr_type_code                => 'S'
121608   , p_component_type               => l_component_type
121609   , p_component_code               => l_component_code
121610   , p_component_type_code          => l_component_type_code
121611   , p_component_appl_id            => l_component_appl_id
121612   , p_amb_context_code             => l_amb_context_code
121613   , p_side                         => 'NA'
121614   );
121615 
121616 
121617    --
121618    --
121619    END IF;
121620 
121621        --
121622        -- Update the line information that should be overwritten
121623        --
121624        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
121625                                          p_header_num   => 1);
121626        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
121627 
121628        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
121629 
121630        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
121631           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
121632        END IF;
121633 
121634       --
121635       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
121636       --
121637       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
121638           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
121639       ELSE
121640           ---------------------------------------------------------------------------------------------------
121641           -- 4262811a Switch Sign
121642           ---------------------------------------------------------------------------------------------------
121643           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
121644           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121645                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121646           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121647                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121648           -- 5132302
121649           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
121650                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121651 
121652       END IF;
121653 
121654       -- 4955764
121655       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121659       XLA_AE_LINES_PKG.ValidateCurrentLine;
121656       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
121657 
121658 
121660       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121661 
121662       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121663                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
121664                ,p_balance_type_code => l_balance_type_code);
121665 
121666    END IF;
121667 
121668    -----------------------------------------------------------------------------------------
121669    -- 4262811 Multiperiod Accounting
121670    -----------------------------------------------------------------------------------------
121671      -- No MPA option is assigned.
121672 
121673 
121674 END IF;
121675 END IF;
121676 --
121677 
121678 --
121679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121680    trace
121681       (p_msg      => 'END of AcctLineType_208'
121682       ,p_level    => C_LEVEL_PROCEDURE
121683       ,p_module   => l_log_module);
121684 END IF;
121685 --
121686 EXCEPTION
121687   WHEN xla_exceptions_pkg.application_exception THEN
121688       RAISE;
121689   WHEN OTHERS THEN
121690        xla_exceptions_pkg.raise_message
121691            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_208');
121692 END AcctLineType_208;
121693 --
121694 
121695 ---------------------------------------
121696 --
121697 -- PRIVATE FUNCTION
121698 --         AcctLineType_209
121699 --
121700 ---------------------------------------
121701 PROCEDURE AcctLineType_209 (
121702   p_application_id        IN NUMBER
121703  ,p_event_id              IN NUMBER
121704  ,p_calculate_acctd_flag  IN VARCHAR2
121705  ,p_calculate_g_l_flag    IN VARCHAR2
121706  ,p_actual_flag           IN OUT VARCHAR2
121707  ,p_balance_type_code     OUT VARCHAR2
121708  ,p_gain_or_loss_ref      OUT VARCHAR2
121709  
121710 --Invoice Distribution Description
121711  , p_source_1            IN VARCHAR2
121712 --Invoice Distribution Ledger Amount
121713  , p_source_16            IN NUMBER
121714 --Invoice Distribution Type
121715  , p_source_28            IN VARCHAR2
121716  , p_source_28_meaning    IN VARCHAR2
121717 --Self-Assessed Tax Account
121718  , p_source_46            IN NUMBER
121719 --Accounting Reversal Indicator
121720  , p_source_58            IN VARCHAR2
121721 --Distribution Link Type
121722  , p_source_60            IN VARCHAR2
121723 --Allocation to Main Distribution Identifier
121724  , p_source_62            IN NUMBER
121725 --Invoice Identifier
121726  , p_source_63            IN NUMBER
121727 --Invoice Distribution Identifier
121728  , p_source_69            IN NUMBER
121729 --Payables Encumbrance Upgrade Credit Account
121730  , p_source_70            IN NUMBER
121731 --Payables Encumbrance Upgrade Credit Amount
121732  , p_source_71            IN NUMBER
121733 --Invoice Currency Code
121734  , p_source_72            IN VARCHAR2
121735 --Payables Encumbrance Upgrade Credit Base Amount
121736  , p_source_73            IN NUMBER
121737 --Payables Encumbrance Upgrade Debit Account
121738  , p_source_74            IN NUMBER
121739 --Payables Encumbrance Upgrade Debit Amount
121740  , p_source_75            IN NUMBER
121741 --Payables Encumbrance Upgrade Debit Base Amount
121742  , p_source_76            IN NUMBER
121743 --Payables Encumbrance Upgrade Option
121744  , p_source_77            IN VARCHAR2
121745 --Invoice Distribution Amount
121746  , p_source_78            IN NUMBER
121747 --Deferred Accounting End Date
121748  , p_source_82            IN DATE
121749 --Deferred Accounting Option
121750  , p_source_83            IN VARCHAR2
121751 --Deferred Accounting Start Date
121752  , p_source_84            IN DATE
121753 --Override Accounted Amount Indicator
121754  , p_source_85            IN VARCHAR2
121755  , p_source_85_meaning    IN VARCHAR2
121756 --Invoice Supplier Identifier
121757  , p_source_86            IN NUMBER
121758 --Invoice Supplier Site Identifier
121759  , p_source_87            IN NUMBER
121760 --Third Party Type
121761  , p_source_88            IN VARCHAR2
121762 --Parent Reversal Identifier
121763  , p_source_89            IN NUMBER
121764 --Invoice Distribution Statistical Amount
121765  , p_source_90            IN NUMBER
121766 --Invoice Distribution Tax Line Identifier
121767  , p_source_91            IN NUMBER
121768 --Invoice Distribution Tax Distribution Identifier from Tax
121769  , p_source_92            IN NUMBER
121770 --Invoice Distribution Summary Tax Line Identifier
121771  , p_source_93            IN NUMBER
121772 --Payables Upgrade Credit Encumbrance Type Identifier
121773  , p_source_94            IN NUMBER
121774 --Payables Upgrade Debit Encumbrance Type Identifier
121775  , p_source_95            IN NUMBER
121776 --Business Flow Accounts Payable Application Identifier
121777  , p_source_96            IN NUMBER
121778 --Business Flow Invoice Distribution Type
121779  , p_source_97            IN VARCHAR2
121780 --Business Flow Invoice Entity Code
121781  , p_source_98            IN VARCHAR2
121782 --Business Flow Invoice Distribution Identifier
121783  , p_source_99            IN NUMBER
121784 --Business Flow Invoice Identifier
121785  , p_source_100            IN NUMBER
121786 --Self-Assessed Tax Flag
121787  , p_source_145            IN VARCHAR2
121788  , p_source_145_meaning    IN VARCHAR2
121789 --Invoice Exchange Date
121790  , p_source_146            IN DATE
121791 --Invoice Exchange Rate
121795 )
121792  , p_source_147            IN NUMBER
121793 --Invoice Exchange Rate Type
121794  , p_source_148            IN VARCHAR2
121796 IS
121797 
121798 l_component_type              VARCHAR2(80);
121799 l_component_code              VARCHAR2(30);
121800 l_component_type_code         VARCHAR2(1);
121801 l_component_appl_id           INTEGER;
121802 l_amb_context_code            VARCHAR2(30);
121803 l_entity_code                 VARCHAR2(30);
121804 l_event_class_code            VARCHAR2(30);
121805 l_ae_header_id                NUMBER;
121806 l_event_type_code             VARCHAR2(30);
121807 l_line_definition_code        VARCHAR2(30);
121808 l_line_definition_owner_code  VARCHAR2(1);
121809 --
121810 -- adr variables
121811 l_segment                     VARCHAR2(30);
121812 l_ccid                        NUMBER;
121813 l_adr_transaction_coa_id      NUMBER;
121814 l_adr_accounting_coa_id       NUMBER;
121815 l_adr_flexfield_segment_code  VARCHAR2(30);
121816 l_adr_flex_value_set_id       NUMBER;
121817 l_adr_value_type_code         VARCHAR2(30);
121818 l_adr_value_combination_id    NUMBER;
121819 l_adr_value_segment_code      VARCHAR2(30);
121820 
121821 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
121822 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
121823 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
121824 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
121825 
121826 -- 4262811 Variables ------------------------------------------------------------------------------------------
121827 l_entered_amt_idx             NUMBER;
121828 l_accted_amt_idx              NUMBER;
121829 l_acc_rev_flag                VARCHAR2(1);
121830 l_accrual_line_num            NUMBER;
121831 l_tmp_amt                     NUMBER;
121832 l_acc_rev_natural_side_code   VARCHAR2(1);
121833 
121834 l_num_entries                 NUMBER;
121835 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
121836 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
121837 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
121838 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
121839 l_recog_line_1                NUMBER;
121840 l_recog_line_2                NUMBER;
121841 
121842 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
121843 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
121844 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
121845 
121846 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
121847 
121848 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
121849 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
121850 
121851 ---------------------------------------------------------------------------------------------------------------
121852 
121853 
121854 --
121855 -- bulk performance
121856 --
121857 l_balance_type_code           VARCHAR2(1);
121858 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
121859 l_log_module                  VARCHAR2(240);
121860 
121861 --
121862 -- Upgrade strategy
121863 --
121864 l_actual_upg_option           VARCHAR2(1);
121865 l_enc_upg_option           VARCHAR2(1);
121866 
121867 --
121868 BEGIN
121869 --
121870 IF g_log_enabled THEN
121871       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_209';
121872 END IF;
121873 --
121874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121875 
121876       trace
121877          (p_msg      => 'BEGIN of AcctLineType_209'
121878          ,p_level    => C_LEVEL_PROCEDURE
121879          ,p_module   => l_log_module);
121880 
121881 END IF;
121882 --
121883 l_component_type             := 'AMB_JLT';
121884 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_CM';
121885 l_component_type_code        := 'S';
121886 l_component_appl_id          :=  200;
121887 l_amb_context_code           := 'DEFAULT';
121888 l_entity_code                := 'AP_INVOICES';
121889 l_event_class_code           := 'CREDIT MEMOS';
121890 l_event_type_code            := 'CREDIT MEMOS_ALL';
121891 l_line_definition_owner_code := 'S';
121892 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
121893 --
121894 l_balance_type_code          := 'A';
121895 l_segment                     := NULL;
121896 l_ccid                        := NULL;
121897 l_adr_transaction_coa_id      := NULL;
121898 l_adr_accounting_coa_id       := NULL;
121899 l_adr_flexfield_segment_code  := NULL;
121900 l_adr_flex_value_set_id       := NULL;
121901 l_adr_value_type_code         := NULL;
121902 l_adr_value_combination_id    := NULL;
121903 l_adr_value_segment_code      := NULL;
121904 
121905 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
121906 l_bflow_class_code           := '';    -- 4219869 Business Flow
121907 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
121908 l_budgetary_control_flag     := 'N';
121909 
121910 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
121911 l_bflow_applied_to_amt       := NULL; -- 5132302
121912 l_entered_amt_idx            := NULL;          -- 4262811
121913 l_accted_amt_idx             := NULL;          -- 4262811
121914 l_acc_rev_flag               := NULL;          -- 4262811
121915 l_accrual_line_num           := NULL;          -- 4262811
121916 l_tmp_amt                    := NULL;          -- 4262811
121917 --
121918  
121922 ') =  'REC_TAX' AND 
121919 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
121920     l_balance_type_code <> 'B' THEN
121921 IF NVL(p_source_28,'
121923 NVL(p_source_145,'
121924 ') =  'Y'
121925  THEN 
121926 
121927    --
121928    XLA_AE_LINES_PKG.SetNewLine;
121929 
121930    p_balance_type_code          := l_balance_type_code;
121931    -- set the flag so later we will know whether the gain loss line needs to be created
121932    
121933    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
121934      p_actual_flag :='A';
121935    END IF;
121936 
121937    --
121938    -- bulk performance
121939    --
121940    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
121941                                       p_header_num   => 0); -- 4262811
121942    --
121943    -- set accounting line options
121944    --
121945    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
121946            p_natural_side_code          => 'D'
121947          , p_gain_or_loss_flag          => 'N'
121948          , p_gl_transfer_mode_code      => 'S'
121949          , p_acct_entry_type_code       => 'A'
121950          , p_switch_side_flag           => 'Y'
121951          , p_merge_duplicate_code       => 'A'
121952          );
121953    --
121954    l_acc_rev_natural_side_code := 'C';  -- 4262811
121955    -- 
121956    --
121957    -- set accounting line type info
121958    --
121959    xla_ae_lines_pkg.SetAcctLineType
121960       (p_component_type             => l_component_type
121961       ,p_event_type_code            => l_event_type_code
121962       ,p_line_definition_owner_code => l_line_definition_owner_code
121963       ,p_line_definition_code       => l_line_definition_code
121964       ,p_accounting_line_code       => l_component_code
121965       ,p_accounting_line_type_code  => l_component_type_code
121966       ,p_accounting_line_appl_id    => l_component_appl_id
121967       ,p_amb_context_code           => l_amb_context_code
121968       ,p_entity_code                => l_entity_code
121969       ,p_event_class_code           => l_event_class_code);
121970    --
121971    -- set accounting class
121972    --
121973    xla_ae_lines_pkg.SetAcctClass(
121974            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
121975          , p_ae_header_id           => l_ae_header_id
121976          );
121977 
121978    --
121979    -- set rounding class
121980    --
121981    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
121982                       'SELF_ASSESSED_TAX';
121983 
121984    --
121985    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
121986    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
121987    --
121988    -- bulk performance
121989    --
121990    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
121991 
121992    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
121993       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
121994 
121995    -- 4955764
121996    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121997       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
121998 
121999    -- 4458381 Public Sector Enh
122000    
122001    --
122002    -- set accounting attributes for the line type
122003    --
122004    l_entered_amt_idx := 23;
122005    l_accted_amt_idx  := 28;
122006    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
122007    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
122008    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
122009    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
122010    l_rec_acct_attrs.array_num_value(2)  := 
122011 xla_ae_sources_pkg.GetSystemSourceNum(
122012    p_source_code           => 'XLA_EVENT_APPL_ID'
122013  , p_source_type_code      => 'Y'
122014  , p_source_application_id =>  602
122015 );
122016    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
122017    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
122018    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
122019    l_rec_acct_attrs.array_char_value(4)  := 
122020 xla_ae_sources_pkg.GetSystemSourceChar(
122021    p_source_code           => 'XLA_ENTITY_CODE'
122022  , p_source_type_code      => 'Y'
122023  , p_source_application_id =>  602
122024 );
122025    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
122026    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
122027    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
122028    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
122029    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
122030    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
122031    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
122032    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
122033    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
122034    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
122035    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
122036    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
122037    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
122041    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
122038    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
122039    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
122040    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
122042    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
122043    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
122044    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
122045    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
122046    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
122047    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
122048    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
122049    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
122050    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
122051    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
122052    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
122053    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
122054    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
122055    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
122056    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
122057    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
122058    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
122059    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
122060    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
122061    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
122062    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
122063    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
122064    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
122065    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
122066    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
122067    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
122068    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
122069    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
122070    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
122071    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
122072    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
122073    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
122074    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
122075    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
122076    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
122077    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
122078    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
122079    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
122080    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
122081    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
122082    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
122083    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
122084    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
122085    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
122086    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
122087    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
122088    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
122089    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
122090    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
122091    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
122092    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
122093    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
122094    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
122095    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
122096    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
122097    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
122098    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
122099    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
122100    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
122101    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
122102    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
122103 
122104    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
122105    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
122106 
122107    ---------------------------------------------------------------------------------------------------------------
122108    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
122109    ---------------------------------------------------------------------------------------------------------------
122110    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
122111 
122112    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122113    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122114 
122115    IF xla_accounting_cache_pkg.GetValueChar
122116          (p_source_code         => 'LEDGER_CATEGORY_CODE'
122117          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
122118    AND l_bflow_method_code = 'PRIOR_ENTRY'
122119 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
122120    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
122121          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
122125            (p_business_method_code    => l_bflow_method_code
122122        )
122123    THEN
122124          xla_ae_lines_pkg.BflowUpgEntry
122126            ,p_business_class_code     => l_bflow_class_code
122127            ,p_balance_type            => l_balance_type_code);
122128    ELSE
122129       NULL;
122130 -- No business flow processing for business flow method of NONE.
122131    END IF;
122132 
122133    --
122134    -- call analytical criteria
122135    --
122136    
122137    --
122138    -- call description
122139    --
122140    
122141 xla_ae_lines_pkg.SetLineDescription(
122142    p_ae_header_id => l_ae_header_id
122143   ,p_description  => Description_2 (
122144      p_application_id         => p_application_id
122145    , p_ae_header_id           => l_ae_header_id 
122146 , p_source_1 => p_source_1
122147    )
122148 );
122149 
122150 
122151    --
122152    -- call ADRs
122153    -- Bug 4922099
122154    --
122155    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122156         (NVL(l_actual_upg_option, 'N') = 'O') OR
122157         (NVL(l_enc_upg_option, 'N') = 'O')
122158       )
122159    THEN
122160    NULL;
122161    --
122162    --
122163    
122164   l_ccid := AcctDerRule_44(
122165            p_application_id           => p_application_id
122166          , p_ae_header_id             => l_ae_header_id 
122167 , p_source_46 => p_source_46
122168          , x_transaction_coa_id       => l_adr_transaction_coa_id
122169          , x_accounting_coa_id        => l_adr_accounting_coa_id
122170          , x_value_type_code          => l_adr_value_type_code
122171          , p_side                     => 'NA'
122172    );
122173 
122174    xla_ae_lines_pkg.set_ccid(
122175     p_code_combination_id          => l_ccid
122176   , p_value_type_code              => l_adr_value_type_code
122177   , p_transaction_coa_id           => l_adr_transaction_coa_id
122178   , p_accounting_coa_id            => l_adr_accounting_coa_id
122179   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122180   , p_adr_type_code                => 'S'
122181   , p_component_type               => l_component_type
122182   , p_component_code               => l_component_code
122183   , p_component_type_code          => l_component_type_code
122184   , p_component_appl_id            => l_component_appl_id
122185   , p_amb_context_code             => l_amb_context_code
122186   , p_side                         => 'NA'
122187   );
122188 
122189 
122190    --
122191    --
122192    END IF;
122193    --
122194    -- Bug 4922099
122195    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
122196           (NVL(l_enc_upg_option, 'N') = 'O')
122197         ) AND
122198         (l_bflow_method_code = 'PRIOR_ENTRY')
122199       )
122200    THEN
122201       IF
122202       --
122203       1 = 2
122204       --
122205       THEN
122206       xla_accounting_err_pkg.build_message
122207                                     (p_appli_s_name            => 'XLA'
122208                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122209                                     ,p_token_1                 => 'LINE_NUMBER'
122210                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
122211                                     ,p_token_2                 => 'LINE_TYPE_NAME'
122212                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
122213                                                                              l_component_type
122214                                                                             ,l_component_code
122215                                                                             ,l_component_type_code
122216                                                                             ,l_component_appl_id
122217                                                                             ,l_amb_context_code
122218                                                                             ,l_entity_code
122219                                                                             ,l_event_class_code
122220                                                                            )
122221                                     ,p_token_3                 => 'OWNER'
122222                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
122223                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
122224                                                                           ,p_lookup_code    => l_component_type_code
122225                                                                          )
122226                                     ,p_token_4                 => 'PRODUCT_NAME'
122227                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
122228                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
122229                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
122230                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
122231                                     ,p_ae_header_id            =>  NULL
122232                                        );
122233 
122234         IF (C_LEVEL_ERROR>= g_log_level) THEN
122235                  trace
122236                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122237                       ,p_level    => C_LEVEL_ERROR
122241    END IF;
122238                       ,p_module   => l_log_module);
122239         END IF;
122240       END IF;
122242    --
122243    --
122244    ------------------------------------------------------------------------------------------------
122245    -- 4219869 Business Flow
122246    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
122247    -- Prior Entry.  Currently, the following code is always generated.
122248    ------------------------------------------------------------------------------------------------
122249    XLA_AE_LINES_PKG.ValidateCurrentLine;
122250 
122251    ------------------------------------------------------------------------------------
122252    -- 4219869 Business Flow
122253    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
122254    ------------------------------------------------------------------------------------
122255    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122256 
122257    ----------------------------------------------------------------------------------
122258    -- 4219869 Business Flow
122259    -- Update journal entry status -- Need to generate this within IF <condition>
122260    ----------------------------------------------------------------------------------
122261    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122262          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
122263          ,p_balance_type_code => l_balance_type_code
122264          );
122265 
122266    -------------------------------------------------------------------------------------------
122267    -- 4262811 - Generate the Accrual Reversal lines
122268    -------------------------------------------------------------------------------------------
122269    BEGIN
122270       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
122271                               (g_array_event(p_event_id).array_value_num('header_index'));
122272       IF l_acc_rev_flag IS NULL THEN
122273          l_acc_rev_flag := 'N';
122274       END IF;
122275    EXCEPTION
122276       WHEN OTHERS THEN
122277          l_acc_rev_flag := 'N';
122278    END;
122279    --
122280    IF (l_acc_rev_flag = 'Y') THEN
122281 
122282        -- 4645092  ------------------------------------------------------------------------------
122283        -- To allow MPA report to determine if it should generate report process
122284        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
122285        ------------------------------------------------------------------------------------------
122286 
122287        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
122288        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
122289    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
122290    -- call ADRs
122291    -- Bug 4922099
122292    --
122293    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122294         (NVL(l_actual_upg_option, 'N') = 'O') OR
122295         (NVL(l_enc_upg_option, 'N') = 'O')
122296       )
122297    THEN
122298    NULL;
122299    --
122300    --
122301    
122302   l_ccid := AcctDerRule_44(
122303            p_application_id           => p_application_id
122304          , p_ae_header_id             => l_ae_header_id 
122305 , p_source_46 => p_source_46
122306          , x_transaction_coa_id       => l_adr_transaction_coa_id
122307          , x_accounting_coa_id        => l_adr_accounting_coa_id
122308          , x_value_type_code          => l_adr_value_type_code
122309          , p_side                     => 'NA'
122310    );
122311 
122312    xla_ae_lines_pkg.set_ccid(
122313     p_code_combination_id          => l_ccid
122314   , p_value_type_code              => l_adr_value_type_code
122315   , p_transaction_coa_id           => l_adr_transaction_coa_id
122316   , p_accounting_coa_id            => l_adr_accounting_coa_id
122317   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122318   , p_adr_type_code                => 'S'
122319   , p_component_type               => l_component_type
122320   , p_component_code               => l_component_code
122321   , p_component_type_code          => l_component_type_code
122322   , p_component_appl_id            => l_component_appl_id
122323   , p_amb_context_code             => l_amb_context_code
122324   , p_side                         => 'NA'
122325   );
122326 
122327 
122328    --
122329    --
122330    END IF;
122331 
122332        --
122333        -- Update the line information that should be overwritten
122334        --
122335        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
122336                                          p_header_num   => 1);
122337        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
122338 
122339        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
122340 
122341        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
122342           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
122343        END IF;
122344 
122345       --
122346       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
122347       --
122348       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
122349           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
122350       ELSE
122354           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
122351           ---------------------------------------------------------------------------------------------------
122352           -- 4262811a Switch Sign
122353           ---------------------------------------------------------------------------------------------------
122355           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122356                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122357           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122358                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122359           -- 5132302
122360           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
122361                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122362 
122363       END IF;
122364 
122365       -- 4955764
122366       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122367       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
122368 
122369 
122370       XLA_AE_LINES_PKG.ValidateCurrentLine;
122371       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122372 
122373       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122374                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
122375                ,p_balance_type_code => l_balance_type_code);
122376 
122377    END IF;
122378 
122379    -----------------------------------------------------------------------------------------
122380    -- 4262811 Multiperiod Accounting
122381    -----------------------------------------------------------------------------------------
122382      -- No MPA option is assigned.
122383 
122384 
122385 END IF;
122386 END IF;
122387 --
122388 
122389 --
122390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122391    trace
122392       (p_msg      => 'END of AcctLineType_209'
122393       ,p_level    => C_LEVEL_PROCEDURE
122394       ,p_module   => l_log_module);
122395 END IF;
122396 --
122397 EXCEPTION
122398   WHEN xla_exceptions_pkg.application_exception THEN
122399       RAISE;
122400   WHEN OTHERS THEN
122401        xla_exceptions_pkg.raise_message
122402            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_209');
122403 END AcctLineType_209;
122404 --
122405 
122406 ---------------------------------------
122407 --
122408 -- PRIVATE FUNCTION
122409 --         AcctLineType_210
122410 --
122411 ---------------------------------------
122412 PROCEDURE AcctLineType_210 (
122413   p_application_id        IN NUMBER
122414  ,p_event_id              IN NUMBER
122415  ,p_calculate_acctd_flag  IN VARCHAR2
122416  ,p_calculate_g_l_flag    IN VARCHAR2
122417  ,p_actual_flag           IN OUT VARCHAR2
122418  ,p_balance_type_code     OUT VARCHAR2
122419  ,p_gain_or_loss_ref      OUT VARCHAR2
122420  
122421 --Invoice Distribution Description
122422  , p_source_1            IN VARCHAR2
122423 --Invoice Distribution Ledger Amount
122424  , p_source_16            IN NUMBER
122425 --Invoice Distribution Type
122426  , p_source_28            IN VARCHAR2
122427  , p_source_28_meaning    IN VARCHAR2
122428 --Self-Assessed Tax Account
122429  , p_source_46            IN NUMBER
122430 --Accounting Reversal Indicator
122431  , p_source_58            IN VARCHAR2
122432 --Distribution Link Type
122433  , p_source_60            IN VARCHAR2
122434 --Allocation to Main Distribution Identifier
122435  , p_source_62            IN NUMBER
122436 --Invoice Identifier
122437  , p_source_63            IN NUMBER
122438 --Invoice Distribution Identifier
122439  , p_source_69            IN NUMBER
122440 --Payables Encumbrance Upgrade Credit Account
122441  , p_source_70            IN NUMBER
122442 --Payables Encumbrance Upgrade Credit Amount
122443  , p_source_71            IN NUMBER
122444 --Invoice Currency Code
122445  , p_source_72            IN VARCHAR2
122446 --Payables Encumbrance Upgrade Credit Base Amount
122447  , p_source_73            IN NUMBER
122448 --Payables Encumbrance Upgrade Debit Account
122449  , p_source_74            IN NUMBER
122450 --Payables Encumbrance Upgrade Debit Amount
122451  , p_source_75            IN NUMBER
122452 --Payables Encumbrance Upgrade Debit Base Amount
122453  , p_source_76            IN NUMBER
122454 --Payables Encumbrance Upgrade Option
122455  , p_source_77            IN VARCHAR2
122456 --Invoice Distribution Amount
122457  , p_source_78            IN NUMBER
122458 --Deferred Accounting End Date
122459  , p_source_82            IN DATE
122460 --Deferred Accounting Option
122461  , p_source_83            IN VARCHAR2
122462 --Deferred Accounting Start Date
122463  , p_source_84            IN DATE
122464 --Override Accounted Amount Indicator
122465  , p_source_85            IN VARCHAR2
122466  , p_source_85_meaning    IN VARCHAR2
122467 --Invoice Supplier Identifier
122468  , p_source_86            IN NUMBER
122469 --Invoice Supplier Site Identifier
122470  , p_source_87            IN NUMBER
122471 --Third Party Type
122472  , p_source_88            IN VARCHAR2
122473 --Parent Reversal Identifier
122474  , p_source_89            IN NUMBER
122475 --Invoice Distribution Tax Line Identifier
122476  , p_source_91            IN NUMBER
122477 --Invoice Distribution Tax Distribution Identifier from Tax
122478  , p_source_92            IN NUMBER
122479 --Invoice Distribution Summary Tax Line Identifier
122483 --Payables Upgrade Debit Encumbrance Type Identifier
122480  , p_source_93            IN NUMBER
122481 --Payables Upgrade Credit Encumbrance Type Identifier
122482  , p_source_94            IN NUMBER
122484  , p_source_95            IN NUMBER
122485 --Business Flow Accounts Payable Application Identifier
122486  , p_source_96            IN NUMBER
122487 --Business Flow Invoice Distribution Type
122488  , p_source_97            IN VARCHAR2
122489 --Business Flow Invoice Entity Code
122490  , p_source_98            IN VARCHAR2
122491 --Business Flow Invoice Distribution Identifier
122492  , p_source_99            IN NUMBER
122493 --Business Flow Invoice Identifier
122494  , p_source_100            IN NUMBER
122495 --Self-Assessed Tax Flag
122496  , p_source_145            IN VARCHAR2
122497  , p_source_145_meaning    IN VARCHAR2
122498 --Invoice Exchange Date
122499  , p_source_146            IN DATE
122500 --Invoice Exchange Rate
122501  , p_source_147            IN NUMBER
122502 --Invoice Exchange Rate Type
122503  , p_source_148            IN VARCHAR2
122504 )
122505 IS
122506 
122507 l_component_type              VARCHAR2(80);
122508 l_component_code              VARCHAR2(30);
122509 l_component_type_code         VARCHAR2(1);
122510 l_component_appl_id           INTEGER;
122511 l_amb_context_code            VARCHAR2(30);
122512 l_entity_code                 VARCHAR2(30);
122513 l_event_class_code            VARCHAR2(30);
122514 l_ae_header_id                NUMBER;
122515 l_event_type_code             VARCHAR2(30);
122516 l_line_definition_code        VARCHAR2(30);
122517 l_line_definition_owner_code  VARCHAR2(1);
122518 --
122519 -- adr variables
122520 l_segment                     VARCHAR2(30);
122521 l_ccid                        NUMBER;
122522 l_adr_transaction_coa_id      NUMBER;
122523 l_adr_accounting_coa_id       NUMBER;
122524 l_adr_flexfield_segment_code  VARCHAR2(30);
122525 l_adr_flex_value_set_id       NUMBER;
122526 l_adr_value_type_code         VARCHAR2(30);
122527 l_adr_value_combination_id    NUMBER;
122528 l_adr_value_segment_code      VARCHAR2(30);
122529 
122530 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
122531 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
122532 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
122533 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
122534 
122535 -- 4262811 Variables ------------------------------------------------------------------------------------------
122536 l_entered_amt_idx             NUMBER;
122537 l_accted_amt_idx              NUMBER;
122538 l_acc_rev_flag                VARCHAR2(1);
122539 l_accrual_line_num            NUMBER;
122540 l_tmp_amt                     NUMBER;
122541 l_acc_rev_natural_side_code   VARCHAR2(1);
122542 
122543 l_num_entries                 NUMBER;
122544 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
122545 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
122546 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
122547 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
122548 l_recog_line_1                NUMBER;
122549 l_recog_line_2                NUMBER;
122550 
122551 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
122552 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
122553 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
122554 
122555 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
122556 
122557 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
122558 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
122559 
122560 ---------------------------------------------------------------------------------------------------------------
122561 
122562 
122563 --
122564 -- bulk performance
122565 --
122566 l_balance_type_code           VARCHAR2(1);
122567 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
122568 l_log_module                  VARCHAR2(240);
122569 
122570 --
122571 -- Upgrade strategy
122572 --
122573 l_actual_upg_option           VARCHAR2(1);
122574 l_enc_upg_option           VARCHAR2(1);
122575 
122576 --
122577 BEGIN
122578 --
122579 IF g_log_enabled THEN
122580       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_210';
122581 END IF;
122582 --
122583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122584 
122585       trace
122586          (p_msg      => 'BEGIN of AcctLineType_210'
122587          ,p_level    => C_LEVEL_PROCEDURE
122588          ,p_module   => l_log_module);
122589 
122590 END IF;
122591 --
122592 l_component_type             := 'AMB_JLT';
122593 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_DM';
122594 l_component_type_code        := 'S';
122595 l_component_appl_id          :=  200;
122596 l_amb_context_code           := 'DEFAULT';
122597 l_entity_code                := 'AP_INVOICES';
122598 l_event_class_code           := 'DEBIT MEMOS';
122599 l_event_type_code            := 'DEBIT MEMOS_ALL';
122600 l_line_definition_owner_code := 'S';
122601 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
122602 --
122603 l_balance_type_code          := 'A';
122604 l_segment                     := NULL;
122605 l_ccid                        := NULL;
122606 l_adr_transaction_coa_id      := NULL;
122607 l_adr_accounting_coa_id       := NULL;
122608 l_adr_flexfield_segment_code  := NULL;
122612 l_adr_value_segment_code      := NULL;
122609 l_adr_flex_value_set_id       := NULL;
122610 l_adr_value_type_code         := NULL;
122611 l_adr_value_combination_id    := NULL;
122613 
122614 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
122615 l_bflow_class_code           := '';    -- 4219869 Business Flow
122616 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
122617 l_budgetary_control_flag     := 'N';
122618 
122619 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
122620 l_bflow_applied_to_amt       := NULL; -- 5132302
122621 l_entered_amt_idx            := NULL;          -- 4262811
122622 l_accted_amt_idx             := NULL;          -- 4262811
122623 l_acc_rev_flag               := NULL;          -- 4262811
122624 l_accrual_line_num           := NULL;          -- 4262811
122625 l_tmp_amt                    := NULL;          -- 4262811
122626 --
122627  
122628 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
122629     l_balance_type_code <> 'B' THEN
122630 IF NVL(p_source_28,'
122631 ') =  'REC_TAX' AND 
122632 NVL(p_source_145,'
122633 ') =  'Y'
122634  THEN 
122635 
122636    --
122637    XLA_AE_LINES_PKG.SetNewLine;
122638 
122639    p_balance_type_code          := l_balance_type_code;
122640    -- set the flag so later we will know whether the gain loss line needs to be created
122641    
122642    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
122643      p_actual_flag :='A';
122644    END IF;
122645 
122646    --
122647    -- bulk performance
122648    --
122649    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
122650                                       p_header_num   => 0); -- 4262811
122651    --
122652    -- set accounting line options
122653    --
122654    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
122655            p_natural_side_code          => 'D'
122656          , p_gain_or_loss_flag          => 'N'
122657          , p_gl_transfer_mode_code      => 'S'
122658          , p_acct_entry_type_code       => 'A'
122659          , p_switch_side_flag           => 'Y'
122660          , p_merge_duplicate_code       => 'A'
122661          );
122662    --
122663    l_acc_rev_natural_side_code := 'C';  -- 4262811
122664    -- 
122665    --
122666    -- set accounting line type info
122667    --
122668    xla_ae_lines_pkg.SetAcctLineType
122669       (p_component_type             => l_component_type
122670       ,p_event_type_code            => l_event_type_code
122671       ,p_line_definition_owner_code => l_line_definition_owner_code
122672       ,p_line_definition_code       => l_line_definition_code
122673       ,p_accounting_line_code       => l_component_code
122674       ,p_accounting_line_type_code  => l_component_type_code
122675       ,p_accounting_line_appl_id    => l_component_appl_id
122676       ,p_amb_context_code           => l_amb_context_code
122677       ,p_entity_code                => l_entity_code
122678       ,p_event_class_code           => l_event_class_code);
122679    --
122680    -- set accounting class
122681    --
122682    xla_ae_lines_pkg.SetAcctClass(
122683            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
122684          , p_ae_header_id           => l_ae_header_id
122685          );
122686 
122687    --
122688    -- set rounding class
122689    --
122690    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
122691                       'SELF_ASSESSED_TAX';
122692 
122693    --
122694    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
122695    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
122696    --
122697    -- bulk performance
122698    --
122699    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
122700 
122701    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
122702       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
122703 
122704    -- 4955764
122705    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122706       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
122707 
122708    -- 4458381 Public Sector Enh
122709    
122710    --
122711    -- set accounting attributes for the line type
122712    --
122713    l_entered_amt_idx := 23;
122714    l_accted_amt_idx  := 28;
122715    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
122716    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
122717    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
122718    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
122719    l_rec_acct_attrs.array_num_value(2)  := 
122720 xla_ae_sources_pkg.GetSystemSourceNum(
122721    p_source_code           => 'XLA_EVENT_APPL_ID'
122722  , p_source_type_code      => 'Y'
122723  , p_source_application_id =>  602
122724 );
122725    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
122726    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
122727    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
122728    l_rec_acct_attrs.array_char_value(4)  := 
122729 xla_ae_sources_pkg.GetSystemSourceChar(
122730    p_source_code           => 'XLA_ENTITY_CODE'
122731  , p_source_type_code      => 'Y'
122732  , p_source_application_id =>  602
122733 );
122737    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
122734    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
122735    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
122736    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
122738    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
122739    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
122740    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
122741    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
122742    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
122743    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
122744    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
122745    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
122746    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
122747    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
122748    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
122749    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
122750    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
122751    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
122752    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
122753    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
122754    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
122755    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
122756    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
122757    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
122758    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
122759    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
122760    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
122761    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
122762    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
122763    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
122764    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
122765    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
122766    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
122767    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
122768    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
122769    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
122770    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
122771    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
122772    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
122773    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
122774    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
122775    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
122776    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
122777    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
122778    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
122779    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
122780    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
122781    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
122782    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
122783    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
122784    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
122785    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
122786    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
122787    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
122788    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
122789    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
122790    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
122791    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
122792    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
122793    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
122794    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
122795    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
122796    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
122797    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
122798    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
122799    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
122800    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
122801    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
122802    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
122803    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
122804    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
122805    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
122806    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
122807    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
122808    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
122809    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
122810 
122811    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
122812    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
122813 
122814    ---------------------------------------------------------------------------------------------------------------
122815    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
122819    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122816    ---------------------------------------------------------------------------------------------------------------
122817    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
122818 
122820    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122821 
122822    IF xla_accounting_cache_pkg.GetValueChar
122823          (p_source_code         => 'LEDGER_CATEGORY_CODE'
122824          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
122825    AND l_bflow_method_code = 'PRIOR_ENTRY'
122826 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
122827    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
122828          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
122829        )
122830    THEN
122831          xla_ae_lines_pkg.BflowUpgEntry
122832            (p_business_method_code    => l_bflow_method_code
122833            ,p_business_class_code     => l_bflow_class_code
122834            ,p_balance_type            => l_balance_type_code);
122835    ELSE
122836       NULL;
122837 -- No business flow processing for business flow method of NONE.
122838    END IF;
122839 
122840    --
122841    -- call analytical criteria
122842    --
122843    
122844    --
122845    -- call description
122846    --
122847    
122848 xla_ae_lines_pkg.SetLineDescription(
122849    p_ae_header_id => l_ae_header_id
122850   ,p_description  => Description_2 (
122851      p_application_id         => p_application_id
122852    , p_ae_header_id           => l_ae_header_id 
122853 , p_source_1 => p_source_1
122854    )
122855 );
122856 
122857 
122858    --
122859    -- call ADRs
122860    -- Bug 4922099
122861    --
122862    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122863         (NVL(l_actual_upg_option, 'N') = 'O') OR
122864         (NVL(l_enc_upg_option, 'N') = 'O')
122865       )
122866    THEN
122867    NULL;
122868    --
122869    --
122870    
122871   l_ccid := AcctDerRule_44(
122872            p_application_id           => p_application_id
122873          , p_ae_header_id             => l_ae_header_id 
122874 , p_source_46 => p_source_46
122875          , x_transaction_coa_id       => l_adr_transaction_coa_id
122876          , x_accounting_coa_id        => l_adr_accounting_coa_id
122877          , x_value_type_code          => l_adr_value_type_code
122878          , p_side                     => 'NA'
122879    );
122880 
122881    xla_ae_lines_pkg.set_ccid(
122882     p_code_combination_id          => l_ccid
122883   , p_value_type_code              => l_adr_value_type_code
122884   , p_transaction_coa_id           => l_adr_transaction_coa_id
122885   , p_accounting_coa_id            => l_adr_accounting_coa_id
122886   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122887   , p_adr_type_code                => 'S'
122888   , p_component_type               => l_component_type
122889   , p_component_code               => l_component_code
122890   , p_component_type_code          => l_component_type_code
122891   , p_component_appl_id            => l_component_appl_id
122892   , p_amb_context_code             => l_amb_context_code
122893   , p_side                         => 'NA'
122894   );
122895 
122896 
122897    --
122898    --
122899    END IF;
122900    --
122901    -- Bug 4922099
122902    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
122903           (NVL(l_enc_upg_option, 'N') = 'O')
122904         ) AND
122905         (l_bflow_method_code = 'PRIOR_ENTRY')
122906       )
122907    THEN
122908       IF
122909       --
122910       1 = 2
122911       --
122912       THEN
122913       xla_accounting_err_pkg.build_message
122914                                     (p_appli_s_name            => 'XLA'
122915                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122916                                     ,p_token_1                 => 'LINE_NUMBER'
122917                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
122918                                     ,p_token_2                 => 'LINE_TYPE_NAME'
122919                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
122920                                                                              l_component_type
122921                                                                             ,l_component_code
122922                                                                             ,l_component_type_code
122923                                                                             ,l_component_appl_id
122924                                                                             ,l_amb_context_code
122925                                                                             ,l_entity_code
122926                                                                             ,l_event_class_code
122927                                                                            )
122928                                     ,p_token_3                 => 'OWNER'
122929                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
122930                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
122931                                                                           ,p_lookup_code    => l_component_type_code
122932                                                                          )
122936                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
122933                                     ,p_token_4                 => 'PRODUCT_NAME'
122934                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
122935                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
122937                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
122938                                     ,p_ae_header_id            =>  NULL
122939                                        );
122940 
122941         IF (C_LEVEL_ERROR>= g_log_level) THEN
122942                  trace
122943                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122944                       ,p_level    => C_LEVEL_ERROR
122945                       ,p_module   => l_log_module);
122946         END IF;
122947       END IF;
122948    END IF;
122949    --
122950    --
122951    ------------------------------------------------------------------------------------------------
122952    -- 4219869 Business Flow
122953    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
122954    -- Prior Entry.  Currently, the following code is always generated.
122955    ------------------------------------------------------------------------------------------------
122956    XLA_AE_LINES_PKG.ValidateCurrentLine;
122957 
122958    ------------------------------------------------------------------------------------
122959    -- 4219869 Business Flow
122960    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
122961    ------------------------------------------------------------------------------------
122962    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122963 
122964    ----------------------------------------------------------------------------------
122965    -- 4219869 Business Flow
122966    -- Update journal entry status -- Need to generate this within IF <condition>
122967    ----------------------------------------------------------------------------------
122968    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122969          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
122970          ,p_balance_type_code => l_balance_type_code
122971          );
122972 
122973    -------------------------------------------------------------------------------------------
122974    -- 4262811 - Generate the Accrual Reversal lines
122975    -------------------------------------------------------------------------------------------
122976    BEGIN
122977       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
122978                               (g_array_event(p_event_id).array_value_num('header_index'));
122979       IF l_acc_rev_flag IS NULL THEN
122980          l_acc_rev_flag := 'N';
122981       END IF;
122982    EXCEPTION
122983       WHEN OTHERS THEN
122984          l_acc_rev_flag := 'N';
122985    END;
122986    --
122987    IF (l_acc_rev_flag = 'Y') THEN
122988 
122989        -- 4645092  ------------------------------------------------------------------------------
122990        -- To allow MPA report to determine if it should generate report process
122991        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
122992        ------------------------------------------------------------------------------------------
122993 
122994        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
122995        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
122996    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
122997    -- call ADRs
122998    -- Bug 4922099
122999    --
123000    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123001         (NVL(l_actual_upg_option, 'N') = 'O') OR
123002         (NVL(l_enc_upg_option, 'N') = 'O')
123003       )
123004    THEN
123005    NULL;
123006    --
123007    --
123008    
123009   l_ccid := AcctDerRule_44(
123010            p_application_id           => p_application_id
123011          , p_ae_header_id             => l_ae_header_id 
123012 , p_source_46 => p_source_46
123013          , x_transaction_coa_id       => l_adr_transaction_coa_id
123014          , x_accounting_coa_id        => l_adr_accounting_coa_id
123015          , x_value_type_code          => l_adr_value_type_code
123016          , p_side                     => 'NA'
123017    );
123018 
123019    xla_ae_lines_pkg.set_ccid(
123020     p_code_combination_id          => l_ccid
123021   , p_value_type_code              => l_adr_value_type_code
123022   , p_transaction_coa_id           => l_adr_transaction_coa_id
123023   , p_accounting_coa_id            => l_adr_accounting_coa_id
123024   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
123025   , p_adr_type_code                => 'S'
123026   , p_component_type               => l_component_type
123027   , p_component_code               => l_component_code
123028   , p_component_type_code          => l_component_type_code
123029   , p_component_appl_id            => l_component_appl_id
123030   , p_amb_context_code             => l_amb_context_code
123031   , p_side                         => 'NA'
123032   );
123033 
123034 
123035    --
123036    --
123037    END IF;
123038 
123039        --
123040        -- Update the line information that should be overwritten
123041        --
123042        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
123043                                          p_header_num   => 1);
123047 
123044        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
123045 
123046        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
123048        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
123049           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
123050        END IF;
123051 
123052       --
123053       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
123054       --
123055       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
123056           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
123057       ELSE
123058           ---------------------------------------------------------------------------------------------------
123059           -- 4262811a Switch Sign
123060           ---------------------------------------------------------------------------------------------------
123061           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
123062           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123063                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123064           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123065                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123066           -- 5132302
123067           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
123068                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123069 
123070       END IF;
123071 
123072       -- 4955764
123073       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123074       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
123075 
123076 
123077       XLA_AE_LINES_PKG.ValidateCurrentLine;
123078       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123079 
123080       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123081                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
123082                ,p_balance_type_code => l_balance_type_code);
123083 
123084    END IF;
123085 
123086    -----------------------------------------------------------------------------------------
123087    -- 4262811 Multiperiod Accounting
123088    -----------------------------------------------------------------------------------------
123089      -- No MPA option is assigned.
123090 
123091 
123092 END IF;
123093 END IF;
123094 --
123095 
123096 --
123097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123098    trace
123099       (p_msg      => 'END of AcctLineType_210'
123100       ,p_level    => C_LEVEL_PROCEDURE
123101       ,p_module   => l_log_module);
123102 END IF;
123103 --
123104 EXCEPTION
123105   WHEN xla_exceptions_pkg.application_exception THEN
123106       RAISE;
123107   WHEN OTHERS THEN
123108        xla_exceptions_pkg.raise_message
123109            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_210');
123110 END AcctLineType_210;
123111 --
123112 
123113 ---------------------------------------
123114 --
123115 -- PRIVATE FUNCTION
123116 --         AcctLineType_211
123117 --
123118 ---------------------------------------
123119 PROCEDURE AcctLineType_211 (
123120   p_application_id        IN NUMBER
123121  ,p_event_id              IN NUMBER
123122  ,p_calculate_acctd_flag  IN VARCHAR2
123123  ,p_calculate_g_l_flag    IN VARCHAR2
123124  ,p_actual_flag           IN OUT VARCHAR2
123125  ,p_balance_type_code     OUT VARCHAR2
123126  ,p_gain_or_loss_ref      OUT VARCHAR2
123127  
123128 --Invoice Distribution Description
123129  , p_source_1            IN VARCHAR2
123130 --Invoice Distribution Ledger Amount
123131  , p_source_16            IN NUMBER
123132 --Invoice Distribution Type
123133  , p_source_28            IN VARCHAR2
123134  , p_source_28_meaning    IN VARCHAR2
123135 --Self-Assessed Tax Account
123136  , p_source_46            IN NUMBER
123137 --Accounting Reversal Indicator
123138  , p_source_58            IN VARCHAR2
123139 --Distribution Link Type
123140  , p_source_60            IN VARCHAR2
123141 --Allocation to Main Distribution Identifier
123142  , p_source_62            IN NUMBER
123143 --Invoice Identifier
123144  , p_source_63            IN NUMBER
123145 --Invoice Distribution Identifier
123146  , p_source_69            IN NUMBER
123147 --Payables Encumbrance Upgrade Credit Account
123148  , p_source_70            IN NUMBER
123149 --Payables Encumbrance Upgrade Credit Amount
123150  , p_source_71            IN NUMBER
123151 --Invoice Currency Code
123152  , p_source_72            IN VARCHAR2
123153 --Payables Encumbrance Upgrade Credit Base Amount
123154  , p_source_73            IN NUMBER
123155 --Payables Encumbrance Upgrade Debit Account
123156  , p_source_74            IN NUMBER
123157 --Payables Encumbrance Upgrade Debit Amount
123158  , p_source_75            IN NUMBER
123159 --Payables Encumbrance Upgrade Debit Base Amount
123160  , p_source_76            IN NUMBER
123161 --Payables Encumbrance Upgrade Option
123162  , p_source_77            IN VARCHAR2
123163 --Invoice Distribution Amount
123167 --Deferred Accounting Option
123164  , p_source_78            IN NUMBER
123165 --Deferred Accounting End Date
123166  , p_source_82            IN DATE
123168  , p_source_83            IN VARCHAR2
123169 --Deferred Accounting Start Date
123170  , p_source_84            IN DATE
123171 --Override Accounted Amount Indicator
123172  , p_source_85            IN VARCHAR2
123173  , p_source_85_meaning    IN VARCHAR2
123174 --Invoice Supplier Identifier
123175  , p_source_86            IN NUMBER
123176 --Invoice Supplier Site Identifier
123177  , p_source_87            IN NUMBER
123178 --Third Party Type
123179  , p_source_88            IN VARCHAR2
123180 --Parent Reversal Identifier
123181  , p_source_89            IN NUMBER
123182 --Invoice Distribution Statistical Amount
123183  , p_source_90            IN NUMBER
123184 --Invoice Distribution Tax Line Identifier
123185  , p_source_91            IN NUMBER
123186 --Invoice Distribution Tax Distribution Identifier from Tax
123187  , p_source_92            IN NUMBER
123188 --Invoice Distribution Summary Tax Line Identifier
123189  , p_source_93            IN NUMBER
123190 --Payables Upgrade Credit Encumbrance Type Identifier
123191  , p_source_94            IN NUMBER
123192 --Payables Upgrade Debit Encumbrance Type Identifier
123193  , p_source_95            IN NUMBER
123194 --Business Flow Accounts Payable Application Identifier
123195  , p_source_96            IN NUMBER
123196 --Business Flow Invoice Distribution Type
123197  , p_source_97            IN VARCHAR2
123198 --Business Flow Invoice Entity Code
123199  , p_source_98            IN VARCHAR2
123200 --Business Flow Invoice Distribution Identifier
123201  , p_source_99            IN NUMBER
123202 --Business Flow Invoice Identifier
123203  , p_source_100            IN NUMBER
123204 --Self-Assessed Tax Flag
123205  , p_source_145            IN VARCHAR2
123206  , p_source_145_meaning    IN VARCHAR2
123207 --Invoice Exchange Date
123208  , p_source_146            IN DATE
123209 --Invoice Exchange Rate
123210  , p_source_147            IN NUMBER
123211 --Invoice Exchange Rate Type
123212  , p_source_148            IN VARCHAR2
123213 )
123214 IS
123215 
123216 l_component_type              VARCHAR2(80);
123217 l_component_code              VARCHAR2(30);
123218 l_component_type_code         VARCHAR2(1);
123219 l_component_appl_id           INTEGER;
123220 l_amb_context_code            VARCHAR2(30);
123221 l_entity_code                 VARCHAR2(30);
123222 l_event_class_code            VARCHAR2(30);
123223 l_ae_header_id                NUMBER;
123224 l_event_type_code             VARCHAR2(30);
123225 l_line_definition_code        VARCHAR2(30);
123226 l_line_definition_owner_code  VARCHAR2(1);
123227 --
123228 -- adr variables
123229 l_segment                     VARCHAR2(30);
123230 l_ccid                        NUMBER;
123231 l_adr_transaction_coa_id      NUMBER;
123232 l_adr_accounting_coa_id       NUMBER;
123233 l_adr_flexfield_segment_code  VARCHAR2(30);
123234 l_adr_flex_value_set_id       NUMBER;
123235 l_adr_value_type_code         VARCHAR2(30);
123236 l_adr_value_combination_id    NUMBER;
123237 l_adr_value_segment_code      VARCHAR2(30);
123238 
123239 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
123240 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
123241 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
123242 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
123243 
123244 -- 4262811 Variables ------------------------------------------------------------------------------------------
123245 l_entered_amt_idx             NUMBER;
123246 l_accted_amt_idx              NUMBER;
123247 l_acc_rev_flag                VARCHAR2(1);
123248 l_accrual_line_num            NUMBER;
123249 l_tmp_amt                     NUMBER;
123250 l_acc_rev_natural_side_code   VARCHAR2(1);
123251 
123252 l_num_entries                 NUMBER;
123253 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
123254 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
123255 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
123256 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
123257 l_recog_line_1                NUMBER;
123258 l_recog_line_2                NUMBER;
123259 
123260 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
123261 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
123262 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
123263 
123264 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
123265 
123266 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
123267 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
123268 
123269 ---------------------------------------------------------------------------------------------------------------
123270 
123271 
123272 --
123273 -- bulk performance
123274 --
123275 l_balance_type_code           VARCHAR2(1);
123276 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
123277 l_log_module                  VARCHAR2(240);
123278 
123279 --
123280 -- Upgrade strategy
123281 --
123282 l_actual_upg_option           VARCHAR2(1);
123283 l_enc_upg_option           VARCHAR2(1);
123284 
123285 --
123286 BEGIN
123287 --
123288 IF g_log_enabled THEN
123289       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_211';
123290 END IF;
123291 --
123292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123293 
123294       trace
123298 
123295          (p_msg      => 'BEGIN of AcctLineType_211'
123296          ,p_level    => C_LEVEL_PROCEDURE
123297          ,p_module   => l_log_module);
123299 END IF;
123300 --
123301 l_component_type             := 'AMB_JLT';
123302 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_INV';
123303 l_component_type_code        := 'S';
123304 l_component_appl_id          :=  200;
123305 l_amb_context_code           := 'DEFAULT';
123306 l_entity_code                := 'AP_INVOICES';
123307 l_event_class_code           := 'INVOICES';
123308 l_event_type_code            := 'INVOICES_ALL';
123309 l_line_definition_owner_code := 'S';
123310 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
123311 --
123312 l_balance_type_code          := 'A';
123313 l_segment                     := NULL;
123314 l_ccid                        := NULL;
123315 l_adr_transaction_coa_id      := NULL;
123316 l_adr_accounting_coa_id       := NULL;
123317 l_adr_flexfield_segment_code  := NULL;
123318 l_adr_flex_value_set_id       := NULL;
123319 l_adr_value_type_code         := NULL;
123320 l_adr_value_combination_id    := NULL;
123321 l_adr_value_segment_code      := NULL;
123322 
123323 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
123324 l_bflow_class_code           := '';    -- 4219869 Business Flow
123325 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
123326 l_budgetary_control_flag     := 'N';
123327 
123328 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
123329 l_bflow_applied_to_amt       := NULL; -- 5132302
123330 l_entered_amt_idx            := NULL;          -- 4262811
123331 l_accted_amt_idx             := NULL;          -- 4262811
123332 l_acc_rev_flag               := NULL;          -- 4262811
123333 l_accrual_line_num           := NULL;          -- 4262811
123334 l_tmp_amt                    := NULL;          -- 4262811
123335 --
123336  
123337 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
123338     l_balance_type_code <> 'B' THEN
123339 IF NVL(p_source_28,'
123340 ') =  'REC_TAX' AND 
123341 NVL(p_source_145,'
123342 ') =  'Y'
123343  THEN 
123344 
123345    --
123346    XLA_AE_LINES_PKG.SetNewLine;
123347 
123348    p_balance_type_code          := l_balance_type_code;
123349    -- set the flag so later we will know whether the gain loss line needs to be created
123350    
123351    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
123352      p_actual_flag :='A';
123353    END IF;
123354 
123355    --
123356    -- bulk performance
123357    --
123358    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
123359                                       p_header_num   => 0); -- 4262811
123360    --
123361    -- set accounting line options
123362    --
123363    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
123364            p_natural_side_code          => 'D'
123365          , p_gain_or_loss_flag          => 'N'
123366          , p_gl_transfer_mode_code      => 'S'
123367          , p_acct_entry_type_code       => 'A'
123368          , p_switch_side_flag           => 'Y'
123369          , p_merge_duplicate_code       => 'A'
123370          );
123371    --
123372    l_acc_rev_natural_side_code := 'C';  -- 4262811
123373    -- 
123374    --
123375    -- set accounting line type info
123376    --
123377    xla_ae_lines_pkg.SetAcctLineType
123378       (p_component_type             => l_component_type
123379       ,p_event_type_code            => l_event_type_code
123380       ,p_line_definition_owner_code => l_line_definition_owner_code
123381       ,p_line_definition_code       => l_line_definition_code
123382       ,p_accounting_line_code       => l_component_code
123383       ,p_accounting_line_type_code  => l_component_type_code
123384       ,p_accounting_line_appl_id    => l_component_appl_id
123385       ,p_amb_context_code           => l_amb_context_code
123386       ,p_entity_code                => l_entity_code
123387       ,p_event_class_code           => l_event_class_code);
123388    --
123389    -- set accounting class
123390    --
123391    xla_ae_lines_pkg.SetAcctClass(
123392            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
123393          , p_ae_header_id           => l_ae_header_id
123394          );
123395 
123396    --
123397    -- set rounding class
123398    --
123399    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
123400                       'SELF_ASSESSED_TAX';
123401 
123402    --
123403    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
123404    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
123405    --
123406    -- bulk performance
123407    --
123408    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
123409 
123410    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
123411       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
123412 
123413    -- 4955764
123414    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123415       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
123416 
123417    -- 4458381 Public Sector Enh
123418    
123419    --
123420    -- set accounting attributes for the line type
123421    --
123422    l_entered_amt_idx := 24;
123423    l_accted_amt_idx  := 29;
123427    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
123424    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
123425    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
123426    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
123428    l_rec_acct_attrs.array_num_value(2)  := 
123429 xla_ae_sources_pkg.GetSystemSourceNum(
123430    p_source_code           => 'XLA_EVENT_APPL_ID'
123431  , p_source_type_code      => 'Y'
123432  , p_source_application_id =>  602
123433 );
123434    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
123435    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
123436    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
123437    l_rec_acct_attrs.array_char_value(4)  := 
123438 xla_ae_sources_pkg.GetSystemSourceChar(
123439    p_source_code           => 'XLA_ENTITY_CODE'
123440  , p_source_type_code      => 'Y'
123441  , p_source_application_id =>  602
123442 );
123443    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
123444    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
123445    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
123446    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
123447    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
123448    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
123449    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
123450    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
123451    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
123452    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
123453    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
123454    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
123455    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
123456    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
123457    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
123458    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
123459    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
123460    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
123461    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
123462    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
123463    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
123464    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
123465    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
123466    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
123467    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
123468    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
123469    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
123470    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
123471    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
123472    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
123473    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
123474    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
123475    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
123476    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
123477    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
123478    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
123479    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
123480    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
123481    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
123482    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
123483    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
123484    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
123485    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
123486    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
123487    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
123488    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
123489    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
123490    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
123491    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
123492    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
123493    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
123494    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
123495    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
123496    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
123497    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
123498    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
123499    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
123500    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
123501    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
123502    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
123503    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
123504    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
123505    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
123506    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
123507    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
123508    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
123509    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
123510    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
123514    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
123511    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
123512    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
123513    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
123515    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
123516    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
123517    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
123518    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
123519    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
123520    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
123521    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
123522    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
123523 
123524    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
123525    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
123526 
123527    ---------------------------------------------------------------------------------------------------------------
123528    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
123529    ---------------------------------------------------------------------------------------------------------------
123530    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
123531 
123532    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123533    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123534 
123535    IF xla_accounting_cache_pkg.GetValueChar
123536          (p_source_code         => 'LEDGER_CATEGORY_CODE'
123537          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
123538    AND l_bflow_method_code = 'PRIOR_ENTRY'
123539 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
123540    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
123541          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
123542        )
123543    THEN
123544          xla_ae_lines_pkg.BflowUpgEntry
123545            (p_business_method_code    => l_bflow_method_code
123546            ,p_business_class_code     => l_bflow_class_code
123547            ,p_balance_type            => l_balance_type_code);
123548    ELSE
123549       NULL;
123550 -- No business flow processing for business flow method of NONE.
123551    END IF;
123552 
123553    --
123554    -- call analytical criteria
123555    --
123556    
123557    --
123558    -- call description
123559    --
123560    
123561 xla_ae_lines_pkg.SetLineDescription(
123562    p_ae_header_id => l_ae_header_id
123563   ,p_description  => Description_2 (
123564      p_application_id         => p_application_id
123565    , p_ae_header_id           => l_ae_header_id 
123566 , p_source_1 => p_source_1
123567    )
123568 );
123569 
123570 
123571    --
123572    -- call ADRs
123573    -- Bug 4922099
123574    --
123575    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123576         (NVL(l_actual_upg_option, 'N') = 'O') OR
123577         (NVL(l_enc_upg_option, 'N') = 'O')
123578       )
123579    THEN
123580    NULL;
123581    --
123582    --
123583    
123584   l_ccid := AcctDerRule_44(
123585            p_application_id           => p_application_id
123586          , p_ae_header_id             => l_ae_header_id 
123587 , p_source_46 => p_source_46
123588          , x_transaction_coa_id       => l_adr_transaction_coa_id
123589          , x_accounting_coa_id        => l_adr_accounting_coa_id
123590          , x_value_type_code          => l_adr_value_type_code
123591          , p_side                     => 'NA'
123592    );
123593 
123594    xla_ae_lines_pkg.set_ccid(
123595     p_code_combination_id          => l_ccid
123596   , p_value_type_code              => l_adr_value_type_code
123597   , p_transaction_coa_id           => l_adr_transaction_coa_id
123598   , p_accounting_coa_id            => l_adr_accounting_coa_id
123599   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
123600   , p_adr_type_code                => 'S'
123601   , p_component_type               => l_component_type
123602   , p_component_code               => l_component_code
123603   , p_component_type_code          => l_component_type_code
123604   , p_component_appl_id            => l_component_appl_id
123605   , p_amb_context_code             => l_amb_context_code
123606   , p_side                         => 'NA'
123607   );
123608 
123609 
123610    --
123611    --
123612    END IF;
123613    --
123614    -- Bug 4922099
123615    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123616           (NVL(l_enc_upg_option, 'N') = 'O')
123617         ) AND
123618         (l_bflow_method_code = 'PRIOR_ENTRY')
123619       )
123620    THEN
123621       IF
123622       --
123623       1 = 2
123624       --
123625       THEN
123626       xla_accounting_err_pkg.build_message
123627                                     (p_appli_s_name            => 'XLA'
123628                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123629                                     ,p_token_1                 => 'LINE_NUMBER'
123630                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123631                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123635                                                                             ,l_component_type_code
123632                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123633                                                                              l_component_type
123634                                                                             ,l_component_code
123636                                                                             ,l_component_appl_id
123637                                                                             ,l_amb_context_code
123638                                                                             ,l_entity_code
123639                                                                             ,l_event_class_code
123640                                                                            )
123641                                     ,p_token_3                 => 'OWNER'
123642                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123643                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123644                                                                           ,p_lookup_code    => l_component_type_code
123645                                                                          )
123646                                     ,p_token_4                 => 'PRODUCT_NAME'
123647                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123648                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123649                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123650                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123651                                     ,p_ae_header_id            =>  NULL
123652                                        );
123653 
123654         IF (C_LEVEL_ERROR>= g_log_level) THEN
123655                  trace
123656                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123657                       ,p_level    => C_LEVEL_ERROR
123658                       ,p_module   => l_log_module);
123659         END IF;
123660       END IF;
123661    END IF;
123662    --
123663    --
123664    ------------------------------------------------------------------------------------------------
123665    -- 4219869 Business Flow
123666    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
123667    -- Prior Entry.  Currently, the following code is always generated.
123668    ------------------------------------------------------------------------------------------------
123669    XLA_AE_LINES_PKG.ValidateCurrentLine;
123670 
123671    ------------------------------------------------------------------------------------
123672    -- 4219869 Business Flow
123673    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
123674    ------------------------------------------------------------------------------------
123675    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123676 
123677    ----------------------------------------------------------------------------------
123678    -- 4219869 Business Flow
123679    -- Update journal entry status -- Need to generate this within IF <condition>
123680    ----------------------------------------------------------------------------------
123681    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123682          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
123683          ,p_balance_type_code => l_balance_type_code
123684          );
123685 
123686    -------------------------------------------------------------------------------------------
123687    -- 4262811 - Generate the Accrual Reversal lines
123688    -------------------------------------------------------------------------------------------
123689    BEGIN
123690       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
123691                               (g_array_event(p_event_id).array_value_num('header_index'));
123692       IF l_acc_rev_flag IS NULL THEN
123693          l_acc_rev_flag := 'N';
123694       END IF;
123695    EXCEPTION
123696       WHEN OTHERS THEN
123697          l_acc_rev_flag := 'N';
123698    END;
123699    --
123700    IF (l_acc_rev_flag = 'Y') THEN
123701 
123702        -- 4645092  ------------------------------------------------------------------------------
123703        -- To allow MPA report to determine if it should generate report process
123704        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
123705        ------------------------------------------------------------------------------------------
123706 
123707        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
123708        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
123709    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
123710    -- call ADRs
123711    -- Bug 4922099
123712    --
123713    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123714         (NVL(l_actual_upg_option, 'N') = 'O') OR
123715         (NVL(l_enc_upg_option, 'N') = 'O')
123716       )
123717    THEN
123718    NULL;
123719    --
123720    --
123721    
123722   l_ccid := AcctDerRule_44(
123723            p_application_id           => p_application_id
123724          , p_ae_header_id             => l_ae_header_id 
123725 , p_source_46 => p_source_46
123726          , x_transaction_coa_id       => l_adr_transaction_coa_id
123727          , x_accounting_coa_id        => l_adr_accounting_coa_id
123728          , x_value_type_code          => l_adr_value_type_code
123732    xla_ae_lines_pkg.set_ccid(
123729          , p_side                     => 'NA'
123730    );
123731 
123733     p_code_combination_id          => l_ccid
123734   , p_value_type_code              => l_adr_value_type_code
123735   , p_transaction_coa_id           => l_adr_transaction_coa_id
123736   , p_accounting_coa_id            => l_adr_accounting_coa_id
123737   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
123738   , p_adr_type_code                => 'S'
123739   , p_component_type               => l_component_type
123740   , p_component_code               => l_component_code
123741   , p_component_type_code          => l_component_type_code
123742   , p_component_appl_id            => l_component_appl_id
123743   , p_amb_context_code             => l_amb_context_code
123744   , p_side                         => 'NA'
123745   );
123746 
123747 
123748    --
123749    --
123750    END IF;
123751 
123752        --
123753        -- Update the line information that should be overwritten
123754        --
123755        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
123756                                          p_header_num   => 1);
123757        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
123758 
123759        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
123760 
123761        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
123762           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
123763        END IF;
123764 
123765       --
123766       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
123767       --
123768       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
123769           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
123770       ELSE
123771           ---------------------------------------------------------------------------------------------------
123772           -- 4262811a Switch Sign
123773           ---------------------------------------------------------------------------------------------------
123774           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
123775           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123776                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123777           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123778                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123779           -- 5132302
123780           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
123781                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123782 
123783       END IF;
123784 
123785       -- 4955764
123786       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123787       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
123788 
123789 
123790       XLA_AE_LINES_PKG.ValidateCurrentLine;
123791       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123792 
123793       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123794                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
123795                ,p_balance_type_code => l_balance_type_code);
123796 
123797    END IF;
123798 
123799    -----------------------------------------------------------------------------------------
123800    -- 4262811 Multiperiod Accounting
123801    -----------------------------------------------------------------------------------------
123802      -- No MPA option is assigned.
123803 
123804 
123805 END IF;
123806 END IF;
123807 --
123808 
123809 --
123810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123811    trace
123812       (p_msg      => 'END of AcctLineType_211'
123813       ,p_level    => C_LEVEL_PROCEDURE
123814       ,p_module   => l_log_module);
123815 END IF;
123816 --
123817 EXCEPTION
123818   WHEN xla_exceptions_pkg.application_exception THEN
123819       RAISE;
123820   WHEN OTHERS THEN
123821        xla_exceptions_pkg.raise_message
123822            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_211');
123823 END AcctLineType_211;
123824 --
123825 
123826 ---------------------------------------
123827 --
123828 -- PRIVATE FUNCTION
123829 --         AcctLineType_212
123830 --
123831 ---------------------------------------
123832 PROCEDURE AcctLineType_212 (
123833   p_application_id        IN NUMBER
123834  ,p_event_id              IN NUMBER
123835  ,p_calculate_acctd_flag  IN VARCHAR2
123836  ,p_calculate_g_l_flag    IN VARCHAR2
123837  ,p_actual_flag           IN OUT VARCHAR2
123838  ,p_balance_type_code     OUT VARCHAR2
123839  ,p_gain_or_loss_ref      OUT VARCHAR2
123840  
123841 --Invoice Distribution Description
123842  , p_source_1            IN VARCHAR2
123843 --Invoice Distribution Ledger Amount
123844  , p_source_16            IN NUMBER
123845 --Invoice Distribution Type
123846  , p_source_28            IN VARCHAR2
123847  , p_source_28_meaning    IN VARCHAR2
123848 --Self-Assessed Tax Liability Account
123849  , p_source_47            IN NUMBER
123850 --Accounting Reversal Indicator
123851  , p_source_58            IN VARCHAR2
123852 --Distribution Link Type
123856 --Invoice Identifier
123853  , p_source_60            IN VARCHAR2
123854 --Allocation to Main Distribution Identifier
123855  , p_source_62            IN NUMBER
123857  , p_source_63            IN NUMBER
123858 --Invoice Distribution Identifier
123859  , p_source_69            IN NUMBER
123860 --Payables Encumbrance Upgrade Credit Account
123861  , p_source_70            IN NUMBER
123862 --Payables Encumbrance Upgrade Credit Amount
123863  , p_source_71            IN NUMBER
123864 --Invoice Currency Code
123865  , p_source_72            IN VARCHAR2
123866 --Payables Encumbrance Upgrade Credit Base Amount
123867  , p_source_73            IN NUMBER
123868 --Payables Encumbrance Upgrade Debit Account
123869  , p_source_74            IN NUMBER
123870 --Payables Encumbrance Upgrade Debit Amount
123871  , p_source_75            IN NUMBER
123872 --Payables Encumbrance Upgrade Debit Base Amount
123873  , p_source_76            IN NUMBER
123874 --Payables Encumbrance Upgrade Option
123875  , p_source_77            IN VARCHAR2
123876 --Invoice Distribution Amount
123877  , p_source_78            IN NUMBER
123878 --Deferred Accounting End Date
123879  , p_source_82            IN DATE
123880 --Deferred Accounting Option
123881  , p_source_83            IN VARCHAR2
123882 --Deferred Accounting Start Date
123883  , p_source_84            IN DATE
123884 --Override Accounted Amount Indicator
123885  , p_source_85            IN VARCHAR2
123886  , p_source_85_meaning    IN VARCHAR2
123887 --Invoice Supplier Identifier
123888  , p_source_86            IN NUMBER
123889 --Invoice Supplier Site Identifier
123890  , p_source_87            IN NUMBER
123891 --Third Party Type
123892  , p_source_88            IN VARCHAR2
123893 --Parent Reversal Identifier
123894  , p_source_89            IN NUMBER
123895 --Invoice Distribution Statistical Amount
123896  , p_source_90            IN NUMBER
123897 --Invoice Distribution Tax Line Identifier
123898  , p_source_91            IN NUMBER
123899 --Invoice Distribution Tax Distribution Identifier from Tax
123900  , p_source_92            IN NUMBER
123901 --Invoice Distribution Summary Tax Line Identifier
123902  , p_source_93            IN NUMBER
123903 --Payables Upgrade Credit Encumbrance Type Identifier
123904  , p_source_94            IN NUMBER
123905 --Payables Upgrade Debit Encumbrance Type Identifier
123906  , p_source_95            IN NUMBER
123907 --Business Flow Accounts Payable Application Identifier
123908  , p_source_96            IN NUMBER
123909 --Business Flow Invoice Distribution Type
123910  , p_source_97            IN VARCHAR2
123911 --Business Flow Invoice Entity Code
123912  , p_source_98            IN VARCHAR2
123913 --Business Flow Invoice Distribution Identifier
123914  , p_source_99            IN NUMBER
123915 --Business Flow Invoice Identifier
123916  , p_source_100            IN NUMBER
123917 --Self-Assessed Tax Flag
123918  , p_source_145            IN VARCHAR2
123919  , p_source_145_meaning    IN VARCHAR2
123920 --Invoice Exchange Date
123921  , p_source_146            IN DATE
123922 --Invoice Exchange Rate
123923  , p_source_147            IN NUMBER
123924 --Invoice Exchange Rate Type
123925  , p_source_148            IN VARCHAR2
123926 )
123927 IS
123928 
123929 l_component_type              VARCHAR2(80);
123930 l_component_code              VARCHAR2(30);
123931 l_component_type_code         VARCHAR2(1);
123932 l_component_appl_id           INTEGER;
123933 l_amb_context_code            VARCHAR2(30);
123934 l_entity_code                 VARCHAR2(30);
123935 l_event_class_code            VARCHAR2(30);
123936 l_ae_header_id                NUMBER;
123937 l_event_type_code             VARCHAR2(30);
123938 l_line_definition_code        VARCHAR2(30);
123939 l_line_definition_owner_code  VARCHAR2(1);
123940 --
123941 -- adr variables
123942 l_segment                     VARCHAR2(30);
123943 l_ccid                        NUMBER;
123944 l_adr_transaction_coa_id      NUMBER;
123945 l_adr_accounting_coa_id       NUMBER;
123946 l_adr_flexfield_segment_code  VARCHAR2(30);
123947 l_adr_flex_value_set_id       NUMBER;
123948 l_adr_value_type_code         VARCHAR2(30);
123949 l_adr_value_combination_id    NUMBER;
123950 l_adr_value_segment_code      VARCHAR2(30);
123951 
123952 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
123953 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
123954 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
123955 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
123956 
123957 -- 4262811 Variables ------------------------------------------------------------------------------------------
123958 l_entered_amt_idx             NUMBER;
123959 l_accted_amt_idx              NUMBER;
123960 l_acc_rev_flag                VARCHAR2(1);
123961 l_accrual_line_num            NUMBER;
123962 l_tmp_amt                     NUMBER;
123963 l_acc_rev_natural_side_code   VARCHAR2(1);
123964 
123965 l_num_entries                 NUMBER;
123966 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
123967 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
123968 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
123969 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
123970 l_recog_line_1                NUMBER;
123971 l_recog_line_2                NUMBER;
123972 
123973 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
123974 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
123975 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
123979 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
123976 
123977 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
123978 
123980 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
123981 
123982 ---------------------------------------------------------------------------------------------------------------
123983 
123984 
123985 --
123986 -- bulk performance
123987 --
123988 l_balance_type_code           VARCHAR2(1);
123989 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
123990 l_log_module                  VARCHAR2(240);
123991 
123992 --
123993 -- Upgrade strategy
123994 --
123995 l_actual_upg_option           VARCHAR2(1);
123996 l_enc_upg_option           VARCHAR2(1);
123997 
123998 --
123999 BEGIN
124000 --
124001 IF g_log_enabled THEN
124002       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_212';
124003 END IF;
124004 --
124005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124006 
124007       trace
124008          (p_msg      => 'BEGIN of AcctLineType_212'
124009          ,p_level    => C_LEVEL_PROCEDURE
124010          ,p_module   => l_log_module);
124011 
124012 END IF;
124013 --
124014 l_component_type             := 'AMB_JLT';
124015 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_CM';
124016 l_component_type_code        := 'S';
124017 l_component_appl_id          :=  200;
124018 l_amb_context_code           := 'DEFAULT';
124019 l_entity_code                := 'AP_INVOICES';
124020 l_event_class_code           := 'CREDIT MEMOS';
124021 l_event_type_code            := 'CREDIT MEMOS_ALL';
124022 l_line_definition_owner_code := 'S';
124023 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
124024 --
124025 l_balance_type_code          := 'A';
124026 l_segment                     := NULL;
124027 l_ccid                        := NULL;
124028 l_adr_transaction_coa_id      := NULL;
124029 l_adr_accounting_coa_id       := NULL;
124030 l_adr_flexfield_segment_code  := NULL;
124031 l_adr_flex_value_set_id       := NULL;
124032 l_adr_value_type_code         := NULL;
124033 l_adr_value_combination_id    := NULL;
124034 l_adr_value_segment_code      := NULL;
124035 
124036 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
124037 l_bflow_class_code           := '';    -- 4219869 Business Flow
124038 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
124039 l_budgetary_control_flag     := 'N';
124040 
124041 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
124042 l_bflow_applied_to_amt       := NULL; -- 5132302
124043 l_entered_amt_idx            := NULL;          -- 4262811
124044 l_accted_amt_idx             := NULL;          -- 4262811
124045 l_acc_rev_flag               := NULL;          -- 4262811
124046 l_accrual_line_num           := NULL;          -- 4262811
124047 l_tmp_amt                    := NULL;          -- 4262811
124048 --
124049  
124050 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
124051     l_balance_type_code <> 'B' THEN
124052 IF (NVL(p_source_28,'
124053 ') =  'REC_TAX' OR 
124054 NVL(p_source_28,'
124055 ') =  'NONREC_TAX') AND 
124056 NVL(p_source_145,'
124057 ') =  'Y'
124058  THEN 
124059 
124060    --
124061    XLA_AE_LINES_PKG.SetNewLine;
124062 
124063    p_balance_type_code          := l_balance_type_code;
124064    -- set the flag so later we will know whether the gain loss line needs to be created
124065    
124066    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
124067      p_actual_flag :='A';
124068    END IF;
124069 
124070    --
124071    -- bulk performance
124072    --
124073    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
124074                                       p_header_num   => 0); -- 4262811
124075    --
124076    -- set accounting line options
124077    --
124078    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
124079            p_natural_side_code          => 'C'
124080          , p_gain_or_loss_flag          => 'N'
124081          , p_gl_transfer_mode_code      => 'S'
124082          , p_acct_entry_type_code       => 'A'
124083          , p_switch_side_flag           => 'Y'
124084          , p_merge_duplicate_code       => 'A'
124085          );
124086    --
124087    l_acc_rev_natural_side_code := 'D';  -- 4262811
124088    -- 
124089    --
124090    -- set accounting line type info
124091    --
124092    xla_ae_lines_pkg.SetAcctLineType
124093       (p_component_type             => l_component_type
124094       ,p_event_type_code            => l_event_type_code
124095       ,p_line_definition_owner_code => l_line_definition_owner_code
124096       ,p_line_definition_code       => l_line_definition_code
124097       ,p_accounting_line_code       => l_component_code
124098       ,p_accounting_line_type_code  => l_component_type_code
124099       ,p_accounting_line_appl_id    => l_component_appl_id
124100       ,p_amb_context_code           => l_amb_context_code
124101       ,p_entity_code                => l_entity_code
124102       ,p_event_class_code           => l_event_class_code);
124103    --
124104    -- set accounting class
124105    --
124106    xla_ae_lines_pkg.SetAcctClass(
124107            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
124108          , p_ae_header_id           => l_ae_header_id
124109          );
124110 
124111    --
124112    -- set rounding class
124113    --
124117    --
124114    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
124115                       'SELF_ASSESSED_TAX';
124116 
124118    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
124119    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
124120    --
124121    -- bulk performance
124122    --
124123    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
124124 
124125    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
124126       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
124127 
124128    -- 4955764
124129    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124130       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
124131 
124132    -- 4458381 Public Sector Enh
124133    
124134    --
124135    -- set accounting attributes for the line type
124136    --
124137    l_entered_amt_idx := 23;
124138    l_accted_amt_idx  := 28;
124139    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
124140    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
124141    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
124142    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
124143    l_rec_acct_attrs.array_num_value(2)  := 
124144 xla_ae_sources_pkg.GetSystemSourceNum(
124145    p_source_code           => 'XLA_EVENT_APPL_ID'
124146  , p_source_type_code      => 'Y'
124147  , p_source_application_id =>  602
124148 );
124149    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
124150    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
124151    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
124152    l_rec_acct_attrs.array_char_value(4)  := 
124153 xla_ae_sources_pkg.GetSystemSourceChar(
124154    p_source_code           => 'XLA_ENTITY_CODE'
124155  , p_source_type_code      => 'Y'
124156  , p_source_application_id =>  602
124157 );
124158    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
124159    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
124160    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
124161    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
124162    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
124163    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
124164    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
124165    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
124166    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
124167    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
124168    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
124169    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
124170    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
124171    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
124172    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
124173    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
124174    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
124175    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
124176    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
124177    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
124178    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
124179    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
124180    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
124181    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
124182    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
124183    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
124184    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
124185    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
124186    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
124187    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
124188    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
124189    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
124190    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
124191    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
124192    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
124193    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
124194    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
124195    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
124196    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
124197    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
124198    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
124199    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
124200    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
124201    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
124202    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
124203    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
124204    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
124205    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
124206    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
124207    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
124208    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
124212    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
124209    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
124210    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
124211    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
124213    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
124214    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
124215    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
124216    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
124217    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
124218    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
124219    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
124220    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
124221    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
124222    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
124223    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
124224    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
124225    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
124226    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
124227    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
124228    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
124229    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
124230    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
124231    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
124232    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
124233    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
124234    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
124235    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
124236 
124237    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
124238    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
124239 
124240    ---------------------------------------------------------------------------------------------------------------
124241    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
124242    ---------------------------------------------------------------------------------------------------------------
124243    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
124244 
124245    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124246    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124247 
124248    IF xla_accounting_cache_pkg.GetValueChar
124249          (p_source_code         => 'LEDGER_CATEGORY_CODE'
124250          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
124251    AND l_bflow_method_code = 'PRIOR_ENTRY'
124252 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
124253    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
124254          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
124255        )
124256    THEN
124257          xla_ae_lines_pkg.BflowUpgEntry
124258            (p_business_method_code    => l_bflow_method_code
124259            ,p_business_class_code     => l_bflow_class_code
124260            ,p_balance_type            => l_balance_type_code);
124261    ELSE
124262       NULL;
124263 -- No business flow processing for business flow method of NONE.
124264    END IF;
124265 
124266    --
124267    -- call analytical criteria
124268    --
124269    
124270    --
124271    -- call description
124272    --
124273    
124274 xla_ae_lines_pkg.SetLineDescription(
124275    p_ae_header_id => l_ae_header_id
124276   ,p_description  => Description_2 (
124277      p_application_id         => p_application_id
124278    , p_ae_header_id           => l_ae_header_id 
124279 , p_source_1 => p_source_1
124280    )
124281 );
124282 
124283 
124284    --
124285    -- call ADRs
124286    -- Bug 4922099
124287    --
124288    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124289         (NVL(l_actual_upg_option, 'N') = 'O') OR
124290         (NVL(l_enc_upg_option, 'N') = 'O')
124291       )
124292    THEN
124293    NULL;
124294    --
124295    --
124296    
124297   l_ccid := AcctDerRule_45(
124298            p_application_id           => p_application_id
124299          , p_ae_header_id             => l_ae_header_id 
124300 , p_source_47 => p_source_47
124301          , x_transaction_coa_id       => l_adr_transaction_coa_id
124302          , x_accounting_coa_id        => l_adr_accounting_coa_id
124303          , x_value_type_code          => l_adr_value_type_code
124304          , p_side                     => 'NA'
124305    );
124306 
124307    xla_ae_lines_pkg.set_ccid(
124308     p_code_combination_id          => l_ccid
124309   , p_value_type_code              => l_adr_value_type_code
124310   , p_transaction_coa_id           => l_adr_transaction_coa_id
124311   , p_accounting_coa_id            => l_adr_accounting_coa_id
124312   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124313   , p_adr_type_code                => 'S'
124314   , p_component_type               => l_component_type
124315   , p_component_code               => l_component_code
124316   , p_component_type_code          => l_component_type_code
124317   , p_component_appl_id            => l_component_appl_id
124318   , p_amb_context_code             => l_amb_context_code
124322 
124319   , p_side                         => 'NA'
124320   );
124321 
124323    --
124324    --
124325    END IF;
124326    --
124327    -- Bug 4922099
124328    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
124329           (NVL(l_enc_upg_option, 'N') = 'O')
124330         ) AND
124331         (l_bflow_method_code = 'PRIOR_ENTRY')
124332       )
124333    THEN
124334       IF
124335       --
124336       1 = 2
124337       --
124338       THEN
124339       xla_accounting_err_pkg.build_message
124340                                     (p_appli_s_name            => 'XLA'
124341                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124342                                     ,p_token_1                 => 'LINE_NUMBER'
124343                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
124344                                     ,p_token_2                 => 'LINE_TYPE_NAME'
124345                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
124346                                                                              l_component_type
124347                                                                             ,l_component_code
124348                                                                             ,l_component_type_code
124349                                                                             ,l_component_appl_id
124350                                                                             ,l_amb_context_code
124351                                                                             ,l_entity_code
124352                                                                             ,l_event_class_code
124353                                                                            )
124354                                     ,p_token_3                 => 'OWNER'
124355                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
124356                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
124357                                                                           ,p_lookup_code    => l_component_type_code
124358                                                                          )
124359                                     ,p_token_4                 => 'PRODUCT_NAME'
124360                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
124361                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
124362                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
124363                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
124364                                     ,p_ae_header_id            =>  NULL
124365                                        );
124366 
124367         IF (C_LEVEL_ERROR>= g_log_level) THEN
124368                  trace
124369                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124370                       ,p_level    => C_LEVEL_ERROR
124371                       ,p_module   => l_log_module);
124372         END IF;
124373       END IF;
124374    END IF;
124375    --
124376    --
124377    ------------------------------------------------------------------------------------------------
124378    -- 4219869 Business Flow
124379    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
124380    -- Prior Entry.  Currently, the following code is always generated.
124381    ------------------------------------------------------------------------------------------------
124382    XLA_AE_LINES_PKG.ValidateCurrentLine;
124383 
124384    ------------------------------------------------------------------------------------
124385    -- 4219869 Business Flow
124386    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
124387    ------------------------------------------------------------------------------------
124388    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124389 
124390    ----------------------------------------------------------------------------------
124391    -- 4219869 Business Flow
124392    -- Update journal entry status -- Need to generate this within IF <condition>
124393    ----------------------------------------------------------------------------------
124394    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124395          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
124396          ,p_balance_type_code => l_balance_type_code
124397          );
124398 
124399    -------------------------------------------------------------------------------------------
124400    -- 4262811 - Generate the Accrual Reversal lines
124401    -------------------------------------------------------------------------------------------
124402    BEGIN
124403       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
124404                               (g_array_event(p_event_id).array_value_num('header_index'));
124405       IF l_acc_rev_flag IS NULL THEN
124406          l_acc_rev_flag := 'N';
124407       END IF;
124408    EXCEPTION
124409       WHEN OTHERS THEN
124410          l_acc_rev_flag := 'N';
124411    END;
124412    --
124413    IF (l_acc_rev_flag = 'Y') THEN
124414 
124415        -- 4645092  ------------------------------------------------------------------------------
124419 
124416        -- To allow MPA report to determine if it should generate report process
124417        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
124418        ------------------------------------------------------------------------------------------
124420        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
124421        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
124422    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
124423    -- call ADRs
124424    -- Bug 4922099
124425    --
124426    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124427         (NVL(l_actual_upg_option, 'N') = 'O') OR
124428         (NVL(l_enc_upg_option, 'N') = 'O')
124429       )
124430    THEN
124431    NULL;
124432    --
124433    --
124434    
124435   l_ccid := AcctDerRule_45(
124436            p_application_id           => p_application_id
124437          , p_ae_header_id             => l_ae_header_id 
124438 , p_source_47 => p_source_47
124439          , x_transaction_coa_id       => l_adr_transaction_coa_id
124440          , x_accounting_coa_id        => l_adr_accounting_coa_id
124441          , x_value_type_code          => l_adr_value_type_code
124442          , p_side                     => 'NA'
124443    );
124444 
124445    xla_ae_lines_pkg.set_ccid(
124446     p_code_combination_id          => l_ccid
124447   , p_value_type_code              => l_adr_value_type_code
124448   , p_transaction_coa_id           => l_adr_transaction_coa_id
124449   , p_accounting_coa_id            => l_adr_accounting_coa_id
124450   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124451   , p_adr_type_code                => 'S'
124452   , p_component_type               => l_component_type
124453   , p_component_code               => l_component_code
124454   , p_component_type_code          => l_component_type_code
124455   , p_component_appl_id            => l_component_appl_id
124456   , p_amb_context_code             => l_amb_context_code
124457   , p_side                         => 'NA'
124458   );
124459 
124460 
124461    --
124462    --
124463    END IF;
124464 
124465        --
124466        -- Update the line information that should be overwritten
124467        --
124468        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
124469                                          p_header_num   => 1);
124470        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
124471 
124472        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
124473 
124474        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
124475           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
124476        END IF;
124477 
124478       --
124479       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
124480       --
124481       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
124482           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
124483       ELSE
124484           ---------------------------------------------------------------------------------------------------
124485           -- 4262811a Switch Sign
124486           ---------------------------------------------------------------------------------------------------
124487           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
124488           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124489                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124490           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124491                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124492           -- 5132302
124493           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
124494                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124495 
124496       END IF;
124497 
124498       -- 4955764
124499       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124500       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
124501 
124502 
124503       XLA_AE_LINES_PKG.ValidateCurrentLine;
124504       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124505 
124506       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124507                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
124508                ,p_balance_type_code => l_balance_type_code);
124509 
124510    END IF;
124511 
124512    -----------------------------------------------------------------------------------------
124513    -- 4262811 Multiperiod Accounting
124514    -----------------------------------------------------------------------------------------
124515      -- No MPA option is assigned.
124516 
124517 
124518 END IF;
124519 END IF;
124520 --
124521 
124522 --
124523 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124524    trace
124525       (p_msg      => 'END of AcctLineType_212'
124526       ,p_level    => C_LEVEL_PROCEDURE
124527       ,p_module   => l_log_module);
124528 END IF;
124529 --
124530 EXCEPTION
124531   WHEN xla_exceptions_pkg.application_exception THEN
124532       RAISE;
124533   WHEN OTHERS THEN
124534        xla_exceptions_pkg.raise_message
124538 
124535            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_212');
124536 END AcctLineType_212;
124537 --
124539 ---------------------------------------
124540 --
124541 -- PRIVATE FUNCTION
124542 --         AcctLineType_213
124543 --
124544 ---------------------------------------
124545 PROCEDURE AcctLineType_213 (
124546   p_application_id        IN NUMBER
124547  ,p_event_id              IN NUMBER
124548  ,p_calculate_acctd_flag  IN VARCHAR2
124549  ,p_calculate_g_l_flag    IN VARCHAR2
124550  ,p_actual_flag           IN OUT VARCHAR2
124551  ,p_balance_type_code     OUT VARCHAR2
124552  ,p_gain_or_loss_ref      OUT VARCHAR2
124553  
124554 --Invoice Distribution Description
124555  , p_source_1            IN VARCHAR2
124556 --Invoice Distribution Ledger Amount
124557  , p_source_16            IN NUMBER
124558 --Invoice Distribution Type
124559  , p_source_28            IN VARCHAR2
124560  , p_source_28_meaning    IN VARCHAR2
124561 --Self-Assessed Tax Liability Account
124562  , p_source_47            IN NUMBER
124563 --Accounting Reversal Indicator
124564  , p_source_58            IN VARCHAR2
124565 --Distribution Link Type
124566  , p_source_60            IN VARCHAR2
124567 --Allocation to Main Distribution Identifier
124568  , p_source_62            IN NUMBER
124569 --Invoice Identifier
124570  , p_source_63            IN NUMBER
124571 --Invoice Distribution Identifier
124572  , p_source_69            IN NUMBER
124573 --Payables Encumbrance Upgrade Credit Account
124574  , p_source_70            IN NUMBER
124575 --Payables Encumbrance Upgrade Credit Amount
124576  , p_source_71            IN NUMBER
124577 --Invoice Currency Code
124578  , p_source_72            IN VARCHAR2
124579 --Payables Encumbrance Upgrade Credit Base Amount
124580  , p_source_73            IN NUMBER
124581 --Payables Encumbrance Upgrade Debit Account
124582  , p_source_74            IN NUMBER
124583 --Payables Encumbrance Upgrade Debit Amount
124584  , p_source_75            IN NUMBER
124585 --Payables Encumbrance Upgrade Debit Base Amount
124586  , p_source_76            IN NUMBER
124587 --Payables Encumbrance Upgrade Option
124588  , p_source_77            IN VARCHAR2
124589 --Invoice Distribution Amount
124590  , p_source_78            IN NUMBER
124591 --Deferred Accounting End Date
124592  , p_source_82            IN DATE
124593 --Deferred Accounting Option
124594  , p_source_83            IN VARCHAR2
124595 --Deferred Accounting Start Date
124596  , p_source_84            IN DATE
124597 --Override Accounted Amount Indicator
124598  , p_source_85            IN VARCHAR2
124599  , p_source_85_meaning    IN VARCHAR2
124600 --Invoice Supplier Identifier
124601  , p_source_86            IN NUMBER
124602 --Invoice Supplier Site Identifier
124603  , p_source_87            IN NUMBER
124604 --Third Party Type
124605  , p_source_88            IN VARCHAR2
124606 --Parent Reversal Identifier
124607  , p_source_89            IN NUMBER
124608 --Invoice Distribution Tax Line Identifier
124609  , p_source_91            IN NUMBER
124610 --Invoice Distribution Tax Distribution Identifier from Tax
124611  , p_source_92            IN NUMBER
124612 --Invoice Distribution Summary Tax Line Identifier
124613  , p_source_93            IN NUMBER
124614 --Payables Upgrade Credit Encumbrance Type Identifier
124615  , p_source_94            IN NUMBER
124616 --Payables Upgrade Debit Encumbrance Type Identifier
124617  , p_source_95            IN NUMBER
124618 --Business Flow Accounts Payable Application Identifier
124619  , p_source_96            IN NUMBER
124620 --Business Flow Invoice Distribution Type
124621  , p_source_97            IN VARCHAR2
124622 --Business Flow Invoice Entity Code
124623  , p_source_98            IN VARCHAR2
124624 --Business Flow Invoice Distribution Identifier
124625  , p_source_99            IN NUMBER
124626 --Business Flow Invoice Identifier
124627  , p_source_100            IN NUMBER
124628 --Self-Assessed Tax Flag
124629  , p_source_145            IN VARCHAR2
124630  , p_source_145_meaning    IN VARCHAR2
124631 --Invoice Exchange Date
124632  , p_source_146            IN DATE
124633 --Invoice Exchange Rate
124634  , p_source_147            IN NUMBER
124635 --Invoice Exchange Rate Type
124636  , p_source_148            IN VARCHAR2
124637 )
124638 IS
124639 
124640 l_component_type              VARCHAR2(80);
124641 l_component_code              VARCHAR2(30);
124642 l_component_type_code         VARCHAR2(1);
124643 l_component_appl_id           INTEGER;
124644 l_amb_context_code            VARCHAR2(30);
124645 l_entity_code                 VARCHAR2(30);
124646 l_event_class_code            VARCHAR2(30);
124647 l_ae_header_id                NUMBER;
124648 l_event_type_code             VARCHAR2(30);
124649 l_line_definition_code        VARCHAR2(30);
124650 l_line_definition_owner_code  VARCHAR2(1);
124651 --
124652 -- adr variables
124653 l_segment                     VARCHAR2(30);
124654 l_ccid                        NUMBER;
124655 l_adr_transaction_coa_id      NUMBER;
124656 l_adr_accounting_coa_id       NUMBER;
124657 l_adr_flexfield_segment_code  VARCHAR2(30);
124658 l_adr_flex_value_set_id       NUMBER;
124659 l_adr_value_type_code         VARCHAR2(30);
124660 l_adr_value_combination_id    NUMBER;
124661 l_adr_value_segment_code      VARCHAR2(30);
124662 
124663 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124664 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124665 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124666 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124667 
124671 l_acc_rev_flag                VARCHAR2(1);
124668 -- 4262811 Variables ------------------------------------------------------------------------------------------
124669 l_entered_amt_idx             NUMBER;
124670 l_accted_amt_idx              NUMBER;
124672 l_accrual_line_num            NUMBER;
124673 l_tmp_amt                     NUMBER;
124674 l_acc_rev_natural_side_code   VARCHAR2(1);
124675 
124676 l_num_entries                 NUMBER;
124677 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
124678 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
124679 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
124680 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
124681 l_recog_line_1                NUMBER;
124682 l_recog_line_2                NUMBER;
124683 
124684 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
124685 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
124686 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
124687 
124688 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
124689 
124690 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
124691 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
124692 
124693 ---------------------------------------------------------------------------------------------------------------
124694 
124695 
124696 --
124697 -- bulk performance
124698 --
124699 l_balance_type_code           VARCHAR2(1);
124700 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
124701 l_log_module                  VARCHAR2(240);
124702 
124703 --
124704 -- Upgrade strategy
124705 --
124706 l_actual_upg_option           VARCHAR2(1);
124707 l_enc_upg_option           VARCHAR2(1);
124708 
124709 --
124710 BEGIN
124711 --
124712 IF g_log_enabled THEN
124713       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_213';
124714 END IF;
124715 --
124716 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124717 
124718       trace
124719          (p_msg      => 'BEGIN of AcctLineType_213'
124720          ,p_level    => C_LEVEL_PROCEDURE
124721          ,p_module   => l_log_module);
124722 
124723 END IF;
124724 --
124725 l_component_type             := 'AMB_JLT';
124726 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_DM';
124727 l_component_type_code        := 'S';
124728 l_component_appl_id          :=  200;
124729 l_amb_context_code           := 'DEFAULT';
124730 l_entity_code                := 'AP_INVOICES';
124731 l_event_class_code           := 'DEBIT MEMOS';
124732 l_event_type_code            := 'DEBIT MEMOS_ALL';
124733 l_line_definition_owner_code := 'S';
124734 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
124735 --
124736 l_balance_type_code          := 'A';
124737 l_segment                     := NULL;
124738 l_ccid                        := NULL;
124739 l_adr_transaction_coa_id      := NULL;
124740 l_adr_accounting_coa_id       := NULL;
124741 l_adr_flexfield_segment_code  := NULL;
124742 l_adr_flex_value_set_id       := NULL;
124743 l_adr_value_type_code         := NULL;
124744 l_adr_value_combination_id    := NULL;
124745 l_adr_value_segment_code      := NULL;
124746 
124747 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
124748 l_bflow_class_code           := '';    -- 4219869 Business Flow
124749 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
124750 l_budgetary_control_flag     := 'N';
124751 
124752 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
124753 l_bflow_applied_to_amt       := NULL; -- 5132302
124754 l_entered_amt_idx            := NULL;          -- 4262811
124755 l_accted_amt_idx             := NULL;          -- 4262811
124756 l_acc_rev_flag               := NULL;          -- 4262811
124757 l_accrual_line_num           := NULL;          -- 4262811
124758 l_tmp_amt                    := NULL;          -- 4262811
124759 --
124760  
124761 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
124762     l_balance_type_code <> 'B' THEN
124763 IF (NVL(p_source_28,'
124764 ') =  'REC_TAX' OR 
124765 NVL(p_source_28,'
124766 ') =  'NONREC_TAX') AND 
124767 NVL(p_source_145,'
124768 ') =  'Y'
124769  THEN 
124770 
124771    --
124772    XLA_AE_LINES_PKG.SetNewLine;
124773 
124774    p_balance_type_code          := l_balance_type_code;
124775    -- set the flag so later we will know whether the gain loss line needs to be created
124776    
124777    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
124778      p_actual_flag :='A';
124779    END IF;
124780 
124781    --
124782    -- bulk performance
124783    --
124784    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
124785                                       p_header_num   => 0); -- 4262811
124786    --
124787    -- set accounting line options
124788    --
124789    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
124790            p_natural_side_code          => 'C'
124791          , p_gain_or_loss_flag          => 'N'
124792          , p_gl_transfer_mode_code      => 'S'
124793          , p_acct_entry_type_code       => 'A'
124794          , p_switch_side_flag           => 'Y'
124795          , p_merge_duplicate_code       => 'A'
124796          );
124797    --
124798    l_acc_rev_natural_side_code := 'D';  -- 4262811
124799    -- 
124800    --
124801    -- set accounting line type info
124802    --
124806       ,p_line_definition_owner_code => l_line_definition_owner_code
124803    xla_ae_lines_pkg.SetAcctLineType
124804       (p_component_type             => l_component_type
124805       ,p_event_type_code            => l_event_type_code
124807       ,p_line_definition_code       => l_line_definition_code
124808       ,p_accounting_line_code       => l_component_code
124809       ,p_accounting_line_type_code  => l_component_type_code
124810       ,p_accounting_line_appl_id    => l_component_appl_id
124811       ,p_amb_context_code           => l_amb_context_code
124812       ,p_entity_code                => l_entity_code
124813       ,p_event_class_code           => l_event_class_code);
124814    --
124815    -- set accounting class
124816    --
124817    xla_ae_lines_pkg.SetAcctClass(
124818            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
124819          , p_ae_header_id           => l_ae_header_id
124820          );
124821 
124822    --
124823    -- set rounding class
124824    --
124825    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
124826                       'SELF_ASSESSED_TAX';
124827 
124828    --
124829    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
124830    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
124831    --
124832    -- bulk performance
124833    --
124834    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
124835 
124836    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
124837       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
124838 
124839    -- 4955764
124840    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124841       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
124842 
124843    -- 4458381 Public Sector Enh
124844    
124845    --
124846    -- set accounting attributes for the line type
124847    --
124848    l_entered_amt_idx := 23;
124849    l_accted_amt_idx  := 28;
124850    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
124851    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
124852    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
124853    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
124854    l_rec_acct_attrs.array_num_value(2)  := 
124855 xla_ae_sources_pkg.GetSystemSourceNum(
124856    p_source_code           => 'XLA_EVENT_APPL_ID'
124857  , p_source_type_code      => 'Y'
124858  , p_source_application_id =>  602
124859 );
124860    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
124861    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
124862    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
124863    l_rec_acct_attrs.array_char_value(4)  := 
124864 xla_ae_sources_pkg.GetSystemSourceChar(
124865    p_source_code           => 'XLA_ENTITY_CODE'
124866  , p_source_type_code      => 'Y'
124867  , p_source_application_id =>  602
124868 );
124869    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
124870    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
124871    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
124872    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
124873    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
124874    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
124875    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
124876    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
124877    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
124878    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
124879    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
124880    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
124881    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
124882    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
124883    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
124884    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
124885    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
124886    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
124887    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
124888    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
124889    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
124890    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
124891    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
124892    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
124893    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
124894    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
124895    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
124896    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
124897    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
124898    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
124899    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
124900    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
124901    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
124902    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
124903    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
124904    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
124908    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
124905    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
124906    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
124907    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
124909    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
124910    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
124911    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
124912    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
124913    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
124914    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
124915    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
124916    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
124917    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
124918    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
124919    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
124920    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
124921    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
124922    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
124923    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
124924    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
124925    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
124926    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
124927    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
124928    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
124929    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
124930    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
124931    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
124932    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
124933    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
124934    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
124935    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
124936    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
124937    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
124938    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
124939    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
124940    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
124941    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
124942    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
124943    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
124944    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
124945 
124946    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
124947    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
124948 
124949    ---------------------------------------------------------------------------------------------------------------
124950    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
124951    ---------------------------------------------------------------------------------------------------------------
124952    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
124953 
124954    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124955    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124956 
124957    IF xla_accounting_cache_pkg.GetValueChar
124958          (p_source_code         => 'LEDGER_CATEGORY_CODE'
124959          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
124960    AND l_bflow_method_code = 'PRIOR_ENTRY'
124961 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
124962    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
124963          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
124964        )
124965    THEN
124966          xla_ae_lines_pkg.BflowUpgEntry
124967            (p_business_method_code    => l_bflow_method_code
124968            ,p_business_class_code     => l_bflow_class_code
124969            ,p_balance_type            => l_balance_type_code);
124970    ELSE
124971       NULL;
124972 -- No business flow processing for business flow method of NONE.
124973    END IF;
124974 
124975    --
124976    -- call analytical criteria
124977    --
124978    
124979    --
124980    -- call description
124981    --
124982    
124983 xla_ae_lines_pkg.SetLineDescription(
124984    p_ae_header_id => l_ae_header_id
124985   ,p_description  => Description_2 (
124986      p_application_id         => p_application_id
124987    , p_ae_header_id           => l_ae_header_id 
124988 , p_source_1 => p_source_1
124989    )
124990 );
124991 
124992 
124993    --
124994    -- call ADRs
124995    -- Bug 4922099
124996    --
124997    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124998         (NVL(l_actual_upg_option, 'N') = 'O') OR
124999         (NVL(l_enc_upg_option, 'N') = 'O')
125000       )
125001    THEN
125002    NULL;
125003    --
125004    --
125005    
125006   l_ccid := AcctDerRule_45(
125007            p_application_id           => p_application_id
125008          , p_ae_header_id             => l_ae_header_id 
125009 , p_source_47 => p_source_47
125010          , x_transaction_coa_id       => l_adr_transaction_coa_id
125014    );
125011          , x_accounting_coa_id        => l_adr_accounting_coa_id
125012          , x_value_type_code          => l_adr_value_type_code
125013          , p_side                     => 'NA'
125015 
125016    xla_ae_lines_pkg.set_ccid(
125017     p_code_combination_id          => l_ccid
125018   , p_value_type_code              => l_adr_value_type_code
125019   , p_transaction_coa_id           => l_adr_transaction_coa_id
125020   , p_accounting_coa_id            => l_adr_accounting_coa_id
125021   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125022   , p_adr_type_code                => 'S'
125023   , p_component_type               => l_component_type
125024   , p_component_code               => l_component_code
125025   , p_component_type_code          => l_component_type_code
125026   , p_component_appl_id            => l_component_appl_id
125027   , p_amb_context_code             => l_amb_context_code
125028   , p_side                         => 'NA'
125029   );
125030 
125031 
125032    --
125033    --
125034    END IF;
125035    --
125036    -- Bug 4922099
125037    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125038           (NVL(l_enc_upg_option, 'N') = 'O')
125039         ) AND
125040         (l_bflow_method_code = 'PRIOR_ENTRY')
125041       )
125042    THEN
125043       IF
125044       --
125045       1 = 2
125046       --
125047       THEN
125048       xla_accounting_err_pkg.build_message
125049                                     (p_appli_s_name            => 'XLA'
125050                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125051                                     ,p_token_1                 => 'LINE_NUMBER'
125052                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125053                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125054                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125055                                                                              l_component_type
125056                                                                             ,l_component_code
125057                                                                             ,l_component_type_code
125058                                                                             ,l_component_appl_id
125059                                                                             ,l_amb_context_code
125060                                                                             ,l_entity_code
125061                                                                             ,l_event_class_code
125062                                                                            )
125063                                     ,p_token_3                 => 'OWNER'
125064                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
125065                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
125066                                                                           ,p_lookup_code    => l_component_type_code
125067                                                                          )
125068                                     ,p_token_4                 => 'PRODUCT_NAME'
125069                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
125070                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
125071                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
125072                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
125073                                     ,p_ae_header_id            =>  NULL
125074                                        );
125075 
125076         IF (C_LEVEL_ERROR>= g_log_level) THEN
125077                  trace
125078                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125079                       ,p_level    => C_LEVEL_ERROR
125080                       ,p_module   => l_log_module);
125081         END IF;
125082       END IF;
125083    END IF;
125084    --
125085    --
125086    ------------------------------------------------------------------------------------------------
125087    -- 4219869 Business Flow
125088    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
125089    -- Prior Entry.  Currently, the following code is always generated.
125090    ------------------------------------------------------------------------------------------------
125091    XLA_AE_LINES_PKG.ValidateCurrentLine;
125092 
125093    ------------------------------------------------------------------------------------
125094    -- 4219869 Business Flow
125095    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
125096    ------------------------------------------------------------------------------------
125097    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125098 
125099    ----------------------------------------------------------------------------------
125100    -- 4219869 Business Flow
125101    -- Update journal entry status -- Need to generate this within IF <condition>
125102    ----------------------------------------------------------------------------------
125103    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125104          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
125105          ,p_balance_type_code => l_balance_type_code
125106          );
125107 
125111    BEGIN
125108    -------------------------------------------------------------------------------------------
125109    -- 4262811 - Generate the Accrual Reversal lines
125110    -------------------------------------------------------------------------------------------
125112       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
125113                               (g_array_event(p_event_id).array_value_num('header_index'));
125114       IF l_acc_rev_flag IS NULL THEN
125115          l_acc_rev_flag := 'N';
125116       END IF;
125117    EXCEPTION
125118       WHEN OTHERS THEN
125119          l_acc_rev_flag := 'N';
125120    END;
125121    --
125122    IF (l_acc_rev_flag = 'Y') THEN
125123 
125124        -- 4645092  ------------------------------------------------------------------------------
125125        -- To allow MPA report to determine if it should generate report process
125126        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
125127        ------------------------------------------------------------------------------------------
125128 
125129        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
125130        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
125131    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
125132    -- call ADRs
125133    -- Bug 4922099
125134    --
125135    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125136         (NVL(l_actual_upg_option, 'N') = 'O') OR
125137         (NVL(l_enc_upg_option, 'N') = 'O')
125138       )
125139    THEN
125140    NULL;
125141    --
125142    --
125143    
125144   l_ccid := AcctDerRule_45(
125145            p_application_id           => p_application_id
125146          , p_ae_header_id             => l_ae_header_id 
125147 , p_source_47 => p_source_47
125148          , x_transaction_coa_id       => l_adr_transaction_coa_id
125149          , x_accounting_coa_id        => l_adr_accounting_coa_id
125150          , x_value_type_code          => l_adr_value_type_code
125151          , p_side                     => 'NA'
125152    );
125153 
125154    xla_ae_lines_pkg.set_ccid(
125155     p_code_combination_id          => l_ccid
125156   , p_value_type_code              => l_adr_value_type_code
125157   , p_transaction_coa_id           => l_adr_transaction_coa_id
125158   , p_accounting_coa_id            => l_adr_accounting_coa_id
125159   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125160   , p_adr_type_code                => 'S'
125161   , p_component_type               => l_component_type
125162   , p_component_code               => l_component_code
125163   , p_component_type_code          => l_component_type_code
125164   , p_component_appl_id            => l_component_appl_id
125165   , p_amb_context_code             => l_amb_context_code
125166   , p_side                         => 'NA'
125167   );
125168 
125169 
125170    --
125171    --
125172    END IF;
125173 
125174        --
125175        -- Update the line information that should be overwritten
125176        --
125177        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
125178                                          p_header_num   => 1);
125179        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
125180 
125181        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
125182 
125183        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
125184           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
125185        END IF;
125186 
125187       --
125188       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
125189       --
125190       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
125191           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
125192       ELSE
125193           ---------------------------------------------------------------------------------------------------
125194           -- 4262811a Switch Sign
125195           ---------------------------------------------------------------------------------------------------
125196           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
125197           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125198                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125199           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125200                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125201           -- 5132302
125202           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
125203                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125204 
125205       END IF;
125206 
125207       -- 4955764
125208       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125209       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
125210 
125211 
125212       XLA_AE_LINES_PKG.ValidateCurrentLine;
125213       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125214 
125215       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125219    END IF;
125216                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
125217                ,p_balance_type_code => l_balance_type_code);
125218 
125220 
125221    -----------------------------------------------------------------------------------------
125222    -- 4262811 Multiperiod Accounting
125223    -----------------------------------------------------------------------------------------
125224      -- No MPA option is assigned.
125225 
125226 
125227 END IF;
125228 END IF;
125229 --
125230 
125231 --
125232 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125233    trace
125234       (p_msg      => 'END of AcctLineType_213'
125235       ,p_level    => C_LEVEL_PROCEDURE
125236       ,p_module   => l_log_module);
125237 END IF;
125238 --
125239 EXCEPTION
125240   WHEN xla_exceptions_pkg.application_exception THEN
125241       RAISE;
125242   WHEN OTHERS THEN
125243        xla_exceptions_pkg.raise_message
125244            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_213');
125245 END AcctLineType_213;
125246 --
125247 
125248 ---------------------------------------
125249 --
125250 -- PRIVATE FUNCTION
125251 --         AcctLineType_214
125252 --
125253 ---------------------------------------
125254 PROCEDURE AcctLineType_214 (
125255   p_application_id        IN NUMBER
125256  ,p_event_id              IN NUMBER
125257  ,p_calculate_acctd_flag  IN VARCHAR2
125258  ,p_calculate_g_l_flag    IN VARCHAR2
125259  ,p_actual_flag           IN OUT VARCHAR2
125260  ,p_balance_type_code     OUT VARCHAR2
125261  ,p_gain_or_loss_ref      OUT VARCHAR2
125262  
125263 --Invoice Distribution Description
125264  , p_source_1            IN VARCHAR2
125265 --Invoice Distribution Ledger Amount
125266  , p_source_16            IN NUMBER
125267 --Invoice Distribution Type
125268  , p_source_28            IN VARCHAR2
125269  , p_source_28_meaning    IN VARCHAR2
125270 --Self-Assessed Tax Liability Account
125271  , p_source_47            IN NUMBER
125272 --Accounting Reversal Indicator
125273  , p_source_58            IN VARCHAR2
125274 --Distribution Link Type
125275  , p_source_60            IN VARCHAR2
125276 --Allocation to Main Distribution Identifier
125277  , p_source_62            IN NUMBER
125278 --Invoice Identifier
125279  , p_source_63            IN NUMBER
125280 --Invoice Distribution Identifier
125281  , p_source_69            IN NUMBER
125282 --Payables Encumbrance Upgrade Credit Account
125283  , p_source_70            IN NUMBER
125284 --Payables Encumbrance Upgrade Credit Amount
125285  , p_source_71            IN NUMBER
125286 --Invoice Currency Code
125287  , p_source_72            IN VARCHAR2
125288 --Payables Encumbrance Upgrade Credit Base Amount
125289  , p_source_73            IN NUMBER
125290 --Payables Encumbrance Upgrade Debit Account
125291  , p_source_74            IN NUMBER
125292 --Payables Encumbrance Upgrade Debit Amount
125293  , p_source_75            IN NUMBER
125294 --Payables Encumbrance Upgrade Debit Base Amount
125295  , p_source_76            IN NUMBER
125296 --Payables Encumbrance Upgrade Option
125297  , p_source_77            IN VARCHAR2
125298 --Invoice Distribution Amount
125299  , p_source_78            IN NUMBER
125300 --Deferred Accounting End Date
125301  , p_source_82            IN DATE
125302 --Deferred Accounting Option
125303  , p_source_83            IN VARCHAR2
125304 --Deferred Accounting Start Date
125305  , p_source_84            IN DATE
125306 --Override Accounted Amount Indicator
125307  , p_source_85            IN VARCHAR2
125308  , p_source_85_meaning    IN VARCHAR2
125309 --Invoice Supplier Identifier
125310  , p_source_86            IN NUMBER
125311 --Invoice Supplier Site Identifier
125312  , p_source_87            IN NUMBER
125313 --Third Party Type
125314  , p_source_88            IN VARCHAR2
125315 --Parent Reversal Identifier
125316  , p_source_89            IN NUMBER
125317 --Invoice Distribution Statistical Amount
125318  , p_source_90            IN NUMBER
125319 --Invoice Distribution Tax Line Identifier
125320  , p_source_91            IN NUMBER
125321 --Invoice Distribution Tax Distribution Identifier from Tax
125322  , p_source_92            IN NUMBER
125323 --Invoice Distribution Summary Tax Line Identifier
125324  , p_source_93            IN NUMBER
125325 --Payables Upgrade Credit Encumbrance Type Identifier
125326  , p_source_94            IN NUMBER
125327 --Payables Upgrade Debit Encumbrance Type Identifier
125328  , p_source_95            IN NUMBER
125329 --Business Flow Accounts Payable Application Identifier
125330  , p_source_96            IN NUMBER
125331 --Business Flow Invoice Distribution Type
125332  , p_source_97            IN VARCHAR2
125333 --Business Flow Invoice Entity Code
125334  , p_source_98            IN VARCHAR2
125335 --Business Flow Invoice Distribution Identifier
125336  , p_source_99            IN NUMBER
125337 --Business Flow Invoice Identifier
125338  , p_source_100            IN NUMBER
125339 --Self-Assessed Tax Flag
125340  , p_source_145            IN VARCHAR2
125341  , p_source_145_meaning    IN VARCHAR2
125342 --Invoice Exchange Date
125343  , p_source_146            IN DATE
125344 --Invoice Exchange Rate
125345  , p_source_147            IN NUMBER
125346 --Invoice Exchange Rate Type
125347  , p_source_148            IN VARCHAR2
125348 )
125349 IS
125350 
125351 l_component_type              VARCHAR2(80);
125352 l_component_code              VARCHAR2(30);
125353 l_component_type_code         VARCHAR2(1);
125354 l_component_appl_id           INTEGER;
125358 l_ae_header_id                NUMBER;
125355 l_amb_context_code            VARCHAR2(30);
125356 l_entity_code                 VARCHAR2(30);
125357 l_event_class_code            VARCHAR2(30);
125359 l_event_type_code             VARCHAR2(30);
125360 l_line_definition_code        VARCHAR2(30);
125361 l_line_definition_owner_code  VARCHAR2(1);
125362 --
125363 -- adr variables
125364 l_segment                     VARCHAR2(30);
125365 l_ccid                        NUMBER;
125366 l_adr_transaction_coa_id      NUMBER;
125367 l_adr_accounting_coa_id       NUMBER;
125368 l_adr_flexfield_segment_code  VARCHAR2(30);
125369 l_adr_flex_value_set_id       NUMBER;
125370 l_adr_value_type_code         VARCHAR2(30);
125371 l_adr_value_combination_id    NUMBER;
125372 l_adr_value_segment_code      VARCHAR2(30);
125373 
125374 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
125375 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
125376 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
125377 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
125378 
125379 -- 4262811 Variables ------------------------------------------------------------------------------------------
125380 l_entered_amt_idx             NUMBER;
125381 l_accted_amt_idx              NUMBER;
125382 l_acc_rev_flag                VARCHAR2(1);
125383 l_accrual_line_num            NUMBER;
125384 l_tmp_amt                     NUMBER;
125385 l_acc_rev_natural_side_code   VARCHAR2(1);
125386 
125387 l_num_entries                 NUMBER;
125388 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
125389 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
125390 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
125391 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
125392 l_recog_line_1                NUMBER;
125393 l_recog_line_2                NUMBER;
125394 
125395 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
125396 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
125397 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
125398 
125399 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
125400 
125401 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
125402 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
125403 
125404 ---------------------------------------------------------------------------------------------------------------
125405 
125406 
125407 --
125408 -- bulk performance
125409 --
125410 l_balance_type_code           VARCHAR2(1);
125411 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
125412 l_log_module                  VARCHAR2(240);
125413 
125414 --
125415 -- Upgrade strategy
125416 --
125417 l_actual_upg_option           VARCHAR2(1);
125418 l_enc_upg_option           VARCHAR2(1);
125419 
125420 --
125421 BEGIN
125422 --
125423 IF g_log_enabled THEN
125424       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_214';
125425 END IF;
125426 --
125427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125428 
125429       trace
125430          (p_msg      => 'BEGIN of AcctLineType_214'
125431          ,p_level    => C_LEVEL_PROCEDURE
125432          ,p_module   => l_log_module);
125433 
125434 END IF;
125435 --
125436 l_component_type             := 'AMB_JLT';
125437 l_component_code             := 'AP_SELF_ASSESSED_TAX_CRL_INV';
125438 l_component_type_code        := 'S';
125439 l_component_appl_id          :=  200;
125440 l_amb_context_code           := 'DEFAULT';
125441 l_entity_code                := 'AP_INVOICES';
125442 l_event_class_code           := 'INVOICES';
125443 l_event_type_code            := 'INVOICES_ALL';
125444 l_line_definition_owner_code := 'S';
125445 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
125446 --
125447 l_balance_type_code          := 'A';
125448 l_segment                     := NULL;
125449 l_ccid                        := NULL;
125450 l_adr_transaction_coa_id      := NULL;
125451 l_adr_accounting_coa_id       := NULL;
125452 l_adr_flexfield_segment_code  := NULL;
125453 l_adr_flex_value_set_id       := NULL;
125454 l_adr_value_type_code         := NULL;
125455 l_adr_value_combination_id    := NULL;
125456 l_adr_value_segment_code      := NULL;
125457 
125458 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
125459 l_bflow_class_code           := '';    -- 4219869 Business Flow
125460 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
125461 l_budgetary_control_flag     := 'N';
125462 
125463 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
125464 l_bflow_applied_to_amt       := NULL; -- 5132302
125465 l_entered_amt_idx            := NULL;          -- 4262811
125466 l_accted_amt_idx             := NULL;          -- 4262811
125467 l_acc_rev_flag               := NULL;          -- 4262811
125468 l_accrual_line_num           := NULL;          -- 4262811
125469 l_tmp_amt                    := NULL;          -- 4262811
125470 --
125471  
125472 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
125473     l_balance_type_code <> 'B' THEN
125474 IF (NVL(p_source_28,'
125475 ') =  'REC_TAX' OR 
125476 NVL(p_source_28,'
125477 ') =  'NONREC_TAX') AND 
125478 NVL(p_source_145,'
125479 ') =  'Y'
125480  THEN 
125481 
125482    --
125483    XLA_AE_LINES_PKG.SetNewLine;
125484 
125485    p_balance_type_code          := l_balance_type_code;
125489      p_actual_flag :='A';
125486    -- set the flag so later we will know whether the gain loss line needs to be created
125487    
125488    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
125490    END IF;
125491 
125492    --
125493    -- bulk performance
125494    --
125495    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
125496                                       p_header_num   => 0); -- 4262811
125497    --
125498    -- set accounting line options
125499    --
125500    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
125501            p_natural_side_code          => 'C'
125502          , p_gain_or_loss_flag          => 'N'
125503          , p_gl_transfer_mode_code      => 'S'
125504          , p_acct_entry_type_code       => 'A'
125505          , p_switch_side_flag           => 'Y'
125506          , p_merge_duplicate_code       => 'A'
125507          );
125508    --
125509    l_acc_rev_natural_side_code := 'D';  -- 4262811
125510    -- 
125511    --
125512    -- set accounting line type info
125513    --
125514    xla_ae_lines_pkg.SetAcctLineType
125515       (p_component_type             => l_component_type
125516       ,p_event_type_code            => l_event_type_code
125517       ,p_line_definition_owner_code => l_line_definition_owner_code
125518       ,p_line_definition_code       => l_line_definition_code
125519       ,p_accounting_line_code       => l_component_code
125520       ,p_accounting_line_type_code  => l_component_type_code
125521       ,p_accounting_line_appl_id    => l_component_appl_id
125522       ,p_amb_context_code           => l_amb_context_code
125523       ,p_entity_code                => l_entity_code
125524       ,p_event_class_code           => l_event_class_code);
125525    --
125526    -- set accounting class
125527    --
125528    xla_ae_lines_pkg.SetAcctClass(
125529            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
125530          , p_ae_header_id           => l_ae_header_id
125531          );
125532 
125533    --
125534    -- set rounding class
125535    --
125536    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
125537                       'SELF_ASSESSED_TAX';
125538 
125539    --
125540    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
125541    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
125542    --
125543    -- bulk performance
125544    --
125545    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
125546 
125547    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
125548       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
125549 
125550    -- 4955764
125551    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125552       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
125553 
125554    -- 4458381 Public Sector Enh
125555    
125556    --
125557    -- set accounting attributes for the line type
125558    --
125559    l_entered_amt_idx := 24;
125560    l_accted_amt_idx  := 29;
125561    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
125562    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
125563    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
125564    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
125565    l_rec_acct_attrs.array_num_value(2)  := 
125566 xla_ae_sources_pkg.GetSystemSourceNum(
125567    p_source_code           => 'XLA_EVENT_APPL_ID'
125568  , p_source_type_code      => 'Y'
125569  , p_source_application_id =>  602
125570 );
125571    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
125572    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
125573    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
125574    l_rec_acct_attrs.array_char_value(4)  := 
125575 xla_ae_sources_pkg.GetSystemSourceChar(
125576    p_source_code           => 'XLA_ENTITY_CODE'
125577  , p_source_type_code      => 'Y'
125578  , p_source_application_id =>  602
125579 );
125580    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
125581    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
125582    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
125583    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
125584    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
125585    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
125586    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
125587    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
125588    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125589    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
125590    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
125591    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
125592    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
125593    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
125594    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125595    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
125596    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
125597    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
125598    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
125599    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
125603    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
125600    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
125601    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
125602    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
125604    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
125605    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
125606    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
125607    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
125608    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
125609    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
125610    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
125611    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
125612    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
125613    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
125614    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
125615    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
125616    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
125617    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
125618    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
125619    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
125620    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
125621    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
125622    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
125623    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
125624    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
125625    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
125626    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
125627    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
125628    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
125629    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
125630    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
125631    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
125632    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
125633    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
125634    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
125635    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
125636    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
125637    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
125638    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
125639    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
125640    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
125641    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
125642    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
125643    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
125644    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
125645    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
125646    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
125647    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
125648    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
125649    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
125650    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
125651    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
125652    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
125653    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
125654    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
125655    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
125656    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
125657    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
125658    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
125659    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
125660 
125661    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125662    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125663 
125664    ---------------------------------------------------------------------------------------------------------------
125665    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125666    ---------------------------------------------------------------------------------------------------------------
125667    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125668 
125669    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125670    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125671 
125672    IF xla_accounting_cache_pkg.GetValueChar
125673          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125674          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125675    AND l_bflow_method_code = 'PRIOR_ENTRY'
125676 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125677    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125678          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125679        )
125680    THEN
125681          xla_ae_lines_pkg.BflowUpgEntry
125682            (p_business_method_code    => l_bflow_method_code
125683            ,p_business_class_code     => l_bflow_class_code
125684            ,p_balance_type            => l_balance_type_code);
125688    END IF;
125685    ELSE
125686       NULL;
125687 -- No business flow processing for business flow method of NONE.
125689 
125690    --
125691    -- call analytical criteria
125692    --
125693    
125694    --
125695    -- call description
125696    --
125697    
125698 xla_ae_lines_pkg.SetLineDescription(
125699    p_ae_header_id => l_ae_header_id
125700   ,p_description  => Description_2 (
125701      p_application_id         => p_application_id
125702    , p_ae_header_id           => l_ae_header_id 
125703 , p_source_1 => p_source_1
125704    )
125705 );
125706 
125707 
125708    --
125709    -- call ADRs
125710    -- Bug 4922099
125711    --
125712    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125713         (NVL(l_actual_upg_option, 'N') = 'O') OR
125714         (NVL(l_enc_upg_option, 'N') = 'O')
125715       )
125716    THEN
125717    NULL;
125718    --
125719    --
125720    
125721   l_ccid := AcctDerRule_45(
125722            p_application_id           => p_application_id
125723          , p_ae_header_id             => l_ae_header_id 
125724 , p_source_47 => p_source_47
125725          , x_transaction_coa_id       => l_adr_transaction_coa_id
125726          , x_accounting_coa_id        => l_adr_accounting_coa_id
125727          , x_value_type_code          => l_adr_value_type_code
125728          , p_side                     => 'NA'
125729    );
125730 
125731    xla_ae_lines_pkg.set_ccid(
125732     p_code_combination_id          => l_ccid
125733   , p_value_type_code              => l_adr_value_type_code
125734   , p_transaction_coa_id           => l_adr_transaction_coa_id
125735   , p_accounting_coa_id            => l_adr_accounting_coa_id
125736   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125737   , p_adr_type_code                => 'S'
125738   , p_component_type               => l_component_type
125739   , p_component_code               => l_component_code
125740   , p_component_type_code          => l_component_type_code
125741   , p_component_appl_id            => l_component_appl_id
125742   , p_amb_context_code             => l_amb_context_code
125743   , p_side                         => 'NA'
125744   );
125745 
125746 
125747    --
125748    --
125749    END IF;
125750    --
125751    -- Bug 4922099
125752    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125753           (NVL(l_enc_upg_option, 'N') = 'O')
125754         ) AND
125755         (l_bflow_method_code = 'PRIOR_ENTRY')
125756       )
125757    THEN
125758       IF
125759       --
125760       1 = 2
125761       --
125762       THEN
125763       xla_accounting_err_pkg.build_message
125764                                     (p_appli_s_name            => 'XLA'
125765                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125766                                     ,p_token_1                 => 'LINE_NUMBER'
125767                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125768                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125769                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125770                                                                              l_component_type
125771                                                                             ,l_component_code
125772                                                                             ,l_component_type_code
125773                                                                             ,l_component_appl_id
125774                                                                             ,l_amb_context_code
125775                                                                             ,l_entity_code
125776                                                                             ,l_event_class_code
125777                                                                            )
125778                                     ,p_token_3                 => 'OWNER'
125779                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
125780                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
125781                                                                           ,p_lookup_code    => l_component_type_code
125782                                                                          )
125783                                     ,p_token_4                 => 'PRODUCT_NAME'
125784                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
125785                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
125786                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
125787                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
125788                                     ,p_ae_header_id            =>  NULL
125789                                        );
125790 
125791         IF (C_LEVEL_ERROR>= g_log_level) THEN
125792                  trace
125793                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125794                       ,p_level    => C_LEVEL_ERROR
125795                       ,p_module   => l_log_module);
125796         END IF;
125797       END IF;
125798    END IF;
125799    --
125800    --
125801    ------------------------------------------------------------------------------------------------
125805    ------------------------------------------------------------------------------------------------
125802    -- 4219869 Business Flow
125803    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
125804    -- Prior Entry.  Currently, the following code is always generated.
125806    XLA_AE_LINES_PKG.ValidateCurrentLine;
125807 
125808    ------------------------------------------------------------------------------------
125809    -- 4219869 Business Flow
125810    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
125811    ------------------------------------------------------------------------------------
125812    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125813 
125814    ----------------------------------------------------------------------------------
125815    -- 4219869 Business Flow
125816    -- Update journal entry status -- Need to generate this within IF <condition>
125817    ----------------------------------------------------------------------------------
125818    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125819          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
125820          ,p_balance_type_code => l_balance_type_code
125821          );
125822 
125823    -------------------------------------------------------------------------------------------
125824    -- 4262811 - Generate the Accrual Reversal lines
125825    -------------------------------------------------------------------------------------------
125826    BEGIN
125827       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
125828                               (g_array_event(p_event_id).array_value_num('header_index'));
125829       IF l_acc_rev_flag IS NULL THEN
125830          l_acc_rev_flag := 'N';
125831       END IF;
125832    EXCEPTION
125833       WHEN OTHERS THEN
125834          l_acc_rev_flag := 'N';
125835    END;
125836    --
125837    IF (l_acc_rev_flag = 'Y') THEN
125838 
125839        -- 4645092  ------------------------------------------------------------------------------
125840        -- To allow MPA report to determine if it should generate report process
125841        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
125842        ------------------------------------------------------------------------------------------
125843 
125844        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
125845        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
125846    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
125847    -- call ADRs
125848    -- Bug 4922099
125849    --
125850    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125851         (NVL(l_actual_upg_option, 'N') = 'O') OR
125852         (NVL(l_enc_upg_option, 'N') = 'O')
125853       )
125854    THEN
125855    NULL;
125856    --
125857    --
125858    
125859   l_ccid := AcctDerRule_45(
125860            p_application_id           => p_application_id
125861          , p_ae_header_id             => l_ae_header_id 
125862 , p_source_47 => p_source_47
125863          , x_transaction_coa_id       => l_adr_transaction_coa_id
125864          , x_accounting_coa_id        => l_adr_accounting_coa_id
125865          , x_value_type_code          => l_adr_value_type_code
125866          , p_side                     => 'NA'
125867    );
125868 
125869    xla_ae_lines_pkg.set_ccid(
125870     p_code_combination_id          => l_ccid
125871   , p_value_type_code              => l_adr_value_type_code
125872   , p_transaction_coa_id           => l_adr_transaction_coa_id
125873   , p_accounting_coa_id            => l_adr_accounting_coa_id
125874   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125875   , p_adr_type_code                => 'S'
125876   , p_component_type               => l_component_type
125877   , p_component_code               => l_component_code
125878   , p_component_type_code          => l_component_type_code
125879   , p_component_appl_id            => l_component_appl_id
125880   , p_amb_context_code             => l_amb_context_code
125881   , p_side                         => 'NA'
125882   );
125883 
125884 
125885    --
125886    --
125887    END IF;
125888 
125889        --
125890        -- Update the line information that should be overwritten
125891        --
125892        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
125893                                          p_header_num   => 1);
125894        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
125895 
125896        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
125897 
125898        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
125899           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
125900        END IF;
125901 
125902       --
125903       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
125904       --
125905       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
125906           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
125907       ELSE
125908           ---------------------------------------------------------------------------------------------------
125909           -- 4262811a Switch Sign
125910           ---------------------------------------------------------------------------------------------------
125914           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125911           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
125912           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125913                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125915                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125916           -- 5132302
125917           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
125918                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125919 
125920       END IF;
125921 
125922       -- 4955764
125923       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125924       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
125925 
125926 
125927       XLA_AE_LINES_PKG.ValidateCurrentLine;
125928       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125929 
125930       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125931                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
125932                ,p_balance_type_code => l_balance_type_code);
125933 
125934    END IF;
125935 
125936    -----------------------------------------------------------------------------------------
125937    -- 4262811 Multiperiod Accounting
125938    -----------------------------------------------------------------------------------------
125939      -- No MPA option is assigned.
125940 
125941 
125942 END IF;
125943 END IF;
125944 --
125945 
125946 --
125947 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125948    trace
125949       (p_msg      => 'END of AcctLineType_214'
125950       ,p_level    => C_LEVEL_PROCEDURE
125951       ,p_module   => l_log_module);
125952 END IF;
125953 --
125954 EXCEPTION
125955   WHEN xla_exceptions_pkg.application_exception THEN
125956       RAISE;
125957   WHEN OTHERS THEN
125958        xla_exceptions_pkg.raise_message
125959            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_214');
125960 END AcctLineType_214;
125961 --
125962 
125963 ---------------------------------------
125964 --
125965 -- PRIVATE FUNCTION
125966 --         AcctLineType_215
125967 --
125968 ---------------------------------------
125969 PROCEDURE AcctLineType_215 (
125970   p_application_id        IN NUMBER
125971  ,p_event_id              IN NUMBER
125972  ,p_calculate_acctd_flag  IN VARCHAR2
125973  ,p_calculate_g_l_flag    IN VARCHAR2
125974  ,p_actual_flag           IN OUT VARCHAR2
125975  ,p_balance_type_code     OUT VARCHAR2
125976  ,p_gain_or_loss_ref      OUT VARCHAR2
125977  
125978 --Invoice Distribution Description
125979  , p_source_1            IN VARCHAR2
125980 --Invoice Distribution Ledger Amount
125981  , p_source_16            IN NUMBER
125982 --Invoice Distribution Type
125983  , p_source_28            IN VARCHAR2
125984  , p_source_28_meaning    IN VARCHAR2
125985 --Self-Assessed Tax Liability Account
125986  , p_source_47            IN NUMBER
125987 --Accounting Reversal Indicator
125988  , p_source_58            IN VARCHAR2
125989 --Distribution Link Type
125990  , p_source_60            IN VARCHAR2
125991 --Allocation to Main Distribution Identifier
125992  , p_source_62            IN NUMBER
125993 --Invoice Identifier
125994  , p_source_63            IN NUMBER
125995 --Invoice Distribution Identifier
125996  , p_source_69            IN NUMBER
125997 --Payables Encumbrance Upgrade Credit Account
125998  , p_source_70            IN NUMBER
125999 --Payables Encumbrance Upgrade Credit Amount
126000  , p_source_71            IN NUMBER
126001 --Invoice Currency Code
126002  , p_source_72            IN VARCHAR2
126003 --Payables Encumbrance Upgrade Credit Base Amount
126004  , p_source_73            IN NUMBER
126005 --Payables Encumbrance Upgrade Debit Account
126006  , p_source_74            IN NUMBER
126007 --Payables Encumbrance Upgrade Debit Amount
126008  , p_source_75            IN NUMBER
126009 --Payables Encumbrance Upgrade Debit Base Amount
126010  , p_source_76            IN NUMBER
126011 --Payables Encumbrance Upgrade Option
126012  , p_source_77            IN VARCHAR2
126013 --Invoice Distribution Amount
126014  , p_source_78            IN NUMBER
126015 --Deferred Accounting End Date
126016  , p_source_82            IN DATE
126017 --Deferred Accounting Option
126018  , p_source_83            IN VARCHAR2
126019 --Deferred Accounting Start Date
126020  , p_source_84            IN DATE
126021 --Override Accounted Amount Indicator
126022  , p_source_85            IN VARCHAR2
126023  , p_source_85_meaning    IN VARCHAR2
126024 --Invoice Supplier Identifier
126025  , p_source_86            IN NUMBER
126026 --Invoice Supplier Site Identifier
126027  , p_source_87            IN NUMBER
126028 --Third Party Type
126029  , p_source_88            IN VARCHAR2
126030 --Parent Reversal Identifier
126031  , p_source_89            IN NUMBER
126032 --Invoice Distribution Statistical Amount
126033  , p_source_90            IN NUMBER
126034 --Invoice Distribution Tax Line Identifier
126035  , p_source_91            IN NUMBER
126036 --Invoice Distribution Tax Distribution Identifier from Tax
126040 --Payables Upgrade Credit Encumbrance Type Identifier
126037  , p_source_92            IN NUMBER
126038 --Invoice Distribution Summary Tax Line Identifier
126039  , p_source_93            IN NUMBER
126041  , p_source_94            IN NUMBER
126042 --Payables Upgrade Debit Encumbrance Type Identifier
126043  , p_source_95            IN NUMBER
126044 --Business Flow Accounts Payable Application Identifier
126045  , p_source_96            IN NUMBER
126046 --Business Flow Invoice Distribution Type
126047  , p_source_97            IN VARCHAR2
126048 --Business Flow Invoice Entity Code
126049  , p_source_98            IN VARCHAR2
126050 --Business Flow Invoice Distribution Identifier
126051  , p_source_99            IN NUMBER
126052 --Business Flow Invoice Identifier
126053  , p_source_100            IN NUMBER
126054 --Self-Assessed Tax Flag
126055  , p_source_145            IN VARCHAR2
126056  , p_source_145_meaning    IN VARCHAR2
126057 --Invoice Exchange Date
126058  , p_source_146            IN DATE
126059 --Invoice Exchange Rate
126060  , p_source_147            IN NUMBER
126061 --Invoice Exchange Rate Type
126062  , p_source_148            IN VARCHAR2
126063 )
126064 IS
126065 
126066 l_component_type              VARCHAR2(80);
126067 l_component_code              VARCHAR2(30);
126068 l_component_type_code         VARCHAR2(1);
126069 l_component_appl_id           INTEGER;
126070 l_amb_context_code            VARCHAR2(30);
126071 l_entity_code                 VARCHAR2(30);
126072 l_event_class_code            VARCHAR2(30);
126073 l_ae_header_id                NUMBER;
126074 l_event_type_code             VARCHAR2(30);
126075 l_line_definition_code        VARCHAR2(30);
126076 l_line_definition_owner_code  VARCHAR2(1);
126077 --
126078 -- adr variables
126079 l_segment                     VARCHAR2(30);
126080 l_ccid                        NUMBER;
126081 l_adr_transaction_coa_id      NUMBER;
126082 l_adr_accounting_coa_id       NUMBER;
126083 l_adr_flexfield_segment_code  VARCHAR2(30);
126084 l_adr_flex_value_set_id       NUMBER;
126085 l_adr_value_type_code         VARCHAR2(30);
126086 l_adr_value_combination_id    NUMBER;
126087 l_adr_value_segment_code      VARCHAR2(30);
126088 
126089 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126090 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126091 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126092 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126093 
126094 -- 4262811 Variables ------------------------------------------------------------------------------------------
126095 l_entered_amt_idx             NUMBER;
126096 l_accted_amt_idx              NUMBER;
126097 l_acc_rev_flag                VARCHAR2(1);
126098 l_accrual_line_num            NUMBER;
126099 l_tmp_amt                     NUMBER;
126100 l_acc_rev_natural_side_code   VARCHAR2(1);
126101 
126102 l_num_entries                 NUMBER;
126103 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126104 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126105 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126106 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126107 l_recog_line_1                NUMBER;
126108 l_recog_line_2                NUMBER;
126109 
126110 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126111 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126112 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126113 
126114 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126115 
126116 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126117 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126118 
126119 ---------------------------------------------------------------------------------------------------------------
126120 
126121 
126122 --
126123 -- bulk performance
126124 --
126125 l_balance_type_code           VARCHAR2(1);
126126 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126127 l_log_module                  VARCHAR2(240);
126128 
126129 --
126130 -- Upgrade strategy
126131 --
126132 l_actual_upg_option           VARCHAR2(1);
126133 l_enc_upg_option           VARCHAR2(1);
126134 
126135 --
126136 BEGIN
126137 --
126138 IF g_log_enabled THEN
126139       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_215';
126140 END IF;
126141 --
126142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126143 
126144       trace
126145          (p_msg      => 'BEGIN of AcctLineType_215'
126146          ,p_level    => C_LEVEL_PROCEDURE
126147          ,p_module   => l_log_module);
126148 
126149 END IF;
126150 --
126151 l_component_type             := 'AMB_JLT';
126152 l_component_code             := 'AP_SELF_ASSESSED_TAX_LIB_PP';
126153 l_component_type_code        := 'S';
126154 l_component_appl_id          :=  200;
126155 l_amb_context_code           := 'DEFAULT';
126156 l_entity_code                := 'AP_INVOICES';
126157 l_event_class_code           := 'PREPAYMENTS';
126158 l_event_type_code            := 'PREPAYMENTS_ALL';
126159 l_line_definition_owner_code := 'S';
126160 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
126161 --
126162 l_balance_type_code          := 'A';
126163 l_segment                     := NULL;
126164 l_ccid                        := NULL;
126165 l_adr_transaction_coa_id      := NULL;
126166 l_adr_accounting_coa_id       := NULL;
126170 l_adr_value_combination_id    := NULL;
126167 l_adr_flexfield_segment_code  := NULL;
126168 l_adr_flex_value_set_id       := NULL;
126169 l_adr_value_type_code         := NULL;
126171 l_adr_value_segment_code      := NULL;
126172 
126173 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
126174 l_bflow_class_code           := '';    -- 4219869 Business Flow
126175 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
126176 l_budgetary_control_flag     := 'N';
126177 
126178 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
126179 l_bflow_applied_to_amt       := NULL; -- 5132302
126180 l_entered_amt_idx            := NULL;          -- 4262811
126181 l_accted_amt_idx             := NULL;          -- 4262811
126182 l_acc_rev_flag               := NULL;          -- 4262811
126183 l_accrual_line_num           := NULL;          -- 4262811
126184 l_tmp_amt                    := NULL;          -- 4262811
126185 --
126186  
126187 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
126188     l_balance_type_code <> 'B' THEN
126189 IF (NVL(p_source_28,'
126190 ') =  'REC_TAX' OR 
126191 NVL(p_source_28,'
126192 ') =  'NONREC_TAX') AND 
126193 NVL(p_source_145,'
126194 ') =  'Y'
126195  THEN 
126196 
126197    --
126198    XLA_AE_LINES_PKG.SetNewLine;
126199 
126200    p_balance_type_code          := l_balance_type_code;
126201    -- set the flag so later we will know whether the gain loss line needs to be created
126202    
126203    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
126204      p_actual_flag :='A';
126205    END IF;
126206 
126207    --
126208    -- bulk performance
126209    --
126210    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
126211                                       p_header_num   => 0); -- 4262811
126212    --
126213    -- set accounting line options
126214    --
126215    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
126216            p_natural_side_code          => 'C'
126217          , p_gain_or_loss_flag          => 'N'
126218          , p_gl_transfer_mode_code      => 'S'
126219          , p_acct_entry_type_code       => 'A'
126220          , p_switch_side_flag           => 'Y'
126221          , p_merge_duplicate_code       => 'A'
126222          );
126223    --
126224    l_acc_rev_natural_side_code := 'D';  -- 4262811
126225    -- 
126226    --
126227    -- set accounting line type info
126228    --
126229    xla_ae_lines_pkg.SetAcctLineType
126230       (p_component_type             => l_component_type
126231       ,p_event_type_code            => l_event_type_code
126232       ,p_line_definition_owner_code => l_line_definition_owner_code
126233       ,p_line_definition_code       => l_line_definition_code
126234       ,p_accounting_line_code       => l_component_code
126235       ,p_accounting_line_type_code  => l_component_type_code
126236       ,p_accounting_line_appl_id    => l_component_appl_id
126237       ,p_amb_context_code           => l_amb_context_code
126238       ,p_entity_code                => l_entity_code
126239       ,p_event_class_code           => l_event_class_code);
126240    --
126241    -- set accounting class
126242    --
126243    xla_ae_lines_pkg.SetAcctClass(
126244            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
126245          , p_ae_header_id           => l_ae_header_id
126246          );
126247 
126248    --
126249    -- set rounding class
126250    --
126251    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
126252                       'SELF_ASSESSED_TAX';
126253 
126254    --
126255    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
126256    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
126257    --
126258    -- bulk performance
126259    --
126260    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
126261 
126262    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
126263       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
126264 
126265    -- 4955764
126266    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126267       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
126268 
126269    -- 4458381 Public Sector Enh
126270    
126271    --
126272    -- set accounting attributes for the line type
126273    --
126274    l_entered_amt_idx := 23;
126275    l_accted_amt_idx  := 28;
126276    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
126277    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
126278    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
126279    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
126280    l_rec_acct_attrs.array_num_value(2)  := 
126281 xla_ae_sources_pkg.GetSystemSourceNum(
126282    p_source_code           => 'XLA_EVENT_APPL_ID'
126283  , p_source_type_code      => 'Y'
126284  , p_source_application_id =>  602
126285 );
126286    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
126287    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
126288    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
126289    l_rec_acct_attrs.array_char_value(4)  := 
126290 xla_ae_sources_pkg.GetSystemSourceChar(
126291    p_source_code           => 'XLA_ENTITY_CODE'
126292  , p_source_type_code      => 'Y'
126293  , p_source_application_id =>  602
126294 );
126298    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
126295    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
126296    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
126297    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
126299    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
126300    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
126301    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
126302    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
126303    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
126304    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
126305    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
126306    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
126307    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
126308    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
126309    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
126310    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
126311    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
126312    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
126313    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
126314    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
126315    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
126316    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
126317    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
126318    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
126319    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
126320    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
126321    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
126322    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
126323    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
126324    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
126325    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
126326    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
126327    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
126328    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
126329    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
126330    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
126331    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
126332    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
126333    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
126334    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
126335    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
126336    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
126337    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
126338    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
126339    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
126340    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
126341    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
126342    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
126343    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
126344    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
126345    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
126346    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
126347    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
126348    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
126349    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
126350    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
126351    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
126352    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
126353    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
126354    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
126355    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
126356    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
126357    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
126358    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
126359    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
126360    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
126361    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
126362    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
126363    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
126364    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
126365    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
126366    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
126367    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
126368    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
126369    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
126370    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
126371    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
126372    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
126373 
126374    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
126375    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
126376 
126377    ---------------------------------------------------------------------------------------------------------------
126381 
126378    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
126379    ---------------------------------------------------------------------------------------------------------------
126380    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
126382    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126383    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126384 
126385    IF xla_accounting_cache_pkg.GetValueChar
126386          (p_source_code         => 'LEDGER_CATEGORY_CODE'
126387          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
126388    AND l_bflow_method_code = 'PRIOR_ENTRY'
126389 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
126390    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
126391          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
126392        )
126393    THEN
126394          xla_ae_lines_pkg.BflowUpgEntry
126395            (p_business_method_code    => l_bflow_method_code
126396            ,p_business_class_code     => l_bflow_class_code
126397            ,p_balance_type            => l_balance_type_code);
126398    ELSE
126399       NULL;
126400 -- No business flow processing for business flow method of NONE.
126401    END IF;
126402 
126403    --
126404    -- call analytical criteria
126405    --
126406    
126407    --
126408    -- call description
126409    --
126410    
126411 xla_ae_lines_pkg.SetLineDescription(
126412    p_ae_header_id => l_ae_header_id
126413   ,p_description  => Description_2 (
126414      p_application_id         => p_application_id
126415    , p_ae_header_id           => l_ae_header_id 
126416 , p_source_1 => p_source_1
126417    )
126418 );
126419 
126420 
126421    --
126422    -- call ADRs
126423    -- Bug 4922099
126424    --
126425    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126426         (NVL(l_actual_upg_option, 'N') = 'O') OR
126427         (NVL(l_enc_upg_option, 'N') = 'O')
126428       )
126429    THEN
126430    NULL;
126431    --
126432    --
126433    
126434   l_ccid := AcctDerRule_45(
126435            p_application_id           => p_application_id
126436          , p_ae_header_id             => l_ae_header_id 
126437 , p_source_47 => p_source_47
126438          , x_transaction_coa_id       => l_adr_transaction_coa_id
126439          , x_accounting_coa_id        => l_adr_accounting_coa_id
126440          , x_value_type_code          => l_adr_value_type_code
126441          , p_side                     => 'NA'
126442    );
126443 
126444    xla_ae_lines_pkg.set_ccid(
126445     p_code_combination_id          => l_ccid
126446   , p_value_type_code              => l_adr_value_type_code
126447   , p_transaction_coa_id           => l_adr_transaction_coa_id
126448   , p_accounting_coa_id            => l_adr_accounting_coa_id
126449   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
126450   , p_adr_type_code                => 'S'
126451   , p_component_type               => l_component_type
126452   , p_component_code               => l_component_code
126453   , p_component_type_code          => l_component_type_code
126454   , p_component_appl_id            => l_component_appl_id
126455   , p_amb_context_code             => l_amb_context_code
126456   , p_side                         => 'NA'
126457   );
126458 
126459 
126460    --
126461    --
126462    END IF;
126463    --
126464    -- Bug 4922099
126465    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
126466           (NVL(l_enc_upg_option, 'N') = 'O')
126467         ) AND
126468         (l_bflow_method_code = 'PRIOR_ENTRY')
126469       )
126470    THEN
126471       IF
126472       --
126473       1 = 2
126474       --
126475       THEN
126476       xla_accounting_err_pkg.build_message
126477                                     (p_appli_s_name            => 'XLA'
126478                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126479                                     ,p_token_1                 => 'LINE_NUMBER'
126480                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
126481                                     ,p_token_2                 => 'LINE_TYPE_NAME'
126482                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
126483                                                                              l_component_type
126484                                                                             ,l_component_code
126485                                                                             ,l_component_type_code
126486                                                                             ,l_component_appl_id
126487                                                                             ,l_amb_context_code
126488                                                                             ,l_entity_code
126489                                                                             ,l_event_class_code
126490                                                                            )
126491                                     ,p_token_3                 => 'OWNER'
126492                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
126493                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
126497                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
126494                                                                           ,p_lookup_code    => l_component_type_code
126495                                                                          )
126496                                     ,p_token_4                 => 'PRODUCT_NAME'
126498                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
126499                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
126500                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
126501                                     ,p_ae_header_id            =>  NULL
126502                                        );
126503 
126504         IF (C_LEVEL_ERROR>= g_log_level) THEN
126505                  trace
126506                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126507                       ,p_level    => C_LEVEL_ERROR
126508                       ,p_module   => l_log_module);
126509         END IF;
126510       END IF;
126511    END IF;
126512    --
126513    --
126514    ------------------------------------------------------------------------------------------------
126515    -- 4219869 Business Flow
126516    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
126517    -- Prior Entry.  Currently, the following code is always generated.
126518    ------------------------------------------------------------------------------------------------
126519    XLA_AE_LINES_PKG.ValidateCurrentLine;
126520 
126521    ------------------------------------------------------------------------------------
126522    -- 4219869 Business Flow
126523    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
126524    ------------------------------------------------------------------------------------
126525    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126526 
126527    ----------------------------------------------------------------------------------
126528    -- 4219869 Business Flow
126529    -- Update journal entry status -- Need to generate this within IF <condition>
126530    ----------------------------------------------------------------------------------
126531    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126532          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
126533          ,p_balance_type_code => l_balance_type_code
126534          );
126535 
126536    -------------------------------------------------------------------------------------------
126537    -- 4262811 - Generate the Accrual Reversal lines
126538    -------------------------------------------------------------------------------------------
126539    BEGIN
126540       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
126541                               (g_array_event(p_event_id).array_value_num('header_index'));
126542       IF l_acc_rev_flag IS NULL THEN
126543          l_acc_rev_flag := 'N';
126544       END IF;
126545    EXCEPTION
126546       WHEN OTHERS THEN
126547          l_acc_rev_flag := 'N';
126548    END;
126549    --
126550    IF (l_acc_rev_flag = 'Y') THEN
126551 
126552        -- 4645092  ------------------------------------------------------------------------------
126553        -- To allow MPA report to determine if it should generate report process
126554        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
126555        ------------------------------------------------------------------------------------------
126556 
126557        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
126558        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
126559    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
126560    -- call ADRs
126561    -- Bug 4922099
126562    --
126563    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126564         (NVL(l_actual_upg_option, 'N') = 'O') OR
126565         (NVL(l_enc_upg_option, 'N') = 'O')
126566       )
126567    THEN
126568    NULL;
126569    --
126570    --
126571    
126572   l_ccid := AcctDerRule_45(
126573            p_application_id           => p_application_id
126574          , p_ae_header_id             => l_ae_header_id 
126575 , p_source_47 => p_source_47
126576          , x_transaction_coa_id       => l_adr_transaction_coa_id
126577          , x_accounting_coa_id        => l_adr_accounting_coa_id
126578          , x_value_type_code          => l_adr_value_type_code
126579          , p_side                     => 'NA'
126580    );
126581 
126582    xla_ae_lines_pkg.set_ccid(
126583     p_code_combination_id          => l_ccid
126584   , p_value_type_code              => l_adr_value_type_code
126585   , p_transaction_coa_id           => l_adr_transaction_coa_id
126586   , p_accounting_coa_id            => l_adr_accounting_coa_id
126587   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
126588   , p_adr_type_code                => 'S'
126589   , p_component_type               => l_component_type
126590   , p_component_code               => l_component_code
126591   , p_component_type_code          => l_component_type_code
126592   , p_component_appl_id            => l_component_appl_id
126593   , p_amb_context_code             => l_amb_context_code
126594   , p_side                         => 'NA'
126595   );
126596 
126597 
126598    --
126599    --
126600    END IF;
126601 
126602        --
126606                                          p_header_num   => 1);
126603        -- Update the line information that should be overwritten
126604        --
126605        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126607        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126608 
126609        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126610 
126611        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126612           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126613        END IF;
126614 
126615       --
126616       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126617       --
126618       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126619           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126620       ELSE
126621           ---------------------------------------------------------------------------------------------------
126622           -- 4262811a Switch Sign
126623           ---------------------------------------------------------------------------------------------------
126624           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126625           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126626                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126627           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126628                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126629           -- 5132302
126630           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126631                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126632 
126633       END IF;
126634 
126635       -- 4955764
126636       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126637       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126638 
126639 
126640       XLA_AE_LINES_PKG.ValidateCurrentLine;
126641       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126642 
126643       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126644                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126645                ,p_balance_type_code => l_balance_type_code);
126646 
126647    END IF;
126648 
126649    -----------------------------------------------------------------------------------------
126650    -- 4262811 Multiperiod Accounting
126651    -----------------------------------------------------------------------------------------
126652      -- No MPA option is assigned.
126653 
126654 
126655 END IF;
126656 END IF;
126657 --
126658 
126659 --
126660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126661    trace
126662       (p_msg      => 'END of AcctLineType_215'
126663       ,p_level    => C_LEVEL_PROCEDURE
126664       ,p_module   => l_log_module);
126665 END IF;
126666 --
126667 EXCEPTION
126668   WHEN xla_exceptions_pkg.application_exception THEN
126669       RAISE;
126670   WHEN OTHERS THEN
126671        xla_exceptions_pkg.raise_message
126672            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_215');
126673 END AcctLineType_215;
126674 --
126675 
126676 ---------------------------------------
126677 --
126678 -- PRIVATE FUNCTION
126679 --         AcctLineType_216
126680 --
126681 ---------------------------------------
126682 PROCEDURE AcctLineType_216 (
126683   p_application_id        IN NUMBER
126684  ,p_event_id              IN NUMBER
126685  ,p_calculate_acctd_flag  IN VARCHAR2
126686  ,p_calculate_g_l_flag    IN VARCHAR2
126687  ,p_actual_flag           IN OUT VARCHAR2
126688  ,p_balance_type_code     OUT VARCHAR2
126689  ,p_gain_or_loss_ref      OUT VARCHAR2
126690  
126691 --Invoice Distribution Description
126692  , p_source_1            IN VARCHAR2
126693 --Invoice Distribution Ledger Amount
126694  , p_source_16            IN NUMBER
126695 --Invoice Distribution Type
126696  , p_source_28            IN VARCHAR2
126697  , p_source_28_meaning    IN VARCHAR2
126698 --Self-Assessed Tax Account
126699  , p_source_46            IN NUMBER
126700 --Accrue on Receipt Option
126701  , p_source_54            IN VARCHAR2
126702  , p_source_54_meaning    IN VARCHAR2
126703 --Accounting Reversal Indicator
126704  , p_source_58            IN VARCHAR2
126705 --Distribution Link Type
126706  , p_source_60            IN VARCHAR2
126707 --Allocation to Main Distribution Identifier
126708  , p_source_62            IN NUMBER
126709 --Invoice Identifier
126710  , p_source_63            IN NUMBER
126711 --Invoice Distribution Identifier
126712  , p_source_69            IN NUMBER
126713 --Payables Encumbrance Upgrade Credit Account
126714  , p_source_70            IN NUMBER
126715 --Payables Encumbrance Upgrade Credit Amount
126716  , p_source_71            IN NUMBER
126717 --Invoice Currency Code
126718  , p_source_72            IN VARCHAR2
126719 --Payables Encumbrance Upgrade Credit Base Amount
126720  , p_source_73            IN NUMBER
126721 --Payables Encumbrance Upgrade Debit Account
126725 --Payables Encumbrance Upgrade Debit Base Amount
126722  , p_source_74            IN NUMBER
126723 --Payables Encumbrance Upgrade Debit Amount
126724  , p_source_75            IN NUMBER
126726  , p_source_76            IN NUMBER
126727 --Payables Encumbrance Upgrade Option
126728  , p_source_77            IN VARCHAR2
126729 --Invoice Distribution Amount
126730  , p_source_78            IN NUMBER
126731 --Purchase Order Exchange Rate Date
126732  , p_source_79            IN DATE
126733 --Purchase Order Exchange Rate
126734  , p_source_80            IN NUMBER
126735 --Purchase Order Exchange Rate Type
126736  , p_source_81            IN VARCHAR2
126737 --Deferred Accounting End Date
126738  , p_source_82            IN DATE
126739 --Deferred Accounting Option
126740  , p_source_83            IN VARCHAR2
126741 --Deferred Accounting Start Date
126742  , p_source_84            IN DATE
126743 --Override Accounted Amount Indicator
126744  , p_source_85            IN VARCHAR2
126745  , p_source_85_meaning    IN VARCHAR2
126746 --Invoice Supplier Identifier
126747  , p_source_86            IN NUMBER
126748 --Invoice Supplier Site Identifier
126749  , p_source_87            IN NUMBER
126750 --Third Party Type
126751  , p_source_88            IN VARCHAR2
126752 --Parent Reversal Identifier
126753  , p_source_89            IN NUMBER
126754 --Invoice Distribution Statistical Amount
126755  , p_source_90            IN NUMBER
126756 --Invoice Distribution Tax Line Identifier
126757  , p_source_91            IN NUMBER
126758 --Invoice Distribution Tax Distribution Identifier from Tax
126759  , p_source_92            IN NUMBER
126760 --Invoice Distribution Summary Tax Line Identifier
126761  , p_source_93            IN NUMBER
126762 --Payables Upgrade Credit Encumbrance Type Identifier
126763  , p_source_94            IN NUMBER
126764 --Payables Upgrade Debit Encumbrance Type Identifier
126765  , p_source_95            IN NUMBER
126766 --Business Flow Accounts Payable Application Identifier
126767  , p_source_96            IN NUMBER
126768 --Business Flow Invoice Distribution Type
126769  , p_source_97            IN VARCHAR2
126770 --Business Flow Invoice Entity Code
126771  , p_source_98            IN VARCHAR2
126772 --Business Flow Invoice Distribution Identifier
126773  , p_source_99            IN NUMBER
126774 --Business Flow Invoice Identifier
126775  , p_source_100            IN NUMBER
126776 --Self-Assessed Tax Flag
126777  , p_source_145            IN VARCHAR2
126778  , p_source_145_meaning    IN VARCHAR2
126779 )
126780 IS
126781 
126782 l_component_type              VARCHAR2(80);
126783 l_component_code              VARCHAR2(30);
126784 l_component_type_code         VARCHAR2(1);
126785 l_component_appl_id           INTEGER;
126786 l_amb_context_code            VARCHAR2(30);
126787 l_entity_code                 VARCHAR2(30);
126788 l_event_class_code            VARCHAR2(30);
126789 l_ae_header_id                NUMBER;
126790 l_event_type_code             VARCHAR2(30);
126791 l_line_definition_code        VARCHAR2(30);
126792 l_line_definition_owner_code  VARCHAR2(1);
126793 --
126794 -- adr variables
126795 l_segment                     VARCHAR2(30);
126796 l_ccid                        NUMBER;
126797 l_adr_transaction_coa_id      NUMBER;
126798 l_adr_accounting_coa_id       NUMBER;
126799 l_adr_flexfield_segment_code  VARCHAR2(30);
126800 l_adr_flex_value_set_id       NUMBER;
126801 l_adr_value_type_code         VARCHAR2(30);
126802 l_adr_value_combination_id    NUMBER;
126803 l_adr_value_segment_code      VARCHAR2(30);
126804 
126805 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126806 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126807 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126808 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126809 
126810 -- 4262811 Variables ------------------------------------------------------------------------------------------
126811 l_entered_amt_idx             NUMBER;
126812 l_accted_amt_idx              NUMBER;
126813 l_acc_rev_flag                VARCHAR2(1);
126814 l_accrual_line_num            NUMBER;
126815 l_tmp_amt                     NUMBER;
126816 l_acc_rev_natural_side_code   VARCHAR2(1);
126817 
126818 l_num_entries                 NUMBER;
126819 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126820 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126821 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126822 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126823 l_recog_line_1                NUMBER;
126824 l_recog_line_2                NUMBER;
126825 
126826 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126827 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126828 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126829 
126830 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126831 
126832 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126833 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126834 
126835 ---------------------------------------------------------------------------------------------------------------
126836 
126837 
126838 --
126839 -- bulk performance
126840 --
126841 l_balance_type_code           VARCHAR2(1);
126845 --
126842 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126843 l_log_module                  VARCHAR2(240);
126844 
126846 -- Upgrade strategy
126847 --
126848 l_actual_upg_option           VARCHAR2(1);
126849 l_enc_upg_option           VARCHAR2(1);
126850 
126851 --
126852 BEGIN
126853 --
126854 IF g_log_enabled THEN
126855       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_216';
126856 END IF;
126857 --
126858 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126859 
126860       trace
126861          (p_msg      => 'BEGIN of AcctLineType_216'
126862          ,p_level    => C_LEVEL_PROCEDURE
126863          ,p_module   => l_log_module);
126864 
126865 END IF;
126866 --
126867 l_component_type             := 'AMB_JLT';
126868 l_component_code             := 'AP_SELF_NONREC_ACCRUAL_PREPAY';
126869 l_component_type_code        := 'S';
126870 l_component_appl_id          :=  200;
126871 l_amb_context_code           := 'DEFAULT';
126872 l_entity_code                := 'AP_INVOICES';
126873 l_event_class_code           := 'PREPAYMENTS';
126874 l_event_type_code            := 'PREPAYMENTS_ALL';
126875 l_line_definition_owner_code := 'S';
126876 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
126877 --
126878 l_balance_type_code          := 'A';
126879 l_segment                     := NULL;
126880 l_ccid                        := NULL;
126881 l_adr_transaction_coa_id      := NULL;
126882 l_adr_accounting_coa_id       := NULL;
126883 l_adr_flexfield_segment_code  := NULL;
126884 l_adr_flex_value_set_id       := NULL;
126885 l_adr_value_type_code         := NULL;
126886 l_adr_value_combination_id    := NULL;
126887 l_adr_value_segment_code      := NULL;
126888 
126889 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
126890 l_bflow_class_code           := '';    -- 4219869 Business Flow
126891 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
126892 l_budgetary_control_flag     := 'N';
126893 
126894 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
126895 l_bflow_applied_to_amt       := NULL; -- 5132302
126896 l_entered_amt_idx            := NULL;          -- 4262811
126897 l_accted_amt_idx             := NULL;          -- 4262811
126898 l_acc_rev_flag               := NULL;          -- 4262811
126899 l_accrual_line_num           := NULL;          -- 4262811
126900 l_tmp_amt                    := NULL;          -- 4262811
126901 --
126902  
126903 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
126904     l_balance_type_code <> 'B' THEN
126905 IF NVL(p_source_28,'
126906 ') =  'NONREC_TAX' AND 
126907 NVL(p_source_145,'
126908 ') =  'Y' AND 
126909 NVL(p_source_54,'
126910 ') =  'Y'
126911  THEN 
126912 
126913    --
126914    XLA_AE_LINES_PKG.SetNewLine;
126915 
126916    p_balance_type_code          := l_balance_type_code;
126917    -- set the flag so later we will know whether the gain loss line needs to be created
126918    
126919    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
126920      p_actual_flag :='A';
126921    END IF;
126922 
126923    --
126924    -- bulk performance
126925    --
126926    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
126927                                       p_header_num   => 0); -- 4262811
126928    --
126929    -- set accounting line options
126930    --
126931    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
126932            p_natural_side_code          => 'D'
126933          , p_gain_or_loss_flag          => 'N'
126934          , p_gl_transfer_mode_code      => 'S'
126935          , p_acct_entry_type_code       => 'A'
126936          , p_switch_side_flag           => 'Y'
126937          , p_merge_duplicate_code       => 'A'
126938          );
126939    --
126940    l_acc_rev_natural_side_code := 'C';  -- 4262811
126941    -- 
126942    --
126943    -- set accounting line type info
126944    --
126945    xla_ae_lines_pkg.SetAcctLineType
126946       (p_component_type             => l_component_type
126947       ,p_event_type_code            => l_event_type_code
126948       ,p_line_definition_owner_code => l_line_definition_owner_code
126949       ,p_line_definition_code       => l_line_definition_code
126950       ,p_accounting_line_code       => l_component_code
126951       ,p_accounting_line_type_code  => l_component_type_code
126952       ,p_accounting_line_appl_id    => l_component_appl_id
126953       ,p_amb_context_code           => l_amb_context_code
126954       ,p_entity_code                => l_entity_code
126955       ,p_event_class_code           => l_event_class_code);
126956    --
126957    -- set accounting class
126958    --
126959    xla_ae_lines_pkg.SetAcctClass(
126960            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
126961          , p_ae_header_id           => l_ae_header_id
126962          );
126963 
126964    --
126965    -- set rounding class
126966    --
126967    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
126968                       'SELF_ASSESSED_TAX';
126969 
126970    --
126971    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
126972    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
126973    --
126974    -- bulk performance
126975    --
126976    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
126977 
126981    -- 4955764
126978    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
126979       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
126980 
126982    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126983       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
126984 
126985    -- 4458381 Public Sector Enh
126986    
126987    --
126988    -- set accounting attributes for the line type
126989    --
126990    l_entered_amt_idx := 23;
126991    l_accted_amt_idx  := 28;
126992    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
126993    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
126994    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
126995    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
126996    l_rec_acct_attrs.array_num_value(2)  := 
126997 xla_ae_sources_pkg.GetSystemSourceNum(
126998    p_source_code           => 'XLA_EVENT_APPL_ID'
126999  , p_source_type_code      => 'Y'
127000  , p_source_application_id =>  602
127001 );
127002    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127003    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
127004    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127005    l_rec_acct_attrs.array_char_value(4)  := 
127006 xla_ae_sources_pkg.GetSystemSourceChar(
127007    p_source_code           => 'XLA_ENTITY_CODE'
127008  , p_source_type_code      => 'Y'
127009  , p_source_application_id =>  602
127010 );
127011    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127012    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
127013    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127014    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
127015    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
127016    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
127017    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127018    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
127019    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
127020    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
127021    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
127022    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
127023    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127024    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
127025    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
127026    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
127027    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
127028    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
127029    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
127030    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
127031    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
127032    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
127033    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
127034    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
127035    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
127036    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
127037    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
127038    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
127039    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
127040    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
127041    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
127042    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
127043    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
127044    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
127045    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
127046    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
127047    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
127048    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
127049    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
127050    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
127051    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
127052    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
127053    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
127054    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
127055    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
127056    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
127057    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
127058    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
127059    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
127060    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
127061    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
127062    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
127063    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
127064    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
127065    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
127066    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
127067    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
127068    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
127069    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
127073    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
127070    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
127071    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
127072    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
127074    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
127075    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
127076    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
127077    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
127078    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
127079    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
127080    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
127081    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
127082    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
127083    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
127084    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
127085    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
127086    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
127087    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
127088    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
127089 
127090    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
127091    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
127092 
127093    ---------------------------------------------------------------------------------------------------------------
127094    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
127095    ---------------------------------------------------------------------------------------------------------------
127096    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
127097 
127098    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127099    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127100 
127101    IF xla_accounting_cache_pkg.GetValueChar
127102          (p_source_code         => 'LEDGER_CATEGORY_CODE'
127103          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
127104    AND l_bflow_method_code = 'PRIOR_ENTRY'
127105 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
127106    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
127107          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
127108        )
127109    THEN
127110          xla_ae_lines_pkg.BflowUpgEntry
127111            (p_business_method_code    => l_bflow_method_code
127112            ,p_business_class_code     => l_bflow_class_code
127113            ,p_balance_type            => l_balance_type_code);
127114    ELSE
127115       NULL;
127116 -- No business flow processing for business flow method of NONE.
127117    END IF;
127118 
127119    --
127120    -- call analytical criteria
127121    --
127122    
127123    --
127124    -- call description
127125    --
127126    
127127 xla_ae_lines_pkg.SetLineDescription(
127128    p_ae_header_id => l_ae_header_id
127129   ,p_description  => Description_2 (
127130      p_application_id         => p_application_id
127131    , p_ae_header_id           => l_ae_header_id 
127132 , p_source_1 => p_source_1
127133    )
127134 );
127135 
127136 
127137    --
127138    -- call ADRs
127139    -- Bug 4922099
127140    --
127141    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127142         (NVL(l_actual_upg_option, 'N') = 'O') OR
127143         (NVL(l_enc_upg_option, 'N') = 'O')
127144       )
127145    THEN
127146    NULL;
127147    --
127148    --
127149    
127150   l_ccid := AcctDerRule_44(
127151            p_application_id           => p_application_id
127152          , p_ae_header_id             => l_ae_header_id 
127153 , p_source_46 => p_source_46
127154          , x_transaction_coa_id       => l_adr_transaction_coa_id
127155          , x_accounting_coa_id        => l_adr_accounting_coa_id
127156          , x_value_type_code          => l_adr_value_type_code
127157          , p_side                     => 'NA'
127158    );
127159 
127160    xla_ae_lines_pkg.set_ccid(
127161     p_code_combination_id          => l_ccid
127162   , p_value_type_code              => l_adr_value_type_code
127163   , p_transaction_coa_id           => l_adr_transaction_coa_id
127164   , p_accounting_coa_id            => l_adr_accounting_coa_id
127165   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127166   , p_adr_type_code                => 'S'
127167   , p_component_type               => l_component_type
127168   , p_component_code               => l_component_code
127169   , p_component_type_code          => l_component_type_code
127170   , p_component_appl_id            => l_component_appl_id
127171   , p_amb_context_code             => l_amb_context_code
127172   , p_side                         => 'NA'
127173   );
127174 
127175 
127176    --
127177    --
127178    END IF;
127179    --
127180    -- Bug 4922099
127181    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
127182           (NVL(l_enc_upg_option, 'N') = 'O')
127183         ) AND
127184         (l_bflow_method_code = 'PRIOR_ENTRY')
127185       )
127186    THEN
127187       IF
127188       --
127189       1 = 2
127190       --
127191       THEN
127192       xla_accounting_err_pkg.build_message
127193                                     (p_appli_s_name            => 'XLA'
127197                                     ,p_token_2                 => 'LINE_TYPE_NAME'
127194                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127195                                     ,p_token_1                 => 'LINE_NUMBER'
127196                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
127198                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
127199                                                                              l_component_type
127200                                                                             ,l_component_code
127201                                                                             ,l_component_type_code
127202                                                                             ,l_component_appl_id
127203                                                                             ,l_amb_context_code
127204                                                                             ,l_entity_code
127205                                                                             ,l_event_class_code
127206                                                                            )
127207                                     ,p_token_3                 => 'OWNER'
127208                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
127209                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
127210                                                                           ,p_lookup_code    => l_component_type_code
127211                                                                          )
127212                                     ,p_token_4                 => 'PRODUCT_NAME'
127213                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
127214                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
127215                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
127216                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
127217                                     ,p_ae_header_id            =>  NULL
127218                                        );
127219 
127220         IF (C_LEVEL_ERROR>= g_log_level) THEN
127221                  trace
127222                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127223                       ,p_level    => C_LEVEL_ERROR
127224                       ,p_module   => l_log_module);
127225         END IF;
127226       END IF;
127227    END IF;
127228    --
127229    --
127230    ------------------------------------------------------------------------------------------------
127231    -- 4219869 Business Flow
127232    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
127233    -- Prior Entry.  Currently, the following code is always generated.
127234    ------------------------------------------------------------------------------------------------
127235    XLA_AE_LINES_PKG.ValidateCurrentLine;
127236 
127237    ------------------------------------------------------------------------------------
127238    -- 4219869 Business Flow
127239    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
127240    ------------------------------------------------------------------------------------
127241    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127242 
127243    ----------------------------------------------------------------------------------
127244    -- 4219869 Business Flow
127245    -- Update journal entry status -- Need to generate this within IF <condition>
127246    ----------------------------------------------------------------------------------
127247    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127248          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
127249          ,p_balance_type_code => l_balance_type_code
127250          );
127251 
127252    -------------------------------------------------------------------------------------------
127253    -- 4262811 - Generate the Accrual Reversal lines
127254    -------------------------------------------------------------------------------------------
127255    BEGIN
127256       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
127257                               (g_array_event(p_event_id).array_value_num('header_index'));
127258       IF l_acc_rev_flag IS NULL THEN
127259          l_acc_rev_flag := 'N';
127260       END IF;
127261    EXCEPTION
127262       WHEN OTHERS THEN
127263          l_acc_rev_flag := 'N';
127264    END;
127265    --
127266    IF (l_acc_rev_flag = 'Y') THEN
127267 
127268        -- 4645092  ------------------------------------------------------------------------------
127269        -- To allow MPA report to determine if it should generate report process
127270        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
127271        ------------------------------------------------------------------------------------------
127272 
127273        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
127274        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
127275    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
127276    -- call ADRs
127277    -- Bug 4922099
127278    --
127279    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127280         (NVL(l_actual_upg_option, 'N') = 'O') OR
127281         (NVL(l_enc_upg_option, 'N') = 'O')
127282       )
127283    THEN
127284    NULL;
127285    --
127286    --
127290          , p_ae_header_id             => l_ae_header_id 
127287    
127288   l_ccid := AcctDerRule_44(
127289            p_application_id           => p_application_id
127291 , p_source_46 => p_source_46
127292          , x_transaction_coa_id       => l_adr_transaction_coa_id
127293          , x_accounting_coa_id        => l_adr_accounting_coa_id
127294          , x_value_type_code          => l_adr_value_type_code
127295          , p_side                     => 'NA'
127296    );
127297 
127298    xla_ae_lines_pkg.set_ccid(
127299     p_code_combination_id          => l_ccid
127300   , p_value_type_code              => l_adr_value_type_code
127301   , p_transaction_coa_id           => l_adr_transaction_coa_id
127302   , p_accounting_coa_id            => l_adr_accounting_coa_id
127303   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127304   , p_adr_type_code                => 'S'
127305   , p_component_type               => l_component_type
127306   , p_component_code               => l_component_code
127307   , p_component_type_code          => l_component_type_code
127308   , p_component_appl_id            => l_component_appl_id
127309   , p_amb_context_code             => l_amb_context_code
127310   , p_side                         => 'NA'
127311   );
127312 
127313 
127314    --
127315    --
127316    END IF;
127317 
127318        --
127319        -- Update the line information that should be overwritten
127320        --
127321        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
127322                                          p_header_num   => 1);
127323        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
127324 
127325        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
127326 
127327        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
127328           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
127329        END IF;
127330 
127331       --
127332       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
127333       --
127334       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
127335           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
127336       ELSE
127337           ---------------------------------------------------------------------------------------------------
127338           -- 4262811a Switch Sign
127339           ---------------------------------------------------------------------------------------------------
127340           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
127341           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127342                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127343           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127344                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127345           -- 5132302
127346           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
127347                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127348 
127349       END IF;
127350 
127351       -- 4955764
127352       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127353       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
127354 
127355 
127356       XLA_AE_LINES_PKG.ValidateCurrentLine;
127357       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127358 
127359       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127360                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
127361                ,p_balance_type_code => l_balance_type_code);
127362 
127363    END IF;
127364 
127365    -----------------------------------------------------------------------------------------
127366    -- 4262811 Multiperiod Accounting
127367    -----------------------------------------------------------------------------------------
127368      -- No MPA option is assigned.
127369 
127370 
127371 END IF;
127372 END IF;
127373 --
127374 
127375 --
127376 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127377    trace
127378       (p_msg      => 'END of AcctLineType_216'
127379       ,p_level    => C_LEVEL_PROCEDURE
127380       ,p_module   => l_log_module);
127381 END IF;
127382 --
127383 EXCEPTION
127384   WHEN xla_exceptions_pkg.application_exception THEN
127385       RAISE;
127386   WHEN OTHERS THEN
127387        xla_exceptions_pkg.raise_message
127388            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_216');
127389 END AcctLineType_216;
127390 --
127391 
127392 ---------------------------------------
127393 --
127394 -- PRIVATE FUNCTION
127395 --         AcctLineType_217
127396 --
127397 ---------------------------------------
127398 PROCEDURE AcctLineType_217 (
127399   p_application_id        IN NUMBER
127400  ,p_event_id              IN NUMBER
127401  ,p_calculate_acctd_flag  IN VARCHAR2
127402  ,p_calculate_g_l_flag    IN VARCHAR2
127403  ,p_actual_flag           IN OUT VARCHAR2
127404  ,p_balance_type_code     OUT VARCHAR2
127405  ,p_gain_or_loss_ref      OUT VARCHAR2
127406  
127410  , p_source_16            IN NUMBER
127407 --Invoice Distribution Description
127408  , p_source_1            IN VARCHAR2
127409 --Invoice Distribution Ledger Amount
127411 --Invoice Distribution Type
127412  , p_source_28            IN VARCHAR2
127413  , p_source_28_meaning    IN VARCHAR2
127414 --Self-Assessed Tax Account
127415  , p_source_46            IN NUMBER
127416 --Accrue on Receipt Option
127417  , p_source_54            IN VARCHAR2
127418  , p_source_54_meaning    IN VARCHAR2
127419 --Accounting Reversal Indicator
127420  , p_source_58            IN VARCHAR2
127421 --Distribution Link Type
127422  , p_source_60            IN VARCHAR2
127423 --Allocation to Main Distribution Identifier
127424  , p_source_62            IN NUMBER
127425 --Invoice Identifier
127426  , p_source_63            IN NUMBER
127427 --Invoice Distribution Identifier
127428  , p_source_69            IN NUMBER
127429 --Payables Encumbrance Upgrade Credit Account
127430  , p_source_70            IN NUMBER
127431 --Payables Encumbrance Upgrade Credit Amount
127432  , p_source_71            IN NUMBER
127433 --Invoice Currency Code
127434  , p_source_72            IN VARCHAR2
127435 --Payables Encumbrance Upgrade Credit Base Amount
127436  , p_source_73            IN NUMBER
127437 --Payables Encumbrance Upgrade Debit Account
127438  , p_source_74            IN NUMBER
127439 --Payables Encumbrance Upgrade Debit Amount
127440  , p_source_75            IN NUMBER
127441 --Payables Encumbrance Upgrade Debit Base Amount
127442  , p_source_76            IN NUMBER
127443 --Payables Encumbrance Upgrade Option
127444  , p_source_77            IN VARCHAR2
127445 --Invoice Distribution Amount
127446  , p_source_78            IN NUMBER
127447 --Purchase Order Exchange Rate Date
127448  , p_source_79            IN DATE
127449 --Purchase Order Exchange Rate
127450  , p_source_80            IN NUMBER
127451 --Purchase Order Exchange Rate Type
127452  , p_source_81            IN VARCHAR2
127453 --Deferred Accounting End Date
127454  , p_source_82            IN DATE
127455 --Deferred Accounting Option
127456  , p_source_83            IN VARCHAR2
127457 --Deferred Accounting Start Date
127458  , p_source_84            IN DATE
127459 --Override Accounted Amount Indicator
127460  , p_source_85            IN VARCHAR2
127461  , p_source_85_meaning    IN VARCHAR2
127462 --Invoice Supplier Identifier
127463  , p_source_86            IN NUMBER
127464 --Invoice Supplier Site Identifier
127465  , p_source_87            IN NUMBER
127466 --Third Party Type
127467  , p_source_88            IN VARCHAR2
127468 --Parent Reversal Identifier
127469  , p_source_89            IN NUMBER
127470 --Invoice Distribution Statistical Amount
127471  , p_source_90            IN NUMBER
127472 --Invoice Distribution Tax Line Identifier
127473  , p_source_91            IN NUMBER
127474 --Invoice Distribution Tax Distribution Identifier from Tax
127475  , p_source_92            IN NUMBER
127476 --Invoice Distribution Summary Tax Line Identifier
127477  , p_source_93            IN NUMBER
127478 --Payables Upgrade Credit Encumbrance Type Identifier
127479  , p_source_94            IN NUMBER
127480 --Payables Upgrade Debit Encumbrance Type Identifier
127481  , p_source_95            IN NUMBER
127482 --Business Flow Accounts Payable Application Identifier
127483  , p_source_96            IN NUMBER
127484 --Business Flow Invoice Distribution Type
127485  , p_source_97            IN VARCHAR2
127486 --Business Flow Invoice Entity Code
127487  , p_source_98            IN VARCHAR2
127488 --Business Flow Invoice Distribution Identifier
127489  , p_source_99            IN NUMBER
127490 --Business Flow Invoice Identifier
127491  , p_source_100            IN NUMBER
127492 --Self-Assessed Tax Flag
127493  , p_source_145            IN VARCHAR2
127494  , p_source_145_meaning    IN VARCHAR2
127495 )
127496 IS
127497 
127498 l_component_type              VARCHAR2(80);
127499 l_component_code              VARCHAR2(30);
127500 l_component_type_code         VARCHAR2(1);
127501 l_component_appl_id           INTEGER;
127502 l_amb_context_code            VARCHAR2(30);
127503 l_entity_code                 VARCHAR2(30);
127504 l_event_class_code            VARCHAR2(30);
127505 l_ae_header_id                NUMBER;
127506 l_event_type_code             VARCHAR2(30);
127507 l_line_definition_code        VARCHAR2(30);
127508 l_line_definition_owner_code  VARCHAR2(1);
127509 --
127510 -- adr variables
127511 l_segment                     VARCHAR2(30);
127512 l_ccid                        NUMBER;
127513 l_adr_transaction_coa_id      NUMBER;
127514 l_adr_accounting_coa_id       NUMBER;
127515 l_adr_flexfield_segment_code  VARCHAR2(30);
127516 l_adr_flex_value_set_id       NUMBER;
127517 l_adr_value_type_code         VARCHAR2(30);
127518 l_adr_value_combination_id    NUMBER;
127519 l_adr_value_segment_code      VARCHAR2(30);
127520 
127521 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
127522 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
127523 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
127524 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
127525 
127526 -- 4262811 Variables ------------------------------------------------------------------------------------------
127527 l_entered_amt_idx             NUMBER;
127528 l_accted_amt_idx              NUMBER;
127529 l_acc_rev_flag                VARCHAR2(1);
127530 l_accrual_line_num            NUMBER;
127531 l_tmp_amt                     NUMBER;
127535 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
127532 l_acc_rev_natural_side_code   VARCHAR2(1);
127533 
127534 l_num_entries                 NUMBER;
127536 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
127537 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
127538 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
127539 l_recog_line_1                NUMBER;
127540 l_recog_line_2                NUMBER;
127541 
127542 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
127543 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
127544 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
127545 
127546 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
127547 
127548 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
127549 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
127550 
127551 ---------------------------------------------------------------------------------------------------------------
127552 
127553 
127554 --
127555 -- bulk performance
127556 --
127557 l_balance_type_code           VARCHAR2(1);
127558 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
127559 l_log_module                  VARCHAR2(240);
127560 
127561 --
127562 -- Upgrade strategy
127563 --
127564 l_actual_upg_option           VARCHAR2(1);
127565 l_enc_upg_option           VARCHAR2(1);
127566 
127567 --
127568 BEGIN
127569 --
127570 IF g_log_enabled THEN
127571       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_217';
127572 END IF;
127573 --
127574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127575 
127576       trace
127577          (p_msg      => 'BEGIN of AcctLineType_217'
127578          ,p_level    => C_LEVEL_PROCEDURE
127579          ,p_module   => l_log_module);
127580 
127581 END IF;
127582 --
127583 l_component_type             := 'AMB_JLT';
127584 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_CM';
127585 l_component_type_code        := 'S';
127586 l_component_appl_id          :=  200;
127587 l_amb_context_code           := 'DEFAULT';
127588 l_entity_code                := 'AP_INVOICES';
127589 l_event_class_code           := 'CREDIT MEMOS';
127590 l_event_type_code            := 'CREDIT MEMOS_ALL';
127591 l_line_definition_owner_code := 'S';
127592 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
127593 --
127594 l_balance_type_code          := 'A';
127595 l_segment                     := NULL;
127596 l_ccid                        := NULL;
127597 l_adr_transaction_coa_id      := NULL;
127598 l_adr_accounting_coa_id       := NULL;
127599 l_adr_flexfield_segment_code  := NULL;
127600 l_adr_flex_value_set_id       := NULL;
127601 l_adr_value_type_code         := NULL;
127602 l_adr_value_combination_id    := NULL;
127603 l_adr_value_segment_code      := NULL;
127604 
127605 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
127606 l_bflow_class_code           := '';    -- 4219869 Business Flow
127607 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127608 l_budgetary_control_flag     := 'N';
127609 
127610 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127611 l_bflow_applied_to_amt       := NULL; -- 5132302
127612 l_entered_amt_idx            := NULL;          -- 4262811
127613 l_accted_amt_idx             := NULL;          -- 4262811
127614 l_acc_rev_flag               := NULL;          -- 4262811
127615 l_accrual_line_num           := NULL;          -- 4262811
127616 l_tmp_amt                    := NULL;          -- 4262811
127617 --
127618  
127619 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127620     l_balance_type_code <> 'B' THEN
127621 IF NVL(p_source_28,'
127622 ') =  'NONREC_TAX' AND 
127623 NVL(p_source_145,'
127624 ') =  'Y' AND 
127625 NVL(p_source_54,'
127626 ') =  'Y'
127627  THEN 
127628 
127629    --
127630    XLA_AE_LINES_PKG.SetNewLine;
127631 
127632    p_balance_type_code          := l_balance_type_code;
127633    -- set the flag so later we will know whether the gain loss line needs to be created
127634    
127635    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127636      p_actual_flag :='A';
127637    END IF;
127638 
127639    --
127640    -- bulk performance
127641    --
127642    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127643                                       p_header_num   => 0); -- 4262811
127644    --
127645    -- set accounting line options
127646    --
127647    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127648            p_natural_side_code          => 'D'
127649          , p_gain_or_loss_flag          => 'N'
127650          , p_gl_transfer_mode_code      => 'S'
127651          , p_acct_entry_type_code       => 'A'
127652          , p_switch_side_flag           => 'Y'
127653          , p_merge_duplicate_code       => 'A'
127654          );
127655    --
127656    l_acc_rev_natural_side_code := 'C';  -- 4262811
127657    -- 
127658    --
127659    -- set accounting line type info
127660    --
127661    xla_ae_lines_pkg.SetAcctLineType
127662       (p_component_type             => l_component_type
127663       ,p_event_type_code            => l_event_type_code
127664       ,p_line_definition_owner_code => l_line_definition_owner_code
127665       ,p_line_definition_code       => l_line_definition_code
127666       ,p_accounting_line_code       => l_component_code
127670       ,p_entity_code                => l_entity_code
127667       ,p_accounting_line_type_code  => l_component_type_code
127668       ,p_accounting_line_appl_id    => l_component_appl_id
127669       ,p_amb_context_code           => l_amb_context_code
127671       ,p_event_class_code           => l_event_class_code);
127672    --
127673    -- set accounting class
127674    --
127675    xla_ae_lines_pkg.SetAcctClass(
127676            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
127677          , p_ae_header_id           => l_ae_header_id
127678          );
127679 
127680    --
127681    -- set rounding class
127682    --
127683    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127684                       'SELF_ASSESSED_TAX';
127685 
127686    --
127687    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127688    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127689    --
127690    -- bulk performance
127691    --
127692    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
127693 
127694    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
127695       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
127696 
127697    -- 4955764
127698    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127699       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
127700 
127701    -- 4458381 Public Sector Enh
127702    
127703    --
127704    -- set accounting attributes for the line type
127705    --
127706    l_entered_amt_idx := 23;
127707    l_accted_amt_idx  := 28;
127708    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
127709    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
127710    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
127711    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
127712    l_rec_acct_attrs.array_num_value(2)  := 
127713 xla_ae_sources_pkg.GetSystemSourceNum(
127714    p_source_code           => 'XLA_EVENT_APPL_ID'
127715  , p_source_type_code      => 'Y'
127716  , p_source_application_id =>  602
127717 );
127718    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127719    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
127720    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127721    l_rec_acct_attrs.array_char_value(4)  := 
127722 xla_ae_sources_pkg.GetSystemSourceChar(
127723    p_source_code           => 'XLA_ENTITY_CODE'
127724  , p_source_type_code      => 'Y'
127725  , p_source_application_id =>  602
127726 );
127727    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127728    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
127729    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127730    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
127731    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
127732    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
127733    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127734    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
127735    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
127736    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
127737    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
127738    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
127739    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127740    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
127741    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
127742    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
127743    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
127744    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
127745    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
127746    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
127747    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
127748    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
127749    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
127750    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
127751    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
127752    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
127753    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
127754    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
127755    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
127756    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
127757    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
127758    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
127759    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
127760    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
127761    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
127762    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
127763    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
127764    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
127765    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
127766    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
127767    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
127771    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
127768    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
127769    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
127770    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
127772    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
127773    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
127774    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
127775    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
127776    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
127777    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
127778    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
127779    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
127780    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
127781    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
127782    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
127783    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
127784    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
127785    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
127786    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
127787    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
127788    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
127789    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
127790    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
127791    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
127792    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
127793    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
127794    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
127795    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
127796    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
127797    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
127798    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
127799    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
127800    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
127801    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
127802    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
127803    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
127804    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
127805 
127806    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
127807    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
127808 
127809    ---------------------------------------------------------------------------------------------------------------
127810    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
127811    ---------------------------------------------------------------------------------------------------------------
127812    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
127813 
127814    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127815    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127816 
127817    IF xla_accounting_cache_pkg.GetValueChar
127818          (p_source_code         => 'LEDGER_CATEGORY_CODE'
127819          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
127820    AND l_bflow_method_code = 'PRIOR_ENTRY'
127821 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
127822    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
127823          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
127824        )
127825    THEN
127826          xla_ae_lines_pkg.BflowUpgEntry
127827            (p_business_method_code    => l_bflow_method_code
127828            ,p_business_class_code     => l_bflow_class_code
127829            ,p_balance_type            => l_balance_type_code);
127830    ELSE
127831       NULL;
127832 -- No business flow processing for business flow method of NONE.
127833    END IF;
127834 
127835    --
127836    -- call analytical criteria
127837    --
127838    
127839    --
127840    -- call description
127841    --
127842    
127843 xla_ae_lines_pkg.SetLineDescription(
127844    p_ae_header_id => l_ae_header_id
127845   ,p_description  => Description_2 (
127846      p_application_id         => p_application_id
127847    , p_ae_header_id           => l_ae_header_id 
127848 , p_source_1 => p_source_1
127849    )
127850 );
127851 
127852 
127853    --
127854    -- call ADRs
127855    -- Bug 4922099
127856    --
127857    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127858         (NVL(l_actual_upg_option, 'N') = 'O') OR
127859         (NVL(l_enc_upg_option, 'N') = 'O')
127860       )
127861    THEN
127862    NULL;
127863    --
127864    --
127865    
127866   l_ccid := AcctDerRule_44(
127867            p_application_id           => p_application_id
127868          , p_ae_header_id             => l_ae_header_id 
127869 , p_source_46 => p_source_46
127870          , x_transaction_coa_id       => l_adr_transaction_coa_id
127871          , x_accounting_coa_id        => l_adr_accounting_coa_id
127872          , x_value_type_code          => l_adr_value_type_code
127873          , p_side                     => 'NA'
127874    );
127875 
127876    xla_ae_lines_pkg.set_ccid(
127877     p_code_combination_id          => l_ccid
127878   , p_value_type_code              => l_adr_value_type_code
127882   , p_adr_type_code                => 'S'
127879   , p_transaction_coa_id           => l_adr_transaction_coa_id
127880   , p_accounting_coa_id            => l_adr_accounting_coa_id
127881   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127883   , p_component_type               => l_component_type
127884   , p_component_code               => l_component_code
127885   , p_component_type_code          => l_component_type_code
127886   , p_component_appl_id            => l_component_appl_id
127887   , p_amb_context_code             => l_amb_context_code
127888   , p_side                         => 'NA'
127889   );
127890 
127891 
127892    --
127893    --
127894    END IF;
127895    --
127896    -- Bug 4922099
127897    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
127898           (NVL(l_enc_upg_option, 'N') = 'O')
127899         ) AND
127900         (l_bflow_method_code = 'PRIOR_ENTRY')
127901       )
127902    THEN
127903       IF
127904       --
127905       1 = 2
127906       --
127907       THEN
127908       xla_accounting_err_pkg.build_message
127909                                     (p_appli_s_name            => 'XLA'
127910                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127911                                     ,p_token_1                 => 'LINE_NUMBER'
127912                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
127913                                     ,p_token_2                 => 'LINE_TYPE_NAME'
127914                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
127915                                                                              l_component_type
127916                                                                             ,l_component_code
127917                                                                             ,l_component_type_code
127918                                                                             ,l_component_appl_id
127919                                                                             ,l_amb_context_code
127920                                                                             ,l_entity_code
127921                                                                             ,l_event_class_code
127922                                                                            )
127923                                     ,p_token_3                 => 'OWNER'
127924                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
127925                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
127926                                                                           ,p_lookup_code    => l_component_type_code
127927                                                                          )
127928                                     ,p_token_4                 => 'PRODUCT_NAME'
127929                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
127930                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
127931                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
127932                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
127933                                     ,p_ae_header_id            =>  NULL
127934                                        );
127935 
127936         IF (C_LEVEL_ERROR>= g_log_level) THEN
127937                  trace
127938                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127939                       ,p_level    => C_LEVEL_ERROR
127940                       ,p_module   => l_log_module);
127941         END IF;
127942       END IF;
127943    END IF;
127944    --
127945    --
127946    ------------------------------------------------------------------------------------------------
127947    -- 4219869 Business Flow
127948    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
127949    -- Prior Entry.  Currently, the following code is always generated.
127950    ------------------------------------------------------------------------------------------------
127951    XLA_AE_LINES_PKG.ValidateCurrentLine;
127952 
127953    ------------------------------------------------------------------------------------
127954    -- 4219869 Business Flow
127955    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
127956    ------------------------------------------------------------------------------------
127957    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127958 
127959    ----------------------------------------------------------------------------------
127960    -- 4219869 Business Flow
127961    -- Update journal entry status -- Need to generate this within IF <condition>
127962    ----------------------------------------------------------------------------------
127963    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127964          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
127965          ,p_balance_type_code => l_balance_type_code
127966          );
127967 
127968    -------------------------------------------------------------------------------------------
127969    -- 4262811 - Generate the Accrual Reversal lines
127970    -------------------------------------------------------------------------------------------
127971    BEGIN
127972       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
127976       END IF;
127973                               (g_array_event(p_event_id).array_value_num('header_index'));
127974       IF l_acc_rev_flag IS NULL THEN
127975          l_acc_rev_flag := 'N';
127977    EXCEPTION
127978       WHEN OTHERS THEN
127979          l_acc_rev_flag := 'N';
127980    END;
127981    --
127982    IF (l_acc_rev_flag = 'Y') THEN
127983 
127984        -- 4645092  ------------------------------------------------------------------------------
127985        -- To allow MPA report to determine if it should generate report process
127986        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
127987        ------------------------------------------------------------------------------------------
127988 
127989        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
127990        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
127991    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
127992    -- call ADRs
127993    -- Bug 4922099
127994    --
127995    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127996         (NVL(l_actual_upg_option, 'N') = 'O') OR
127997         (NVL(l_enc_upg_option, 'N') = 'O')
127998       )
127999    THEN
128000    NULL;
128001    --
128002    --
128003    
128004   l_ccid := AcctDerRule_44(
128005            p_application_id           => p_application_id
128006          , p_ae_header_id             => l_ae_header_id 
128007 , p_source_46 => p_source_46
128008          , x_transaction_coa_id       => l_adr_transaction_coa_id
128009          , x_accounting_coa_id        => l_adr_accounting_coa_id
128010          , x_value_type_code          => l_adr_value_type_code
128011          , p_side                     => 'NA'
128012    );
128013 
128014    xla_ae_lines_pkg.set_ccid(
128015     p_code_combination_id          => l_ccid
128016   , p_value_type_code              => l_adr_value_type_code
128017   , p_transaction_coa_id           => l_adr_transaction_coa_id
128018   , p_accounting_coa_id            => l_adr_accounting_coa_id
128019   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128020   , p_adr_type_code                => 'S'
128021   , p_component_type               => l_component_type
128022   , p_component_code               => l_component_code
128023   , p_component_type_code          => l_component_type_code
128024   , p_component_appl_id            => l_component_appl_id
128025   , p_amb_context_code             => l_amb_context_code
128026   , p_side                         => 'NA'
128027   );
128028 
128029 
128030    --
128031    --
128032    END IF;
128033 
128034        --
128035        -- Update the line information that should be overwritten
128036        --
128037        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
128038                                          p_header_num   => 1);
128039        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
128040 
128041        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
128042 
128043        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
128044           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
128045        END IF;
128046 
128047       --
128048       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
128049       --
128050       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
128051           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
128052       ELSE
128053           ---------------------------------------------------------------------------------------------------
128054           -- 4262811a Switch Sign
128055           ---------------------------------------------------------------------------------------------------
128056           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
128057           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128058                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128059           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128060                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128061           -- 5132302
128062           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
128063                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128064 
128065       END IF;
128066 
128067       -- 4955764
128068       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128069       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
128070 
128071 
128072       XLA_AE_LINES_PKG.ValidateCurrentLine;
128073       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128074 
128075       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128076                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
128077                ,p_balance_type_code => l_balance_type_code);
128078 
128079    END IF;
128080 
128081    -----------------------------------------------------------------------------------------
128082    -- 4262811 Multiperiod Accounting
128083    -----------------------------------------------------------------------------------------
128087 END IF;
128084      -- No MPA option is assigned.
128085 
128086 
128088 END IF;
128089 --
128090 
128091 --
128092 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128093    trace
128094       (p_msg      => 'END of AcctLineType_217'
128095       ,p_level    => C_LEVEL_PROCEDURE
128096       ,p_module   => l_log_module);
128097 END IF;
128098 --
128099 EXCEPTION
128100   WHEN xla_exceptions_pkg.application_exception THEN
128101       RAISE;
128102   WHEN OTHERS THEN
128103        xla_exceptions_pkg.raise_message
128104            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_217');
128105 END AcctLineType_217;
128106 --
128107 
128108 ---------------------------------------
128109 --
128110 -- PRIVATE FUNCTION
128111 --         AcctLineType_218
128112 --
128113 ---------------------------------------
128114 PROCEDURE AcctLineType_218 (
128115   p_application_id        IN NUMBER
128116  ,p_event_id              IN NUMBER
128117  ,p_calculate_acctd_flag  IN VARCHAR2
128118  ,p_calculate_g_l_flag    IN VARCHAR2
128119  ,p_actual_flag           IN OUT VARCHAR2
128120  ,p_balance_type_code     OUT VARCHAR2
128121  ,p_gain_or_loss_ref      OUT VARCHAR2
128122  
128123 --Invoice Distribution Description
128124  , p_source_1            IN VARCHAR2
128125 --Invoice Distribution Ledger Amount
128126  , p_source_16            IN NUMBER
128127 --Invoice Distribution Type
128128  , p_source_28            IN VARCHAR2
128129  , p_source_28_meaning    IN VARCHAR2
128130 --Self-Assessed Tax Account
128131  , p_source_46            IN NUMBER
128132 --Accrue on Receipt Option
128133  , p_source_54            IN VARCHAR2
128134  , p_source_54_meaning    IN VARCHAR2
128135 --Accounting Reversal Indicator
128136  , p_source_58            IN VARCHAR2
128137 --Distribution Link Type
128138  , p_source_60            IN VARCHAR2
128139 --Allocation to Main Distribution Identifier
128140  , p_source_62            IN NUMBER
128141 --Invoice Identifier
128142  , p_source_63            IN NUMBER
128143 --Invoice Distribution Identifier
128144  , p_source_69            IN NUMBER
128145 --Payables Encumbrance Upgrade Credit Account
128146  , p_source_70            IN NUMBER
128147 --Payables Encumbrance Upgrade Credit Amount
128148  , p_source_71            IN NUMBER
128149 --Invoice Currency Code
128150  , p_source_72            IN VARCHAR2
128151 --Payables Encumbrance Upgrade Credit Base Amount
128152  , p_source_73            IN NUMBER
128153 --Payables Encumbrance Upgrade Debit Account
128154  , p_source_74            IN NUMBER
128155 --Payables Encumbrance Upgrade Debit Amount
128156  , p_source_75            IN NUMBER
128157 --Payables Encumbrance Upgrade Debit Base Amount
128158  , p_source_76            IN NUMBER
128159 --Payables Encumbrance Upgrade Option
128160  , p_source_77            IN VARCHAR2
128161 --Invoice Distribution Amount
128162  , p_source_78            IN NUMBER
128163 --Purchase Order Exchange Rate Date
128164  , p_source_79            IN DATE
128165 --Purchase Order Exchange Rate
128166  , p_source_80            IN NUMBER
128167 --Purchase Order Exchange Rate Type
128168  , p_source_81            IN VARCHAR2
128169 --Deferred Accounting End Date
128170  , p_source_82            IN DATE
128171 --Deferred Accounting Option
128172  , p_source_83            IN VARCHAR2
128173 --Deferred Accounting Start Date
128174  , p_source_84            IN DATE
128175 --Override Accounted Amount Indicator
128176  , p_source_85            IN VARCHAR2
128177  , p_source_85_meaning    IN VARCHAR2
128178 --Invoice Supplier Identifier
128179  , p_source_86            IN NUMBER
128180 --Invoice Supplier Site Identifier
128181  , p_source_87            IN NUMBER
128182 --Third Party Type
128183  , p_source_88            IN VARCHAR2
128184 --Parent Reversal Identifier
128185  , p_source_89            IN NUMBER
128186 --Invoice Distribution Tax Line Identifier
128187  , p_source_91            IN NUMBER
128188 --Invoice Distribution Tax Distribution Identifier from Tax
128189  , p_source_92            IN NUMBER
128190 --Invoice Distribution Summary Tax Line Identifier
128191  , p_source_93            IN NUMBER
128192 --Payables Upgrade Credit Encumbrance Type Identifier
128193  , p_source_94            IN NUMBER
128194 --Payables Upgrade Debit Encumbrance Type Identifier
128195  , p_source_95            IN NUMBER
128196 --Business Flow Accounts Payable Application Identifier
128197  , p_source_96            IN NUMBER
128198 --Business Flow Invoice Distribution Type
128199  , p_source_97            IN VARCHAR2
128200 --Business Flow Invoice Entity Code
128201  , p_source_98            IN VARCHAR2
128202 --Business Flow Invoice Distribution Identifier
128203  , p_source_99            IN NUMBER
128204 --Business Flow Invoice Identifier
128205  , p_source_100            IN NUMBER
128206 --Self-Assessed Tax Flag
128207  , p_source_145            IN VARCHAR2
128208  , p_source_145_meaning    IN VARCHAR2
128209 )
128210 IS
128211 
128212 l_component_type              VARCHAR2(80);
128213 l_component_code              VARCHAR2(30);
128214 l_component_type_code         VARCHAR2(1);
128215 l_component_appl_id           INTEGER;
128216 l_amb_context_code            VARCHAR2(30);
128217 l_entity_code                 VARCHAR2(30);
128218 l_event_class_code            VARCHAR2(30);
128219 l_ae_header_id                NUMBER;
128220 l_event_type_code             VARCHAR2(30);
128221 l_line_definition_code        VARCHAR2(30);
128222 l_line_definition_owner_code  VARCHAR2(1);
128226 l_ccid                        NUMBER;
128223 --
128224 -- adr variables
128225 l_segment                     VARCHAR2(30);
128227 l_adr_transaction_coa_id      NUMBER;
128228 l_adr_accounting_coa_id       NUMBER;
128229 l_adr_flexfield_segment_code  VARCHAR2(30);
128230 l_adr_flex_value_set_id       NUMBER;
128231 l_adr_value_type_code         VARCHAR2(30);
128232 l_adr_value_combination_id    NUMBER;
128233 l_adr_value_segment_code      VARCHAR2(30);
128234 
128235 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
128236 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
128237 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
128238 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
128239 
128240 -- 4262811 Variables ------------------------------------------------------------------------------------------
128241 l_entered_amt_idx             NUMBER;
128242 l_accted_amt_idx              NUMBER;
128243 l_acc_rev_flag                VARCHAR2(1);
128244 l_accrual_line_num            NUMBER;
128245 l_tmp_amt                     NUMBER;
128246 l_acc_rev_natural_side_code   VARCHAR2(1);
128247 
128248 l_num_entries                 NUMBER;
128249 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
128250 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
128251 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
128252 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
128253 l_recog_line_1                NUMBER;
128254 l_recog_line_2                NUMBER;
128255 
128256 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
128257 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
128258 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
128259 
128260 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
128261 
128262 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
128263 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
128264 
128265 ---------------------------------------------------------------------------------------------------------------
128266 
128267 
128268 --
128269 -- bulk performance
128270 --
128271 l_balance_type_code           VARCHAR2(1);
128272 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
128273 l_log_module                  VARCHAR2(240);
128274 
128275 --
128276 -- Upgrade strategy
128277 --
128278 l_actual_upg_option           VARCHAR2(1);
128279 l_enc_upg_option           VARCHAR2(1);
128280 
128281 --
128282 BEGIN
128283 --
128284 IF g_log_enabled THEN
128285       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_218';
128286 END IF;
128287 --
128288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128289 
128290       trace
128291          (p_msg      => 'BEGIN of AcctLineType_218'
128292          ,p_level    => C_LEVEL_PROCEDURE
128293          ,p_module   => l_log_module);
128294 
128295 END IF;
128296 --
128297 l_component_type             := 'AMB_JLT';
128298 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_DM';
128299 l_component_type_code        := 'S';
128300 l_component_appl_id          :=  200;
128301 l_amb_context_code           := 'DEFAULT';
128302 l_entity_code                := 'AP_INVOICES';
128303 l_event_class_code           := 'DEBIT MEMOS';
128304 l_event_type_code            := 'DEBIT MEMOS_ALL';
128305 l_line_definition_owner_code := 'S';
128306 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
128307 --
128308 l_balance_type_code          := 'A';
128309 l_segment                     := NULL;
128310 l_ccid                        := NULL;
128311 l_adr_transaction_coa_id      := NULL;
128312 l_adr_accounting_coa_id       := NULL;
128313 l_adr_flexfield_segment_code  := NULL;
128314 l_adr_flex_value_set_id       := NULL;
128315 l_adr_value_type_code         := NULL;
128316 l_adr_value_combination_id    := NULL;
128317 l_adr_value_segment_code      := NULL;
128318 
128319 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
128320 l_bflow_class_code           := '';    -- 4219869 Business Flow
128321 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
128322 l_budgetary_control_flag     := 'N';
128323 
128324 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
128325 l_bflow_applied_to_amt       := NULL; -- 5132302
128326 l_entered_amt_idx            := NULL;          -- 4262811
128327 l_accted_amt_idx             := NULL;          -- 4262811
128328 l_acc_rev_flag               := NULL;          -- 4262811
128329 l_accrual_line_num           := NULL;          -- 4262811
128330 l_tmp_amt                    := NULL;          -- 4262811
128331 --
128332  
128333 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
128334     l_balance_type_code <> 'B' THEN
128335 IF NVL(p_source_28,'
128336 ') =  'NONREC_TAX' AND 
128337 NVL(p_source_145,'
128338 ') =  'Y' AND 
128339 NVL(p_source_54,'
128340 ') =  'Y'
128341  THEN 
128342 
128343    --
128344    XLA_AE_LINES_PKG.SetNewLine;
128345 
128346    p_balance_type_code          := l_balance_type_code;
128347    -- set the flag so later we will know whether the gain loss line needs to be created
128348    
128349    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
128350      p_actual_flag :='A';
128351    END IF;
128352 
128353    --
128354    -- bulk performance
128355    --
128359    -- set accounting line options
128356    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
128357                                       p_header_num   => 0); -- 4262811
128358    --
128360    --
128361    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
128362            p_natural_side_code          => 'D'
128363          , p_gain_or_loss_flag          => 'N'
128364          , p_gl_transfer_mode_code      => 'S'
128365          , p_acct_entry_type_code       => 'A'
128366          , p_switch_side_flag           => 'Y'
128367          , p_merge_duplicate_code       => 'A'
128368          );
128369    --
128370    l_acc_rev_natural_side_code := 'C';  -- 4262811
128371    -- 
128372    --
128373    -- set accounting line type info
128374    --
128375    xla_ae_lines_pkg.SetAcctLineType
128376       (p_component_type             => l_component_type
128377       ,p_event_type_code            => l_event_type_code
128378       ,p_line_definition_owner_code => l_line_definition_owner_code
128379       ,p_line_definition_code       => l_line_definition_code
128380       ,p_accounting_line_code       => l_component_code
128381       ,p_accounting_line_type_code  => l_component_type_code
128382       ,p_accounting_line_appl_id    => l_component_appl_id
128383       ,p_amb_context_code           => l_amb_context_code
128384       ,p_entity_code                => l_entity_code
128385       ,p_event_class_code           => l_event_class_code);
128386    --
128387    -- set accounting class
128388    --
128389    xla_ae_lines_pkg.SetAcctClass(
128390            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
128391          , p_ae_header_id           => l_ae_header_id
128392          );
128393 
128394    --
128395    -- set rounding class
128396    --
128397    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
128398                       'SELF_ASSESSED_TAX';
128399 
128400    --
128401    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
128402    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
128403    --
128404    -- bulk performance
128405    --
128406    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
128407 
128408    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
128409       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
128410 
128411    -- 4955764
128412    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128413       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
128414 
128415    -- 4458381 Public Sector Enh
128416    
128417    --
128418    -- set accounting attributes for the line type
128419    --
128420    l_entered_amt_idx := 23;
128421    l_accted_amt_idx  := 28;
128422    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
128423    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
128424    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
128425    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
128426    l_rec_acct_attrs.array_num_value(2)  := 
128427 xla_ae_sources_pkg.GetSystemSourceNum(
128428    p_source_code           => 'XLA_EVENT_APPL_ID'
128429  , p_source_type_code      => 'Y'
128430  , p_source_application_id =>  602
128431 );
128432    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
128433    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
128434    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
128435    l_rec_acct_attrs.array_char_value(4)  := 
128436 xla_ae_sources_pkg.GetSystemSourceChar(
128437    p_source_code           => 'XLA_ENTITY_CODE'
128438  , p_source_type_code      => 'Y'
128439  , p_source_application_id =>  602
128440 );
128441    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
128442    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
128443    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
128444    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
128445    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
128446    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
128447    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
128448    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
128449    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
128450    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
128451    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
128452    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
128453    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
128454    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
128455    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
128456    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
128457    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
128458    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
128459    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
128460    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
128461    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
128462    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
128463    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
128464    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
128468    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
128465    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
128466    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
128467    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
128469    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
128470    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
128471    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
128472    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
128473    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
128474    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
128475    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
128476    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
128477    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
128478    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
128479    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
128480    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
128481    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
128482    l_rec_acct_attrs.array_date_value(25)  := p_source_79;
128483    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
128484    l_rec_acct_attrs.array_num_value(26)  := p_source_80;
128485    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
128486    l_rec_acct_attrs.array_char_value(27)  := p_source_81;
128487    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
128488    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
128489    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
128490    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
128491    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
128492    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
128493    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
128494    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
128495    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
128496    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
128497    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
128498    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
128499    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
128500    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
128501    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
128502    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
128503    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
128504    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
128505    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
128506    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
128507    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
128508    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
128509    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
128510    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
128511    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
128512    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
128513    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
128514    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
128515    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
128516    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
128517 
128518    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
128519    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
128520 
128521    ---------------------------------------------------------------------------------------------------------------
128522    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
128523    ---------------------------------------------------------------------------------------------------------------
128524    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
128525 
128526    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128527    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128528 
128529    IF xla_accounting_cache_pkg.GetValueChar
128530          (p_source_code         => 'LEDGER_CATEGORY_CODE'
128531          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
128532    AND l_bflow_method_code = 'PRIOR_ENTRY'
128533 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
128534    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
128535          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
128536        )
128537    THEN
128538          xla_ae_lines_pkg.BflowUpgEntry
128539            (p_business_method_code    => l_bflow_method_code
128540            ,p_business_class_code     => l_bflow_class_code
128541            ,p_balance_type            => l_balance_type_code);
128542    ELSE
128543       NULL;
128544 -- No business flow processing for business flow method of NONE.
128545    END IF;
128546 
128547    --
128548    -- call analytical criteria
128549    --
128550    
128551    --
128552    -- call description
128553    --
128554    
128555 xla_ae_lines_pkg.SetLineDescription(
128556    p_ae_header_id => l_ae_header_id
128557   ,p_description  => Description_2 (
128558      p_application_id         => p_application_id
128559    , p_ae_header_id           => l_ae_header_id 
128560 , p_source_1 => p_source_1
128561    )
128565    --
128562 );
128563 
128564 
128566    -- call ADRs
128567    -- Bug 4922099
128568    --
128569    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128570         (NVL(l_actual_upg_option, 'N') = 'O') OR
128571         (NVL(l_enc_upg_option, 'N') = 'O')
128572       )
128573    THEN
128574    NULL;
128575    --
128576    --
128577    
128578   l_ccid := AcctDerRule_44(
128579            p_application_id           => p_application_id
128580          , p_ae_header_id             => l_ae_header_id 
128581 , p_source_46 => p_source_46
128582          , x_transaction_coa_id       => l_adr_transaction_coa_id
128583          , x_accounting_coa_id        => l_adr_accounting_coa_id
128584          , x_value_type_code          => l_adr_value_type_code
128585          , p_side                     => 'NA'
128586    );
128587 
128588    xla_ae_lines_pkg.set_ccid(
128589     p_code_combination_id          => l_ccid
128590   , p_value_type_code              => l_adr_value_type_code
128591   , p_transaction_coa_id           => l_adr_transaction_coa_id
128592   , p_accounting_coa_id            => l_adr_accounting_coa_id
128593   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128594   , p_adr_type_code                => 'S'
128595   , p_component_type               => l_component_type
128596   , p_component_code               => l_component_code
128597   , p_component_type_code          => l_component_type_code
128598   , p_component_appl_id            => l_component_appl_id
128599   , p_amb_context_code             => l_amb_context_code
128600   , p_side                         => 'NA'
128601   );
128602 
128603 
128604    --
128605    --
128606    END IF;
128607    --
128608    -- Bug 4922099
128609    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128610           (NVL(l_enc_upg_option, 'N') = 'O')
128611         ) AND
128612         (l_bflow_method_code = 'PRIOR_ENTRY')
128613       )
128614    THEN
128615       IF
128616       --
128617       1 = 2
128618       --
128619       THEN
128620       xla_accounting_err_pkg.build_message
128621                                     (p_appli_s_name            => 'XLA'
128622                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128623                                     ,p_token_1                 => 'LINE_NUMBER'
128624                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
128625                                     ,p_token_2                 => 'LINE_TYPE_NAME'
128626                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
128627                                                                              l_component_type
128628                                                                             ,l_component_code
128629                                                                             ,l_component_type_code
128630                                                                             ,l_component_appl_id
128631                                                                             ,l_amb_context_code
128632                                                                             ,l_entity_code
128633                                                                             ,l_event_class_code
128634                                                                            )
128635                                     ,p_token_3                 => 'OWNER'
128636                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
128637                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
128638                                                                           ,p_lookup_code    => l_component_type_code
128639                                                                          )
128640                                     ,p_token_4                 => 'PRODUCT_NAME'
128641                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
128642                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
128643                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
128644                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
128645                                     ,p_ae_header_id            =>  NULL
128646                                        );
128647 
128648         IF (C_LEVEL_ERROR>= g_log_level) THEN
128649                  trace
128650                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128651                       ,p_level    => C_LEVEL_ERROR
128652                       ,p_module   => l_log_module);
128653         END IF;
128654       END IF;
128655    END IF;
128656    --
128657    --
128658    ------------------------------------------------------------------------------------------------
128659    -- 4219869 Business Flow
128660    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
128661    -- Prior Entry.  Currently, the following code is always generated.
128662    ------------------------------------------------------------------------------------------------
128663    XLA_AE_LINES_PKG.ValidateCurrentLine;
128664 
128665    ------------------------------------------------------------------------------------
128666    -- 4219869 Business Flow
128670 
128667    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
128668    ------------------------------------------------------------------------------------
128669    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128671    ----------------------------------------------------------------------------------
128672    -- 4219869 Business Flow
128673    -- Update journal entry status -- Need to generate this within IF <condition>
128674    ----------------------------------------------------------------------------------
128675    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128676          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
128677          ,p_balance_type_code => l_balance_type_code
128678          );
128679 
128680    -------------------------------------------------------------------------------------------
128681    -- 4262811 - Generate the Accrual Reversal lines
128682    -------------------------------------------------------------------------------------------
128683    BEGIN
128684       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
128685                               (g_array_event(p_event_id).array_value_num('header_index'));
128686       IF l_acc_rev_flag IS NULL THEN
128687          l_acc_rev_flag := 'N';
128688       END IF;
128689    EXCEPTION
128690       WHEN OTHERS THEN
128691          l_acc_rev_flag := 'N';
128692    END;
128693    --
128694    IF (l_acc_rev_flag = 'Y') THEN
128695 
128696        -- 4645092  ------------------------------------------------------------------------------
128697        -- To allow MPA report to determine if it should generate report process
128698        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
128699        ------------------------------------------------------------------------------------------
128700 
128701        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
128702        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
128703    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
128704    -- call ADRs
128705    -- Bug 4922099
128706    --
128707    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128708         (NVL(l_actual_upg_option, 'N') = 'O') OR
128709         (NVL(l_enc_upg_option, 'N') = 'O')
128710       )
128711    THEN
128712    NULL;
128713    --
128714    --
128715    
128716   l_ccid := AcctDerRule_44(
128717            p_application_id           => p_application_id
128718          , p_ae_header_id             => l_ae_header_id 
128719 , p_source_46 => p_source_46
128720          , x_transaction_coa_id       => l_adr_transaction_coa_id
128721          , x_accounting_coa_id        => l_adr_accounting_coa_id
128722          , x_value_type_code          => l_adr_value_type_code
128723          , p_side                     => 'NA'
128724    );
128725 
128726    xla_ae_lines_pkg.set_ccid(
128727     p_code_combination_id          => l_ccid
128728   , p_value_type_code              => l_adr_value_type_code
128729   , p_transaction_coa_id           => l_adr_transaction_coa_id
128730   , p_accounting_coa_id            => l_adr_accounting_coa_id
128731   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128732   , p_adr_type_code                => 'S'
128733   , p_component_type               => l_component_type
128734   , p_component_code               => l_component_code
128735   , p_component_type_code          => l_component_type_code
128736   , p_component_appl_id            => l_component_appl_id
128737   , p_amb_context_code             => l_amb_context_code
128738   , p_side                         => 'NA'
128739   );
128740 
128741 
128742    --
128743    --
128744    END IF;
128745 
128746        --
128747        -- Update the line information that should be overwritten
128748        --
128749        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
128750                                          p_header_num   => 1);
128751        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
128752 
128753        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
128754 
128755        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
128756           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
128757        END IF;
128758 
128759       --
128760       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
128761       --
128762       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
128763           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
128764       ELSE
128765           ---------------------------------------------------------------------------------------------------
128766           -- 4262811a Switch Sign
128767           ---------------------------------------------------------------------------------------------------
128768           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
128769           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128770                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128771           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128772                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128773           -- 5132302
128777       END IF;
128774           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
128775                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128776 
128778 
128779       -- 4955764
128780       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128781       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
128782 
128783 
128784       XLA_AE_LINES_PKG.ValidateCurrentLine;
128785       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128786 
128787       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128788                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
128789                ,p_balance_type_code => l_balance_type_code);
128790 
128791    END IF;
128792 
128793    -----------------------------------------------------------------------------------------
128794    -- 4262811 Multiperiod Accounting
128795    -----------------------------------------------------------------------------------------
128796      -- No MPA option is assigned.
128797 
128798 
128799 END IF;
128800 END IF;
128801 --
128802 
128803 --
128804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128805    trace
128806       (p_msg      => 'END of AcctLineType_218'
128807       ,p_level    => C_LEVEL_PROCEDURE
128808       ,p_module   => l_log_module);
128809 END IF;
128810 --
128811 EXCEPTION
128812   WHEN xla_exceptions_pkg.application_exception THEN
128813       RAISE;
128814   WHEN OTHERS THEN
128815        xla_exceptions_pkg.raise_message
128816            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_218');
128817 END AcctLineType_218;
128818 --
128819 
128820 ---------------------------------------
128821 --
128822 -- PRIVATE FUNCTION
128823 --         AcctLineType_219
128824 --
128825 ---------------------------------------
128826 PROCEDURE AcctLineType_219 (
128827   p_application_id        IN NUMBER
128828  ,p_event_id              IN NUMBER
128829  ,p_calculate_acctd_flag  IN VARCHAR2
128830  ,p_calculate_g_l_flag    IN VARCHAR2
128831  ,p_actual_flag           IN OUT VARCHAR2
128832  ,p_balance_type_code     OUT VARCHAR2
128833  ,p_gain_or_loss_ref      OUT VARCHAR2
128834  
128835 --Invoice Distribution Description
128836  , p_source_1            IN VARCHAR2
128837 --Invoice Distribution Ledger Amount
128838  , p_source_16            IN NUMBER
128839 --Invoice Distribution Type
128840  , p_source_28            IN VARCHAR2
128841  , p_source_28_meaning    IN VARCHAR2
128842 --Self-Assessed Tax Account
128843  , p_source_46            IN NUMBER
128844 --Accrue on Receipt Option
128845  , p_source_54            IN VARCHAR2
128846  , p_source_54_meaning    IN VARCHAR2
128847 --Accounting Reversal Indicator
128848  , p_source_58            IN VARCHAR2
128849 --Distribution Link Type
128850  , p_source_60            IN VARCHAR2
128851 --Allocation to Main Distribution Identifier
128852  , p_source_62            IN NUMBER
128853 --Invoice Identifier
128854  , p_source_63            IN NUMBER
128855 --Invoice Distribution Identifier
128856  , p_source_69            IN NUMBER
128857 --Payables Encumbrance Upgrade Credit Account
128858  , p_source_70            IN NUMBER
128859 --Payables Encumbrance Upgrade Credit Amount
128860  , p_source_71            IN NUMBER
128861 --Invoice Currency Code
128862  , p_source_72            IN VARCHAR2
128863 --Payables Encumbrance Upgrade Credit Base Amount
128864  , p_source_73            IN NUMBER
128865 --Payables Encumbrance Upgrade Debit Account
128866  , p_source_74            IN NUMBER
128867 --Payables Encumbrance Upgrade Debit Amount
128868  , p_source_75            IN NUMBER
128869 --Payables Encumbrance Upgrade Debit Base Amount
128870  , p_source_76            IN NUMBER
128871 --Payables Encumbrance Upgrade Option
128872  , p_source_77            IN VARCHAR2
128873 --Invoice Distribution Amount
128874  , p_source_78            IN NUMBER
128875 --Purchase Order Exchange Rate Date
128876  , p_source_79            IN DATE
128877 --Purchase Order Exchange Rate
128878  , p_source_80            IN NUMBER
128879 --Purchase Order Exchange Rate Type
128880  , p_source_81            IN VARCHAR2
128881 --Deferred Accounting End Date
128882  , p_source_82            IN DATE
128883 --Deferred Accounting Option
128884  , p_source_83            IN VARCHAR2
128885 --Deferred Accounting Start Date
128886  , p_source_84            IN DATE
128887 --Override Accounted Amount Indicator
128888  , p_source_85            IN VARCHAR2
128889  , p_source_85_meaning    IN VARCHAR2
128890 --Invoice Supplier Identifier
128891  , p_source_86            IN NUMBER
128892 --Invoice Supplier Site Identifier
128893  , p_source_87            IN NUMBER
128894 --Third Party Type
128895  , p_source_88            IN VARCHAR2
128896 --Parent Reversal Identifier
128897  , p_source_89            IN NUMBER
128898 --Invoice Distribution Statistical Amount
128899  , p_source_90            IN NUMBER
128900 --Invoice Distribution Tax Line Identifier
128901  , p_source_91            IN NUMBER
128902 --Invoice Distribution Tax Distribution Identifier from Tax
128903  , p_source_92            IN NUMBER
128904 --Invoice Distribution Summary Tax Line Identifier
128905  , p_source_93            IN NUMBER
128906 --Payables Upgrade Credit Encumbrance Type Identifier
128907  , p_source_94            IN NUMBER
128908 --Payables Upgrade Debit Encumbrance Type Identifier
128912 --Business Flow Invoice Distribution Type
128909  , p_source_95            IN NUMBER
128910 --Business Flow Accounts Payable Application Identifier
128911  , p_source_96            IN NUMBER
128913  , p_source_97            IN VARCHAR2
128914 --Business Flow Invoice Entity Code
128915  , p_source_98            IN VARCHAR2
128916 --Business Flow Invoice Distribution Identifier
128917  , p_source_99            IN NUMBER
128918 --Business Flow Invoice Identifier
128919  , p_source_100            IN NUMBER
128920 --Self-Assessed Tax Flag
128921  , p_source_145            IN VARCHAR2
128922  , p_source_145_meaning    IN VARCHAR2
128923 )
128924 IS
128925 
128926 l_component_type              VARCHAR2(80);
128927 l_component_code              VARCHAR2(30);
128928 l_component_type_code         VARCHAR2(1);
128929 l_component_appl_id           INTEGER;
128930 l_amb_context_code            VARCHAR2(30);
128931 l_entity_code                 VARCHAR2(30);
128932 l_event_class_code            VARCHAR2(30);
128933 l_ae_header_id                NUMBER;
128934 l_event_type_code             VARCHAR2(30);
128935 l_line_definition_code        VARCHAR2(30);
128936 l_line_definition_owner_code  VARCHAR2(1);
128937 --
128938 -- adr variables
128939 l_segment                     VARCHAR2(30);
128940 l_ccid                        NUMBER;
128941 l_adr_transaction_coa_id      NUMBER;
128942 l_adr_accounting_coa_id       NUMBER;
128943 l_adr_flexfield_segment_code  VARCHAR2(30);
128944 l_adr_flex_value_set_id       NUMBER;
128945 l_adr_value_type_code         VARCHAR2(30);
128946 l_adr_value_combination_id    NUMBER;
128947 l_adr_value_segment_code      VARCHAR2(30);
128948 
128949 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
128950 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
128951 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
128952 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
128953 
128954 -- 4262811 Variables ------------------------------------------------------------------------------------------
128955 l_entered_amt_idx             NUMBER;
128956 l_accted_amt_idx              NUMBER;
128957 l_acc_rev_flag                VARCHAR2(1);
128958 l_accrual_line_num            NUMBER;
128959 l_tmp_amt                     NUMBER;
128960 l_acc_rev_natural_side_code   VARCHAR2(1);
128961 
128962 l_num_entries                 NUMBER;
128963 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
128964 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
128965 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
128966 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
128967 l_recog_line_1                NUMBER;
128968 l_recog_line_2                NUMBER;
128969 
128970 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
128971 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
128972 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
128973 
128974 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
128975 
128976 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
128977 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
128978 
128979 ---------------------------------------------------------------------------------------------------------------
128980 
128981 
128982 --
128983 -- bulk performance
128984 --
128985 l_balance_type_code           VARCHAR2(1);
128986 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
128987 l_log_module                  VARCHAR2(240);
128988 
128989 --
128990 -- Upgrade strategy
128991 --
128992 l_actual_upg_option           VARCHAR2(1);
128993 l_enc_upg_option           VARCHAR2(1);
128994 
128995 --
128996 BEGIN
128997 --
128998 IF g_log_enabled THEN
128999       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_219';
129000 END IF;
129001 --
129002 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129003 
129004       trace
129005          (p_msg      => 'BEGIN of AcctLineType_219'
129006          ,p_level    => C_LEVEL_PROCEDURE
129007          ,p_module   => l_log_module);
129008 
129009 END IF;
129010 --
129011 l_component_type             := 'AMB_JLT';
129012 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_INV';
129013 l_component_type_code        := 'S';
129014 l_component_appl_id          :=  200;
129015 l_amb_context_code           := 'DEFAULT';
129016 l_entity_code                := 'AP_INVOICES';
129017 l_event_class_code           := 'INVOICES';
129018 l_event_type_code            := 'INVOICES_ALL';
129019 l_line_definition_owner_code := 'S';
129020 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
129021 --
129022 l_balance_type_code          := 'A';
129023 l_segment                     := NULL;
129024 l_ccid                        := NULL;
129025 l_adr_transaction_coa_id      := NULL;
129026 l_adr_accounting_coa_id       := NULL;
129027 l_adr_flexfield_segment_code  := NULL;
129028 l_adr_flex_value_set_id       := NULL;
129029 l_adr_value_type_code         := NULL;
129030 l_adr_value_combination_id    := NULL;
129031 l_adr_value_segment_code      := NULL;
129032 
129033 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
129034 l_bflow_class_code           := '';    -- 4219869 Business Flow
129035 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
129036 l_budgetary_control_flag     := 'N';
129037 
129038 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
129042 l_acc_rev_flag               := NULL;          -- 4262811
129039 l_bflow_applied_to_amt       := NULL; -- 5132302
129040 l_entered_amt_idx            := NULL;          -- 4262811
129041 l_accted_amt_idx             := NULL;          -- 4262811
129043 l_accrual_line_num           := NULL;          -- 4262811
129044 l_tmp_amt                    := NULL;          -- 4262811
129045 --
129046  
129047 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
129048     l_balance_type_code <> 'B' THEN
129049 IF NVL(p_source_28,'
129050 ') =  'NONREC_TAX' AND 
129051 NVL(p_source_145,'
129052 ') =  'Y' AND 
129053 NVL(p_source_54,'
129054 ') =  'Y'
129055  THEN 
129056 
129057    --
129058    XLA_AE_LINES_PKG.SetNewLine;
129059 
129060    p_balance_type_code          := l_balance_type_code;
129061    -- set the flag so later we will know whether the gain loss line needs to be created
129062    
129063    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
129064      p_actual_flag :='A';
129065    END IF;
129066 
129067    --
129068    -- bulk performance
129069    --
129070    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
129071                                       p_header_num   => 0); -- 4262811
129072    --
129073    -- set accounting line options
129074    --
129075    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
129076            p_natural_side_code          => 'D'
129077          , p_gain_or_loss_flag          => 'N'
129078          , p_gl_transfer_mode_code      => 'S'
129079          , p_acct_entry_type_code       => 'A'
129080          , p_switch_side_flag           => 'Y'
129081          , p_merge_duplicate_code       => 'A'
129082          );
129083    --
129084    l_acc_rev_natural_side_code := 'C';  -- 4262811
129085    -- 
129086    --
129087    -- set accounting line type info
129088    --
129089    xla_ae_lines_pkg.SetAcctLineType
129090       (p_component_type             => l_component_type
129091       ,p_event_type_code            => l_event_type_code
129092       ,p_line_definition_owner_code => l_line_definition_owner_code
129093       ,p_line_definition_code       => l_line_definition_code
129094       ,p_accounting_line_code       => l_component_code
129095       ,p_accounting_line_type_code  => l_component_type_code
129096       ,p_accounting_line_appl_id    => l_component_appl_id
129097       ,p_amb_context_code           => l_amb_context_code
129098       ,p_entity_code                => l_entity_code
129099       ,p_event_class_code           => l_event_class_code);
129100    --
129101    -- set accounting class
129102    --
129103    xla_ae_lines_pkg.SetAcctClass(
129104            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
129105          , p_ae_header_id           => l_ae_header_id
129106          );
129107 
129108    --
129109    -- set rounding class
129110    --
129111    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
129112                       'SELF_ASSESSED_TAX';
129113 
129114    --
129115    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
129116    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
129117    --
129118    -- bulk performance
129119    --
129120    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
129121 
129122    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
129123       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
129124 
129125    -- 4955764
129126    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129127       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
129128 
129129    -- 4458381 Public Sector Enh
129130    
129131    --
129132    -- set accounting attributes for the line type
129133    --
129134    l_entered_amt_idx := 24;
129135    l_accted_amt_idx  := 29;
129136    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
129137    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
129138    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
129139    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
129140    l_rec_acct_attrs.array_num_value(2)  := 
129141 xla_ae_sources_pkg.GetSystemSourceNum(
129142    p_source_code           => 'XLA_EVENT_APPL_ID'
129143  , p_source_type_code      => 'Y'
129144  , p_source_application_id =>  602
129145 );
129146    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
129147    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
129148    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
129149    l_rec_acct_attrs.array_char_value(4)  := 
129150 xla_ae_sources_pkg.GetSystemSourceChar(
129151    p_source_code           => 'XLA_ENTITY_CODE'
129152  , p_source_type_code      => 'Y'
129153  , p_source_application_id =>  602
129154 );
129155    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
129156    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
129157    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
129158    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
129159    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
129160    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
129161    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
129162    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
129166    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
129163    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
129164    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
129165    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
129167    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
129168    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
129169    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
129170    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
129171    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
129172    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
129173    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
129174    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
129175    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
129176    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
129177    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
129178    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
129179    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
129180    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
129181    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
129182    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
129183    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
129184    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
129185    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
129186    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
129187    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
129188    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
129189    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
129190    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
129191    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
129192    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
129193    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
129194    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
129195    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
129196    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
129197    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
129198    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
129199    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
129200    l_rec_acct_attrs.array_num_value(27)  := p_source_80;
129201    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
129202    l_rec_acct_attrs.array_char_value(28)  := p_source_81;
129203    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
129204    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
129205    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
129206    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
129207    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
129208    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
129209    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
129210    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
129211    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
129212    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
129213    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
129214    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
129215    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
129216    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
129217    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
129218    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
129219    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
129220    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
129221    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
129222    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
129223    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
129224    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
129225    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
129226    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
129227    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
129228    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
129229    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
129230    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
129231    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
129232    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
129233    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
129234    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
129235 
129236    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
129237    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
129238 
129239    ---------------------------------------------------------------------------------------------------------------
129240    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
129241    ---------------------------------------------------------------------------------------------------------------
129242    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
129243 
129244    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129248          (p_source_code         => 'LEDGER_CATEGORY_CODE'
129245    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129246 
129247    IF xla_accounting_cache_pkg.GetValueChar
129249          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
129250    AND l_bflow_method_code = 'PRIOR_ENTRY'
129251 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
129252    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
129253          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
129254        )
129255    THEN
129256          xla_ae_lines_pkg.BflowUpgEntry
129257            (p_business_method_code    => l_bflow_method_code
129258            ,p_business_class_code     => l_bflow_class_code
129259            ,p_balance_type            => l_balance_type_code);
129260    ELSE
129261       NULL;
129262 -- No business flow processing for business flow method of NONE.
129263    END IF;
129264 
129265    --
129266    -- call analytical criteria
129267    --
129268    
129269    --
129270    -- call description
129271    --
129272    
129273 xla_ae_lines_pkg.SetLineDescription(
129274    p_ae_header_id => l_ae_header_id
129275   ,p_description  => Description_2 (
129276      p_application_id         => p_application_id
129277    , p_ae_header_id           => l_ae_header_id 
129278 , p_source_1 => p_source_1
129279    )
129280 );
129281 
129282 
129283    --
129284    -- call ADRs
129285    -- Bug 4922099
129286    --
129287    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129288         (NVL(l_actual_upg_option, 'N') = 'O') OR
129289         (NVL(l_enc_upg_option, 'N') = 'O')
129290       )
129291    THEN
129292    NULL;
129293    --
129294    --
129295    
129296   l_ccid := AcctDerRule_44(
129297            p_application_id           => p_application_id
129298          , p_ae_header_id             => l_ae_header_id 
129299 , p_source_46 => p_source_46
129300          , x_transaction_coa_id       => l_adr_transaction_coa_id
129301          , x_accounting_coa_id        => l_adr_accounting_coa_id
129302          , x_value_type_code          => l_adr_value_type_code
129303          , p_side                     => 'NA'
129304    );
129305 
129306    xla_ae_lines_pkg.set_ccid(
129307     p_code_combination_id          => l_ccid
129308   , p_value_type_code              => l_adr_value_type_code
129309   , p_transaction_coa_id           => l_adr_transaction_coa_id
129310   , p_accounting_coa_id            => l_adr_accounting_coa_id
129311   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
129312   , p_adr_type_code                => 'S'
129313   , p_component_type               => l_component_type
129314   , p_component_code               => l_component_code
129315   , p_component_type_code          => l_component_type_code
129316   , p_component_appl_id            => l_component_appl_id
129317   , p_amb_context_code             => l_amb_context_code
129318   , p_side                         => 'NA'
129319   );
129320 
129321 
129322    --
129323    --
129324    END IF;
129325    --
129326    -- Bug 4922099
129327    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
129328           (NVL(l_enc_upg_option, 'N') = 'O')
129329         ) AND
129330         (l_bflow_method_code = 'PRIOR_ENTRY')
129331       )
129332    THEN
129333       IF
129334       --
129335       1 = 2
129336       --
129337       THEN
129338       xla_accounting_err_pkg.build_message
129339                                     (p_appli_s_name            => 'XLA'
129340                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129341                                     ,p_token_1                 => 'LINE_NUMBER'
129342                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
129343                                     ,p_token_2                 => 'LINE_TYPE_NAME'
129344                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
129345                                                                              l_component_type
129346                                                                             ,l_component_code
129347                                                                             ,l_component_type_code
129348                                                                             ,l_component_appl_id
129349                                                                             ,l_amb_context_code
129350                                                                             ,l_entity_code
129351                                                                             ,l_event_class_code
129352                                                                            )
129353                                     ,p_token_3                 => 'OWNER'
129354                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
129355                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
129356                                                                           ,p_lookup_code    => l_component_type_code
129357                                                                          )
129358                                     ,p_token_4                 => 'PRODUCT_NAME'
129362                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
129359                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
129360                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
129361                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
129363                                     ,p_ae_header_id            =>  NULL
129364                                        );
129365 
129366         IF (C_LEVEL_ERROR>= g_log_level) THEN
129367                  trace
129368                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129369                       ,p_level    => C_LEVEL_ERROR
129370                       ,p_module   => l_log_module);
129371         END IF;
129372       END IF;
129373    END IF;
129374    --
129375    --
129376    ------------------------------------------------------------------------------------------------
129377    -- 4219869 Business Flow
129378    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
129379    -- Prior Entry.  Currently, the following code is always generated.
129380    ------------------------------------------------------------------------------------------------
129381    XLA_AE_LINES_PKG.ValidateCurrentLine;
129382 
129383    ------------------------------------------------------------------------------------
129384    -- 4219869 Business Flow
129385    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
129386    ------------------------------------------------------------------------------------
129387    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129388 
129389    ----------------------------------------------------------------------------------
129390    -- 4219869 Business Flow
129391    -- Update journal entry status -- Need to generate this within IF <condition>
129392    ----------------------------------------------------------------------------------
129393    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129394          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
129395          ,p_balance_type_code => l_balance_type_code
129396          );
129397 
129398    -------------------------------------------------------------------------------------------
129399    -- 4262811 - Generate the Accrual Reversal lines
129400    -------------------------------------------------------------------------------------------
129401    BEGIN
129402       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
129403                               (g_array_event(p_event_id).array_value_num('header_index'));
129404       IF l_acc_rev_flag IS NULL THEN
129405          l_acc_rev_flag := 'N';
129406       END IF;
129407    EXCEPTION
129408       WHEN OTHERS THEN
129409          l_acc_rev_flag := 'N';
129410    END;
129411    --
129412    IF (l_acc_rev_flag = 'Y') THEN
129413 
129414        -- 4645092  ------------------------------------------------------------------------------
129415        -- To allow MPA report to determine if it should generate report process
129416        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
129417        ------------------------------------------------------------------------------------------
129418 
129419        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
129420        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
129421    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
129422    -- call ADRs
129423    -- Bug 4922099
129424    --
129425    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129426         (NVL(l_actual_upg_option, 'N') = 'O') OR
129427         (NVL(l_enc_upg_option, 'N') = 'O')
129428       )
129429    THEN
129430    NULL;
129431    --
129432    --
129433    
129434   l_ccid := AcctDerRule_44(
129435            p_application_id           => p_application_id
129436          , p_ae_header_id             => l_ae_header_id 
129437 , p_source_46 => p_source_46
129438          , x_transaction_coa_id       => l_adr_transaction_coa_id
129439          , x_accounting_coa_id        => l_adr_accounting_coa_id
129440          , x_value_type_code          => l_adr_value_type_code
129441          , p_side                     => 'NA'
129442    );
129443 
129444    xla_ae_lines_pkg.set_ccid(
129445     p_code_combination_id          => l_ccid
129446   , p_value_type_code              => l_adr_value_type_code
129447   , p_transaction_coa_id           => l_adr_transaction_coa_id
129448   , p_accounting_coa_id            => l_adr_accounting_coa_id
129449   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
129450   , p_adr_type_code                => 'S'
129451   , p_component_type               => l_component_type
129452   , p_component_code               => l_component_code
129453   , p_component_type_code          => l_component_type_code
129454   , p_component_appl_id            => l_component_appl_id
129455   , p_amb_context_code             => l_amb_context_code
129456   , p_side                         => 'NA'
129457   );
129458 
129459 
129460    --
129461    --
129462    END IF;
129463 
129464        --
129465        -- Update the line information that should be overwritten
129466        --
129467        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
129468                                          p_header_num   => 1);
129472 
129469        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
129470 
129471        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
129473        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
129474           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
129475        END IF;
129476 
129477       --
129478       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
129479       --
129480       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
129481           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
129482       ELSE
129483           ---------------------------------------------------------------------------------------------------
129484           -- 4262811a Switch Sign
129485           ---------------------------------------------------------------------------------------------------
129486           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
129487           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129488                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129489           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129490                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129491           -- 5132302
129492           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
129493                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129494 
129495       END IF;
129496 
129497       -- 4955764
129498       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129499       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
129500 
129501 
129502       XLA_AE_LINES_PKG.ValidateCurrentLine;
129503       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129504 
129505       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129506                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
129507                ,p_balance_type_code => l_balance_type_code);
129508 
129509    END IF;
129510 
129511    -----------------------------------------------------------------------------------------
129512    -- 4262811 Multiperiod Accounting
129513    -----------------------------------------------------------------------------------------
129514      -- No MPA option is assigned.
129515 
129516 
129517 END IF;
129518 END IF;
129519 --
129520 
129521 --
129522 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129523    trace
129524       (p_msg      => 'END of AcctLineType_219'
129525       ,p_level    => C_LEVEL_PROCEDURE
129526       ,p_module   => l_log_module);
129527 END IF;
129528 --
129529 EXCEPTION
129530   WHEN xla_exceptions_pkg.application_exception THEN
129531       RAISE;
129532   WHEN OTHERS THEN
129533        xla_exceptions_pkg.raise_message
129534            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_219');
129535 END AcctLineType_219;
129536 --
129537 
129538 ---------------------------------------
129539 --
129540 -- PRIVATE FUNCTION
129541 --         AcctLineType_220
129542 --
129543 ---------------------------------------
129544 PROCEDURE AcctLineType_220 (
129545   p_application_id        IN NUMBER
129546  ,p_event_id              IN NUMBER
129547  ,p_calculate_acctd_flag  IN VARCHAR2
129548  ,p_calculate_g_l_flag    IN VARCHAR2
129549  ,p_actual_flag           IN OUT VARCHAR2
129550  ,p_balance_type_code     OUT VARCHAR2
129551  ,p_gain_or_loss_ref      OUT VARCHAR2
129552  
129553 --Automatic Offsets Value
129554  , p_source_10            IN VARCHAR2
129555  , p_source_10_meaning    IN VARCHAR2
129556 --Invoice Distribution Account
129557  , p_source_25            IN NUMBER
129558 --Payables Options Tax Difference Account
129559  , p_source_36            IN NUMBER
129560 --Accounting Reversal Indicator
129561  , p_source_58            IN VARCHAR2
129562 --Distribution Link Type
129563  , p_source_60            IN VARCHAR2
129564 --Invoice Identifier
129565  , p_source_63            IN NUMBER
129566 --Payables Encumbrance Upgrade Credit Account
129567  , p_source_70            IN NUMBER
129568 --Payables Encumbrance Upgrade Credit Amount
129569  , p_source_71            IN NUMBER
129570 --Invoice Currency Code
129571  , p_source_72            IN VARCHAR2
129572 --Payables Encumbrance Upgrade Credit Base Amount
129573  , p_source_73            IN NUMBER
129574 --Payables Encumbrance Upgrade Debit Account
129575  , p_source_74            IN NUMBER
129576 --Payables Encumbrance Upgrade Debit Amount
129577  , p_source_75            IN NUMBER
129578 --Payables Encumbrance Upgrade Debit Base Amount
129579  , p_source_76            IN NUMBER
129580 --Payables Encumbrance Upgrade Option
129581  , p_source_77            IN VARCHAR2
129582 --Deferred Accounting End Date
129583  , p_source_82            IN DATE
129584 --Deferred Accounting Option
129585  , p_source_83            IN VARCHAR2
129586 --Deferred Accounting Start Date
129587  , p_source_84            IN DATE
129588 --Override Accounted Amount Indicator
129589  , p_source_85            IN VARCHAR2
129593 --Invoice Supplier Site Identifier
129590  , p_source_85_meaning    IN VARCHAR2
129591 --Invoice Supplier Identifier
129592  , p_source_86            IN NUMBER
129594  , p_source_87            IN NUMBER
129595 --Third Party Type
129596  , p_source_88            IN VARCHAR2
129597 --Invoice Distribution Tax Line Identifier
129598  , p_source_91            IN NUMBER
129599 --Invoice Distribution Tax Distribution Identifier from Tax
129600  , p_source_92            IN NUMBER
129601 --Invoice Distribution Summary Tax Line Identifier
129602  , p_source_93            IN NUMBER
129603 --Payables Upgrade Credit Encumbrance Type Identifier
129604  , p_source_94            IN NUMBER
129605 --Payables Upgrade Debit Encumbrance Type Identifier
129606  , p_source_95            IN NUMBER
129607 --Business Flow Accounts Payable Application Identifier
129608  , p_source_96            IN NUMBER
129609 --Prepayment Distribution Type
129610  , p_source_128            IN VARCHAR2
129611 --Prepayment Application Distribution Identifier
129612  , p_source_130            IN NUMBER
129613 --Upgrade Encumbrance Credit Account Class
129614  , p_source_135            IN VARCHAR2
129615 --Upgrade Encumbrance Debit Account Class
129616  , p_source_136            IN VARCHAR2
129617 --Prepayment Distribution Amount
129618  , p_source_137            IN NUMBER
129619 --Identifier of the Prepayment Application Reversed
129620  , p_source_139            IN NUMBER
129621 --Prepayment Distribution (Invoice Rate) Ledger Amount
129622  , p_source_144            IN NUMBER
129623 --Invoice Exchange Date
129624  , p_source_146            IN DATE
129625 --Invoice Exchange Rate
129626  , p_source_147            IN NUMBER
129627 --Invoice Exchange Rate Type
129628  , p_source_148            IN VARCHAR2
129629 --Business Flow Prepayment Invoice Distribution Type
129630  , p_source_149            IN VARCHAR2
129631 --Business Flow Prepayment Invoice Entity Code
129632  , p_source_150            IN VARCHAR2
129633 --Business Flow Prepayment Invoice Distribution Identifier
129634  , p_source_151            IN NUMBER
129635 --Business Flow Prepayment Invoice Identifier
129636  , p_source_152            IN NUMBER
129637 )
129638 IS
129639 
129640 l_component_type              VARCHAR2(80);
129641 l_component_code              VARCHAR2(30);
129642 l_component_type_code         VARCHAR2(1);
129643 l_component_appl_id           INTEGER;
129644 l_amb_context_code            VARCHAR2(30);
129645 l_entity_code                 VARCHAR2(30);
129646 l_event_class_code            VARCHAR2(30);
129647 l_ae_header_id                NUMBER;
129648 l_event_type_code             VARCHAR2(30);
129649 l_line_definition_code        VARCHAR2(30);
129650 l_line_definition_owner_code  VARCHAR2(1);
129651 --
129652 -- adr variables
129653 l_segment                     VARCHAR2(30);
129654 l_ccid                        NUMBER;
129655 l_adr_transaction_coa_id      NUMBER;
129656 l_adr_accounting_coa_id       NUMBER;
129657 l_adr_flexfield_segment_code  VARCHAR2(30);
129658 l_adr_flex_value_set_id       NUMBER;
129659 l_adr_value_type_code         VARCHAR2(30);
129660 l_adr_value_combination_id    NUMBER;
129661 l_adr_value_segment_code      VARCHAR2(30);
129662 
129663 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
129664 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
129665 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
129666 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
129667 
129668 -- 4262811 Variables ------------------------------------------------------------------------------------------
129669 l_entered_amt_idx             NUMBER;
129670 l_accted_amt_idx              NUMBER;
129671 l_acc_rev_flag                VARCHAR2(1);
129672 l_accrual_line_num            NUMBER;
129673 l_tmp_amt                     NUMBER;
129674 l_acc_rev_natural_side_code   VARCHAR2(1);
129675 
129676 l_num_entries                 NUMBER;
129677 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
129678 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
129679 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
129680 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
129681 l_recog_line_1                NUMBER;
129682 l_recog_line_2                NUMBER;
129683 
129684 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
129685 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
129686 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
129687 
129688 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
129689 
129690 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
129691 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
129692 
129693 ---------------------------------------------------------------------------------------------------------------
129694 
129695 
129696 --
129697 -- bulk performance
129698 --
129699 l_balance_type_code           VARCHAR2(1);
129700 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
129701 l_log_module                  VARCHAR2(240);
129702 
129703 --
129704 -- Upgrade strategy
129705 --
129706 l_actual_upg_option           VARCHAR2(1);
129707 l_enc_upg_option           VARCHAR2(1);
129708 
129709 --
129710 BEGIN
129711 --
129712 IF g_log_enabled THEN
129716 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129713       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_220';
129714 END IF;
129715 --
129717 
129718       trace
129719          (p_msg      => 'BEGIN of AcctLineType_220'
129720          ,p_level    => C_LEVEL_PROCEDURE
129721          ,p_module   => l_log_module);
129722 
129723 END IF;
129724 --
129725 l_component_type             := 'AMB_JLT';
129726 l_component_code             := 'AP_TAX_DIFF_PREPAY_APP';
129727 l_component_type_code        := 'S';
129728 l_component_appl_id          :=  200;
129729 l_amb_context_code           := 'DEFAULT';
129730 l_entity_code                := 'AP_INVOICES';
129731 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
129732 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
129733 l_line_definition_owner_code := 'S';
129734 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
129735 --
129736 l_balance_type_code          := 'A';
129737 l_segment                     := NULL;
129738 l_ccid                        := NULL;
129739 l_adr_transaction_coa_id      := NULL;
129740 l_adr_accounting_coa_id       := NULL;
129741 l_adr_flexfield_segment_code  := NULL;
129742 l_adr_flex_value_set_id       := NULL;
129743 l_adr_value_type_code         := NULL;
129744 l_adr_value_combination_id    := NULL;
129745 l_adr_value_segment_code      := NULL;
129746 
129747 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
129748 l_bflow_class_code           := '';    -- 4219869 Business Flow
129749 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
129750 l_budgetary_control_flag     := 'N';
129751 
129752 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
129753 l_bflow_applied_to_amt       := NULL; -- 5132302
129754 l_entered_amt_idx            := NULL;          -- 4262811
129755 l_accted_amt_idx             := NULL;          -- 4262811
129756 l_acc_rev_flag               := NULL;          -- 4262811
129757 l_accrual_line_num           := NULL;          -- 4262811
129758 l_tmp_amt                    := NULL;          -- 4262811
129759 --
129760  
129761 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
129762     l_balance_type_code <> 'B' THEN
129763 IF NVL(p_source_128,'
129764 ') =  'TAX DIFF'
129765  THEN 
129766 
129767    --
129768    XLA_AE_LINES_PKG.SetNewLine;
129769 
129770    p_balance_type_code          := l_balance_type_code;
129771    -- set the flag so later we will know whether the gain loss line needs to be created
129772    
129773    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
129774      p_actual_flag :='A';
129775    END IF;
129776 
129777    --
129778    -- bulk performance
129779    --
129780    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
129781                                       p_header_num   => 0); -- 4262811
129782    --
129783    -- set accounting line options
129784    --
129785    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
129786            p_natural_side_code          => 'C'
129787          , p_gain_or_loss_flag          => 'N'
129788          , p_gl_transfer_mode_code      => 'S'
129789          , p_acct_entry_type_code       => 'A'
129790          , p_switch_side_flag           => 'Y'
129791          , p_merge_duplicate_code       => 'A'
129792          );
129793    --
129794    l_acc_rev_natural_side_code := 'D';  -- 4262811
129795    -- 
129796    --
129797    -- set accounting line type info
129798    --
129799    xla_ae_lines_pkg.SetAcctLineType
129800       (p_component_type             => l_component_type
129801       ,p_event_type_code            => l_event_type_code
129802       ,p_line_definition_owner_code => l_line_definition_owner_code
129803       ,p_line_definition_code       => l_line_definition_code
129804       ,p_accounting_line_code       => l_component_code
129805       ,p_accounting_line_type_code  => l_component_type_code
129806       ,p_accounting_line_appl_id    => l_component_appl_id
129807       ,p_amb_context_code           => l_amb_context_code
129808       ,p_entity_code                => l_entity_code
129809       ,p_event_class_code           => l_event_class_code);
129810    --
129811    -- set accounting class
129812    --
129813    xla_ae_lines_pkg.SetAcctClass(
129814            p_accounting_class_code  => 'TAX_DIFF'
129815          , p_ae_header_id           => l_ae_header_id
129816          );
129817 
129818    --
129819    -- set rounding class
129820    --
129821    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
129822                       'TAX_DIFF';
129823 
129824    --
129825    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
129826    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
129827    --
129828    -- bulk performance
129829    --
129830    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
129831 
129832    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
129833       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
129834 
129835    -- 4955764
129836    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129837       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
129838 
129839    -- 4458381 Public Sector Enh
129840    
129841    --
129845    l_accted_amt_idx  := 30;
129842    -- set accounting attributes for the line type
129843    --
129844    l_entered_amt_idx := 25;
129846    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
129847    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
129848    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
129849    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
129850    l_rec_acct_attrs.array_num_value(2)  := 
129851 xla_ae_sources_pkg.GetSystemSourceNum(
129852    p_source_code           => 'XLA_EVENT_APPL_ID'
129853  , p_source_type_code      => 'Y'
129854  , p_source_application_id =>  602
129855 );
129856    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
129857    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
129858    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
129859    l_rec_acct_attrs.array_char_value(4)  := 
129860 xla_ae_sources_pkg.GetSystemSourceChar(
129861    p_source_code           => 'XLA_ENTITY_CODE'
129862  , p_source_type_code      => 'Y'
129863  , p_source_application_id =>  602
129864 );
129865    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
129866    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_130);
129867    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
129868    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
129869    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
129870    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
129871    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
129872    l_rec_acct_attrs.array_char_value(8)  := p_source_149;
129873    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
129874    l_rec_acct_attrs.array_char_value(9)  := p_source_150;
129875    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
129876    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_151);
129877    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
129878    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_152);
129879    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
129880    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_130);
129881    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
129882    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
129883    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
129884    l_rec_acct_attrs.array_char_value(14)  := p_source_135;
129885    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
129886    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
129887    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
129888    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
129889    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
129890    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
129891    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
129892    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
129893    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
129894    l_rec_acct_attrs.array_char_value(19)  := p_source_136;
129895    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
129896    l_rec_acct_attrs.array_num_value(20)  := p_source_74;
129897    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
129898    l_rec_acct_attrs.array_num_value(21)  := p_source_75;
129899    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
129900    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
129901    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
129902    l_rec_acct_attrs.array_num_value(23)  := p_source_76;
129903    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
129904    l_rec_acct_attrs.array_char_value(24)  := p_source_77;
129905    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
129906    l_rec_acct_attrs.array_num_value(25)  := p_source_137;
129907    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
129908    l_rec_acct_attrs.array_char_value(26)  := p_source_72;
129909    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
129910    l_rec_acct_attrs.array_date_value(27)  := p_source_146;
129911    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
129912    l_rec_acct_attrs.array_num_value(28)  := p_source_147;
129913    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
129914    l_rec_acct_attrs.array_char_value(29)  := p_source_148;
129915    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
129916    l_rec_acct_attrs.array_num_value(30)  := p_source_144;
129917    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
129918    l_rec_acct_attrs.array_date_value(31)  := p_source_82;
129919    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
129920    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
129921    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
129922    l_rec_acct_attrs.array_date_value(33)  := p_source_84;
129923    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
129924    l_rec_acct_attrs.array_char_value(34)  := p_source_85;
129925    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
129926    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
129927    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
129928    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
129929    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
129930    l_rec_acct_attrs.array_char_value(37)  := p_source_88;
129934    l_rec_acct_attrs.array_char_value(39)  := p_source_60;
129931    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
129932    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_139);
129933    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
129935    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
129936    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
129937    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
129938    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
129939    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
129940    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
129941    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
129942    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
129943    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
129944    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
129945 
129946    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
129947    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
129948 
129949    ---------------------------------------------------------------------------------------------------------------
129950    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
129951    ---------------------------------------------------------------------------------------------------------------
129952    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
129953 
129954    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129955    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129956 
129957    IF xla_accounting_cache_pkg.GetValueChar
129958          (p_source_code         => 'LEDGER_CATEGORY_CODE'
129959          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
129960    AND l_bflow_method_code = 'PRIOR_ENTRY'
129961 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
129962    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
129963          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
129964        )
129965    THEN
129966          xla_ae_lines_pkg.BflowUpgEntry
129967            (p_business_method_code    => l_bflow_method_code
129968            ,p_business_class_code     => l_bflow_class_code
129969            ,p_balance_type            => l_balance_type_code);
129970    ELSE
129971       NULL;
129972 -- No business flow processing for business flow method of NONE.
129973    END IF;
129974 
129975    --
129976    -- call analytical criteria
129977    --
129978    
129979    --
129980    -- call description
129981    --
129982    -- No description or it is inherited.
129983    --
129984    -- call ADRs
129985    -- Bug 4922099
129986    --
129987    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129988         (NVL(l_actual_upg_option, 'N') = 'O') OR
129989         (NVL(l_enc_upg_option, 'N') = 'O')
129990       )
129991    THEN
129992    NULL;
129993    --
129994    --
129995    
129996   l_ccid := AcctDerRule_47(
129997            p_application_id           => p_application_id
129998          , p_ae_header_id             => l_ae_header_id 
129999 , p_source_10 => p_source_10
130000 , p_source_10_meaning => p_source_10_meaning
130001 , p_source_25 => p_source_25
130002 , p_source_36 => p_source_36
130003          , x_transaction_coa_id       => l_adr_transaction_coa_id
130004          , x_accounting_coa_id        => l_adr_accounting_coa_id
130005          , x_value_type_code          => l_adr_value_type_code
130006          , p_side                     => 'NA'
130007    );
130008 
130009    xla_ae_lines_pkg.set_ccid(
130010     p_code_combination_id          => l_ccid
130011   , p_value_type_code              => l_adr_value_type_code
130012   , p_transaction_coa_id           => l_adr_transaction_coa_id
130013   , p_accounting_coa_id            => l_adr_accounting_coa_id
130014   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
130015   , p_adr_type_code                => 'S'
130016   , p_component_type               => l_component_type
130017   , p_component_code               => l_component_code
130018   , p_component_type_code          => l_component_type_code
130019   , p_component_appl_id            => l_component_appl_id
130020   , p_amb_context_code             => l_amb_context_code
130021   , p_side                         => 'NA'
130022   );
130023 
130024 
130025    l_segment := AcctDerRule_23(
130026            p_application_id           => p_application_id
130027          , p_ae_header_id             => l_ae_header_id 
130028 , p_source_10 => p_source_10
130029 , p_source_10_meaning => p_source_10_meaning
130030 , p_source_25 => p_source_25
130031          , x_transaction_coa_id       => l_adr_transaction_coa_id
130032          , x_accounting_coa_id        => l_adr_accounting_coa_id
130033          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130034          , x_flex_value_set_id        => l_adr_flex_value_set_id
130035          , x_value_type_code          => l_adr_value_type_code
130036          , x_value_combination_id     => l_adr_value_combination_id
130037          , x_value_segment_code       => l_adr_value_segment_code
130038          , p_side                     => 'NA'
130039          , p_override_seg_flag        => 'Y'
130040    );
130041 
130045           p_to_segment_code         => 'GL_BALANCING'
130042    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130043 
130044       xla_ae_lines_pkg.set_segment(
130046         , p_segment_value           => l_segment
130047         , p_from_segment_code       => l_adr_value_segment_code
130048         , p_from_combination_id     => l_adr_value_combination_id
130049         , p_value_type_code         => l_adr_value_type_code
130050         , p_transaction_coa_id      => l_adr_transaction_coa_id
130051         , p_accounting_coa_id       => l_adr_accounting_coa_id
130052         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130053         , p_flex_value_set_id       => l_adr_flex_value_set_id
130054         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
130055         , p_adr_type_code           => 'S'
130056         , p_component_type          => l_component_type
130057         , p_component_code          => l_component_code
130058         , p_component_type_code     => l_component_type_code
130059         , p_component_appl_id       => l_component_appl_id
130060         , p_amb_context_code        => l_amb_context_code
130061         , p_entity_code             => 'AP_INVOICES'
130062         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
130063         , p_side                    => 'NA'
130064         );
130065 
130066   END IF;
130067 
130068    l_segment := AcctDerRule_20(
130069            p_application_id           => p_application_id
130070          , p_ae_header_id             => l_ae_header_id 
130071 , p_source_36 => p_source_36
130072          , x_transaction_coa_id       => l_adr_transaction_coa_id
130073          , x_accounting_coa_id        => l_adr_accounting_coa_id
130074          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130075          , x_flex_value_set_id        => l_adr_flex_value_set_id
130076          , x_value_type_code          => l_adr_value_type_code
130077          , x_value_combination_id     => l_adr_value_combination_id
130078          , x_value_segment_code       => l_adr_value_segment_code
130079          , p_side                     => 'NA'
130080          , p_override_seg_flag        => 'Y'
130081    );
130082 
130083    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130084 
130085       xla_ae_lines_pkg.set_segment(
130086           p_to_segment_code         => 'GL_ACCOUNT'
130087         , p_segment_value           => l_segment
130088         , p_from_segment_code       => l_adr_value_segment_code
130089         , p_from_combination_id     => l_adr_value_combination_id
130090         , p_value_type_code         => l_adr_value_type_code
130091         , p_transaction_coa_id      => l_adr_transaction_coa_id
130092         , p_accounting_coa_id       => l_adr_accounting_coa_id
130093         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130094         , p_flex_value_set_id       => l_adr_flex_value_set_id
130095         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
130096         , p_adr_type_code           => 'S'
130097         , p_component_type          => l_component_type
130098         , p_component_code          => l_component_code
130099         , p_component_type_code     => l_component_type_code
130100         , p_component_appl_id       => l_component_appl_id
130101         , p_amb_context_code        => l_amb_context_code
130102         , p_entity_code             => 'AP_INVOICES'
130103         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
130104         , p_side                    => 'NA'
130105         );
130106 
130107   END IF;
130108 
130109    --
130110    --
130111    END IF;
130112    --
130113    -- Bug 4922099
130114    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
130115           (NVL(l_enc_upg_option, 'N') = 'O')
130116         ) AND
130117         (l_bflow_method_code = 'PRIOR_ENTRY')
130118       )
130119    THEN
130120       IF
130121       --
130122       1 = 2
130123       --
130124       THEN
130125       xla_accounting_err_pkg.build_message
130126                                     (p_appli_s_name            => 'XLA'
130127                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130128                                     ,p_token_1                 => 'LINE_NUMBER'
130129                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
130130                                     ,p_token_2                 => 'LINE_TYPE_NAME'
130131                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
130132                                                                              l_component_type
130133                                                                             ,l_component_code
130134                                                                             ,l_component_type_code
130135                                                                             ,l_component_appl_id
130136                                                                             ,l_amb_context_code
130137                                                                             ,l_entity_code
130138                                                                             ,l_event_class_code
130139                                                                            )
130140                                     ,p_token_3                 => 'OWNER'
130141                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
130142                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
130146                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
130143                                                                           ,p_lookup_code    => l_component_type_code
130144                                                                          )
130145                                     ,p_token_4                 => 'PRODUCT_NAME'
130147                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
130148                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
130149                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
130150                                     ,p_ae_header_id            =>  NULL
130151                                        );
130152 
130153         IF (C_LEVEL_ERROR>= g_log_level) THEN
130154                  trace
130155                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130156                       ,p_level    => C_LEVEL_ERROR
130157                       ,p_module   => l_log_module);
130158         END IF;
130159       END IF;
130160    END IF;
130161    --
130162    --
130163    ------------------------------------------------------------------------------------------------
130164    -- 4219869 Business Flow
130165    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
130166    -- Prior Entry.  Currently, the following code is always generated.
130167    ------------------------------------------------------------------------------------------------
130168    XLA_AE_LINES_PKG.ValidateCurrentLine;
130169 
130170    ------------------------------------------------------------------------------------
130171    -- 4219869 Business Flow
130172    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
130173    ------------------------------------------------------------------------------------
130174    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130175 
130176    ----------------------------------------------------------------------------------
130177    -- 4219869 Business Flow
130178    -- Update journal entry status -- Need to generate this within IF <condition>
130179    ----------------------------------------------------------------------------------
130180    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130181          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
130182          ,p_balance_type_code => l_balance_type_code
130183          );
130184 
130185    -------------------------------------------------------------------------------------------
130186    -- 4262811 - Generate the Accrual Reversal lines
130187    -------------------------------------------------------------------------------------------
130188    BEGIN
130189       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
130190                               (g_array_event(p_event_id).array_value_num('header_index'));
130191       IF l_acc_rev_flag IS NULL THEN
130192          l_acc_rev_flag := 'N';
130193       END IF;
130194    EXCEPTION
130195       WHEN OTHERS THEN
130196          l_acc_rev_flag := 'N';
130197    END;
130198    --
130199    IF (l_acc_rev_flag = 'Y') THEN
130200 
130201        -- 4645092  ------------------------------------------------------------------------------
130202        -- To allow MPA report to determine if it should generate report process
130203        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
130204        ------------------------------------------------------------------------------------------
130205 
130206        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
130207        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
130208    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
130209    -- call ADRs
130210    -- Bug 4922099
130211    --
130212    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130213         (NVL(l_actual_upg_option, 'N') = 'O') OR
130214         (NVL(l_enc_upg_option, 'N') = 'O')
130215       )
130216    THEN
130217    NULL;
130218    --
130219    --
130220    
130221   l_ccid := AcctDerRule_47(
130222            p_application_id           => p_application_id
130223          , p_ae_header_id             => l_ae_header_id 
130224 , p_source_10 => p_source_10
130225 , p_source_10_meaning => p_source_10_meaning
130226 , p_source_25 => p_source_25
130227 , p_source_36 => p_source_36
130228          , x_transaction_coa_id       => l_adr_transaction_coa_id
130229          , x_accounting_coa_id        => l_adr_accounting_coa_id
130230          , x_value_type_code          => l_adr_value_type_code
130231          , p_side                     => 'NA'
130232    );
130233 
130234    xla_ae_lines_pkg.set_ccid(
130235     p_code_combination_id          => l_ccid
130236   , p_value_type_code              => l_adr_value_type_code
130237   , p_transaction_coa_id           => l_adr_transaction_coa_id
130238   , p_accounting_coa_id            => l_adr_accounting_coa_id
130239   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
130240   , p_adr_type_code                => 'S'
130241   , p_component_type               => l_component_type
130242   , p_component_code               => l_component_code
130243   , p_component_type_code          => l_component_type_code
130244   , p_component_appl_id            => l_component_appl_id
130245   , p_amb_context_code             => l_amb_context_code
130246   , p_side                         => 'NA'
130247   );
130248 
130252          , p_ae_header_id             => l_ae_header_id 
130249 
130250    l_segment := AcctDerRule_23(
130251            p_application_id           => p_application_id
130253 , p_source_10 => p_source_10
130254 , p_source_10_meaning => p_source_10_meaning
130255 , p_source_25 => p_source_25
130256          , x_transaction_coa_id       => l_adr_transaction_coa_id
130257          , x_accounting_coa_id        => l_adr_accounting_coa_id
130258          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130259          , x_flex_value_set_id        => l_adr_flex_value_set_id
130260          , x_value_type_code          => l_adr_value_type_code
130261          , x_value_combination_id     => l_adr_value_combination_id
130262          , x_value_segment_code       => l_adr_value_segment_code
130263          , p_side                     => 'NA'
130264          , p_override_seg_flag        => 'Y'
130265    );
130266 
130267    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130268 
130269       xla_ae_lines_pkg.set_segment(
130270           p_to_segment_code         => 'GL_BALANCING'
130271         , p_segment_value           => l_segment
130272         , p_from_segment_code       => l_adr_value_segment_code
130273         , p_from_combination_id     => l_adr_value_combination_id
130274         , p_value_type_code         => l_adr_value_type_code
130275         , p_transaction_coa_id      => l_adr_transaction_coa_id
130276         , p_accounting_coa_id       => l_adr_accounting_coa_id
130277         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130278         , p_flex_value_set_id       => l_adr_flex_value_set_id
130279         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
130280         , p_adr_type_code           => 'S'
130281         , p_component_type          => l_component_type
130282         , p_component_code          => l_component_code
130283         , p_component_type_code     => l_component_type_code
130284         , p_component_appl_id       => l_component_appl_id
130285         , p_amb_context_code        => l_amb_context_code
130286         , p_entity_code             => 'AP_INVOICES'
130287         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
130288         , p_side                    => 'NA'
130289         );
130290 
130291   END IF;
130292 
130293    l_segment := AcctDerRule_20(
130294            p_application_id           => p_application_id
130295          , p_ae_header_id             => l_ae_header_id 
130296 , p_source_36 => p_source_36
130297          , x_transaction_coa_id       => l_adr_transaction_coa_id
130298          , x_accounting_coa_id        => l_adr_accounting_coa_id
130299          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130300          , x_flex_value_set_id        => l_adr_flex_value_set_id
130301          , x_value_type_code          => l_adr_value_type_code
130302          , x_value_combination_id     => l_adr_value_combination_id
130303          , x_value_segment_code       => l_adr_value_segment_code
130304          , p_side                     => 'NA'
130305          , p_override_seg_flag        => 'Y'
130306    );
130307 
130308    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130309 
130310       xla_ae_lines_pkg.set_segment(
130311           p_to_segment_code         => 'GL_ACCOUNT'
130312         , p_segment_value           => l_segment
130313         , p_from_segment_code       => l_adr_value_segment_code
130314         , p_from_combination_id     => l_adr_value_combination_id
130315         , p_value_type_code         => l_adr_value_type_code
130316         , p_transaction_coa_id      => l_adr_transaction_coa_id
130317         , p_accounting_coa_id       => l_adr_accounting_coa_id
130318         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130319         , p_flex_value_set_id       => l_adr_flex_value_set_id
130320         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
130321         , p_adr_type_code           => 'S'
130322         , p_component_type          => l_component_type
130323         , p_component_code          => l_component_code
130324         , p_component_type_code     => l_component_type_code
130325         , p_component_appl_id       => l_component_appl_id
130326         , p_amb_context_code        => l_amb_context_code
130327         , p_entity_code             => 'AP_INVOICES'
130328         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
130329         , p_side                    => 'NA'
130330         );
130331 
130332   END IF;
130333 
130334    --
130335    --
130336    END IF;
130337 
130338        --
130339        -- Update the line information that should be overwritten
130340        --
130341        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
130342                                          p_header_num   => 1);
130343        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
130344 
130345        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
130346 
130347        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
130348           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
130349        END IF;
130350 
130351       --
130352       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
130353       --
130354       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
130355           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
130359           ---------------------------------------------------------------------------------------------------
130356       ELSE
130357           ---------------------------------------------------------------------------------------------------
130358           -- 4262811a Switch Sign
130360           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
130361           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130362                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130363           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130364                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130365           -- 5132302
130366           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
130367                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130368 
130369       END IF;
130370 
130371       -- 4955764
130372       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130373       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
130374 
130375 
130376       XLA_AE_LINES_PKG.ValidateCurrentLine;
130377       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130378 
130379       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130380                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
130381                ,p_balance_type_code => l_balance_type_code);
130382 
130383    END IF;
130384 
130385    -----------------------------------------------------------------------------------------
130386    -- 4262811 Multiperiod Accounting
130387    -----------------------------------------------------------------------------------------
130388      -- No MPA option is assigned.
130389 
130390 
130391 END IF;
130392 END IF;
130393 --
130394 
130395 --
130396 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130397    trace
130398       (p_msg      => 'END of AcctLineType_220'
130399       ,p_level    => C_LEVEL_PROCEDURE
130400       ,p_module   => l_log_module);
130401 END IF;
130402 --
130403 EXCEPTION
130404   WHEN xla_exceptions_pkg.application_exception THEN
130405       RAISE;
130406   WHEN OTHERS THEN
130407        xla_exceptions_pkg.raise_message
130408            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_220');
130409 END AcctLineType_220;
130410 --
130411 
130412 ---------------------------------------
130413 --
130414 -- PRIVATE FUNCTION
130415 --         AcctLineType_221
130416 --
130417 ---------------------------------------
130418 PROCEDURE AcctLineType_221 (
130419   p_application_id        IN NUMBER
130420  ,p_event_id              IN NUMBER
130421  ,p_calculate_acctd_flag  IN VARCHAR2
130422  ,p_calculate_g_l_flag    IN VARCHAR2
130423  ,p_actual_flag           IN OUT VARCHAR2
130424  ,p_balance_type_code     OUT VARCHAR2
130425  ,p_gain_or_loss_ref      OUT VARCHAR2
130426  
130427 --Invoice Distribution Description
130428  , p_source_1            IN VARCHAR2
130429 --Automatic Offsets Value
130430  , p_source_10            IN VARCHAR2
130431  , p_source_10_meaning    IN VARCHAR2
130432 --Purchase Order Rate Variance Gain Account
130433  , p_source_15            IN NUMBER
130434 --Invoice Distribution Ledger Amount
130435  , p_source_16            IN NUMBER
130436 --Destination Type of the PO Distribution
130437  , p_source_17            IN VARCHAR2
130438  , p_source_17_meaning    IN VARCHAR2
130439 --Purchase Order Rate Variance Loss Account
130440  , p_source_18            IN NUMBER
130441 --Invoice Distribution Account
130442  , p_source_25            IN NUMBER
130443 --Invoice Distribution Type
130444  , p_source_28            IN VARCHAR2
130445  , p_source_28_meaning    IN VARCHAR2
130446 --Automatic Offsets Flag
130447  , p_source_43            IN VARCHAR2
130448  , p_source_43_meaning    IN VARCHAR2
130449 --Accrue on Receipt Option
130450  , p_source_54            IN VARCHAR2
130451  , p_source_54_meaning    IN VARCHAR2
130452 --Accounting Reversal Indicator
130453  , p_source_58            IN VARCHAR2
130454 --Distribution Link Type
130455  , p_source_60            IN VARCHAR2
130456 --Allocation to Main Distribution Identifier
130457  , p_source_62            IN NUMBER
130458 --Invoice Identifier
130459  , p_source_63            IN NUMBER
130460 --Invoice Distribution Identifier
130461  , p_source_69            IN NUMBER
130462 --Payables Encumbrance Upgrade Credit Account
130463  , p_source_70            IN NUMBER
130464 --Payables Encumbrance Upgrade Credit Amount
130465  , p_source_71            IN NUMBER
130466 --Invoice Currency Code
130467  , p_source_72            IN VARCHAR2
130468 --Payables Encumbrance Upgrade Credit Base Amount
130469  , p_source_73            IN NUMBER
130470 --Payables Encumbrance Upgrade Debit Account
130471  , p_source_74            IN NUMBER
130472 --Payables Encumbrance Upgrade Debit Amount
130473  , p_source_75            IN NUMBER
130474 --Payables Encumbrance Upgrade Debit Base Amount
130475  , p_source_76            IN NUMBER
130476 --Payables Encumbrance Upgrade Option
130477  , p_source_77            IN VARCHAR2
130478 --Invoice Distribution Amount
130479  , p_source_78            IN NUMBER
130480 --Deferred Accounting End Date
130484 --Deferred Accounting Start Date
130481  , p_source_82            IN DATE
130482 --Deferred Accounting Option
130483  , p_source_83            IN VARCHAR2
130485  , p_source_84            IN DATE
130486 --Override Accounted Amount Indicator
130487  , p_source_85            IN VARCHAR2
130488  , p_source_85_meaning    IN VARCHAR2
130489 --Invoice Supplier Identifier
130490  , p_source_86            IN NUMBER
130491 --Invoice Supplier Site Identifier
130492  , p_source_87            IN NUMBER
130493 --Third Party Type
130494  , p_source_88            IN VARCHAR2
130495 --Parent Reversal Identifier
130496  , p_source_89            IN NUMBER
130497 --Invoice Distribution Statistical Amount
130498  , p_source_90            IN NUMBER
130499 --Invoice Distribution Tax Line Identifier
130500  , p_source_91            IN NUMBER
130501 --Invoice Distribution Tax Distribution Identifier from Tax
130502  , p_source_92            IN NUMBER
130503 --Invoice Distribution Summary Tax Line Identifier
130504  , p_source_93            IN NUMBER
130505 --Payables Upgrade Credit Encumbrance Type Identifier
130506  , p_source_94            IN NUMBER
130507 --Payables Upgrade Debit Encumbrance Type Identifier
130508  , p_source_95            IN NUMBER
130509 --Business Flow Accounts Payable Application Identifier
130510  , p_source_96            IN NUMBER
130511 --Business Flow Invoice Distribution Type
130512  , p_source_97            IN VARCHAR2
130513 --Business Flow Invoice Entity Code
130514  , p_source_98            IN VARCHAR2
130515 --Business Flow Invoice Distribution Identifier
130516  , p_source_99            IN NUMBER
130517 --Business Flow Invoice Identifier
130518  , p_source_100            IN NUMBER
130519 --Invoice Exchange Date
130520  , p_source_146            IN DATE
130521 --Invoice Exchange Rate
130522  , p_source_147            IN NUMBER
130523 --Invoice Exchange Rate Type
130524  , p_source_148            IN VARCHAR2
130525 )
130526 IS
130527 
130528 l_component_type              VARCHAR2(80);
130529 l_component_code              VARCHAR2(30);
130530 l_component_type_code         VARCHAR2(1);
130531 l_component_appl_id           INTEGER;
130532 l_amb_context_code            VARCHAR2(30);
130533 l_entity_code                 VARCHAR2(30);
130534 l_event_class_code            VARCHAR2(30);
130535 l_ae_header_id                NUMBER;
130536 l_event_type_code             VARCHAR2(30);
130537 l_line_definition_code        VARCHAR2(30);
130538 l_line_definition_owner_code  VARCHAR2(1);
130539 --
130540 -- adr variables
130541 l_segment                     VARCHAR2(30);
130542 l_ccid                        NUMBER;
130543 l_adr_transaction_coa_id      NUMBER;
130544 l_adr_accounting_coa_id       NUMBER;
130545 l_adr_flexfield_segment_code  VARCHAR2(30);
130546 l_adr_flex_value_set_id       NUMBER;
130547 l_adr_value_type_code         VARCHAR2(30);
130548 l_adr_value_combination_id    NUMBER;
130549 l_adr_value_segment_code      VARCHAR2(30);
130550 
130551 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
130552 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
130553 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
130554 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
130555 
130556 -- 4262811 Variables ------------------------------------------------------------------------------------------
130557 l_entered_amt_idx             NUMBER;
130558 l_accted_amt_idx              NUMBER;
130559 l_acc_rev_flag                VARCHAR2(1);
130560 l_accrual_line_num            NUMBER;
130561 l_tmp_amt                     NUMBER;
130562 l_acc_rev_natural_side_code   VARCHAR2(1);
130563 
130564 l_num_entries                 NUMBER;
130565 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
130566 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
130567 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
130568 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
130569 l_recog_line_1                NUMBER;
130570 l_recog_line_2                NUMBER;
130571 
130572 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
130573 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
130574 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
130575 
130576 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
130577 
130578 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
130579 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
130580 
130581 ---------------------------------------------------------------------------------------------------------------
130582 
130583 
130584 --
130585 -- bulk performance
130586 --
130587 l_balance_type_code           VARCHAR2(1);
130588 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
130589 l_log_module                  VARCHAR2(240);
130590 
130591 --
130592 -- Upgrade strategy
130593 --
130594 l_actual_upg_option           VARCHAR2(1);
130595 l_enc_upg_option           VARCHAR2(1);
130596 
130597 --
130598 BEGIN
130599 --
130600 IF g_log_enabled THEN
130601       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_221';
130602 END IF;
130603 --
130604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130605 
130606       trace
130607          (p_msg      => 'BEGIN of AcctLineType_221'
130608          ,p_level    => C_LEVEL_PROCEDURE
130612 --
130609          ,p_module   => l_log_module);
130610 
130611 END IF;
130613 l_component_type             := 'AMB_JLT';
130614 l_component_code             := 'AP_TAX_EX_RATE_VAR_CM';
130615 l_component_type_code        := 'S';
130616 l_component_appl_id          :=  200;
130617 l_amb_context_code           := 'DEFAULT';
130618 l_entity_code                := 'AP_INVOICES';
130619 l_event_class_code           := 'CREDIT MEMOS';
130620 l_event_type_code            := 'CREDIT MEMOS_ALL';
130621 l_line_definition_owner_code := 'S';
130622 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
130623 --
130624 l_balance_type_code          := 'A';
130625 l_segment                     := NULL;
130626 l_ccid                        := NULL;
130627 l_adr_transaction_coa_id      := NULL;
130628 l_adr_accounting_coa_id       := NULL;
130629 l_adr_flexfield_segment_code  := NULL;
130630 l_adr_flex_value_set_id       := NULL;
130631 l_adr_value_type_code         := NULL;
130632 l_adr_value_combination_id    := NULL;
130633 l_adr_value_segment_code      := NULL;
130634 
130635 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
130636 l_bflow_class_code           := '';    -- 4219869 Business Flow
130637 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
130638 l_budgetary_control_flag     := 'N';
130639 
130640 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
130641 l_bflow_applied_to_amt       := NULL; -- 5132302
130642 l_entered_amt_idx            := NULL;          -- 4262811
130643 l_accted_amt_idx             := NULL;          -- 4262811
130644 l_acc_rev_flag               := NULL;          -- 4262811
130645 l_accrual_line_num           := NULL;          -- 4262811
130646 l_tmp_amt                    := NULL;          -- 4262811
130647 --
130648 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
130649             (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
130650                return;
130651   END IF;
130652   
130653 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
130654     l_balance_type_code <> 'B' THEN
130655 IF NVL(p_source_28,'
130656 ') =  'TERV' AND 
130657 NVL(p_source_54,'
130658 ') =  'Y'
130659  THEN 
130660 
130661    --
130662    XLA_AE_LINES_PKG.SetNewLine;
130663 
130664    p_balance_type_code          := l_balance_type_code;
130665    -- set the flag so later we will know whether the gain loss line needs to be created
130666    
130667    IF(l_balance_type_code = 'A' ) THEN
130668      p_actual_flag :='G';
130669    END IF;
130670 
130671    --
130672    -- bulk performance
130673    --
130674    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
130675                                       p_header_num   => 0); -- 4262811
130676    --
130677    -- set accounting line options
130678    --
130679    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
130680            p_natural_side_code          => 'D'
130681          , p_gain_or_loss_flag          => 'Y'
130682          , p_gl_transfer_mode_code      => 'S'
130683          , p_acct_entry_type_code       => 'A'
130684          , p_switch_side_flag           => 'Y'
130685          , p_merge_duplicate_code       => 'A'
130686          );
130687    --
130688    l_acc_rev_natural_side_code := 'C';  -- 4262811
130689    -- 
130690    --
130691    -- set accounting line type info
130692    --
130693    xla_ae_lines_pkg.SetAcctLineType
130694       (p_component_type             => l_component_type
130695       ,p_event_type_code            => l_event_type_code
130696       ,p_line_definition_owner_code => l_line_definition_owner_code
130697       ,p_line_definition_code       => l_line_definition_code
130698       ,p_accounting_line_code       => l_component_code
130699       ,p_accounting_line_type_code  => l_component_type_code
130700       ,p_accounting_line_appl_id    => l_component_appl_id
130701       ,p_amb_context_code           => l_amb_context_code
130702       ,p_entity_code                => l_entity_code
130703       ,p_event_class_code           => l_event_class_code);
130704    --
130705    -- set accounting class
130706    --
130707    xla_ae_lines_pkg.SetAcctClass(
130708            p_accounting_class_code  => 'TERV'
130709          , p_ae_header_id           => l_ae_header_id
130710          );
130711 
130712    --
130713    -- set rounding class
130714    --
130715    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
130716                       'TERV';
130717 
130718    --
130719    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
130720    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
130721    --
130722    -- bulk performance
130723    --
130724    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
130725 
130726    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
130727       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
130728 
130729    -- 4955764
130730    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130731       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
130732 
130733    -- 4458381 Public Sector Enh
130737    --
130734    
130735    --
130736    -- set accounting attributes for the line type
130738    l_entered_amt_idx := 23;
130739    l_accted_amt_idx  := 28;
130740    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
130741    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
130742    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
130743    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
130744    l_rec_acct_attrs.array_num_value(2)  := 
130745 xla_ae_sources_pkg.GetSystemSourceNum(
130746    p_source_code           => 'XLA_EVENT_APPL_ID'
130747  , p_source_type_code      => 'Y'
130748  , p_source_application_id =>  602
130749 );
130750    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
130751    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
130752    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
130753    l_rec_acct_attrs.array_char_value(4)  := 
130754 xla_ae_sources_pkg.GetSystemSourceChar(
130755    p_source_code           => 'XLA_ENTITY_CODE'
130756  , p_source_type_code      => 'Y'
130757  , p_source_application_id =>  602
130758 );
130759    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
130760    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
130761    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
130762    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
130763    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
130764    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
130765    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
130766    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
130767    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
130768    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
130769    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
130770    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
130771    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
130772    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
130773    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
130774    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
130775    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
130776    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
130777    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
130778    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
130779    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
130780    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
130781    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
130782    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
130783    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
130784    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
130785    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
130786    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
130787    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
130788    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
130789    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
130790    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
130791    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
130792    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
130793    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
130794    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
130795    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
130796    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
130797    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
130798    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
130799    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
130800    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
130801    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
130802    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
130803    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
130804    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
130805    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
130806    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
130807    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
130808    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
130809    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
130810    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
130811    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
130812    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
130813    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
130814    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
130815    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
130816    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
130817    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
130818    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
130819    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
130820    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
130821    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
130822    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
130826    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
130823    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
130824    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
130825    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
130827    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
130828    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
130829    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
130830    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
130831    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
130832    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
130833    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
130834    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
130835    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
130836    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
130837 
130838    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
130839    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
130840 
130841    ---------------------------------------------------------------------------------------------------------------
130842    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
130843    ---------------------------------------------------------------------------------------------------------------
130844    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
130845 
130846    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130847    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130848 
130849    IF xla_accounting_cache_pkg.GetValueChar
130850          (p_source_code         => 'LEDGER_CATEGORY_CODE'
130851          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
130852    AND l_bflow_method_code = 'PRIOR_ENTRY'
130853 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
130854    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
130855          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
130856        )
130857    THEN
130858          xla_ae_lines_pkg.BflowUpgEntry
130859            (p_business_method_code    => l_bflow_method_code
130860            ,p_business_class_code     => l_bflow_class_code
130861            ,p_balance_type            => l_balance_type_code);
130862    ELSE
130863       NULL;
130864 -- No business flow processing for business flow method of NONE.
130865    END IF;
130866 
130867    --
130868    -- call analytical criteria
130869    --
130870    
130871    --
130872    -- call description
130873    --
130874    
130875 xla_ae_lines_pkg.SetLineDescription(
130876    p_ae_header_id => l_ae_header_id
130877   ,p_description  => Description_2 (
130878      p_application_id         => p_application_id
130879    , p_ae_header_id           => l_ae_header_id 
130880 , p_source_1 => p_source_1
130881    )
130882 );
130883 
130884 
130885    --
130886    -- call ADRs
130887    -- Bug 4922099
130888    --
130889    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130890         (NVL(l_actual_upg_option, 'N') = 'O') OR
130891         (NVL(l_enc_upg_option, 'N') = 'O')
130892       )
130893    THEN
130894    NULL;
130895    --
130896    --
130897    
130898   l_ccid := AcctDerRule_32(
130899            p_application_id           => p_application_id
130900          , p_ae_header_id             => l_ae_header_id 
130901 , p_source_10 => p_source_10
130902 , p_source_10_meaning => p_source_10_meaning
130903 , p_source_15 => p_source_15
130904 , p_source_16 => p_source_16
130905 , p_source_17 => p_source_17
130906 , p_source_17_meaning => p_source_17_meaning
130907 , p_source_18 => p_source_18
130908 , p_source_25 => p_source_25
130909 , p_source_43 => p_source_43
130910 , p_source_43_meaning => p_source_43_meaning
130911          , x_transaction_coa_id       => l_adr_transaction_coa_id
130912          , x_accounting_coa_id        => l_adr_accounting_coa_id
130913          , x_value_type_code          => l_adr_value_type_code
130914          , p_side                     => 'NA'
130915    );
130916 
130917    xla_ae_lines_pkg.set_ccid(
130918     p_code_combination_id          => l_ccid
130919   , p_value_type_code              => l_adr_value_type_code
130920   , p_transaction_coa_id           => l_adr_transaction_coa_id
130921   , p_accounting_coa_id            => l_adr_accounting_coa_id
130922   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
130923   , p_adr_type_code                => 'S'
130924   , p_component_type               => l_component_type
130925   , p_component_code               => l_component_code
130926   , p_component_type_code          => l_component_type_code
130927   , p_component_appl_id            => l_component_appl_id
130928   , p_amb_context_code             => l_amb_context_code
130929   , p_side                         => 'NA'
130930   );
130931 
130932 
130933    l_segment := AcctDerRule_8(
130934            p_application_id           => p_application_id
130935          , p_ae_header_id             => l_ae_header_id 
130936 , p_source_10 => p_source_10
130937 , p_source_10_meaning => p_source_10_meaning
130938 , p_source_15 => p_source_15
130939 , p_source_16 => p_source_16
130940 , p_source_17 => p_source_17
130944          , x_accounting_coa_id        => l_adr_accounting_coa_id
130941 , p_source_17_meaning => p_source_17_meaning
130942 , p_source_18 => p_source_18
130943          , x_transaction_coa_id       => l_adr_transaction_coa_id
130945          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130946          , x_flex_value_set_id        => l_adr_flex_value_set_id
130947          , x_value_type_code          => l_adr_value_type_code
130948          , x_value_combination_id     => l_adr_value_combination_id
130949          , x_value_segment_code       => l_adr_value_segment_code
130950          , p_side                     => 'NA'
130951          , p_override_seg_flag        => 'Y'
130952    );
130953 
130954    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130955 
130956       xla_ae_lines_pkg.set_segment(
130957           p_to_segment_code         => 'GL_ACCOUNT'
130958         , p_segment_value           => l_segment
130959         , p_from_segment_code       => l_adr_value_segment_code
130960         , p_from_combination_id     => l_adr_value_combination_id
130961         , p_value_type_code         => l_adr_value_type_code
130962         , p_transaction_coa_id      => l_adr_transaction_coa_id
130963         , p_accounting_coa_id       => l_adr_accounting_coa_id
130964         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130965         , p_flex_value_set_id       => l_adr_flex_value_set_id
130966         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
130967         , p_adr_type_code           => 'S'
130968         , p_component_type          => l_component_type
130969         , p_component_code          => l_component_code
130970         , p_component_type_code     => l_component_type_code
130971         , p_component_appl_id       => l_component_appl_id
130972         , p_amb_context_code        => l_amb_context_code
130973         , p_entity_code             => 'AP_INVOICES'
130974         , p_event_class_code        => 'CREDIT MEMOS'
130975         , p_side                    => 'NA'
130976         );
130977 
130978   END IF;
130979 
130980    l_segment := AcctDerRule_24(
130981            p_application_id           => p_application_id
130982          , p_ae_header_id             => l_ae_header_id 
130983 , p_source_10 => p_source_10
130984 , p_source_10_meaning => p_source_10_meaning
130985 , p_source_17 => p_source_17
130986 , p_source_17_meaning => p_source_17_meaning
130987 , p_source_25 => p_source_25
130988          , x_transaction_coa_id       => l_adr_transaction_coa_id
130989          , x_accounting_coa_id        => l_adr_accounting_coa_id
130990          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130991          , x_flex_value_set_id        => l_adr_flex_value_set_id
130992          , x_value_type_code          => l_adr_value_type_code
130993          , x_value_combination_id     => l_adr_value_combination_id
130994          , x_value_segment_code       => l_adr_value_segment_code
130995          , p_side                     => 'NA'
130996          , p_override_seg_flag        => 'Y'
130997    );
130998 
130999    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131000 
131001       xla_ae_lines_pkg.set_segment(
131002           p_to_segment_code         => 'GL_BALANCING'
131003         , p_segment_value           => l_segment
131004         , p_from_segment_code       => l_adr_value_segment_code
131005         , p_from_combination_id     => l_adr_value_combination_id
131006         , p_value_type_code         => l_adr_value_type_code
131007         , p_transaction_coa_id      => l_adr_transaction_coa_id
131008         , p_accounting_coa_id       => l_adr_accounting_coa_id
131009         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131010         , p_flex_value_set_id       => l_adr_flex_value_set_id
131011         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131012         , p_adr_type_code           => 'S'
131013         , p_component_type          => l_component_type
131014         , p_component_code          => l_component_code
131015         , p_component_type_code     => l_component_type_code
131016         , p_component_appl_id       => l_component_appl_id
131017         , p_amb_context_code        => l_amb_context_code
131018         , p_entity_code             => 'AP_INVOICES'
131019         , p_event_class_code        => 'CREDIT MEMOS'
131020         , p_side                    => 'NA'
131021         );
131022 
131023   END IF;
131024 
131025    --
131026    --
131027    END IF;
131028    --
131029    -- Bug 4922099
131030    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
131031           (NVL(l_enc_upg_option, 'N') = 'O')
131032         ) AND
131033         (l_bflow_method_code = 'PRIOR_ENTRY')
131034       )
131035    THEN
131036       IF
131037       --
131038       1 = 2
131039       --
131040       THEN
131041       xla_accounting_err_pkg.build_message
131042                                     (p_appli_s_name            => 'XLA'
131043                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131044                                     ,p_token_1                 => 'LINE_NUMBER'
131045                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
131046                                     ,p_token_2                 => 'LINE_TYPE_NAME'
131047                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
131048                                                                              l_component_type
131052                                                                             ,l_amb_context_code
131049                                                                             ,l_component_code
131050                                                                             ,l_component_type_code
131051                                                                             ,l_component_appl_id
131053                                                                             ,l_entity_code
131054                                                                             ,l_event_class_code
131055                                                                            )
131056                                     ,p_token_3                 => 'OWNER'
131057                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
131058                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
131059                                                                           ,p_lookup_code    => l_component_type_code
131060                                                                          )
131061                                     ,p_token_4                 => 'PRODUCT_NAME'
131062                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
131063                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
131064                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
131065                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
131066                                     ,p_ae_header_id            =>  NULL
131067                                        );
131068 
131069         IF (C_LEVEL_ERROR>= g_log_level) THEN
131070                  trace
131071                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131072                       ,p_level    => C_LEVEL_ERROR
131073                       ,p_module   => l_log_module);
131074         END IF;
131075       END IF;
131076    END IF;
131077    --
131078    --
131079    ------------------------------------------------------------------------------------------------
131080    -- 4219869 Business Flow
131081    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
131082    -- Prior Entry.  Currently, the following code is always generated.
131083    ------------------------------------------------------------------------------------------------
131084    XLA_AE_LINES_PKG.ValidateCurrentLine;
131085 
131086    ------------------------------------------------------------------------------------
131087    -- 4219869 Business Flow
131088    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
131089    ------------------------------------------------------------------------------------
131090    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131091 
131092    ----------------------------------------------------------------------------------
131093    -- 4219869 Business Flow
131094    -- Update journal entry status -- Need to generate this within IF <condition>
131095    ----------------------------------------------------------------------------------
131096    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131097          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
131098          ,p_balance_type_code => l_balance_type_code
131099          );
131100 
131101    -------------------------------------------------------------------------------------------
131102    -- 4262811 - Generate the Accrual Reversal lines
131103    -------------------------------------------------------------------------------------------
131104    BEGIN
131105       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
131106                               (g_array_event(p_event_id).array_value_num('header_index'));
131107       IF l_acc_rev_flag IS NULL THEN
131108          l_acc_rev_flag := 'N';
131109       END IF;
131110    EXCEPTION
131111       WHEN OTHERS THEN
131112          l_acc_rev_flag := 'N';
131113    END;
131114    --
131115    IF (l_acc_rev_flag = 'Y') THEN
131116 
131117        -- 4645092  ------------------------------------------------------------------------------
131118        -- To allow MPA report to determine if it should generate report process
131119        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
131120        ------------------------------------------------------------------------------------------
131121 
131122        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
131123        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
131124    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
131125    -- call ADRs
131126    -- Bug 4922099
131127    --
131128    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131129         (NVL(l_actual_upg_option, 'N') = 'O') OR
131130         (NVL(l_enc_upg_option, 'N') = 'O')
131131       )
131132    THEN
131133    NULL;
131134    --
131135    --
131136    
131137   l_ccid := AcctDerRule_32(
131138            p_application_id           => p_application_id
131139          , p_ae_header_id             => l_ae_header_id 
131140 , p_source_10 => p_source_10
131141 , p_source_10_meaning => p_source_10_meaning
131142 , p_source_15 => p_source_15
131143 , p_source_16 => p_source_16
131144 , p_source_17 => p_source_17
131145 , p_source_17_meaning => p_source_17_meaning
131146 , p_source_18 => p_source_18
131150          , x_transaction_coa_id       => l_adr_transaction_coa_id
131147 , p_source_25 => p_source_25
131148 , p_source_43 => p_source_43
131149 , p_source_43_meaning => p_source_43_meaning
131151          , x_accounting_coa_id        => l_adr_accounting_coa_id
131152          , x_value_type_code          => l_adr_value_type_code
131153          , p_side                     => 'NA'
131154    );
131155 
131156    xla_ae_lines_pkg.set_ccid(
131157     p_code_combination_id          => l_ccid
131158   , p_value_type_code              => l_adr_value_type_code
131159   , p_transaction_coa_id           => l_adr_transaction_coa_id
131160   , p_accounting_coa_id            => l_adr_accounting_coa_id
131161   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
131162   , p_adr_type_code                => 'S'
131163   , p_component_type               => l_component_type
131164   , p_component_code               => l_component_code
131165   , p_component_type_code          => l_component_type_code
131166   , p_component_appl_id            => l_component_appl_id
131167   , p_amb_context_code             => l_amb_context_code
131168   , p_side                         => 'NA'
131169   );
131170 
131171 
131172    l_segment := AcctDerRule_8(
131173            p_application_id           => p_application_id
131174          , p_ae_header_id             => l_ae_header_id 
131175 , p_source_10 => p_source_10
131176 , p_source_10_meaning => p_source_10_meaning
131177 , p_source_15 => p_source_15
131178 , p_source_16 => p_source_16
131179 , p_source_17 => p_source_17
131180 , p_source_17_meaning => p_source_17_meaning
131181 , p_source_18 => p_source_18
131182          , x_transaction_coa_id       => l_adr_transaction_coa_id
131183          , x_accounting_coa_id        => l_adr_accounting_coa_id
131184          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131185          , x_flex_value_set_id        => l_adr_flex_value_set_id
131186          , x_value_type_code          => l_adr_value_type_code
131187          , x_value_combination_id     => l_adr_value_combination_id
131188          , x_value_segment_code       => l_adr_value_segment_code
131189          , p_side                     => 'NA'
131190          , p_override_seg_flag        => 'Y'
131191    );
131192 
131193    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131194 
131195       xla_ae_lines_pkg.set_segment(
131196           p_to_segment_code         => 'GL_ACCOUNT'
131197         , p_segment_value           => l_segment
131198         , p_from_segment_code       => l_adr_value_segment_code
131199         , p_from_combination_id     => l_adr_value_combination_id
131200         , p_value_type_code         => l_adr_value_type_code
131201         , p_transaction_coa_id      => l_adr_transaction_coa_id
131202         , p_accounting_coa_id       => l_adr_accounting_coa_id
131203         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131204         , p_flex_value_set_id       => l_adr_flex_value_set_id
131205         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131206         , p_adr_type_code           => 'S'
131207         , p_component_type          => l_component_type
131208         , p_component_code          => l_component_code
131209         , p_component_type_code     => l_component_type_code
131210         , p_component_appl_id       => l_component_appl_id
131211         , p_amb_context_code        => l_amb_context_code
131212         , p_entity_code             => 'AP_INVOICES'
131213         , p_event_class_code        => 'CREDIT MEMOS'
131214         , p_side                    => 'NA'
131215         );
131216 
131217   END IF;
131218 
131219    l_segment := AcctDerRule_24(
131220            p_application_id           => p_application_id
131221          , p_ae_header_id             => l_ae_header_id 
131222 , p_source_10 => p_source_10
131223 , p_source_10_meaning => p_source_10_meaning
131224 , p_source_17 => p_source_17
131225 , p_source_17_meaning => p_source_17_meaning
131226 , p_source_25 => p_source_25
131227          , x_transaction_coa_id       => l_adr_transaction_coa_id
131228          , x_accounting_coa_id        => l_adr_accounting_coa_id
131229          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131230          , x_flex_value_set_id        => l_adr_flex_value_set_id
131231          , x_value_type_code          => l_adr_value_type_code
131232          , x_value_combination_id     => l_adr_value_combination_id
131233          , x_value_segment_code       => l_adr_value_segment_code
131234          , p_side                     => 'NA'
131235          , p_override_seg_flag        => 'Y'
131236    );
131237 
131238    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131239 
131240       xla_ae_lines_pkg.set_segment(
131241           p_to_segment_code         => 'GL_BALANCING'
131242         , p_segment_value           => l_segment
131243         , p_from_segment_code       => l_adr_value_segment_code
131244         , p_from_combination_id     => l_adr_value_combination_id
131245         , p_value_type_code         => l_adr_value_type_code
131246         , p_transaction_coa_id      => l_adr_transaction_coa_id
131247         , p_accounting_coa_id       => l_adr_accounting_coa_id
131248         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131249         , p_flex_value_set_id       => l_adr_flex_value_set_id
131250         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131251         , p_adr_type_code           => 'S'
131255         , p_component_appl_id       => l_component_appl_id
131252         , p_component_type          => l_component_type
131253         , p_component_code          => l_component_code
131254         , p_component_type_code     => l_component_type_code
131256         , p_amb_context_code        => l_amb_context_code
131257         , p_entity_code             => 'AP_INVOICES'
131258         , p_event_class_code        => 'CREDIT MEMOS'
131259         , p_side                    => 'NA'
131260         );
131261 
131262   END IF;
131263 
131264    --
131265    --
131266    END IF;
131267 
131268        --
131269        -- Update the line information that should be overwritten
131270        --
131271        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
131272                                          p_header_num   => 1);
131273        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
131274 
131275        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
131276 
131277        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
131278           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
131279        END IF;
131280 
131281       --
131282       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
131283       --
131284       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
131285           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
131286       ELSE
131287           ---------------------------------------------------------------------------------------------------
131288           -- 4262811a Switch Sign
131289           ---------------------------------------------------------------------------------------------------
131290           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
131291           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131292                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131293           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131294                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131295           -- 5132302
131296           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
131297                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131298 
131299       END IF;
131300 
131301       -- 4955764
131302       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
131304 
131305 
131306       XLA_AE_LINES_PKG.ValidateCurrentLine;
131307       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131308 
131309       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131310                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
131311                ,p_balance_type_code => l_balance_type_code);
131312 
131313    END IF;
131314 
131315    -----------------------------------------------------------------------------------------
131316    -- 4262811 Multiperiod Accounting
131317    -----------------------------------------------------------------------------------------
131318      -- No MPA option is assigned.
131319 
131320 
131321 END IF;
131322 END IF;
131323 --
131324 
131325 --
131326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131327    trace
131328       (p_msg      => 'END of AcctLineType_221'
131329       ,p_level    => C_LEVEL_PROCEDURE
131330       ,p_module   => l_log_module);
131331 END IF;
131332 --
131333 EXCEPTION
131334   WHEN xla_exceptions_pkg.application_exception THEN
131335       RAISE;
131336   WHEN OTHERS THEN
131337        xla_exceptions_pkg.raise_message
131338            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_221');
131339 END AcctLineType_221;
131340 --
131341 
131342 ---------------------------------------
131343 --
131344 -- PRIVATE FUNCTION
131345 --         AcctLineType_222
131346 --
131347 ---------------------------------------
131348 PROCEDURE AcctLineType_222 (
131349   p_application_id        IN NUMBER
131350  ,p_event_id              IN NUMBER
131351  ,p_calculate_acctd_flag  IN VARCHAR2
131352  ,p_calculate_g_l_flag    IN VARCHAR2
131353  ,p_actual_flag           IN OUT VARCHAR2
131354  ,p_balance_type_code     OUT VARCHAR2
131355  ,p_gain_or_loss_ref      OUT VARCHAR2
131356  
131357 --Invoice Distribution Description
131358  , p_source_1            IN VARCHAR2
131359 --Automatic Offsets Value
131360  , p_source_10            IN VARCHAR2
131361  , p_source_10_meaning    IN VARCHAR2
131362 --Purchase Order Rate Variance Gain Account
131363  , p_source_15            IN NUMBER
131364 --Invoice Distribution Ledger Amount
131365  , p_source_16            IN NUMBER
131366 --Destination Type of the PO Distribution
131367  , p_source_17            IN VARCHAR2
131368  , p_source_17_meaning    IN VARCHAR2
131369 --Purchase Order Rate Variance Loss Account
131370  , p_source_18            IN NUMBER
131371 --Invoice Distribution Account
131372  , p_source_25            IN NUMBER
131373 --Invoice Distribution Type
131377  , p_source_43            IN VARCHAR2
131374  , p_source_28            IN VARCHAR2
131375  , p_source_28_meaning    IN VARCHAR2
131376 --Automatic Offsets Flag
131378  , p_source_43_meaning    IN VARCHAR2
131379 --Accrue on Receipt Option
131380  , p_source_54            IN VARCHAR2
131381  , p_source_54_meaning    IN VARCHAR2
131382 --Accounting Reversal Indicator
131383  , p_source_58            IN VARCHAR2
131384 --Distribution Link Type
131385  , p_source_60            IN VARCHAR2
131386 --Allocation to Main Distribution Identifier
131387  , p_source_62            IN NUMBER
131388 --Invoice Identifier
131389  , p_source_63            IN NUMBER
131390 --Invoice Distribution Identifier
131391  , p_source_69            IN NUMBER
131392 --Payables Encumbrance Upgrade Credit Account
131393  , p_source_70            IN NUMBER
131394 --Payables Encumbrance Upgrade Credit Amount
131395  , p_source_71            IN NUMBER
131396 --Invoice Currency Code
131397  , p_source_72            IN VARCHAR2
131398 --Payables Encumbrance Upgrade Credit Base Amount
131399  , p_source_73            IN NUMBER
131400 --Payables Encumbrance Upgrade Debit Account
131401  , p_source_74            IN NUMBER
131402 --Payables Encumbrance Upgrade Debit Amount
131403  , p_source_75            IN NUMBER
131404 --Payables Encumbrance Upgrade Debit Base Amount
131405  , p_source_76            IN NUMBER
131406 --Payables Encumbrance Upgrade Option
131407  , p_source_77            IN VARCHAR2
131408 --Invoice Distribution Amount
131409  , p_source_78            IN NUMBER
131410 --Deferred Accounting End Date
131411  , p_source_82            IN DATE
131412 --Deferred Accounting Option
131413  , p_source_83            IN VARCHAR2
131414 --Deferred Accounting Start Date
131415  , p_source_84            IN DATE
131416 --Override Accounted Amount Indicator
131417  , p_source_85            IN VARCHAR2
131418  , p_source_85_meaning    IN VARCHAR2
131419 --Invoice Supplier Identifier
131420  , p_source_86            IN NUMBER
131421 --Invoice Supplier Site Identifier
131422  , p_source_87            IN NUMBER
131423 --Third Party Type
131424  , p_source_88            IN VARCHAR2
131425 --Parent Reversal Identifier
131426  , p_source_89            IN NUMBER
131427 --Invoice Distribution Tax Line Identifier
131428  , p_source_91            IN NUMBER
131429 --Invoice Distribution Tax Distribution Identifier from Tax
131430  , p_source_92            IN NUMBER
131431 --Invoice Distribution Summary Tax Line Identifier
131432  , p_source_93            IN NUMBER
131433 --Payables Upgrade Credit Encumbrance Type Identifier
131434  , p_source_94            IN NUMBER
131435 --Payables Upgrade Debit Encumbrance Type Identifier
131436  , p_source_95            IN NUMBER
131437 --Business Flow Accounts Payable Application Identifier
131438  , p_source_96            IN NUMBER
131439 --Business Flow Invoice Distribution Type
131440  , p_source_97            IN VARCHAR2
131441 --Business Flow Invoice Entity Code
131442  , p_source_98            IN VARCHAR2
131443 --Business Flow Invoice Distribution Identifier
131444  , p_source_99            IN NUMBER
131445 --Business Flow Invoice Identifier
131446  , p_source_100            IN NUMBER
131447 --Invoice Exchange Date
131448  , p_source_146            IN DATE
131449 --Invoice Exchange Rate
131450  , p_source_147            IN NUMBER
131451 --Invoice Exchange Rate Type
131452  , p_source_148            IN VARCHAR2
131453 )
131454 IS
131455 
131456 l_component_type              VARCHAR2(80);
131457 l_component_code              VARCHAR2(30);
131458 l_component_type_code         VARCHAR2(1);
131459 l_component_appl_id           INTEGER;
131460 l_amb_context_code            VARCHAR2(30);
131461 l_entity_code                 VARCHAR2(30);
131462 l_event_class_code            VARCHAR2(30);
131463 l_ae_header_id                NUMBER;
131464 l_event_type_code             VARCHAR2(30);
131465 l_line_definition_code        VARCHAR2(30);
131466 l_line_definition_owner_code  VARCHAR2(1);
131467 --
131468 -- adr variables
131469 l_segment                     VARCHAR2(30);
131470 l_ccid                        NUMBER;
131471 l_adr_transaction_coa_id      NUMBER;
131472 l_adr_accounting_coa_id       NUMBER;
131473 l_adr_flexfield_segment_code  VARCHAR2(30);
131474 l_adr_flex_value_set_id       NUMBER;
131475 l_adr_value_type_code         VARCHAR2(30);
131476 l_adr_value_combination_id    NUMBER;
131477 l_adr_value_segment_code      VARCHAR2(30);
131478 
131479 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
131480 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
131481 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
131482 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
131483 
131484 -- 4262811 Variables ------------------------------------------------------------------------------------------
131485 l_entered_amt_idx             NUMBER;
131486 l_accted_amt_idx              NUMBER;
131487 l_acc_rev_flag                VARCHAR2(1);
131488 l_accrual_line_num            NUMBER;
131489 l_tmp_amt                     NUMBER;
131490 l_acc_rev_natural_side_code   VARCHAR2(1);
131491 
131492 l_num_entries                 NUMBER;
131493 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
131494 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
131495 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
131496 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
131497 l_recog_line_1                NUMBER;
131501 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
131498 l_recog_line_2                NUMBER;
131499 
131500 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
131502 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
131503 
131504 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
131505 
131506 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
131507 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
131508 
131509 ---------------------------------------------------------------------------------------------------------------
131510 
131511 
131512 --
131513 -- bulk performance
131514 --
131515 l_balance_type_code           VARCHAR2(1);
131516 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
131517 l_log_module                  VARCHAR2(240);
131518 
131519 --
131520 -- Upgrade strategy
131521 --
131522 l_actual_upg_option           VARCHAR2(1);
131523 l_enc_upg_option           VARCHAR2(1);
131524 
131525 --
131526 BEGIN
131527 --
131528 IF g_log_enabled THEN
131529       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_222';
131530 END IF;
131531 --
131532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131533 
131534       trace
131535          (p_msg      => 'BEGIN of AcctLineType_222'
131536          ,p_level    => C_LEVEL_PROCEDURE
131537          ,p_module   => l_log_module);
131538 
131539 END IF;
131540 --
131541 l_component_type             := 'AMB_JLT';
131542 l_component_code             := 'AP_TAX_EX_RATE_VAR_DM';
131543 l_component_type_code        := 'S';
131544 l_component_appl_id          :=  200;
131545 l_amb_context_code           := 'DEFAULT';
131546 l_entity_code                := 'AP_INVOICES';
131547 l_event_class_code           := 'DEBIT MEMOS';
131548 l_event_type_code            := 'DEBIT MEMOS_ALL';
131549 l_line_definition_owner_code := 'S';
131550 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
131551 --
131552 l_balance_type_code          := 'A';
131553 l_segment                     := NULL;
131554 l_ccid                        := NULL;
131555 l_adr_transaction_coa_id      := NULL;
131556 l_adr_accounting_coa_id       := NULL;
131557 l_adr_flexfield_segment_code  := NULL;
131558 l_adr_flex_value_set_id       := NULL;
131559 l_adr_value_type_code         := NULL;
131560 l_adr_value_combination_id    := NULL;
131561 l_adr_value_segment_code      := NULL;
131562 
131563 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
131564 l_bflow_class_code           := '';    -- 4219869 Business Flow
131565 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
131566 l_budgetary_control_flag     := 'N';
131567 
131568 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
131569 l_bflow_applied_to_amt       := NULL; -- 5132302
131570 l_entered_amt_idx            := NULL;          -- 4262811
131571 l_accted_amt_idx             := NULL;          -- 4262811
131572 l_acc_rev_flag               := NULL;          -- 4262811
131573 l_accrual_line_num           := NULL;          -- 4262811
131574 l_tmp_amt                    := NULL;          -- 4262811
131575 --
131576 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
131577             (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
131578                return;
131579   END IF;
131580   
131581 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
131582     l_balance_type_code <> 'B' THEN
131583 IF NVL(p_source_28,'
131584 ') =  'TERV' AND 
131585 NVL(p_source_54,'
131586 ') =  'Y'
131587  THEN 
131588 
131589    --
131590    XLA_AE_LINES_PKG.SetNewLine;
131591 
131592    p_balance_type_code          := l_balance_type_code;
131593    -- set the flag so later we will know whether the gain loss line needs to be created
131594    
131595    IF(l_balance_type_code = 'A' ) THEN
131596      p_actual_flag :='G';
131597    END IF;
131598 
131599    --
131600    -- bulk performance
131601    --
131602    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
131603                                       p_header_num   => 0); -- 4262811
131604    --
131605    -- set accounting line options
131606    --
131607    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
131608            p_natural_side_code          => 'D'
131609          , p_gain_or_loss_flag          => 'Y'
131610          , p_gl_transfer_mode_code      => 'S'
131611          , p_acct_entry_type_code       => 'A'
131612          , p_switch_side_flag           => 'Y'
131613          , p_merge_duplicate_code       => 'A'
131614          );
131615    --
131616    l_acc_rev_natural_side_code := 'C';  -- 4262811
131617    -- 
131618    --
131619    -- set accounting line type info
131620    --
131621    xla_ae_lines_pkg.SetAcctLineType
131622       (p_component_type             => l_component_type
131623       ,p_event_type_code            => l_event_type_code
131624       ,p_line_definition_owner_code => l_line_definition_owner_code
131625       ,p_line_definition_code       => l_line_definition_code
131626       ,p_accounting_line_code       => l_component_code
131627       ,p_accounting_line_type_code  => l_component_type_code
131631       ,p_event_class_code           => l_event_class_code);
131628       ,p_accounting_line_appl_id    => l_component_appl_id
131629       ,p_amb_context_code           => l_amb_context_code
131630       ,p_entity_code                => l_entity_code
131632    --
131633    -- set accounting class
131634    --
131635    xla_ae_lines_pkg.SetAcctClass(
131636            p_accounting_class_code  => 'TERV'
131637          , p_ae_header_id           => l_ae_header_id
131638          );
131639 
131640    --
131641    -- set rounding class
131642    --
131643    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
131644                       'TERV';
131645 
131646    --
131647    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
131648    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
131649    --
131650    -- bulk performance
131651    --
131652    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
131653 
131654    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
131655       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
131656 
131657    -- 4955764
131658    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131659       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
131660 
131661    -- 4458381 Public Sector Enh
131662    
131663    --
131664    -- set accounting attributes for the line type
131665    --
131666    l_entered_amt_idx := 23;
131667    l_accted_amt_idx  := 28;
131668    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
131669    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
131670    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
131671    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
131672    l_rec_acct_attrs.array_num_value(2)  := 
131673 xla_ae_sources_pkg.GetSystemSourceNum(
131674    p_source_code           => 'XLA_EVENT_APPL_ID'
131675  , p_source_type_code      => 'Y'
131676  , p_source_application_id =>  602
131677 );
131678    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
131679    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
131680    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
131681    l_rec_acct_attrs.array_char_value(4)  := 
131682 xla_ae_sources_pkg.GetSystemSourceChar(
131683    p_source_code           => 'XLA_ENTITY_CODE'
131684  , p_source_type_code      => 'Y'
131685  , p_source_application_id =>  602
131686 );
131687    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
131688    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
131689    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
131690    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
131691    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
131692    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
131693    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
131694    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
131695    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
131696    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
131697    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
131698    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
131699    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
131700    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
131701    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
131702    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
131703    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
131704    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
131705    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
131706    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
131707    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
131708    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
131709    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
131710    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
131711    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
131712    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
131713    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
131714    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
131715    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
131716    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
131717    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
131718    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
131719    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
131720    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
131721    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
131722    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
131723    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
131724    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
131725    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
131726    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
131727    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
131731    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
131728    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
131729    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
131730    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
131732    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
131733    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
131734    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
131735    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
131736    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
131737    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
131738    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
131739    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
131740    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
131741    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
131742    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
131743    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
131744    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
131745    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
131746    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
131747    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
131748    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
131749    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
131750    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
131751    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
131752    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
131753    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
131754    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
131755    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
131756    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
131757    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
131758    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
131759    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
131760    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
131761    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
131762    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
131763 
131764    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
131765    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
131766 
131767    ---------------------------------------------------------------------------------------------------------------
131768    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
131769    ---------------------------------------------------------------------------------------------------------------
131770    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
131771 
131772    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131773    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131774 
131775    IF xla_accounting_cache_pkg.GetValueChar
131776          (p_source_code         => 'LEDGER_CATEGORY_CODE'
131777          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
131778    AND l_bflow_method_code = 'PRIOR_ENTRY'
131779 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
131780    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
131781          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
131782        )
131783    THEN
131784          xla_ae_lines_pkg.BflowUpgEntry
131785            (p_business_method_code    => l_bflow_method_code
131786            ,p_business_class_code     => l_bflow_class_code
131787            ,p_balance_type            => l_balance_type_code);
131788    ELSE
131789       NULL;
131790 -- No business flow processing for business flow method of NONE.
131791    END IF;
131792 
131793    --
131794    -- call analytical criteria
131795    --
131796    
131797    --
131798    -- call description
131799    --
131800    
131801 xla_ae_lines_pkg.SetLineDescription(
131802    p_ae_header_id => l_ae_header_id
131803   ,p_description  => Description_2 (
131804      p_application_id         => p_application_id
131805    , p_ae_header_id           => l_ae_header_id 
131806 , p_source_1 => p_source_1
131807    )
131808 );
131809 
131810 
131811    --
131812    -- call ADRs
131813    -- Bug 4922099
131814    --
131815    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131816         (NVL(l_actual_upg_option, 'N') = 'O') OR
131817         (NVL(l_enc_upg_option, 'N') = 'O')
131818       )
131819    THEN
131820    NULL;
131821    --
131822    --
131823    
131824   l_ccid := AcctDerRule_32(
131825            p_application_id           => p_application_id
131826          , p_ae_header_id             => l_ae_header_id 
131827 , p_source_10 => p_source_10
131828 , p_source_10_meaning => p_source_10_meaning
131829 , p_source_15 => p_source_15
131830 , p_source_16 => p_source_16
131831 , p_source_17 => p_source_17
131832 , p_source_17_meaning => p_source_17_meaning
131833 , p_source_18 => p_source_18
131834 , p_source_25 => p_source_25
131835 , p_source_43 => p_source_43
131836 , p_source_43_meaning => p_source_43_meaning
131837          , x_transaction_coa_id       => l_adr_transaction_coa_id
131841    );
131838          , x_accounting_coa_id        => l_adr_accounting_coa_id
131839          , x_value_type_code          => l_adr_value_type_code
131840          , p_side                     => 'NA'
131842 
131843    xla_ae_lines_pkg.set_ccid(
131844     p_code_combination_id          => l_ccid
131845   , p_value_type_code              => l_adr_value_type_code
131846   , p_transaction_coa_id           => l_adr_transaction_coa_id
131847   , p_accounting_coa_id            => l_adr_accounting_coa_id
131848   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
131849   , p_adr_type_code                => 'S'
131850   , p_component_type               => l_component_type
131851   , p_component_code               => l_component_code
131852   , p_component_type_code          => l_component_type_code
131853   , p_component_appl_id            => l_component_appl_id
131854   , p_amb_context_code             => l_amb_context_code
131855   , p_side                         => 'NA'
131856   );
131857 
131858 
131859    l_segment := AcctDerRule_8(
131860            p_application_id           => p_application_id
131861          , p_ae_header_id             => l_ae_header_id 
131862 , p_source_10 => p_source_10
131863 , p_source_10_meaning => p_source_10_meaning
131864 , p_source_15 => p_source_15
131865 , p_source_16 => p_source_16
131866 , p_source_17 => p_source_17
131867 , p_source_17_meaning => p_source_17_meaning
131868 , p_source_18 => p_source_18
131869          , x_transaction_coa_id       => l_adr_transaction_coa_id
131870          , x_accounting_coa_id        => l_adr_accounting_coa_id
131871          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131872          , x_flex_value_set_id        => l_adr_flex_value_set_id
131873          , x_value_type_code          => l_adr_value_type_code
131874          , x_value_combination_id     => l_adr_value_combination_id
131875          , x_value_segment_code       => l_adr_value_segment_code
131876          , p_side                     => 'NA'
131877          , p_override_seg_flag        => 'Y'
131878    );
131879 
131880    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131881 
131882       xla_ae_lines_pkg.set_segment(
131883           p_to_segment_code         => 'GL_ACCOUNT'
131884         , p_segment_value           => l_segment
131885         , p_from_segment_code       => l_adr_value_segment_code
131886         , p_from_combination_id     => l_adr_value_combination_id
131887         , p_value_type_code         => l_adr_value_type_code
131888         , p_transaction_coa_id      => l_adr_transaction_coa_id
131889         , p_accounting_coa_id       => l_adr_accounting_coa_id
131890         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131891         , p_flex_value_set_id       => l_adr_flex_value_set_id
131892         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131893         , p_adr_type_code           => 'S'
131894         , p_component_type          => l_component_type
131895         , p_component_code          => l_component_code
131896         , p_component_type_code     => l_component_type_code
131897         , p_component_appl_id       => l_component_appl_id
131898         , p_amb_context_code        => l_amb_context_code
131899         , p_entity_code             => 'AP_INVOICES'
131900         , p_event_class_code        => 'DEBIT MEMOS'
131901         , p_side                    => 'NA'
131902         );
131903 
131904   END IF;
131905 
131906    l_segment := AcctDerRule_24(
131907            p_application_id           => p_application_id
131908          , p_ae_header_id             => l_ae_header_id 
131909 , p_source_10 => p_source_10
131910 , p_source_10_meaning => p_source_10_meaning
131911 , p_source_17 => p_source_17
131912 , p_source_17_meaning => p_source_17_meaning
131913 , p_source_25 => p_source_25
131914          , x_transaction_coa_id       => l_adr_transaction_coa_id
131915          , x_accounting_coa_id        => l_adr_accounting_coa_id
131916          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131917          , x_flex_value_set_id        => l_adr_flex_value_set_id
131918          , x_value_type_code          => l_adr_value_type_code
131919          , x_value_combination_id     => l_adr_value_combination_id
131920          , x_value_segment_code       => l_adr_value_segment_code
131921          , p_side                     => 'NA'
131922          , p_override_seg_flag        => 'Y'
131923    );
131924 
131925    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131926 
131927       xla_ae_lines_pkg.set_segment(
131928           p_to_segment_code         => 'GL_BALANCING'
131929         , p_segment_value           => l_segment
131930         , p_from_segment_code       => l_adr_value_segment_code
131931         , p_from_combination_id     => l_adr_value_combination_id
131932         , p_value_type_code         => l_adr_value_type_code
131933         , p_transaction_coa_id      => l_adr_transaction_coa_id
131934         , p_accounting_coa_id       => l_adr_accounting_coa_id
131935         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131936         , p_flex_value_set_id       => l_adr_flex_value_set_id
131937         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131938         , p_adr_type_code           => 'S'
131939         , p_component_type          => l_component_type
131940         , p_component_code          => l_component_code
131941         , p_component_type_code     => l_component_type_code
131942         , p_component_appl_id       => l_component_appl_id
131946         , p_side                    => 'NA'
131943         , p_amb_context_code        => l_amb_context_code
131944         , p_entity_code             => 'AP_INVOICES'
131945         , p_event_class_code        => 'DEBIT MEMOS'
131947         );
131948 
131949   END IF;
131950 
131951    --
131952    --
131953    END IF;
131954    --
131955    -- Bug 4922099
131956    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
131957           (NVL(l_enc_upg_option, 'N') = 'O')
131958         ) AND
131959         (l_bflow_method_code = 'PRIOR_ENTRY')
131960       )
131961    THEN
131962       IF
131963       --
131964       1 = 2
131965       --
131966       THEN
131967       xla_accounting_err_pkg.build_message
131968                                     (p_appli_s_name            => 'XLA'
131969                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131970                                     ,p_token_1                 => 'LINE_NUMBER'
131971                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
131972                                     ,p_token_2                 => 'LINE_TYPE_NAME'
131973                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
131974                                                                              l_component_type
131975                                                                             ,l_component_code
131976                                                                             ,l_component_type_code
131977                                                                             ,l_component_appl_id
131978                                                                             ,l_amb_context_code
131979                                                                             ,l_entity_code
131980                                                                             ,l_event_class_code
131981                                                                            )
131982                                     ,p_token_3                 => 'OWNER'
131983                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
131984                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
131985                                                                           ,p_lookup_code    => l_component_type_code
131986                                                                          )
131987                                     ,p_token_4                 => 'PRODUCT_NAME'
131988                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
131989                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
131990                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
131991                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
131992                                     ,p_ae_header_id            =>  NULL
131993                                        );
131994 
131995         IF (C_LEVEL_ERROR>= g_log_level) THEN
131996                  trace
131997                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131998                       ,p_level    => C_LEVEL_ERROR
131999                       ,p_module   => l_log_module);
132000         END IF;
132001       END IF;
132002    END IF;
132003    --
132004    --
132005    ------------------------------------------------------------------------------------------------
132006    -- 4219869 Business Flow
132007    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
132008    -- Prior Entry.  Currently, the following code is always generated.
132009    ------------------------------------------------------------------------------------------------
132010    XLA_AE_LINES_PKG.ValidateCurrentLine;
132011 
132012    ------------------------------------------------------------------------------------
132013    -- 4219869 Business Flow
132014    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
132015    ------------------------------------------------------------------------------------
132016    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132017 
132018    ----------------------------------------------------------------------------------
132019    -- 4219869 Business Flow
132020    -- Update journal entry status -- Need to generate this within IF <condition>
132021    ----------------------------------------------------------------------------------
132022    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132023          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
132024          ,p_balance_type_code => l_balance_type_code
132025          );
132026 
132027    -------------------------------------------------------------------------------------------
132028    -- 4262811 - Generate the Accrual Reversal lines
132029    -------------------------------------------------------------------------------------------
132030    BEGIN
132031       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
132032                               (g_array_event(p_event_id).array_value_num('header_index'));
132033       IF l_acc_rev_flag IS NULL THEN
132034          l_acc_rev_flag := 'N';
132035       END IF;
132036    EXCEPTION
132037       WHEN OTHERS THEN
132038          l_acc_rev_flag := 'N';
132039    END;
132040    --
132044        -- To allow MPA report to determine if it should generate report process
132041    IF (l_acc_rev_flag = 'Y') THEN
132042 
132043        -- 4645092  ------------------------------------------------------------------------------
132045        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
132046        ------------------------------------------------------------------------------------------
132047 
132048        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
132049        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
132050    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
132051    -- call ADRs
132052    -- Bug 4922099
132053    --
132054    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132055         (NVL(l_actual_upg_option, 'N') = 'O') OR
132056         (NVL(l_enc_upg_option, 'N') = 'O')
132057       )
132058    THEN
132059    NULL;
132060    --
132061    --
132062    
132063   l_ccid := AcctDerRule_32(
132064            p_application_id           => p_application_id
132065          , p_ae_header_id             => l_ae_header_id 
132066 , p_source_10 => p_source_10
132067 , p_source_10_meaning => p_source_10_meaning
132068 , p_source_15 => p_source_15
132069 , p_source_16 => p_source_16
132070 , p_source_17 => p_source_17
132071 , p_source_17_meaning => p_source_17_meaning
132072 , p_source_18 => p_source_18
132073 , p_source_25 => p_source_25
132074 , p_source_43 => p_source_43
132075 , p_source_43_meaning => p_source_43_meaning
132076          , x_transaction_coa_id       => l_adr_transaction_coa_id
132077          , x_accounting_coa_id        => l_adr_accounting_coa_id
132078          , x_value_type_code          => l_adr_value_type_code
132079          , p_side                     => 'NA'
132080    );
132081 
132082    xla_ae_lines_pkg.set_ccid(
132083     p_code_combination_id          => l_ccid
132084   , p_value_type_code              => l_adr_value_type_code
132085   , p_transaction_coa_id           => l_adr_transaction_coa_id
132086   , p_accounting_coa_id            => l_adr_accounting_coa_id
132087   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
132088   , p_adr_type_code                => 'S'
132089   , p_component_type               => l_component_type
132090   , p_component_code               => l_component_code
132091   , p_component_type_code          => l_component_type_code
132092   , p_component_appl_id            => l_component_appl_id
132093   , p_amb_context_code             => l_amb_context_code
132094   , p_side                         => 'NA'
132095   );
132096 
132097 
132098    l_segment := AcctDerRule_8(
132099            p_application_id           => p_application_id
132100          , p_ae_header_id             => l_ae_header_id 
132101 , p_source_10 => p_source_10
132102 , p_source_10_meaning => p_source_10_meaning
132103 , p_source_15 => p_source_15
132104 , p_source_16 => p_source_16
132105 , p_source_17 => p_source_17
132106 , p_source_17_meaning => p_source_17_meaning
132107 , p_source_18 => p_source_18
132108          , x_transaction_coa_id       => l_adr_transaction_coa_id
132109          , x_accounting_coa_id        => l_adr_accounting_coa_id
132110          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132111          , x_flex_value_set_id        => l_adr_flex_value_set_id
132112          , x_value_type_code          => l_adr_value_type_code
132113          , x_value_combination_id     => l_adr_value_combination_id
132114          , x_value_segment_code       => l_adr_value_segment_code
132115          , p_side                     => 'NA'
132116          , p_override_seg_flag        => 'Y'
132117    );
132118 
132119    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132120 
132121       xla_ae_lines_pkg.set_segment(
132122           p_to_segment_code         => 'GL_ACCOUNT'
132123         , p_segment_value           => l_segment
132124         , p_from_segment_code       => l_adr_value_segment_code
132125         , p_from_combination_id     => l_adr_value_combination_id
132126         , p_value_type_code         => l_adr_value_type_code
132127         , p_transaction_coa_id      => l_adr_transaction_coa_id
132128         , p_accounting_coa_id       => l_adr_accounting_coa_id
132129         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132130         , p_flex_value_set_id       => l_adr_flex_value_set_id
132131         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
132132         , p_adr_type_code           => 'S'
132133         , p_component_type          => l_component_type
132134         , p_component_code          => l_component_code
132135         , p_component_type_code     => l_component_type_code
132136         , p_component_appl_id       => l_component_appl_id
132137         , p_amb_context_code        => l_amb_context_code
132138         , p_entity_code             => 'AP_INVOICES'
132139         , p_event_class_code        => 'DEBIT MEMOS'
132140         , p_side                    => 'NA'
132141         );
132142 
132143   END IF;
132144 
132145    l_segment := AcctDerRule_24(
132146            p_application_id           => p_application_id
132147          , p_ae_header_id             => l_ae_header_id 
132148 , p_source_10 => p_source_10
132149 , p_source_10_meaning => p_source_10_meaning
132150 , p_source_17 => p_source_17
132151 , p_source_17_meaning => p_source_17_meaning
132152 , p_source_25 => p_source_25
132153          , x_transaction_coa_id       => l_adr_transaction_coa_id
132154          , x_accounting_coa_id        => l_adr_accounting_coa_id
132158          , x_value_combination_id     => l_adr_value_combination_id
132155          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132156          , x_flex_value_set_id        => l_adr_flex_value_set_id
132157          , x_value_type_code          => l_adr_value_type_code
132159          , x_value_segment_code       => l_adr_value_segment_code
132160          , p_side                     => 'NA'
132161          , p_override_seg_flag        => 'Y'
132162    );
132163 
132164    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132165 
132166       xla_ae_lines_pkg.set_segment(
132167           p_to_segment_code         => 'GL_BALANCING'
132168         , p_segment_value           => l_segment
132169         , p_from_segment_code       => l_adr_value_segment_code
132170         , p_from_combination_id     => l_adr_value_combination_id
132171         , p_value_type_code         => l_adr_value_type_code
132172         , p_transaction_coa_id      => l_adr_transaction_coa_id
132173         , p_accounting_coa_id       => l_adr_accounting_coa_id
132174         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132175         , p_flex_value_set_id       => l_adr_flex_value_set_id
132176         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
132177         , p_adr_type_code           => 'S'
132178         , p_component_type          => l_component_type
132179         , p_component_code          => l_component_code
132180         , p_component_type_code     => l_component_type_code
132181         , p_component_appl_id       => l_component_appl_id
132182         , p_amb_context_code        => l_amb_context_code
132183         , p_entity_code             => 'AP_INVOICES'
132184         , p_event_class_code        => 'DEBIT MEMOS'
132185         , p_side                    => 'NA'
132186         );
132187 
132188   END IF;
132189 
132190    --
132191    --
132192    END IF;
132193 
132194        --
132195        -- Update the line information that should be overwritten
132196        --
132197        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
132198                                          p_header_num   => 1);
132199        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
132200 
132201        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
132202 
132203        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
132204           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
132205        END IF;
132206 
132207       --
132208       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
132209       --
132210       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
132211           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
132212       ELSE
132213           ---------------------------------------------------------------------------------------------------
132214           -- 4262811a Switch Sign
132215           ---------------------------------------------------------------------------------------------------
132216           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
132217           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132218                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132219           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132220                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132221           -- 5132302
132222           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
132223                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132224 
132225       END IF;
132226 
132227       -- 4955764
132228       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132229       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
132230 
132231 
132232       XLA_AE_LINES_PKG.ValidateCurrentLine;
132233       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132234 
132235       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132236                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
132237                ,p_balance_type_code => l_balance_type_code);
132238 
132239    END IF;
132240 
132241    -----------------------------------------------------------------------------------------
132242    -- 4262811 Multiperiod Accounting
132243    -----------------------------------------------------------------------------------------
132244      -- No MPA option is assigned.
132245 
132246 
132247 END IF;
132248 END IF;
132249 --
132250 
132251 --
132252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132253    trace
132254       (p_msg      => 'END of AcctLineType_222'
132255       ,p_level    => C_LEVEL_PROCEDURE
132256       ,p_module   => l_log_module);
132257 END IF;
132258 --
132259 EXCEPTION
132260   WHEN xla_exceptions_pkg.application_exception THEN
132261       RAISE;
132262   WHEN OTHERS THEN
132263        xla_exceptions_pkg.raise_message
132264            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_222');
132265 END AcctLineType_222;
132266 --
132267 
132271 --         AcctLineType_223
132268 ---------------------------------------
132269 --
132270 -- PRIVATE FUNCTION
132272 --
132273 ---------------------------------------
132274 PROCEDURE AcctLineType_223 (
132275   p_application_id        IN NUMBER
132276  ,p_event_id              IN NUMBER
132277  ,p_calculate_acctd_flag  IN VARCHAR2
132278  ,p_calculate_g_l_flag    IN VARCHAR2
132279  ,p_actual_flag           IN OUT VARCHAR2
132280  ,p_balance_type_code     OUT VARCHAR2
132281  ,p_gain_or_loss_ref      OUT VARCHAR2
132282  
132283 --Invoice Distribution Description
132284  , p_source_1            IN VARCHAR2
132285 --Automatic Offsets Value
132286  , p_source_10            IN VARCHAR2
132287  , p_source_10_meaning    IN VARCHAR2
132288 --Purchase Order Rate Variance Gain Account
132289  , p_source_15            IN NUMBER
132290 --Invoice Distribution Ledger Amount
132291  , p_source_16            IN NUMBER
132292 --Destination Type of the PO Distribution
132293  , p_source_17            IN VARCHAR2
132294  , p_source_17_meaning    IN VARCHAR2
132295 --Purchase Order Rate Variance Loss Account
132296  , p_source_18            IN NUMBER
132297 --Invoice Distribution Account
132298  , p_source_25            IN NUMBER
132299 --Invoice Distribution Type
132300  , p_source_28            IN VARCHAR2
132301  , p_source_28_meaning    IN VARCHAR2
132302 --Automatic Offsets Flag
132303  , p_source_43            IN VARCHAR2
132304  , p_source_43_meaning    IN VARCHAR2
132305 --Accrue on Receipt Option
132306  , p_source_54            IN VARCHAR2
132307  , p_source_54_meaning    IN VARCHAR2
132308 --Accounting Reversal Indicator
132309  , p_source_58            IN VARCHAR2
132310 --Distribution Link Type
132311  , p_source_60            IN VARCHAR2
132312 --Allocation to Main Distribution Identifier
132313  , p_source_62            IN NUMBER
132314 --Invoice Identifier
132315  , p_source_63            IN NUMBER
132316 --Invoice Distribution Identifier
132317  , p_source_69            IN NUMBER
132318 --Payables Encumbrance Upgrade Credit Account
132319  , p_source_70            IN NUMBER
132320 --Payables Encumbrance Upgrade Credit Amount
132321  , p_source_71            IN NUMBER
132322 --Invoice Currency Code
132323  , p_source_72            IN VARCHAR2
132324 --Payables Encumbrance Upgrade Credit Base Amount
132325  , p_source_73            IN NUMBER
132326 --Payables Encumbrance Upgrade Debit Account
132327  , p_source_74            IN NUMBER
132328 --Payables Encumbrance Upgrade Debit Amount
132329  , p_source_75            IN NUMBER
132330 --Payables Encumbrance Upgrade Debit Base Amount
132331  , p_source_76            IN NUMBER
132332 --Payables Encumbrance Upgrade Option
132333  , p_source_77            IN VARCHAR2
132334 --Invoice Distribution Amount
132335  , p_source_78            IN NUMBER
132336 --Deferred Accounting End Date
132337  , p_source_82            IN DATE
132338 --Deferred Accounting Option
132339  , p_source_83            IN VARCHAR2
132340 --Deferred Accounting Start Date
132341  , p_source_84            IN DATE
132342 --Override Accounted Amount Indicator
132343  , p_source_85            IN VARCHAR2
132344  , p_source_85_meaning    IN VARCHAR2
132345 --Invoice Supplier Identifier
132346  , p_source_86            IN NUMBER
132347 --Invoice Supplier Site Identifier
132348  , p_source_87            IN NUMBER
132349 --Third Party Type
132350  , p_source_88            IN VARCHAR2
132351 --Parent Reversal Identifier
132352  , p_source_89            IN NUMBER
132353 --Invoice Distribution Statistical Amount
132354  , p_source_90            IN NUMBER
132355 --Invoice Distribution Tax Line Identifier
132356  , p_source_91            IN NUMBER
132357 --Invoice Distribution Tax Distribution Identifier from Tax
132358  , p_source_92            IN NUMBER
132359 --Invoice Distribution Summary Tax Line Identifier
132360  , p_source_93            IN NUMBER
132361 --Payables Upgrade Credit Encumbrance Type Identifier
132362  , p_source_94            IN NUMBER
132363 --Payables Upgrade Debit Encumbrance Type Identifier
132364  , p_source_95            IN NUMBER
132365 --Business Flow Accounts Payable Application Identifier
132366  , p_source_96            IN NUMBER
132367 --Business Flow Invoice Distribution Type
132368  , p_source_97            IN VARCHAR2
132369 --Business Flow Invoice Entity Code
132370  , p_source_98            IN VARCHAR2
132371 --Business Flow Invoice Distribution Identifier
132372  , p_source_99            IN NUMBER
132373 --Business Flow Invoice Identifier
132374  , p_source_100            IN NUMBER
132375 --Invoice Exchange Date
132376  , p_source_146            IN DATE
132377 --Invoice Exchange Rate
132378  , p_source_147            IN NUMBER
132379 --Invoice Exchange Rate Type
132380  , p_source_148            IN VARCHAR2
132381 )
132382 IS
132383 
132384 l_component_type              VARCHAR2(80);
132385 l_component_code              VARCHAR2(30);
132386 l_component_type_code         VARCHAR2(1);
132387 l_component_appl_id           INTEGER;
132388 l_amb_context_code            VARCHAR2(30);
132389 l_entity_code                 VARCHAR2(30);
132390 l_event_class_code            VARCHAR2(30);
132391 l_ae_header_id                NUMBER;
132392 l_event_type_code             VARCHAR2(30);
132393 l_line_definition_code        VARCHAR2(30);
132394 l_line_definition_owner_code  VARCHAR2(1);
132395 --
132396 -- adr variables
132397 l_segment                     VARCHAR2(30);
132398 l_ccid                        NUMBER;
132399 l_adr_transaction_coa_id      NUMBER;
132403 l_adr_value_type_code         VARCHAR2(30);
132400 l_adr_accounting_coa_id       NUMBER;
132401 l_adr_flexfield_segment_code  VARCHAR2(30);
132402 l_adr_flex_value_set_id       NUMBER;
132404 l_adr_value_combination_id    NUMBER;
132405 l_adr_value_segment_code      VARCHAR2(30);
132406 
132407 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
132408 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
132409 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
132410 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
132411 
132412 -- 4262811 Variables ------------------------------------------------------------------------------------------
132413 l_entered_amt_idx             NUMBER;
132414 l_accted_amt_idx              NUMBER;
132415 l_acc_rev_flag                VARCHAR2(1);
132416 l_accrual_line_num            NUMBER;
132417 l_tmp_amt                     NUMBER;
132418 l_acc_rev_natural_side_code   VARCHAR2(1);
132419 
132420 l_num_entries                 NUMBER;
132421 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
132422 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
132423 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
132424 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
132425 l_recog_line_1                NUMBER;
132426 l_recog_line_2                NUMBER;
132427 
132428 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
132429 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
132430 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
132431 
132432 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
132433 
132434 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
132435 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
132436 
132437 ---------------------------------------------------------------------------------------------------------------
132438 
132439 
132440 --
132441 -- bulk performance
132442 --
132443 l_balance_type_code           VARCHAR2(1);
132444 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
132445 l_log_module                  VARCHAR2(240);
132446 
132447 --
132448 -- Upgrade strategy
132449 --
132450 l_actual_upg_option           VARCHAR2(1);
132451 l_enc_upg_option           VARCHAR2(1);
132452 
132453 --
132454 BEGIN
132455 --
132456 IF g_log_enabled THEN
132457       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_223';
132458 END IF;
132459 --
132460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132461 
132462       trace
132463          (p_msg      => 'BEGIN of AcctLineType_223'
132464          ,p_level    => C_LEVEL_PROCEDURE
132465          ,p_module   => l_log_module);
132466 
132467 END IF;
132468 --
132469 l_component_type             := 'AMB_JLT';
132470 l_component_code             := 'AP_TAX_EX_RATE_VAR_INV';
132471 l_component_type_code        := 'S';
132472 l_component_appl_id          :=  200;
132473 l_amb_context_code           := 'DEFAULT';
132474 l_entity_code                := 'AP_INVOICES';
132475 l_event_class_code           := 'INVOICES';
132476 l_event_type_code            := 'INVOICES_ALL';
132477 l_line_definition_owner_code := 'S';
132478 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
132479 --
132480 l_balance_type_code          := 'A';
132481 l_segment                     := NULL;
132482 l_ccid                        := NULL;
132483 l_adr_transaction_coa_id      := NULL;
132484 l_adr_accounting_coa_id       := NULL;
132485 l_adr_flexfield_segment_code  := NULL;
132486 l_adr_flex_value_set_id       := NULL;
132487 l_adr_value_type_code         := NULL;
132488 l_adr_value_combination_id    := NULL;
132489 l_adr_value_segment_code      := NULL;
132490 
132491 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
132492 l_bflow_class_code           := '';    -- 4219869 Business Flow
132493 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
132494 l_budgetary_control_flag     := 'N';
132495 
132496 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
132497 l_bflow_applied_to_amt       := NULL; -- 5132302
132498 l_entered_amt_idx            := NULL;          -- 4262811
132499 l_accted_amt_idx             := NULL;          -- 4262811
132500 l_acc_rev_flag               := NULL;          -- 4262811
132501 l_accrual_line_num           := NULL;          -- 4262811
132502 l_tmp_amt                    := NULL;          -- 4262811
132503 --
132504 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
132505             (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
132506                return;
132507   END IF;
132508   
132509 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
132510     l_balance_type_code <> 'B' THEN
132511 IF NVL(p_source_28,'
132512 ') =  'TERV' AND 
132513 NVL(p_source_54,'
132514 ') =  'Y'
132515  THEN 
132516 
132517    --
132518    XLA_AE_LINES_PKG.SetNewLine;
132519 
132520    p_balance_type_code          := l_balance_type_code;
132521    -- set the flag so later we will know whether the gain loss line needs to be created
132522    
132523    IF(l_balance_type_code = 'A' ) THEN
132527    --
132524      p_actual_flag :='G';
132525    END IF;
132526 
132528    -- bulk performance
132529    --
132530    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
132531                                       p_header_num   => 0); -- 4262811
132532    --
132533    -- set accounting line options
132534    --
132535    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
132536            p_natural_side_code          => 'D'
132537          , p_gain_or_loss_flag          => 'Y'
132538          , p_gl_transfer_mode_code      => 'S'
132539          , p_acct_entry_type_code       => 'A'
132540          , p_switch_side_flag           => 'Y'
132541          , p_merge_duplicate_code       => 'A'
132542          );
132543    --
132544    l_acc_rev_natural_side_code := 'C';  -- 4262811
132545    -- 
132546    --
132547    -- set accounting line type info
132548    --
132549    xla_ae_lines_pkg.SetAcctLineType
132550       (p_component_type             => l_component_type
132551       ,p_event_type_code            => l_event_type_code
132552       ,p_line_definition_owner_code => l_line_definition_owner_code
132553       ,p_line_definition_code       => l_line_definition_code
132554       ,p_accounting_line_code       => l_component_code
132555       ,p_accounting_line_type_code  => l_component_type_code
132556       ,p_accounting_line_appl_id    => l_component_appl_id
132557       ,p_amb_context_code           => l_amb_context_code
132558       ,p_entity_code                => l_entity_code
132559       ,p_event_class_code           => l_event_class_code);
132560    --
132561    -- set accounting class
132562    --
132563    xla_ae_lines_pkg.SetAcctClass(
132564            p_accounting_class_code  => 'TERV'
132565          , p_ae_header_id           => l_ae_header_id
132566          );
132567 
132568    --
132569    -- set rounding class
132570    --
132571    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
132572                       'TERV';
132573 
132574    --
132575    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
132576    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
132577    --
132578    -- bulk performance
132579    --
132580    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
132581 
132582    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
132583       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
132584 
132585    -- 4955764
132586    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132587       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
132588 
132589    -- 4458381 Public Sector Enh
132590    
132591    --
132592    -- set accounting attributes for the line type
132593    --
132594    l_entered_amt_idx := 24;
132595    l_accted_amt_idx  := 29;
132596    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
132597    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
132598    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
132599    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
132600    l_rec_acct_attrs.array_num_value(2)  := 
132601 xla_ae_sources_pkg.GetSystemSourceNum(
132602    p_source_code           => 'XLA_EVENT_APPL_ID'
132603  , p_source_type_code      => 'Y'
132604  , p_source_application_id =>  602
132605 );
132606    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
132607    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
132608    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
132609    l_rec_acct_attrs.array_char_value(4)  := 
132610 xla_ae_sources_pkg.GetSystemSourceChar(
132611    p_source_code           => 'XLA_ENTITY_CODE'
132612  , p_source_type_code      => 'Y'
132613  , p_source_application_id =>  602
132614 );
132615    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
132616    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
132617    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
132618    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
132619    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
132620    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
132621    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
132622    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
132623    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
132624    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
132625    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
132626    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
132627    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
132628    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
132629    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
132630    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
132631    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
132632    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
132633    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
132634    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
132635    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
132636    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
132640    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
132637    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
132638    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
132639    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
132641    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
132642    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
132643    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
132644    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
132645    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
132646    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
132647    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
132648    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
132649    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
132650    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
132651    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
132652    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
132653    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
132654    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
132655    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
132656    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
132657    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
132658    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
132659    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
132660    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
132661    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
132662    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
132663    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
132664    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
132665    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
132666    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
132667    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
132668    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
132669    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
132670    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
132671    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
132672    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
132673    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
132674    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
132675    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
132676    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
132677    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
132678    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
132679    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
132680    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
132681    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
132682    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
132683    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
132684    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
132685    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
132686    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
132687    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
132688    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
132689    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
132690    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
132691    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
132692    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
132693    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
132694    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
132695 
132696    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
132697    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
132698 
132699    ---------------------------------------------------------------------------------------------------------------
132700    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
132701    ---------------------------------------------------------------------------------------------------------------
132702    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
132703 
132704    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132705    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132706 
132707    IF xla_accounting_cache_pkg.GetValueChar
132708          (p_source_code         => 'LEDGER_CATEGORY_CODE'
132709          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
132710    AND l_bflow_method_code = 'PRIOR_ENTRY'
132711 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
132712    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
132713          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
132714        )
132715    THEN
132716          xla_ae_lines_pkg.BflowUpgEntry
132717            (p_business_method_code    => l_bflow_method_code
132718            ,p_business_class_code     => l_bflow_class_code
132719            ,p_balance_type            => l_balance_type_code);
132720    ELSE
132721       NULL;
132725    --
132722 -- No business flow processing for business flow method of NONE.
132723    END IF;
132724 
132726    -- call analytical criteria
132727    --
132728    
132729    --
132730    -- call description
132731    --
132732    
132733 xla_ae_lines_pkg.SetLineDescription(
132734    p_ae_header_id => l_ae_header_id
132735   ,p_description  => Description_2 (
132736      p_application_id         => p_application_id
132737    , p_ae_header_id           => l_ae_header_id 
132738 , p_source_1 => p_source_1
132739    )
132740 );
132741 
132742 
132743    --
132744    -- call ADRs
132745    -- Bug 4922099
132746    --
132747    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132748         (NVL(l_actual_upg_option, 'N') = 'O') OR
132749         (NVL(l_enc_upg_option, 'N') = 'O')
132750       )
132751    THEN
132752    NULL;
132753    --
132754    --
132755    
132756   l_ccid := AcctDerRule_32(
132757            p_application_id           => p_application_id
132758          , p_ae_header_id             => l_ae_header_id 
132759 , p_source_10 => p_source_10
132760 , p_source_10_meaning => p_source_10_meaning
132761 , p_source_15 => p_source_15
132762 , p_source_16 => p_source_16
132763 , p_source_17 => p_source_17
132764 , p_source_17_meaning => p_source_17_meaning
132765 , p_source_18 => p_source_18
132766 , p_source_25 => p_source_25
132767 , p_source_43 => p_source_43
132768 , p_source_43_meaning => p_source_43_meaning
132769          , x_transaction_coa_id       => l_adr_transaction_coa_id
132770          , x_accounting_coa_id        => l_adr_accounting_coa_id
132771          , x_value_type_code          => l_adr_value_type_code
132772          , p_side                     => 'NA'
132773    );
132774 
132775    xla_ae_lines_pkg.set_ccid(
132776     p_code_combination_id          => l_ccid
132777   , p_value_type_code              => l_adr_value_type_code
132778   , p_transaction_coa_id           => l_adr_transaction_coa_id
132779   , p_accounting_coa_id            => l_adr_accounting_coa_id
132780   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
132781   , p_adr_type_code                => 'S'
132782   , p_component_type               => l_component_type
132783   , p_component_code               => l_component_code
132784   , p_component_type_code          => l_component_type_code
132785   , p_component_appl_id            => l_component_appl_id
132786   , p_amb_context_code             => l_amb_context_code
132787   , p_side                         => 'NA'
132788   );
132789 
132790 
132791    l_segment := AcctDerRule_8(
132792            p_application_id           => p_application_id
132793          , p_ae_header_id             => l_ae_header_id 
132794 , p_source_10 => p_source_10
132795 , p_source_10_meaning => p_source_10_meaning
132796 , p_source_15 => p_source_15
132797 , p_source_16 => p_source_16
132798 , p_source_17 => p_source_17
132799 , p_source_17_meaning => p_source_17_meaning
132800 , p_source_18 => p_source_18
132801          , x_transaction_coa_id       => l_adr_transaction_coa_id
132802          , x_accounting_coa_id        => l_adr_accounting_coa_id
132803          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132804          , x_flex_value_set_id        => l_adr_flex_value_set_id
132805          , x_value_type_code          => l_adr_value_type_code
132806          , x_value_combination_id     => l_adr_value_combination_id
132807          , x_value_segment_code       => l_adr_value_segment_code
132808          , p_side                     => 'NA'
132809          , p_override_seg_flag        => 'Y'
132810    );
132811 
132812    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132813 
132814       xla_ae_lines_pkg.set_segment(
132815           p_to_segment_code         => 'GL_ACCOUNT'
132816         , p_segment_value           => l_segment
132817         , p_from_segment_code       => l_adr_value_segment_code
132818         , p_from_combination_id     => l_adr_value_combination_id
132819         , p_value_type_code         => l_adr_value_type_code
132820         , p_transaction_coa_id      => l_adr_transaction_coa_id
132821         , p_accounting_coa_id       => l_adr_accounting_coa_id
132822         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132823         , p_flex_value_set_id       => l_adr_flex_value_set_id
132824         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
132825         , p_adr_type_code           => 'S'
132826         , p_component_type          => l_component_type
132827         , p_component_code          => l_component_code
132828         , p_component_type_code     => l_component_type_code
132829         , p_component_appl_id       => l_component_appl_id
132830         , p_amb_context_code        => l_amb_context_code
132831         , p_entity_code             => 'AP_INVOICES'
132832         , p_event_class_code        => 'INVOICES'
132833         , p_side                    => 'NA'
132834         );
132835 
132836   END IF;
132837 
132838    l_segment := AcctDerRule_24(
132839            p_application_id           => p_application_id
132840          , p_ae_header_id             => l_ae_header_id 
132841 , p_source_10 => p_source_10
132842 , p_source_10_meaning => p_source_10_meaning
132843 , p_source_17 => p_source_17
132844 , p_source_17_meaning => p_source_17_meaning
132845 , p_source_25 => p_source_25
132846          , x_transaction_coa_id       => l_adr_transaction_coa_id
132847          , x_accounting_coa_id        => l_adr_accounting_coa_id
132851          , x_value_combination_id     => l_adr_value_combination_id
132848          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132849          , x_flex_value_set_id        => l_adr_flex_value_set_id
132850          , x_value_type_code          => l_adr_value_type_code
132852          , x_value_segment_code       => l_adr_value_segment_code
132853          , p_side                     => 'NA'
132854          , p_override_seg_flag        => 'Y'
132855    );
132856 
132857    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132858 
132859       xla_ae_lines_pkg.set_segment(
132860           p_to_segment_code         => 'GL_BALANCING'
132861         , p_segment_value           => l_segment
132862         , p_from_segment_code       => l_adr_value_segment_code
132863         , p_from_combination_id     => l_adr_value_combination_id
132864         , p_value_type_code         => l_adr_value_type_code
132865         , p_transaction_coa_id      => l_adr_transaction_coa_id
132866         , p_accounting_coa_id       => l_adr_accounting_coa_id
132867         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132868         , p_flex_value_set_id       => l_adr_flex_value_set_id
132869         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
132870         , p_adr_type_code           => 'S'
132871         , p_component_type          => l_component_type
132872         , p_component_code          => l_component_code
132873         , p_component_type_code     => l_component_type_code
132874         , p_component_appl_id       => l_component_appl_id
132875         , p_amb_context_code        => l_amb_context_code
132876         , p_entity_code             => 'AP_INVOICES'
132877         , p_event_class_code        => 'INVOICES'
132878         , p_side                    => 'NA'
132879         );
132880 
132881   END IF;
132882 
132883    --
132884    --
132885    END IF;
132886    --
132887    -- Bug 4922099
132888    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
132889           (NVL(l_enc_upg_option, 'N') = 'O')
132890         ) AND
132891         (l_bflow_method_code = 'PRIOR_ENTRY')
132892       )
132893    THEN
132894       IF
132895       --
132896       1 = 2
132897       --
132898       THEN
132899       xla_accounting_err_pkg.build_message
132900                                     (p_appli_s_name            => 'XLA'
132901                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132902                                     ,p_token_1                 => 'LINE_NUMBER'
132903                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
132904                                     ,p_token_2                 => 'LINE_TYPE_NAME'
132905                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
132906                                                                              l_component_type
132907                                                                             ,l_component_code
132908                                                                             ,l_component_type_code
132909                                                                             ,l_component_appl_id
132910                                                                             ,l_amb_context_code
132911                                                                             ,l_entity_code
132912                                                                             ,l_event_class_code
132913                                                                            )
132914                                     ,p_token_3                 => 'OWNER'
132915                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
132916                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
132917                                                                           ,p_lookup_code    => l_component_type_code
132918                                                                          )
132919                                     ,p_token_4                 => 'PRODUCT_NAME'
132920                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
132921                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
132922                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
132923                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
132924                                     ,p_ae_header_id            =>  NULL
132925                                        );
132926 
132927         IF (C_LEVEL_ERROR>= g_log_level) THEN
132928                  trace
132929                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132930                       ,p_level    => C_LEVEL_ERROR
132931                       ,p_module   => l_log_module);
132932         END IF;
132933       END IF;
132934    END IF;
132935    --
132936    --
132937    ------------------------------------------------------------------------------------------------
132938    -- 4219869 Business Flow
132939    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
132940    -- Prior Entry.  Currently, the following code is always generated.
132941    ------------------------------------------------------------------------------------------------
132942    XLA_AE_LINES_PKG.ValidateCurrentLine;
132943 
132947    ------------------------------------------------------------------------------------
132944    ------------------------------------------------------------------------------------
132945    -- 4219869 Business Flow
132946    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
132948    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132949 
132950    ----------------------------------------------------------------------------------
132951    -- 4219869 Business Flow
132952    -- Update journal entry status -- Need to generate this within IF <condition>
132953    ----------------------------------------------------------------------------------
132954    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132955          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
132956          ,p_balance_type_code => l_balance_type_code
132957          );
132958 
132959    -------------------------------------------------------------------------------------------
132960    -- 4262811 - Generate the Accrual Reversal lines
132961    -------------------------------------------------------------------------------------------
132962    BEGIN
132963       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
132964                               (g_array_event(p_event_id).array_value_num('header_index'));
132965       IF l_acc_rev_flag IS NULL THEN
132966          l_acc_rev_flag := 'N';
132967       END IF;
132968    EXCEPTION
132969       WHEN OTHERS THEN
132970          l_acc_rev_flag := 'N';
132971    END;
132972    --
132973    IF (l_acc_rev_flag = 'Y') THEN
132974 
132975        -- 4645092  ------------------------------------------------------------------------------
132976        -- To allow MPA report to determine if it should generate report process
132977        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
132978        ------------------------------------------------------------------------------------------
132979 
132980        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
132981        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
132982    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
132983    -- call ADRs
132984    -- Bug 4922099
132985    --
132986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132987         (NVL(l_actual_upg_option, 'N') = 'O') OR
132988         (NVL(l_enc_upg_option, 'N') = 'O')
132989       )
132990    THEN
132991    NULL;
132992    --
132993    --
132994    
132995   l_ccid := AcctDerRule_32(
132996            p_application_id           => p_application_id
132997          , p_ae_header_id             => l_ae_header_id 
132998 , p_source_10 => p_source_10
132999 , p_source_10_meaning => p_source_10_meaning
133000 , p_source_15 => p_source_15
133001 , p_source_16 => p_source_16
133002 , p_source_17 => p_source_17
133003 , p_source_17_meaning => p_source_17_meaning
133004 , p_source_18 => p_source_18
133005 , p_source_25 => p_source_25
133006 , p_source_43 => p_source_43
133007 , p_source_43_meaning => p_source_43_meaning
133008          , x_transaction_coa_id       => l_adr_transaction_coa_id
133009          , x_accounting_coa_id        => l_adr_accounting_coa_id
133010          , x_value_type_code          => l_adr_value_type_code
133011          , p_side                     => 'NA'
133012    );
133013 
133014    xla_ae_lines_pkg.set_ccid(
133015     p_code_combination_id          => l_ccid
133016   , p_value_type_code              => l_adr_value_type_code
133017   , p_transaction_coa_id           => l_adr_transaction_coa_id
133018   , p_accounting_coa_id            => l_adr_accounting_coa_id
133019   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
133020   , p_adr_type_code                => 'S'
133021   , p_component_type               => l_component_type
133022   , p_component_code               => l_component_code
133023   , p_component_type_code          => l_component_type_code
133024   , p_component_appl_id            => l_component_appl_id
133025   , p_amb_context_code             => l_amb_context_code
133026   , p_side                         => 'NA'
133027   );
133028 
133029 
133030    l_segment := AcctDerRule_8(
133031            p_application_id           => p_application_id
133032          , p_ae_header_id             => l_ae_header_id 
133033 , p_source_10 => p_source_10
133034 , p_source_10_meaning => p_source_10_meaning
133035 , p_source_15 => p_source_15
133036 , p_source_16 => p_source_16
133037 , p_source_17 => p_source_17
133038 , p_source_17_meaning => p_source_17_meaning
133039 , p_source_18 => p_source_18
133040          , x_transaction_coa_id       => l_adr_transaction_coa_id
133041          , x_accounting_coa_id        => l_adr_accounting_coa_id
133042          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
133043          , x_flex_value_set_id        => l_adr_flex_value_set_id
133044          , x_value_type_code          => l_adr_value_type_code
133045          , x_value_combination_id     => l_adr_value_combination_id
133046          , x_value_segment_code       => l_adr_value_segment_code
133047          , p_side                     => 'NA'
133048          , p_override_seg_flag        => 'Y'
133049    );
133050 
133051    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
133052 
133053       xla_ae_lines_pkg.set_segment(
133054           p_to_segment_code         => 'GL_ACCOUNT'
133055         , p_segment_value           => l_segment
133056         , p_from_segment_code       => l_adr_value_segment_code
133057         , p_from_combination_id     => l_adr_value_combination_id
133061         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
133058         , p_value_type_code         => l_adr_value_type_code
133059         , p_transaction_coa_id      => l_adr_transaction_coa_id
133060         , p_accounting_coa_id       => l_adr_accounting_coa_id
133062         , p_flex_value_set_id       => l_adr_flex_value_set_id
133063         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
133064         , p_adr_type_code           => 'S'
133065         , p_component_type          => l_component_type
133066         , p_component_code          => l_component_code
133067         , p_component_type_code     => l_component_type_code
133068         , p_component_appl_id       => l_component_appl_id
133069         , p_amb_context_code        => l_amb_context_code
133070         , p_entity_code             => 'AP_INVOICES'
133071         , p_event_class_code        => 'INVOICES'
133072         , p_side                    => 'NA'
133073         );
133074 
133075   END IF;
133076 
133077    l_segment := AcctDerRule_24(
133078            p_application_id           => p_application_id
133079          , p_ae_header_id             => l_ae_header_id 
133080 , p_source_10 => p_source_10
133081 , p_source_10_meaning => p_source_10_meaning
133082 , p_source_17 => p_source_17
133083 , p_source_17_meaning => p_source_17_meaning
133084 , p_source_25 => p_source_25
133085          , x_transaction_coa_id       => l_adr_transaction_coa_id
133086          , x_accounting_coa_id        => l_adr_accounting_coa_id
133087          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
133088          , x_flex_value_set_id        => l_adr_flex_value_set_id
133089          , x_value_type_code          => l_adr_value_type_code
133090          , x_value_combination_id     => l_adr_value_combination_id
133091          , x_value_segment_code       => l_adr_value_segment_code
133092          , p_side                     => 'NA'
133093          , p_override_seg_flag        => 'Y'
133094    );
133095 
133096    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
133097 
133098       xla_ae_lines_pkg.set_segment(
133099           p_to_segment_code         => 'GL_BALANCING'
133100         , p_segment_value           => l_segment
133101         , p_from_segment_code       => l_adr_value_segment_code
133102         , p_from_combination_id     => l_adr_value_combination_id
133103         , p_value_type_code         => l_adr_value_type_code
133104         , p_transaction_coa_id      => l_adr_transaction_coa_id
133105         , p_accounting_coa_id       => l_adr_accounting_coa_id
133106         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
133107         , p_flex_value_set_id       => l_adr_flex_value_set_id
133108         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
133109         , p_adr_type_code           => 'S'
133110         , p_component_type          => l_component_type
133111         , p_component_code          => l_component_code
133112         , p_component_type_code     => l_component_type_code
133113         , p_component_appl_id       => l_component_appl_id
133114         , p_amb_context_code        => l_amb_context_code
133115         , p_entity_code             => 'AP_INVOICES'
133116         , p_event_class_code        => 'INVOICES'
133117         , p_side                    => 'NA'
133118         );
133119 
133120   END IF;
133121 
133122    --
133123    --
133124    END IF;
133125 
133126        --
133127        -- Update the line information that should be overwritten
133128        --
133129        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
133130                                          p_header_num   => 1);
133131        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
133132 
133133        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
133134 
133135        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
133136           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
133137        END IF;
133138 
133139       --
133140       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
133141       --
133142       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
133143           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
133144       ELSE
133145           ---------------------------------------------------------------------------------------------------
133146           -- 4262811a Switch Sign
133147           ---------------------------------------------------------------------------------------------------
133148           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
133149           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133150                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133151           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133152                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133153           -- 5132302
133154           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
133155                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133156 
133157       END IF;
133158 
133159       -- 4955764
133163 
133160       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133161       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
133162 
133164       XLA_AE_LINES_PKG.ValidateCurrentLine;
133165       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133166 
133167       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133168                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
133169                ,p_balance_type_code => l_balance_type_code);
133170 
133171    END IF;
133172 
133173    -----------------------------------------------------------------------------------------
133174    -- 4262811 Multiperiod Accounting
133175    -----------------------------------------------------------------------------------------
133176      -- No MPA option is assigned.
133177 
133178 
133179 END IF;
133180 END IF;
133181 --
133182 
133183 --
133184 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133185    trace
133186       (p_msg      => 'END of AcctLineType_223'
133187       ,p_level    => C_LEVEL_PROCEDURE
133188       ,p_module   => l_log_module);
133189 END IF;
133190 --
133191 EXCEPTION
133192   WHEN xla_exceptions_pkg.application_exception THEN
133193       RAISE;
133194   WHEN OTHERS THEN
133195        xla_exceptions_pkg.raise_message
133196            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_223');
133197 END AcctLineType_223;
133198 --
133199 
133200 ---------------------------------------
133201 --
133202 -- PRIVATE FUNCTION
133203 --         AcctLineType_224
133204 --
133205 ---------------------------------------
133206 PROCEDURE AcctLineType_224 (
133207   p_application_id        IN NUMBER
133208  ,p_event_id              IN NUMBER
133209  ,p_calculate_acctd_flag  IN VARCHAR2
133210  ,p_calculate_g_l_flag    IN VARCHAR2
133211  ,p_actual_flag           IN OUT VARCHAR2
133212  ,p_balance_type_code     OUT VARCHAR2
133213  ,p_gain_or_loss_ref      OUT VARCHAR2
133214  
133215 --Invoice Distribution Description
133216  , p_source_1            IN VARCHAR2
133217 --Automatic Offsets Value
133218  , p_source_10            IN VARCHAR2
133219  , p_source_10_meaning    IN VARCHAR2
133220 --Purchase Order Rate Variance Gain Account
133221  , p_source_15            IN NUMBER
133222 --Invoice Distribution Ledger Amount
133223  , p_source_16            IN NUMBER
133224 --Destination Type of the PO Distribution
133225  , p_source_17            IN VARCHAR2
133226  , p_source_17_meaning    IN VARCHAR2
133227 --Purchase Order Rate Variance Loss Account
133228  , p_source_18            IN NUMBER
133229 --Invoice Distribution Account
133230  , p_source_25            IN NUMBER
133231 --Invoice Distribution Type
133232  , p_source_28            IN VARCHAR2
133233  , p_source_28_meaning    IN VARCHAR2
133234 --Automatic Offsets Flag
133235  , p_source_43            IN VARCHAR2
133236  , p_source_43_meaning    IN VARCHAR2
133237 --Accrue on Receipt Option
133238  , p_source_54            IN VARCHAR2
133239  , p_source_54_meaning    IN VARCHAR2
133240 --Accounting Reversal Indicator
133241  , p_source_58            IN VARCHAR2
133242 --Distribution Link Type
133243  , p_source_60            IN VARCHAR2
133244 --Allocation to Main Distribution Identifier
133245  , p_source_62            IN NUMBER
133246 --Invoice Identifier
133247  , p_source_63            IN NUMBER
133248 --Invoice Distribution Identifier
133249  , p_source_69            IN NUMBER
133250 --Payables Encumbrance Upgrade Credit Account
133251  , p_source_70            IN NUMBER
133252 --Payables Encumbrance Upgrade Credit Amount
133253  , p_source_71            IN NUMBER
133254 --Invoice Currency Code
133255  , p_source_72            IN VARCHAR2
133256 --Payables Encumbrance Upgrade Credit Base Amount
133257  , p_source_73            IN NUMBER
133258 --Payables Encumbrance Upgrade Debit Account
133259  , p_source_74            IN NUMBER
133260 --Payables Encumbrance Upgrade Debit Amount
133261  , p_source_75            IN NUMBER
133262 --Payables Encumbrance Upgrade Debit Base Amount
133263  , p_source_76            IN NUMBER
133264 --Payables Encumbrance Upgrade Option
133265  , p_source_77            IN VARCHAR2
133266 --Invoice Distribution Amount
133267  , p_source_78            IN NUMBER
133268 --Deferred Accounting End Date
133269  , p_source_82            IN DATE
133270 --Deferred Accounting Option
133271  , p_source_83            IN VARCHAR2
133272 --Deferred Accounting Start Date
133273  , p_source_84            IN DATE
133274 --Override Accounted Amount Indicator
133275  , p_source_85            IN VARCHAR2
133276  , p_source_85_meaning    IN VARCHAR2
133277 --Invoice Supplier Identifier
133278  , p_source_86            IN NUMBER
133279 --Invoice Supplier Site Identifier
133280  , p_source_87            IN NUMBER
133281 --Third Party Type
133282  , p_source_88            IN VARCHAR2
133283 --Parent Reversal Identifier
133284  , p_source_89            IN NUMBER
133285 --Invoice Distribution Statistical Amount
133286  , p_source_90            IN NUMBER
133287 --Invoice Distribution Tax Line Identifier
133288  , p_source_91            IN NUMBER
133289 --Invoice Distribution Tax Distribution Identifier from Tax
133290  , p_source_92            IN NUMBER
133291 --Invoice Distribution Summary Tax Line Identifier
133292  , p_source_93            IN NUMBER
133293 --Payables Upgrade Credit Encumbrance Type Identifier
133294  , p_source_94            IN NUMBER
133298  , p_source_96            IN NUMBER
133295 --Payables Upgrade Debit Encumbrance Type Identifier
133296  , p_source_95            IN NUMBER
133297 --Business Flow Accounts Payable Application Identifier
133299 --Business Flow Invoice Distribution Type
133300  , p_source_97            IN VARCHAR2
133301 --Business Flow Invoice Entity Code
133302  , p_source_98            IN VARCHAR2
133303 --Business Flow Invoice Distribution Identifier
133304  , p_source_99            IN NUMBER
133305 --Business Flow Invoice Identifier
133306  , p_source_100            IN NUMBER
133307 --Invoice Exchange Date
133308  , p_source_146            IN DATE
133309 --Invoice Exchange Rate
133310  , p_source_147            IN NUMBER
133311 --Invoice Exchange Rate Type
133312  , p_source_148            IN VARCHAR2
133313 )
133314 IS
133315 
133316 l_component_type              VARCHAR2(80);
133317 l_component_code              VARCHAR2(30);
133318 l_component_type_code         VARCHAR2(1);
133319 l_component_appl_id           INTEGER;
133320 l_amb_context_code            VARCHAR2(30);
133321 l_entity_code                 VARCHAR2(30);
133322 l_event_class_code            VARCHAR2(30);
133323 l_ae_header_id                NUMBER;
133324 l_event_type_code             VARCHAR2(30);
133325 l_line_definition_code        VARCHAR2(30);
133326 l_line_definition_owner_code  VARCHAR2(1);
133327 --
133328 -- adr variables
133329 l_segment                     VARCHAR2(30);
133330 l_ccid                        NUMBER;
133331 l_adr_transaction_coa_id      NUMBER;
133332 l_adr_accounting_coa_id       NUMBER;
133333 l_adr_flexfield_segment_code  VARCHAR2(30);
133334 l_adr_flex_value_set_id       NUMBER;
133335 l_adr_value_type_code         VARCHAR2(30);
133336 l_adr_value_combination_id    NUMBER;
133337 l_adr_value_segment_code      VARCHAR2(30);
133338 
133339 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
133340 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
133341 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
133342 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
133343 
133344 -- 4262811 Variables ------------------------------------------------------------------------------------------
133345 l_entered_amt_idx             NUMBER;
133346 l_accted_amt_idx              NUMBER;
133347 l_acc_rev_flag                VARCHAR2(1);
133348 l_accrual_line_num            NUMBER;
133349 l_tmp_amt                     NUMBER;
133350 l_acc_rev_natural_side_code   VARCHAR2(1);
133351 
133352 l_num_entries                 NUMBER;
133353 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
133354 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
133355 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
133356 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
133357 l_recog_line_1                NUMBER;
133358 l_recog_line_2                NUMBER;
133359 
133360 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
133361 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
133362 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
133363 
133364 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
133365 
133366 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
133367 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
133368 
133369 ---------------------------------------------------------------------------------------------------------------
133370 
133371 
133372 --
133373 -- bulk performance
133374 --
133375 l_balance_type_code           VARCHAR2(1);
133376 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
133377 l_log_module                  VARCHAR2(240);
133378 
133379 --
133380 -- Upgrade strategy
133381 --
133382 l_actual_upg_option           VARCHAR2(1);
133383 l_enc_upg_option           VARCHAR2(1);
133384 
133385 --
133386 BEGIN
133387 --
133388 IF g_log_enabled THEN
133389       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_224';
133390 END IF;
133391 --
133392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133393 
133394       trace
133395          (p_msg      => 'BEGIN of AcctLineType_224'
133396          ,p_level    => C_LEVEL_PROCEDURE
133397          ,p_module   => l_log_module);
133398 
133399 END IF;
133400 --
133401 l_component_type             := 'AMB_JLT';
133402 l_component_code             := 'AP_TAX_EX_RATE_VAR_PREPAY';
133403 l_component_type_code        := 'S';
133404 l_component_appl_id          :=  200;
133405 l_amb_context_code           := 'DEFAULT';
133406 l_entity_code                := 'AP_INVOICES';
133407 l_event_class_code           := 'PREPAYMENTS';
133408 l_event_type_code            := 'PREPAYMENTS_ALL';
133409 l_line_definition_owner_code := 'S';
133410 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
133411 --
133412 l_balance_type_code          := 'A';
133413 l_segment                     := NULL;
133414 l_ccid                        := NULL;
133415 l_adr_transaction_coa_id      := NULL;
133416 l_adr_accounting_coa_id       := NULL;
133417 l_adr_flexfield_segment_code  := NULL;
133418 l_adr_flex_value_set_id       := NULL;
133419 l_adr_value_type_code         := NULL;
133420 l_adr_value_combination_id    := NULL;
133421 l_adr_value_segment_code      := NULL;
133422 
133423 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
133427 
133424 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
133425 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133426 l_budgetary_control_flag     := 'N';
133428 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133429 l_bflow_applied_to_amt       := NULL; -- 5132302
133430 l_entered_amt_idx            := NULL;          -- 4262811
133431 l_accted_amt_idx             := NULL;          -- 4262811
133432 l_acc_rev_flag               := NULL;          -- 4262811
133433 l_accrual_line_num           := NULL;          -- 4262811
133434 l_tmp_amt                    := NULL;          -- 4262811
133435 --
133436 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
133437             (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
133438                return;
133439   END IF;
133440   
133441 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133442     l_balance_type_code <> 'B' THEN
133443 IF NVL(p_source_28,'
133444 ') =  'TERV' AND 
133445 NVL(p_source_54,'
133446 ') =  'Y'
133447  THEN 
133448 
133449    --
133450    XLA_AE_LINES_PKG.SetNewLine;
133451 
133452    p_balance_type_code          := l_balance_type_code;
133453    -- set the flag so later we will know whether the gain loss line needs to be created
133454    
133455    IF(l_balance_type_code = 'A' ) THEN
133456      p_actual_flag :='G';
133457    END IF;
133458 
133459    --
133460    -- bulk performance
133461    --
133462    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133463                                       p_header_num   => 0); -- 4262811
133464    --
133465    -- set accounting line options
133466    --
133467    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133468            p_natural_side_code          => 'D'
133469          , p_gain_or_loss_flag          => 'Y'
133470          , p_gl_transfer_mode_code      => 'S'
133471          , p_acct_entry_type_code       => 'A'
133472          , p_switch_side_flag           => 'Y'
133473          , p_merge_duplicate_code       => 'A'
133474          );
133475    --
133476    l_acc_rev_natural_side_code := 'C';  -- 4262811
133477    -- 
133478    --
133479    -- set accounting line type info
133480    --
133481    xla_ae_lines_pkg.SetAcctLineType
133482       (p_component_type             => l_component_type
133483       ,p_event_type_code            => l_event_type_code
133484       ,p_line_definition_owner_code => l_line_definition_owner_code
133485       ,p_line_definition_code       => l_line_definition_code
133486       ,p_accounting_line_code       => l_component_code
133487       ,p_accounting_line_type_code  => l_component_type_code
133488       ,p_accounting_line_appl_id    => l_component_appl_id
133489       ,p_amb_context_code           => l_amb_context_code
133490       ,p_entity_code                => l_entity_code
133491       ,p_event_class_code           => l_event_class_code);
133492    --
133493    -- set accounting class
133494    --
133495    xla_ae_lines_pkg.SetAcctClass(
133496            p_accounting_class_code  => 'TERV'
133497          , p_ae_header_id           => l_ae_header_id
133498          );
133499 
133500    --
133501    -- set rounding class
133502    --
133503    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
133504                       'TERV';
133505 
133506    --
133507    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
133508    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
133509    --
133510    -- bulk performance
133511    --
133512    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
133513 
133514    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
133515       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
133516 
133517    -- 4955764
133518    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133519       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
133520 
133521    -- 4458381 Public Sector Enh
133522    
133523    --
133524    -- set accounting attributes for the line type
133525    --
133526    l_entered_amt_idx := 23;
133527    l_accted_amt_idx  := 28;
133528    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
133529    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
133530    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
133531    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
133532    l_rec_acct_attrs.array_num_value(2)  := 
133533 xla_ae_sources_pkg.GetSystemSourceNum(
133534    p_source_code           => 'XLA_EVENT_APPL_ID'
133535  , p_source_type_code      => 'Y'
133536  , p_source_application_id =>  602
133537 );
133538    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
133539    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
133540    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
133541    l_rec_acct_attrs.array_char_value(4)  := 
133542 xla_ae_sources_pkg.GetSystemSourceChar(
133543    p_source_code           => 'XLA_ENTITY_CODE'
133544  , p_source_type_code      => 'Y'
133545  , p_source_application_id =>  602
133546 );
133550    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
133547    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
133548    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
133549    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
133551    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
133552    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
133553    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
133554    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
133555    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
133556    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
133557    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
133558    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
133559    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
133560    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
133561    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
133562    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
133563    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
133564    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
133565    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
133566    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
133567    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
133568    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
133569    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
133570    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
133571    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
133572    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
133573    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
133574    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
133575    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
133576    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
133577    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
133578    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
133579    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
133580    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
133581    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
133582    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
133583    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
133584    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
133585    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
133586    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
133587    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
133588    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
133589    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
133590    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
133591    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
133592    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
133593    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
133594    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
133595    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
133596    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
133597    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
133598    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
133599    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
133600    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
133601    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
133602    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
133603    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
133604    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
133605    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
133606    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
133607    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
133608    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
133609    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
133610    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
133611    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
133612    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
133613    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
133614    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
133615    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
133616    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
133617    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
133618    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
133619    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
133620    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
133621    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
133622    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
133623    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
133624    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
133625 
133626    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
133627    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
133628 
133632    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
133629    ---------------------------------------------------------------------------------------------------------------
133630    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
133631    ---------------------------------------------------------------------------------------------------------------
133633 
133634    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133635    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133636 
133637    IF xla_accounting_cache_pkg.GetValueChar
133638          (p_source_code         => 'LEDGER_CATEGORY_CODE'
133639          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
133640    AND l_bflow_method_code = 'PRIOR_ENTRY'
133641 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
133642    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
133643          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
133644        )
133645    THEN
133646          xla_ae_lines_pkg.BflowUpgEntry
133647            (p_business_method_code    => l_bflow_method_code
133648            ,p_business_class_code     => l_bflow_class_code
133649            ,p_balance_type            => l_balance_type_code);
133650    ELSE
133651       NULL;
133652 -- No business flow processing for business flow method of NONE.
133653    END IF;
133654 
133655    --
133656    -- call analytical criteria
133657    --
133658    
133659    --
133660    -- call description
133661    --
133662    
133663 xla_ae_lines_pkg.SetLineDescription(
133664    p_ae_header_id => l_ae_header_id
133665   ,p_description  => Description_2 (
133666      p_application_id         => p_application_id
133667    , p_ae_header_id           => l_ae_header_id 
133668 , p_source_1 => p_source_1
133669    )
133670 );
133671 
133672 
133673    --
133674    -- call ADRs
133675    -- Bug 4922099
133676    --
133677    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133678         (NVL(l_actual_upg_option, 'N') = 'O') OR
133679         (NVL(l_enc_upg_option, 'N') = 'O')
133680       )
133681    THEN
133682    NULL;
133683    --
133684    --
133685    
133686   l_ccid := AcctDerRule_32(
133687            p_application_id           => p_application_id
133688          , p_ae_header_id             => l_ae_header_id 
133689 , p_source_10 => p_source_10
133690 , p_source_10_meaning => p_source_10_meaning
133691 , p_source_15 => p_source_15
133692 , p_source_16 => p_source_16
133693 , p_source_17 => p_source_17
133694 , p_source_17_meaning => p_source_17_meaning
133695 , p_source_18 => p_source_18
133696 , p_source_25 => p_source_25
133697 , p_source_43 => p_source_43
133698 , p_source_43_meaning => p_source_43_meaning
133699          , x_transaction_coa_id       => l_adr_transaction_coa_id
133700          , x_accounting_coa_id        => l_adr_accounting_coa_id
133701          , x_value_type_code          => l_adr_value_type_code
133702          , p_side                     => 'NA'
133703    );
133704 
133705    xla_ae_lines_pkg.set_ccid(
133706     p_code_combination_id          => l_ccid
133707   , p_value_type_code              => l_adr_value_type_code
133708   , p_transaction_coa_id           => l_adr_transaction_coa_id
133709   , p_accounting_coa_id            => l_adr_accounting_coa_id
133710   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
133711   , p_adr_type_code                => 'S'
133712   , p_component_type               => l_component_type
133713   , p_component_code               => l_component_code
133714   , p_component_type_code          => l_component_type_code
133715   , p_component_appl_id            => l_component_appl_id
133716   , p_amb_context_code             => l_amb_context_code
133717   , p_side                         => 'NA'
133718   );
133719 
133720 
133721    l_segment := AcctDerRule_8(
133722            p_application_id           => p_application_id
133723          , p_ae_header_id             => l_ae_header_id 
133724 , p_source_10 => p_source_10
133725 , p_source_10_meaning => p_source_10_meaning
133726 , p_source_15 => p_source_15
133727 , p_source_16 => p_source_16
133728 , p_source_17 => p_source_17
133729 , p_source_17_meaning => p_source_17_meaning
133730 , p_source_18 => p_source_18
133731          , x_transaction_coa_id       => l_adr_transaction_coa_id
133732          , x_accounting_coa_id        => l_adr_accounting_coa_id
133733          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
133734          , x_flex_value_set_id        => l_adr_flex_value_set_id
133735          , x_value_type_code          => l_adr_value_type_code
133736          , x_value_combination_id     => l_adr_value_combination_id
133737          , x_value_segment_code       => l_adr_value_segment_code
133738          , p_side                     => 'NA'
133739          , p_override_seg_flag        => 'Y'
133740    );
133741 
133742    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
133743 
133744       xla_ae_lines_pkg.set_segment(
133745           p_to_segment_code         => 'GL_ACCOUNT'
133746         , p_segment_value           => l_segment
133747         , p_from_segment_code       => l_adr_value_segment_code
133748         , p_from_combination_id     => l_adr_value_combination_id
133749         , p_value_type_code         => l_adr_value_type_code
133753         , p_flex_value_set_id       => l_adr_flex_value_set_id
133750         , p_transaction_coa_id      => l_adr_transaction_coa_id
133751         , p_accounting_coa_id       => l_adr_accounting_coa_id
133752         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
133754         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
133755         , p_adr_type_code           => 'S'
133756         , p_component_type          => l_component_type
133757         , p_component_code          => l_component_code
133758         , p_component_type_code     => l_component_type_code
133759         , p_component_appl_id       => l_component_appl_id
133760         , p_amb_context_code        => l_amb_context_code
133761         , p_entity_code             => 'AP_INVOICES'
133762         , p_event_class_code        => 'PREPAYMENTS'
133763         , p_side                    => 'NA'
133764         );
133765 
133766   END IF;
133767 
133768    l_segment := AcctDerRule_24(
133769            p_application_id           => p_application_id
133770          , p_ae_header_id             => l_ae_header_id 
133771 , p_source_10 => p_source_10
133772 , p_source_10_meaning => p_source_10_meaning
133773 , p_source_17 => p_source_17
133774 , p_source_17_meaning => p_source_17_meaning
133775 , p_source_25 => p_source_25
133776          , x_transaction_coa_id       => l_adr_transaction_coa_id
133777          , x_accounting_coa_id        => l_adr_accounting_coa_id
133778          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
133779          , x_flex_value_set_id        => l_adr_flex_value_set_id
133780          , x_value_type_code          => l_adr_value_type_code
133781          , x_value_combination_id     => l_adr_value_combination_id
133782          , x_value_segment_code       => l_adr_value_segment_code
133783          , p_side                     => 'NA'
133784          , p_override_seg_flag        => 'Y'
133785    );
133786 
133787    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
133788 
133789       xla_ae_lines_pkg.set_segment(
133790           p_to_segment_code         => 'GL_BALANCING'
133791         , p_segment_value           => l_segment
133792         , p_from_segment_code       => l_adr_value_segment_code
133793         , p_from_combination_id     => l_adr_value_combination_id
133794         , p_value_type_code         => l_adr_value_type_code
133795         , p_transaction_coa_id      => l_adr_transaction_coa_id
133796         , p_accounting_coa_id       => l_adr_accounting_coa_id
133797         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
133798         , p_flex_value_set_id       => l_adr_flex_value_set_id
133799         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
133800         , p_adr_type_code           => 'S'
133801         , p_component_type          => l_component_type
133802         , p_component_code          => l_component_code
133803         , p_component_type_code     => l_component_type_code
133804         , p_component_appl_id       => l_component_appl_id
133805         , p_amb_context_code        => l_amb_context_code
133806         , p_entity_code             => 'AP_INVOICES'
133807         , p_event_class_code        => 'PREPAYMENTS'
133808         , p_side                    => 'NA'
133809         );
133810 
133811   END IF;
133812 
133813    --
133814    --
133815    END IF;
133816    --
133817    -- Bug 4922099
133818    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
133819           (NVL(l_enc_upg_option, 'N') = 'O')
133820         ) AND
133821         (l_bflow_method_code = 'PRIOR_ENTRY')
133822       )
133823    THEN
133824       IF
133825       --
133826       1 = 2
133827       --
133828       THEN
133829       xla_accounting_err_pkg.build_message
133830                                     (p_appli_s_name            => 'XLA'
133831                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133832                                     ,p_token_1                 => 'LINE_NUMBER'
133833                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
133834                                     ,p_token_2                 => 'LINE_TYPE_NAME'
133835                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
133836                                                                              l_component_type
133837                                                                             ,l_component_code
133838                                                                             ,l_component_type_code
133839                                                                             ,l_component_appl_id
133840                                                                             ,l_amb_context_code
133841                                                                             ,l_entity_code
133842                                                                             ,l_event_class_code
133843                                                                            )
133844                                     ,p_token_3                 => 'OWNER'
133845                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
133846                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
133847                                                                           ,p_lookup_code    => l_component_type_code
133848                                                                          )
133849                                     ,p_token_4                 => 'PRODUCT_NAME'
133853                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
133850                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
133851                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
133852                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
133854                                     ,p_ae_header_id            =>  NULL
133855                                        );
133856 
133857         IF (C_LEVEL_ERROR>= g_log_level) THEN
133858                  trace
133859                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133860                       ,p_level    => C_LEVEL_ERROR
133861                       ,p_module   => l_log_module);
133862         END IF;
133863       END IF;
133864    END IF;
133865    --
133866    --
133867    ------------------------------------------------------------------------------------------------
133868    -- 4219869 Business Flow
133869    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
133870    -- Prior Entry.  Currently, the following code is always generated.
133871    ------------------------------------------------------------------------------------------------
133872    XLA_AE_LINES_PKG.ValidateCurrentLine;
133873 
133874    ------------------------------------------------------------------------------------
133875    -- 4219869 Business Flow
133876    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
133877    ------------------------------------------------------------------------------------
133878    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133879 
133880    ----------------------------------------------------------------------------------
133881    -- 4219869 Business Flow
133882    -- Update journal entry status -- Need to generate this within IF <condition>
133883    ----------------------------------------------------------------------------------
133884    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133885          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
133886          ,p_balance_type_code => l_balance_type_code
133887          );
133888 
133889    -------------------------------------------------------------------------------------------
133890    -- 4262811 - Generate the Accrual Reversal lines
133891    -------------------------------------------------------------------------------------------
133892    BEGIN
133893       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
133894                               (g_array_event(p_event_id).array_value_num('header_index'));
133895       IF l_acc_rev_flag IS NULL THEN
133896          l_acc_rev_flag := 'N';
133897       END IF;
133898    EXCEPTION
133899       WHEN OTHERS THEN
133900          l_acc_rev_flag := 'N';
133901    END;
133902    --
133903    IF (l_acc_rev_flag = 'Y') THEN
133904 
133905        -- 4645092  ------------------------------------------------------------------------------
133906        -- To allow MPA report to determine if it should generate report process
133907        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
133908        ------------------------------------------------------------------------------------------
133909 
133910        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
133911        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
133912    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
133913    -- call ADRs
133914    -- Bug 4922099
133915    --
133916    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133917         (NVL(l_actual_upg_option, 'N') = 'O') OR
133918         (NVL(l_enc_upg_option, 'N') = 'O')
133919       )
133920    THEN
133921    NULL;
133922    --
133923    --
133924    
133925   l_ccid := AcctDerRule_32(
133926            p_application_id           => p_application_id
133927          , p_ae_header_id             => l_ae_header_id 
133928 , p_source_10 => p_source_10
133929 , p_source_10_meaning => p_source_10_meaning
133930 , p_source_15 => p_source_15
133931 , p_source_16 => p_source_16
133932 , p_source_17 => p_source_17
133933 , p_source_17_meaning => p_source_17_meaning
133934 , p_source_18 => p_source_18
133935 , p_source_25 => p_source_25
133936 , p_source_43 => p_source_43
133937 , p_source_43_meaning => p_source_43_meaning
133938          , x_transaction_coa_id       => l_adr_transaction_coa_id
133939          , x_accounting_coa_id        => l_adr_accounting_coa_id
133940          , x_value_type_code          => l_adr_value_type_code
133941          , p_side                     => 'NA'
133942    );
133943 
133944    xla_ae_lines_pkg.set_ccid(
133945     p_code_combination_id          => l_ccid
133946   , p_value_type_code              => l_adr_value_type_code
133947   , p_transaction_coa_id           => l_adr_transaction_coa_id
133948   , p_accounting_coa_id            => l_adr_accounting_coa_id
133949   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
133950   , p_adr_type_code                => 'S'
133951   , p_component_type               => l_component_type
133952   , p_component_code               => l_component_code
133953   , p_component_type_code          => l_component_type_code
133954   , p_component_appl_id            => l_component_appl_id
133955   , p_amb_context_code             => l_amb_context_code
133956   , p_side                         => 'NA'
133957   );
133958 
133959 
133963 , p_source_10 => p_source_10
133960    l_segment := AcctDerRule_8(
133961            p_application_id           => p_application_id
133962          , p_ae_header_id             => l_ae_header_id 
133964 , p_source_10_meaning => p_source_10_meaning
133965 , p_source_15 => p_source_15
133966 , p_source_16 => p_source_16
133967 , p_source_17 => p_source_17
133968 , p_source_17_meaning => p_source_17_meaning
133969 , p_source_18 => p_source_18
133970          , x_transaction_coa_id       => l_adr_transaction_coa_id
133971          , x_accounting_coa_id        => l_adr_accounting_coa_id
133972          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
133973          , x_flex_value_set_id        => l_adr_flex_value_set_id
133974          , x_value_type_code          => l_adr_value_type_code
133975          , x_value_combination_id     => l_adr_value_combination_id
133976          , x_value_segment_code       => l_adr_value_segment_code
133977          , p_side                     => 'NA'
133978          , p_override_seg_flag        => 'Y'
133979    );
133980 
133981    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
133982 
133983       xla_ae_lines_pkg.set_segment(
133984           p_to_segment_code         => 'GL_ACCOUNT'
133985         , p_segment_value           => l_segment
133986         , p_from_segment_code       => l_adr_value_segment_code
133987         , p_from_combination_id     => l_adr_value_combination_id
133988         , p_value_type_code         => l_adr_value_type_code
133989         , p_transaction_coa_id      => l_adr_transaction_coa_id
133990         , p_accounting_coa_id       => l_adr_accounting_coa_id
133991         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
133992         , p_flex_value_set_id       => l_adr_flex_value_set_id
133993         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
133994         , p_adr_type_code           => 'S'
133995         , p_component_type          => l_component_type
133996         , p_component_code          => l_component_code
133997         , p_component_type_code     => l_component_type_code
133998         , p_component_appl_id       => l_component_appl_id
133999         , p_amb_context_code        => l_amb_context_code
134000         , p_entity_code             => 'AP_INVOICES'
134001         , p_event_class_code        => 'PREPAYMENTS'
134002         , p_side                    => 'NA'
134003         );
134004 
134005   END IF;
134006 
134007    l_segment := AcctDerRule_24(
134008            p_application_id           => p_application_id
134009          , p_ae_header_id             => l_ae_header_id 
134010 , p_source_10 => p_source_10
134011 , p_source_10_meaning => p_source_10_meaning
134012 , p_source_17 => p_source_17
134013 , p_source_17_meaning => p_source_17_meaning
134014 , p_source_25 => p_source_25
134015          , x_transaction_coa_id       => l_adr_transaction_coa_id
134016          , x_accounting_coa_id        => l_adr_accounting_coa_id
134017          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
134018          , x_flex_value_set_id        => l_adr_flex_value_set_id
134019          , x_value_type_code          => l_adr_value_type_code
134020          , x_value_combination_id     => l_adr_value_combination_id
134021          , x_value_segment_code       => l_adr_value_segment_code
134022          , p_side                     => 'NA'
134023          , p_override_seg_flag        => 'Y'
134024    );
134025 
134026    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
134027 
134028       xla_ae_lines_pkg.set_segment(
134029           p_to_segment_code         => 'GL_BALANCING'
134030         , p_segment_value           => l_segment
134031         , p_from_segment_code       => l_adr_value_segment_code
134032         , p_from_combination_id     => l_adr_value_combination_id
134033         , p_value_type_code         => l_adr_value_type_code
134034         , p_transaction_coa_id      => l_adr_transaction_coa_id
134035         , p_accounting_coa_id       => l_adr_accounting_coa_id
134036         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
134037         , p_flex_value_set_id       => l_adr_flex_value_set_id
134038         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
134039         , p_adr_type_code           => 'S'
134040         , p_component_type          => l_component_type
134041         , p_component_code          => l_component_code
134042         , p_component_type_code     => l_component_type_code
134043         , p_component_appl_id       => l_component_appl_id
134044         , p_amb_context_code        => l_amb_context_code
134045         , p_entity_code             => 'AP_INVOICES'
134046         , p_event_class_code        => 'PREPAYMENTS'
134047         , p_side                    => 'NA'
134048         );
134049 
134050   END IF;
134051 
134052    --
134053    --
134054    END IF;
134055 
134056        --
134057        -- Update the line information that should be overwritten
134058        --
134059        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134060                                          p_header_num   => 1);
134061        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134062 
134063        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134064 
134065        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134069       --
134066           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134067        END IF;
134068 
134070       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134071       --
134072       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134073           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134074       ELSE
134075           ---------------------------------------------------------------------------------------------------
134076           -- 4262811a Switch Sign
134077           ---------------------------------------------------------------------------------------------------
134078           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134079           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134080                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134081           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134082                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134083           -- 5132302
134084           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134085                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134086 
134087       END IF;
134088 
134089       -- 4955764
134090       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134091       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134092 
134093 
134094       XLA_AE_LINES_PKG.ValidateCurrentLine;
134095       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134096 
134097       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134098                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134099                ,p_balance_type_code => l_balance_type_code);
134100 
134101    END IF;
134102 
134103    -----------------------------------------------------------------------------------------
134104    -- 4262811 Multiperiod Accounting
134105    -----------------------------------------------------------------------------------------
134106      -- No MPA option is assigned.
134107 
134108 
134109 END IF;
134110 END IF;
134111 --
134112 
134113 --
134114 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134115    trace
134116       (p_msg      => 'END of AcctLineType_224'
134117       ,p_level    => C_LEVEL_PROCEDURE
134118       ,p_module   => l_log_module);
134119 END IF;
134120 --
134121 EXCEPTION
134122   WHEN xla_exceptions_pkg.application_exception THEN
134123       RAISE;
134124   WHEN OTHERS THEN
134125        xla_exceptions_pkg.raise_message
134126            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_224');
134127 END AcctLineType_224;
134128 --
134129 
134130 ---------------------------------------
134131 --
134132 -- PRIVATE FUNCTION
134133 --         AcctLineType_225
134134 --
134135 ---------------------------------------
134136 PROCEDURE AcctLineType_225 (
134137   p_application_id        IN NUMBER
134138  ,p_event_id              IN NUMBER
134139  ,p_calculate_acctd_flag  IN VARCHAR2
134140  ,p_calculate_g_l_flag    IN VARCHAR2
134141  ,p_actual_flag           IN OUT VARCHAR2
134142  ,p_balance_type_code     OUT VARCHAR2
134143  ,p_gain_or_loss_ref      OUT VARCHAR2
134144  
134145 --Invoice Distribution Description
134146  , p_source_1            IN VARCHAR2
134147 --Invoice Distribution Ledger Amount
134148  , p_source_16            IN NUMBER
134149 --Invoice Distribution Account
134150  , p_source_25            IN NUMBER
134151 --Invoice Distribution Type
134152  , p_source_28            IN VARCHAR2
134153  , p_source_28_meaning    IN VARCHAR2
134154 --Accrue on Receipt Option
134155  , p_source_54            IN VARCHAR2
134156  , p_source_54_meaning    IN VARCHAR2
134157 --Accounting Reversal Indicator
134158  , p_source_58            IN VARCHAR2
134159 --Distribution Link Type
134160  , p_source_60            IN VARCHAR2
134161 --Allocation to Main Distribution Identifier
134162  , p_source_62            IN NUMBER
134163 --Invoice Identifier
134164  , p_source_63            IN NUMBER
134165 --Invoice Distribution Identifier
134166  , p_source_69            IN NUMBER
134167 --Payables Encumbrance Upgrade Credit Account
134168  , p_source_70            IN NUMBER
134169 --Payables Encumbrance Upgrade Credit Amount
134170  , p_source_71            IN NUMBER
134171 --Invoice Currency Code
134172  , p_source_72            IN VARCHAR2
134173 --Payables Encumbrance Upgrade Credit Base Amount
134174  , p_source_73            IN NUMBER
134175 --Payables Encumbrance Upgrade Debit Account
134176  , p_source_74            IN NUMBER
134177 --Payables Encumbrance Upgrade Debit Amount
134178  , p_source_75            IN NUMBER
134179 --Payables Encumbrance Upgrade Debit Base Amount
134180  , p_source_76            IN NUMBER
134181 --Payables Encumbrance Upgrade Option
134182  , p_source_77            IN VARCHAR2
134183 --Invoice Distribution Amount
134184  , p_source_78            IN NUMBER
134185 --Deferred Accounting End Date
134189 --Deferred Accounting Start Date
134186  , p_source_82            IN DATE
134187 --Deferred Accounting Option
134188  , p_source_83            IN VARCHAR2
134190  , p_source_84            IN DATE
134191 --Override Accounted Amount Indicator
134192  , p_source_85            IN VARCHAR2
134193  , p_source_85_meaning    IN VARCHAR2
134194 --Invoice Supplier Identifier
134195  , p_source_86            IN NUMBER
134196 --Invoice Supplier Site Identifier
134197  , p_source_87            IN NUMBER
134198 --Third Party Type
134199  , p_source_88            IN VARCHAR2
134200 --Parent Reversal Identifier
134201  , p_source_89            IN NUMBER
134202 --Invoice Distribution Statistical Amount
134203  , p_source_90            IN NUMBER
134204 --Invoice Distribution Tax Line Identifier
134205  , p_source_91            IN NUMBER
134206 --Invoice Distribution Tax Distribution Identifier from Tax
134207  , p_source_92            IN NUMBER
134208 --Invoice Distribution Summary Tax Line Identifier
134209  , p_source_93            IN NUMBER
134210 --Payables Upgrade Credit Encumbrance Type Identifier
134211  , p_source_94            IN NUMBER
134212 --Payables Upgrade Debit Encumbrance Type Identifier
134213  , p_source_95            IN NUMBER
134214 --Business Flow Accounts Payable Application Identifier
134215  , p_source_96            IN NUMBER
134216 --Business Flow Invoice Distribution Type
134217  , p_source_97            IN VARCHAR2
134218 --Business Flow Invoice Entity Code
134219  , p_source_98            IN VARCHAR2
134220 --Business Flow Invoice Distribution Identifier
134221  , p_source_99            IN NUMBER
134222 --Business Flow Invoice Identifier
134223  , p_source_100            IN NUMBER
134224 --Invoice Exchange Date
134225  , p_source_146            IN DATE
134226 --Invoice Exchange Rate
134227  , p_source_147            IN NUMBER
134228 --Invoice Exchange Rate Type
134229  , p_source_148            IN VARCHAR2
134230 )
134231 IS
134232 
134233 l_component_type              VARCHAR2(80);
134234 l_component_code              VARCHAR2(30);
134235 l_component_type_code         VARCHAR2(1);
134236 l_component_appl_id           INTEGER;
134237 l_amb_context_code            VARCHAR2(30);
134238 l_entity_code                 VARCHAR2(30);
134239 l_event_class_code            VARCHAR2(30);
134240 l_ae_header_id                NUMBER;
134241 l_event_type_code             VARCHAR2(30);
134242 l_line_definition_code        VARCHAR2(30);
134243 l_line_definition_owner_code  VARCHAR2(1);
134244 --
134245 -- adr variables
134246 l_segment                     VARCHAR2(30);
134247 l_ccid                        NUMBER;
134248 l_adr_transaction_coa_id      NUMBER;
134249 l_adr_accounting_coa_id       NUMBER;
134250 l_adr_flexfield_segment_code  VARCHAR2(30);
134251 l_adr_flex_value_set_id       NUMBER;
134252 l_adr_value_type_code         VARCHAR2(30);
134253 l_adr_value_combination_id    NUMBER;
134254 l_adr_value_segment_code      VARCHAR2(30);
134255 
134256 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
134257 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
134258 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
134259 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
134260 
134261 -- 4262811 Variables ------------------------------------------------------------------------------------------
134262 l_entered_amt_idx             NUMBER;
134263 l_accted_amt_idx              NUMBER;
134264 l_acc_rev_flag                VARCHAR2(1);
134265 l_accrual_line_num            NUMBER;
134266 l_tmp_amt                     NUMBER;
134267 l_acc_rev_natural_side_code   VARCHAR2(1);
134268 
134269 l_num_entries                 NUMBER;
134270 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
134271 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
134272 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
134273 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
134274 l_recog_line_1                NUMBER;
134275 l_recog_line_2                NUMBER;
134276 
134277 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
134278 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
134279 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
134280 
134281 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
134282 
134283 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
134284 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
134285 
134286 ---------------------------------------------------------------------------------------------------------------
134287 
134288 
134289 --
134290 -- bulk performance
134291 --
134292 l_balance_type_code           VARCHAR2(1);
134293 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
134294 l_log_module                  VARCHAR2(240);
134295 
134296 --
134297 -- Upgrade strategy
134298 --
134299 l_actual_upg_option           VARCHAR2(1);
134300 l_enc_upg_option           VARCHAR2(1);
134301 
134302 --
134303 BEGIN
134304 --
134305 IF g_log_enabled THEN
134306       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_225';
134307 END IF;
134308 --
134309 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134310 
134311       trace
134312          (p_msg      => 'BEGIN of AcctLineType_225'
134316 END IF;
134313          ,p_level    => C_LEVEL_PROCEDURE
134314          ,p_module   => l_log_module);
134315 
134317 --
134318 l_component_type             := 'AMB_JLT';
134319 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CM';
134320 l_component_type_code        := 'S';
134321 l_component_appl_id          :=  200;
134322 l_amb_context_code           := 'DEFAULT';
134323 l_entity_code                := 'AP_INVOICES';
134324 l_event_class_code           := 'CREDIT MEMOS';
134325 l_event_type_code            := 'CREDIT MEMOS_ALL';
134326 l_line_definition_owner_code := 'S';
134327 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
134328 --
134329 l_balance_type_code          := 'A';
134330 l_segment                     := NULL;
134331 l_ccid                        := NULL;
134332 l_adr_transaction_coa_id      := NULL;
134333 l_adr_accounting_coa_id       := NULL;
134334 l_adr_flexfield_segment_code  := NULL;
134335 l_adr_flex_value_set_id       := NULL;
134336 l_adr_value_type_code         := NULL;
134337 l_adr_value_combination_id    := NULL;
134338 l_adr_value_segment_code      := NULL;
134339 
134340 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
134341 l_bflow_class_code           := '';    -- 4219869 Business Flow
134342 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
134343 l_budgetary_control_flag     := 'N';
134344 
134345 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
134346 l_bflow_applied_to_amt       := NULL; -- 5132302
134347 l_entered_amt_idx            := NULL;          -- 4262811
134348 l_accted_amt_idx             := NULL;          -- 4262811
134349 l_acc_rev_flag               := NULL;          -- 4262811
134350 l_accrual_line_num           := NULL;          -- 4262811
134351 l_tmp_amt                    := NULL;          -- 4262811
134352 --
134353  
134354 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
134355     l_balance_type_code <> 'B' THEN
134356 IF NVL(p_source_28,'
134357 ') =  'TIPV' AND 
134358 NVL(p_source_54,'
134359 ') =  'Y'
134360  THEN 
134361 
134362    --
134363    XLA_AE_LINES_PKG.SetNewLine;
134364 
134365    p_balance_type_code          := l_balance_type_code;
134366    -- set the flag so later we will know whether the gain loss line needs to be created
134367    
134368    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
134369      p_actual_flag :='A';
134370    END IF;
134371 
134372    --
134373    -- bulk performance
134374    --
134375    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
134376                                       p_header_num   => 0); -- 4262811
134377    --
134378    -- set accounting line options
134379    --
134380    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
134381            p_natural_side_code          => 'D'
134382          , p_gain_or_loss_flag          => 'N'
134383          , p_gl_transfer_mode_code      => 'S'
134384          , p_acct_entry_type_code       => 'A'
134385          , p_switch_side_flag           => 'Y'
134386          , p_merge_duplicate_code       => 'A'
134387          );
134388    --
134389    l_acc_rev_natural_side_code := 'C';  -- 4262811
134390    -- 
134391    --
134392    -- set accounting line type info
134393    --
134394    xla_ae_lines_pkg.SetAcctLineType
134395       (p_component_type             => l_component_type
134396       ,p_event_type_code            => l_event_type_code
134397       ,p_line_definition_owner_code => l_line_definition_owner_code
134398       ,p_line_definition_code       => l_line_definition_code
134399       ,p_accounting_line_code       => l_component_code
134400       ,p_accounting_line_type_code  => l_component_type_code
134401       ,p_accounting_line_appl_id    => l_component_appl_id
134402       ,p_amb_context_code           => l_amb_context_code
134403       ,p_entity_code                => l_entity_code
134404       ,p_event_class_code           => l_event_class_code);
134405    --
134406    -- set accounting class
134407    --
134408    xla_ae_lines_pkg.SetAcctClass(
134409            p_accounting_class_code  => 'TIPV'
134410          , p_ae_header_id           => l_ae_header_id
134411          );
134412 
134413    --
134414    -- set rounding class
134415    --
134416    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
134417                       'TIPV';
134418 
134419    --
134420    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
134421    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
134422    --
134423    -- bulk performance
134424    --
134425    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
134426 
134427    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
134428       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
134429 
134430    -- 4955764
134431    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134432       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
134433 
134434    -- 4458381 Public Sector Enh
134435    
134436    --
134437    -- set accounting attributes for the line type
134438    --
134439    l_entered_amt_idx := 23;
134440    l_accted_amt_idx  := 28;
134441    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
134442    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
134443    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
134447    p_source_code           => 'XLA_EVENT_APPL_ID'
134444    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
134445    l_rec_acct_attrs.array_num_value(2)  := 
134446 xla_ae_sources_pkg.GetSystemSourceNum(
134448  , p_source_type_code      => 'Y'
134449  , p_source_application_id =>  602
134450 );
134451    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
134452    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
134453    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
134454    l_rec_acct_attrs.array_char_value(4)  := 
134455 xla_ae_sources_pkg.GetSystemSourceChar(
134456    p_source_code           => 'XLA_ENTITY_CODE'
134457  , p_source_type_code      => 'Y'
134458  , p_source_application_id =>  602
134459 );
134460    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
134461    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
134462    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
134463    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
134464    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
134465    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
134466    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
134467    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
134468    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
134469    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
134470    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
134471    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
134472    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
134473    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
134474    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
134475    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
134476    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
134477    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
134478    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
134479    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
134480    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
134481    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
134482    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
134483    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
134484    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
134485    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
134486    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
134487    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
134488    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
134489    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
134490    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
134491    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
134492    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
134493    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
134494    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
134495    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
134496    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
134497    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
134498    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
134499    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
134500    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
134501    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
134502    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
134503    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
134504    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
134505    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
134506    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
134507    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
134508    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
134509    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
134510    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
134511    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
134512    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
134513    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
134514    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
134515    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
134516    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
134517    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
134518    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
134519    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
134520    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
134521    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
134522    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
134523    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
134524    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
134525    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
134526    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
134527    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
134528    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
134529    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
134530    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
134531    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
134532    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
134533    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
134534    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
134535    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
134536    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
134537    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
134541 
134538 
134539    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
134540    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
134542    ---------------------------------------------------------------------------------------------------------------
134543    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
134544    ---------------------------------------------------------------------------------------------------------------
134545    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
134546 
134547    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134548    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134549 
134550    IF xla_accounting_cache_pkg.GetValueChar
134551          (p_source_code         => 'LEDGER_CATEGORY_CODE'
134552          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
134553    AND l_bflow_method_code = 'PRIOR_ENTRY'
134557        )
134554 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
134555    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
134556          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
134558    THEN
134559          xla_ae_lines_pkg.BflowUpgEntry
134560            (p_business_method_code    => l_bflow_method_code
134561            ,p_business_class_code     => l_bflow_class_code
134562            ,p_balance_type            => l_balance_type_code);
134563    ELSE
134564       NULL;
134565 -- No business flow processing for business flow method of NONE.
134566    END IF;
134567 
134568    --
134569    -- call analytical criteria
134570    --
134571    
134572    --
134573    -- call description
134574    --
134575    
134576 xla_ae_lines_pkg.SetLineDescription(
134577    p_ae_header_id => l_ae_header_id
134578   ,p_description  => Description_2 (
134579      p_application_id         => p_application_id
134580    , p_ae_header_id           => l_ae_header_id 
134581 , p_source_1 => p_source_1
134582    )
134583 );
134584 
134585 
134586    --
134587    -- call ADRs
134588    -- Bug 4922099
134589    --
134590    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134591         (NVL(l_actual_upg_option, 'N') = 'O') OR
134592         (NVL(l_enc_upg_option, 'N') = 'O')
134593       )
134594    THEN
134595    NULL;
134596    --
134597    --
134598    
134599   l_ccid := AcctDerRule_35(
134600            p_application_id           => p_application_id
134601          , p_ae_header_id             => l_ae_header_id 
134602 , p_source_25 => p_source_25
134603          , x_transaction_coa_id       => l_adr_transaction_coa_id
134604          , x_accounting_coa_id        => l_adr_accounting_coa_id
134605          , x_value_type_code          => l_adr_value_type_code
134606          , p_side                     => 'NA'
134607    );
134608 
134609    xla_ae_lines_pkg.set_ccid(
134610     p_code_combination_id          => l_ccid
134611   , p_value_type_code              => l_adr_value_type_code
134612   , p_transaction_coa_id           => l_adr_transaction_coa_id
134613   , p_accounting_coa_id            => l_adr_accounting_coa_id
134614   , p_adr_code                     => 'AP_INVOICE_DIST'
134615   , p_adr_type_code                => 'S'
134616   , p_component_type               => l_component_type
134617   , p_component_code               => l_component_code
134618   , p_component_type_code          => l_component_type_code
134619   , p_component_appl_id            => l_component_appl_id
134620   , p_amb_context_code             => l_amb_context_code
134621   , p_side                         => 'NA'
134622   );
134623 
134624 
134625    --
134626    --
134627    END IF;
134628    --
134629    -- Bug 4922099
134630    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134631           (NVL(l_enc_upg_option, 'N') = 'O')
134632         ) AND
134633         (l_bflow_method_code = 'PRIOR_ENTRY')
134634       )
134635    THEN
134636       IF
134637       --
134638       1 = 2
134639       --
134640       THEN
134641       xla_accounting_err_pkg.build_message
134642                                     (p_appli_s_name            => 'XLA'
134643                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134644                                     ,p_token_1                 => 'LINE_NUMBER'
134645                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134646                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134647                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134648                                                                              l_component_type
134649                                                                             ,l_component_code
134650                                                                             ,l_component_type_code
134651                                                                             ,l_component_appl_id
134652                                                                             ,l_amb_context_code
134653                                                                             ,l_entity_code
134654                                                                             ,l_event_class_code
134655                                                                            )
134656                                     ,p_token_3                 => 'OWNER'
134657                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134658                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134659                                                                           ,p_lookup_code    => l_component_type_code
134660                                                                          )
134661                                     ,p_token_4                 => 'PRODUCT_NAME'
134662                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134663                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134664                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134665                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134666                                     ,p_ae_header_id            =>  NULL
134667                                        );
134668 
134669         IF (C_LEVEL_ERROR>= g_log_level) THEN
134670                  trace
134671                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134672                       ,p_level    => C_LEVEL_ERROR
134673                       ,p_module   => l_log_module);
134674         END IF;
134675       END IF;
134676    END IF;
134677    --
134678    --
134682    -- Prior Entry.  Currently, the following code is always generated.
134679    ------------------------------------------------------------------------------------------------
134680    -- 4219869 Business Flow
134681    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134683    ------------------------------------------------------------------------------------------------
134684    XLA_AE_LINES_PKG.ValidateCurrentLine;
134685 
134686    ------------------------------------------------------------------------------------
134687    -- 4219869 Business Flow
134688    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134689    ------------------------------------------------------------------------------------
134690    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134691 
134692    ----------------------------------------------------------------------------------
134693    -- 4219869 Business Flow
134694    -- Update journal entry status -- Need to generate this within IF <condition>
134695    ----------------------------------------------------------------------------------
134696    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134697          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134698          ,p_balance_type_code => l_balance_type_code
134699          );
134700 
134701    -------------------------------------------------------------------------------------------
134702    -- 4262811 - Generate the Accrual Reversal lines
134703    -------------------------------------------------------------------------------------------
134704    BEGIN
134705       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
134706                               (g_array_event(p_event_id).array_value_num('header_index'));
134707       IF l_acc_rev_flag IS NULL THEN
134708          l_acc_rev_flag := 'N';
134709       END IF;
134710    EXCEPTION
134711       WHEN OTHERS THEN
134712          l_acc_rev_flag := 'N';
134713    END;
134714    --
134715    IF (l_acc_rev_flag = 'Y') THEN
134716 
134717        -- 4645092  ------------------------------------------------------------------------------
134718        -- To allow MPA report to determine if it should generate report process
134719        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
134720        ------------------------------------------------------------------------------------------
134721 
134722        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
134723        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
134724    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
134725    -- call ADRs
134726    -- Bug 4922099
134727    --
134728    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134729         (NVL(l_actual_upg_option, 'N') = 'O') OR
134730         (NVL(l_enc_upg_option, 'N') = 'O')
134731       )
134732    THEN
134733    NULL;
134734    --
134735    --
134736    
134737   l_ccid := AcctDerRule_35(
134738            p_application_id           => p_application_id
134739          , p_ae_header_id             => l_ae_header_id 
134740 , p_source_25 => p_source_25
134741          , x_transaction_coa_id       => l_adr_transaction_coa_id
134742          , x_accounting_coa_id        => l_adr_accounting_coa_id
134743          , x_value_type_code          => l_adr_value_type_code
134744          , p_side                     => 'NA'
134745    );
134746 
134747    xla_ae_lines_pkg.set_ccid(
134748     p_code_combination_id          => l_ccid
134749   , p_value_type_code              => l_adr_value_type_code
134750   , p_transaction_coa_id           => l_adr_transaction_coa_id
134751   , p_accounting_coa_id            => l_adr_accounting_coa_id
134752   , p_adr_code                     => 'AP_INVOICE_DIST'
134753   , p_adr_type_code                => 'S'
134754   , p_component_type               => l_component_type
134755   , p_component_code               => l_component_code
134756   , p_component_type_code          => l_component_type_code
134757   , p_component_appl_id            => l_component_appl_id
134758   , p_amb_context_code             => l_amb_context_code
134759   , p_side                         => 'NA'
134760   );
134761 
134762 
134763    --
134764    --
134765    END IF;
134766 
134767        --
134768        -- Update the line information that should be overwritten
134769        --
134770        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134771                                          p_header_num   => 1);
134772        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134773 
134774        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134775 
134776        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134777           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134778        END IF;
134779 
134780       --
134781       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134782       --
134783       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134784           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134785       ELSE
134786           ---------------------------------------------------------------------------------------------------
134787           -- 4262811a Switch Sign
134788           ---------------------------------------------------------------------------------------------------
134789           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134790           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134791                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134792           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134796                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134793                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134794           -- 5132302
134795           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134797 
134798       END IF;
134799 
134800       -- 4955764
134801       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134802       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134803 
134804 
134805       XLA_AE_LINES_PKG.ValidateCurrentLine;
134806       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134807 
134808       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134809                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134810                ,p_balance_type_code => l_balance_type_code);
134811 
134812    END IF;
134813 
134814    -----------------------------------------------------------------------------------------
134815    -- 4262811 Multiperiod Accounting
134816    -----------------------------------------------------------------------------------------
134817      -- No MPA option is assigned.
134818 
134819 
134820 END IF;
134821 END IF;
134822 --
134823 
134824 --
134825 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134826    trace
134827       (p_msg      => 'END of AcctLineType_225'
134828       ,p_level    => C_LEVEL_PROCEDURE
134829       ,p_module   => l_log_module);
134830 END IF;
134831 --
134832 EXCEPTION
134833   WHEN xla_exceptions_pkg.application_exception THEN
134834       RAISE;
134835   WHEN OTHERS THEN
134836        xla_exceptions_pkg.raise_message
134837            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_225');
134838 END AcctLineType_225;
134839 --
134840 
134841 ---------------------------------------
134842 --
134843 -- PRIVATE FUNCTION
134844 --         AcctLineType_226
134845 --
134846 ---------------------------------------
134847 PROCEDURE AcctLineType_226 (
134848   p_application_id        IN NUMBER
134849  ,p_event_id              IN NUMBER
134850  ,p_calculate_acctd_flag  IN VARCHAR2
134851  ,p_calculate_g_l_flag    IN VARCHAR2
134852  ,p_actual_flag           IN OUT VARCHAR2
134853  ,p_balance_type_code     OUT VARCHAR2
134854  ,p_gain_or_loss_ref      OUT VARCHAR2
134855  
134856 --Invoice Distribution Description
134857  , p_source_1            IN VARCHAR2
134858 --Invoice Distribution Ledger Amount
134859  , p_source_16            IN NUMBER
134860 --Invoice Distribution Account
134861  , p_source_25            IN NUMBER
134862 --Invoice Distribution Type
134863  , p_source_28            IN VARCHAR2
134864  , p_source_28_meaning    IN VARCHAR2
134865 --Accrue on Receipt Option
134866  , p_source_54            IN VARCHAR2
134867  , p_source_54_meaning    IN VARCHAR2
134868 --Accounting Reversal Indicator
134869  , p_source_58            IN VARCHAR2
134870 --Distribution Link Type
134871  , p_source_60            IN VARCHAR2
134872 --Allocation to Main Distribution Identifier
134873  , p_source_62            IN NUMBER
134874 --Invoice Identifier
134875  , p_source_63            IN NUMBER
134876 --Invoice Distribution Identifier
134877  , p_source_69            IN NUMBER
134878 --Payables Encumbrance Upgrade Credit Account
134879  , p_source_70            IN NUMBER
134880 --Payables Encumbrance Upgrade Credit Amount
134881  , p_source_71            IN NUMBER
134882 --Invoice Currency Code
134883  , p_source_72            IN VARCHAR2
134884 --Payables Encumbrance Upgrade Credit Base Amount
134885  , p_source_73            IN NUMBER
134886 --Payables Encumbrance Upgrade Debit Account
134887  , p_source_74            IN NUMBER
134888 --Payables Encumbrance Upgrade Debit Amount
134889  , p_source_75            IN NUMBER
134890 --Payables Encumbrance Upgrade Debit Base Amount
134891  , p_source_76            IN NUMBER
134892 --Payables Encumbrance Upgrade Option
134893  , p_source_77            IN VARCHAR2
134894 --Invoice Distribution Amount
134895  , p_source_78            IN NUMBER
134896 --Deferred Accounting End Date
134897  , p_source_82            IN DATE
134898 --Deferred Accounting Option
134899  , p_source_83            IN VARCHAR2
134900 --Deferred Accounting Start Date
134901  , p_source_84            IN DATE
134902 --Override Accounted Amount Indicator
134903  , p_source_85            IN VARCHAR2
134904  , p_source_85_meaning    IN VARCHAR2
134905 --Invoice Supplier Identifier
134906  , p_source_86            IN NUMBER
134907 --Invoice Supplier Site Identifier
134908  , p_source_87            IN NUMBER
134909 --Third Party Type
134910  , p_source_88            IN VARCHAR2
134911 --Parent Reversal Identifier
134912  , p_source_89            IN NUMBER
134913 --Invoice Distribution Tax Line Identifier
134914  , p_source_91            IN NUMBER
134915 --Invoice Distribution Tax Distribution Identifier from Tax
134916  , p_source_92            IN NUMBER
134917 --Invoice Distribution Summary Tax Line Identifier
134918  , p_source_93            IN NUMBER
134919 --Payables Upgrade Credit Encumbrance Type Identifier
134920  , p_source_94            IN NUMBER
134921 --Payables Upgrade Debit Encumbrance Type Identifier
134922  , p_source_95            IN NUMBER
134923 --Business Flow Accounts Payable Application Identifier
134924  , p_source_96            IN NUMBER
134925 --Business Flow Invoice Distribution Type
134926  , p_source_97            IN VARCHAR2
134927 --Business Flow Invoice Entity Code
134928  , p_source_98            IN VARCHAR2
134929 --Business Flow Invoice Distribution Identifier
134930  , p_source_99            IN NUMBER
134931 --Business Flow Invoice Identifier
134932  , p_source_100            IN NUMBER
134933 --Invoice Exchange Date
134934  , p_source_146            IN DATE
134935 --Invoice Exchange Rate
134939 )
134936  , p_source_147            IN NUMBER
134937 --Invoice Exchange Rate Type
134938  , p_source_148            IN VARCHAR2
134940 IS
134941 
134942 l_component_type              VARCHAR2(80);
134943 l_component_code              VARCHAR2(30);
134944 l_component_type_code         VARCHAR2(1);
134945 l_component_appl_id           INTEGER;
134946 l_amb_context_code            VARCHAR2(30);
134947 l_entity_code                 VARCHAR2(30);
134948 l_event_class_code            VARCHAR2(30);
134949 l_ae_header_id                NUMBER;
134950 l_event_type_code             VARCHAR2(30);
134951 l_line_definition_code        VARCHAR2(30);
134952 l_line_definition_owner_code  VARCHAR2(1);
134953 --
134954 -- adr variables
134955 l_segment                     VARCHAR2(30);
134956 l_ccid                        NUMBER;
134957 l_adr_transaction_coa_id      NUMBER;
134958 l_adr_accounting_coa_id       NUMBER;
134959 l_adr_flexfield_segment_code  VARCHAR2(30);
134960 l_adr_flex_value_set_id       NUMBER;
134961 l_adr_value_type_code         VARCHAR2(30);
134962 l_adr_value_combination_id    NUMBER;
134963 l_adr_value_segment_code      VARCHAR2(30);
134964 
134965 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
134966 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
134967 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
134968 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
134969 
134970 -- 4262811 Variables ------------------------------------------------------------------------------------------
134971 l_entered_amt_idx             NUMBER;
134972 l_accted_amt_idx              NUMBER;
134973 l_acc_rev_flag                VARCHAR2(1);
134974 l_accrual_line_num            NUMBER;
134975 l_tmp_amt                     NUMBER;
134976 l_acc_rev_natural_side_code   VARCHAR2(1);
134977 
134978 l_num_entries                 NUMBER;
134979 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
134980 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
134981 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
134982 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
134983 l_recog_line_1                NUMBER;
134984 l_recog_line_2                NUMBER;
134985 
134986 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
134987 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
134988 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
134989 
134990 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
134991 
134992 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
134993 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
134994 
134995 ---------------------------------------------------------------------------------------------------------------
134996 
134997 
134998 --
134999 -- bulk performance
135000 --
135001 l_balance_type_code           VARCHAR2(1);
135002 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135003 l_log_module                  VARCHAR2(240);
135004 
135005 --
135006 -- Upgrade strategy
135007 --
135008 l_actual_upg_option           VARCHAR2(1);
135009 l_enc_upg_option           VARCHAR2(1);
135010 
135011 --
135012 BEGIN
135013 --
135014 IF g_log_enabled THEN
135015       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_226';
135016 END IF;
135017 --
135018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135019 
135020       trace
135021          (p_msg      => 'BEGIN of AcctLineType_226'
135022          ,p_level    => C_LEVEL_PROCEDURE
135023          ,p_module   => l_log_module);
135024 
135025 END IF;
135026 --
135027 l_component_type             := 'AMB_JLT';
135028 l_component_code             := 'AP_TAX_INV_PRICE_VAR_DM';
135029 l_component_type_code        := 'S';
135030 l_component_appl_id          :=  200;
135031 l_amb_context_code           := 'DEFAULT';
135032 l_entity_code                := 'AP_INVOICES';
135033 l_event_class_code           := 'DEBIT MEMOS';
135034 l_event_type_code            := 'DEBIT MEMOS_ALL';
135035 l_line_definition_owner_code := 'S';
135036 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
135037 --
135038 l_balance_type_code          := 'A';
135039 l_segment                     := NULL;
135040 l_ccid                        := NULL;
135041 l_adr_transaction_coa_id      := NULL;
135042 l_adr_accounting_coa_id       := NULL;
135043 l_adr_flexfield_segment_code  := NULL;
135044 l_adr_flex_value_set_id       := NULL;
135045 l_adr_value_type_code         := NULL;
135046 l_adr_value_combination_id    := NULL;
135047 l_adr_value_segment_code      := NULL;
135048 
135049 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
135050 l_bflow_class_code           := '';    -- 4219869 Business Flow
135051 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135052 l_budgetary_control_flag     := 'N';
135053 
135054 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135055 l_bflow_applied_to_amt       := NULL; -- 5132302
135056 l_entered_amt_idx            := NULL;          -- 4262811
135057 l_accted_amt_idx             := NULL;          -- 4262811
135058 l_acc_rev_flag               := NULL;          -- 4262811
135059 l_accrual_line_num           := NULL;          -- 4262811
135060 l_tmp_amt                    := NULL;          -- 4262811
135061 --
135062  
135063 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135064     l_balance_type_code <> 'B' THEN
135065 IF NVL(p_source_28,'
135066 ') =  'TIPV' AND 
135067 NVL(p_source_54,'
135068 ') =  'Y'
135069  THEN 
135070 
135071    --
135072    XLA_AE_LINES_PKG.SetNewLine;
135073 
135074    p_balance_type_code          := l_balance_type_code;
135078      p_actual_flag :='A';
135075    -- set the flag so later we will know whether the gain loss line needs to be created
135076    
135077    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135079    END IF;
135080 
135081    --
135082    -- bulk performance
135083    --
135084    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135085                                       p_header_num   => 0); -- 4262811
135086    --
135087    -- set accounting line options
135088    --
135089    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135090            p_natural_side_code          => 'D'
135091          , p_gain_or_loss_flag          => 'N'
135092          , p_gl_transfer_mode_code      => 'S'
135093          , p_acct_entry_type_code       => 'A'
135094          , p_switch_side_flag           => 'Y'
135095          , p_merge_duplicate_code       => 'A'
135096          );
135097    --
135098    l_acc_rev_natural_side_code := 'C';  -- 4262811
135099    -- 
135100    --
135101    -- set accounting line type info
135102    --
135103    xla_ae_lines_pkg.SetAcctLineType
135104       (p_component_type             => l_component_type
135105       ,p_event_type_code            => l_event_type_code
135106       ,p_line_definition_owner_code => l_line_definition_owner_code
135107       ,p_line_definition_code       => l_line_definition_code
135108       ,p_accounting_line_code       => l_component_code
135109       ,p_accounting_line_type_code  => l_component_type_code
135110       ,p_accounting_line_appl_id    => l_component_appl_id
135111       ,p_amb_context_code           => l_amb_context_code
135112       ,p_entity_code                => l_entity_code
135113       ,p_event_class_code           => l_event_class_code);
135114    --
135115    -- set accounting class
135116    --
135117    xla_ae_lines_pkg.SetAcctClass(
135118            p_accounting_class_code  => 'TIPV'
135119          , p_ae_header_id           => l_ae_header_id
135120          );
135121 
135122    --
135123    -- set rounding class
135124    --
135125    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135126                       'TIPV';
135127 
135128    --
135129    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135130    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135131    --
135132    -- bulk performance
135133    --
135134    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135135 
135136    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135137       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135138 
135139    -- 4955764
135140    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135141       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135142 
135143    -- 4458381 Public Sector Enh
135144    
135145    --
135146    -- set accounting attributes for the line type
135147    --
135148    l_entered_amt_idx := 23;
135149    l_accted_amt_idx  := 28;
135150    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
135151    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135152    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
135153    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135154    l_rec_acct_attrs.array_num_value(2)  := 
135155 xla_ae_sources_pkg.GetSystemSourceNum(
135156    p_source_code           => 'XLA_EVENT_APPL_ID'
135157  , p_source_type_code      => 'Y'
135158  , p_source_application_id =>  602
135159 );
135160    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135161    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
135162    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
135163    l_rec_acct_attrs.array_char_value(4)  := 
135164 xla_ae_sources_pkg.GetSystemSourceChar(
135165    p_source_code           => 'XLA_ENTITY_CODE'
135166  , p_source_type_code      => 'Y'
135167  , p_source_application_id =>  602
135168 );
135169    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
135170    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
135171    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
135172    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
135173    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
135174    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
135175    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
135176    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
135177    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
135178    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
135179    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
135180    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
135181    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
135182    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
135183    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
135184    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
135185    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
135186    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
135187    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
135188    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
135189    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
135190    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
135191    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
135192    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
135193    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
135194    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
135198    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
135195    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
135196    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
135197    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
135199    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
135200    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
135201    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
135202    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
135203    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
135204    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
135205    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
135206    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
135207    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
135208    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
135209    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
135210    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
135211    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
135212    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
135213    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
135214    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
135215    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
135216    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
135217    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
135218    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
135219    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
135220    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
135221    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
135222    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
135223    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
135224    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
135225    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
135226    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
135227    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
135228    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
135229    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
135230    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
135231    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
135232    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
135233    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
135234    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
135235    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
135236    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
135237    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
135238    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
135239    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
135240    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
135241    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
135242    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
135243    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
135244    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
135245 
135246    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
135247    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
135248 
135249    ---------------------------------------------------------------------------------------------------------------
135250    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
135251    ---------------------------------------------------------------------------------------------------------------
135252    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
135253 
135254    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135255    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135256 
135257    IF xla_accounting_cache_pkg.GetValueChar
135258          (p_source_code         => 'LEDGER_CATEGORY_CODE'
135259          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
135260    AND l_bflow_method_code = 'PRIOR_ENTRY'
135261 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
135262    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
135263          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
135264        )
135265    THEN
135266          xla_ae_lines_pkg.BflowUpgEntry
135267            (p_business_method_code    => l_bflow_method_code
135268            ,p_business_class_code     => l_bflow_class_code
135269            ,p_balance_type            => l_balance_type_code);
135270    ELSE
135271       NULL;
135272 -- No business flow processing for business flow method of NONE.
135273    END IF;
135274 
135275    --
135276    -- call analytical criteria
135277    --
135278    
135279    --
135280    -- call description
135281    --
135282    
135283 xla_ae_lines_pkg.SetLineDescription(
135284    p_ae_header_id => l_ae_header_id
135285   ,p_description  => Description_2 (
135286      p_application_id         => p_application_id
135287    , p_ae_header_id           => l_ae_header_id 
135288 , p_source_1 => p_source_1
135289    )
135290 );
135291 
135292 
135293    --
135294    -- call ADRs
135295    -- Bug 4922099
135296    --
135297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135298         (NVL(l_actual_upg_option, 'N') = 'O') OR
135299         (NVL(l_enc_upg_option, 'N') = 'O')
135300       )
135301    THEN
135302    NULL;
135303    --
135304    --
135305    
135306   l_ccid := AcctDerRule_35(
135307            p_application_id           => p_application_id
135311          , x_accounting_coa_id        => l_adr_accounting_coa_id
135308          , p_ae_header_id             => l_ae_header_id 
135309 , p_source_25 => p_source_25
135310          , x_transaction_coa_id       => l_adr_transaction_coa_id
135312          , x_value_type_code          => l_adr_value_type_code
135313          , p_side                     => 'NA'
135314    );
135315 
135316    xla_ae_lines_pkg.set_ccid(
135317     p_code_combination_id          => l_ccid
135318   , p_value_type_code              => l_adr_value_type_code
135319   , p_transaction_coa_id           => l_adr_transaction_coa_id
135320   , p_accounting_coa_id            => l_adr_accounting_coa_id
135321   , p_adr_code                     => 'AP_INVOICE_DIST'
135322   , p_adr_type_code                => 'S'
135323   , p_component_type               => l_component_type
135324   , p_component_code               => l_component_code
135325   , p_component_type_code          => l_component_type_code
135326   , p_component_appl_id            => l_component_appl_id
135327   , p_amb_context_code             => l_amb_context_code
135328   , p_side                         => 'NA'
135329   );
135330 
135331 
135332    --
135333    --
135334    END IF;
135335    --
135336    -- Bug 4922099
135337    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
135338           (NVL(l_enc_upg_option, 'N') = 'O')
135339         ) AND
135340         (l_bflow_method_code = 'PRIOR_ENTRY')
135341       )
135342    THEN
135343       IF
135344       --
135345       1 = 2
135346       --
135347       THEN
135348       xla_accounting_err_pkg.build_message
135349                                     (p_appli_s_name            => 'XLA'
135350                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135351                                     ,p_token_1                 => 'LINE_NUMBER'
135352                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
135353                                     ,p_token_2                 => 'LINE_TYPE_NAME'
135354                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
135355                                                                              l_component_type
135356                                                                             ,l_component_code
135357                                                                             ,l_component_type_code
135358                                                                             ,l_component_appl_id
135359                                                                             ,l_amb_context_code
135360                                                                             ,l_entity_code
135361                                                                             ,l_event_class_code
135362                                                                            )
135363                                     ,p_token_3                 => 'OWNER'
135364                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
135365                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
135366                                                                           ,p_lookup_code    => l_component_type_code
135367                                                                          )
135368                                     ,p_token_4                 => 'PRODUCT_NAME'
135369                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
135370                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
135371                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
135372                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
135373                                     ,p_ae_header_id            =>  NULL
135374                                        );
135375 
135376         IF (C_LEVEL_ERROR>= g_log_level) THEN
135377                  trace
135378                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135379                       ,p_level    => C_LEVEL_ERROR
135380                       ,p_module   => l_log_module);
135381         END IF;
135382       END IF;
135383    END IF;
135384    --
135385    --
135386    ------------------------------------------------------------------------------------------------
135387    -- 4219869 Business Flow
135388    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
135389    -- Prior Entry.  Currently, the following code is always generated.
135390    ------------------------------------------------------------------------------------------------
135391    XLA_AE_LINES_PKG.ValidateCurrentLine;
135392 
135393    ------------------------------------------------------------------------------------
135394    -- 4219869 Business Flow
135395    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
135396    ------------------------------------------------------------------------------------
135397    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135398 
135399    ----------------------------------------------------------------------------------
135400    -- 4219869 Business Flow
135401    -- Update journal entry status -- Need to generate this within IF <condition>
135402    ----------------------------------------------------------------------------------
135403    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135404          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
135405          ,p_balance_type_code => l_balance_type_code
135406          );
135407 
135408    -------------------------------------------------------------------------------------------
135409    -- 4262811 - Generate the Accrual Reversal lines
135410    -------------------------------------------------------------------------------------------
135411    BEGIN
135415          l_acc_rev_flag := 'N';
135412       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
135413                               (g_array_event(p_event_id).array_value_num('header_index'));
135414       IF l_acc_rev_flag IS NULL THEN
135416       END IF;
135417    EXCEPTION
135418       WHEN OTHERS THEN
135419          l_acc_rev_flag := 'N';
135420    END;
135421    --
135422    IF (l_acc_rev_flag = 'Y') THEN
135423 
135424        -- 4645092  ------------------------------------------------------------------------------
135425        -- To allow MPA report to determine if it should generate report process
135426        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
135427        ------------------------------------------------------------------------------------------
135428 
135429        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
135430        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
135431    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
135432    -- call ADRs
135433    -- Bug 4922099
135434    --
135435    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135436         (NVL(l_actual_upg_option, 'N') = 'O') OR
135437         (NVL(l_enc_upg_option, 'N') = 'O')
135438       )
135439    THEN
135440    NULL;
135441    --
135442    --
135443    
135444   l_ccid := AcctDerRule_35(
135445            p_application_id           => p_application_id
135446          , p_ae_header_id             => l_ae_header_id 
135447 , p_source_25 => p_source_25
135448          , x_transaction_coa_id       => l_adr_transaction_coa_id
135449          , x_accounting_coa_id        => l_adr_accounting_coa_id
135450          , x_value_type_code          => l_adr_value_type_code
135451          , p_side                     => 'NA'
135452    );
135453 
135454    xla_ae_lines_pkg.set_ccid(
135455     p_code_combination_id          => l_ccid
135456   , p_value_type_code              => l_adr_value_type_code
135457   , p_transaction_coa_id           => l_adr_transaction_coa_id
135458   , p_accounting_coa_id            => l_adr_accounting_coa_id
135459   , p_adr_code                     => 'AP_INVOICE_DIST'
135460   , p_adr_type_code                => 'S'
135461   , p_component_type               => l_component_type
135462   , p_component_code               => l_component_code
135463   , p_component_type_code          => l_component_type_code
135464   , p_component_appl_id            => l_component_appl_id
135465   , p_amb_context_code             => l_amb_context_code
135466   , p_side                         => 'NA'
135467   );
135468 
135469 
135470    --
135471    --
135472    END IF;
135473 
135474        --
135475        -- Update the line information that should be overwritten
135476        --
135477        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
135478                                          p_header_num   => 1);
135479        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
135480 
135481        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
135482 
135483        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
135484           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
135485        END IF;
135486 
135487       --
135488       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
135489       --
135490       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
135491           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
135492       ELSE
135493           ---------------------------------------------------------------------------------------------------
135494           -- 4262811a Switch Sign
135495           ---------------------------------------------------------------------------------------------------
135496           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
135497           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135498                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135499           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135500                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135501           -- 5132302
135502           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
135503                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135504 
135505       END IF;
135506 
135507       -- 4955764
135508       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135509       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
135510 
135511 
135512       XLA_AE_LINES_PKG.ValidateCurrentLine;
135513       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135514 
135515       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135516                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
135517                ,p_balance_type_code => l_balance_type_code);
135518 
135519    END IF;
135520 
135521    -----------------------------------------------------------------------------------------
135522    -- 4262811 Multiperiod Accounting
135523    -----------------------------------------------------------------------------------------
135524      -- No MPA option is assigned.
135525 
135526 
135527 END IF;
135528 END IF;
135529 --
135530 
135531 --
135532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135533    trace
135534       (p_msg      => 'END of AcctLineType_226'
135535       ,p_level    => C_LEVEL_PROCEDURE
135539 EXCEPTION
135536       ,p_module   => l_log_module);
135537 END IF;
135538 --
135540   WHEN xla_exceptions_pkg.application_exception THEN
135541       RAISE;
135542   WHEN OTHERS THEN
135543        xla_exceptions_pkg.raise_message
135544            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_226');
135545 END AcctLineType_226;
135546 --
135547 
135548 ---------------------------------------
135549 --
135550 -- PRIVATE FUNCTION
135551 --         AcctLineType_227
135552 --
135553 ---------------------------------------
135554 PROCEDURE AcctLineType_227 (
135555   p_application_id        IN NUMBER
135556  ,p_event_id              IN NUMBER
135557  ,p_calculate_acctd_flag  IN VARCHAR2
135558  ,p_calculate_g_l_flag    IN VARCHAR2
135559  ,p_actual_flag           IN OUT VARCHAR2
135560  ,p_balance_type_code     OUT VARCHAR2
135561  ,p_gain_or_loss_ref      OUT VARCHAR2
135562  
135563 --Invoice Distribution Description
135564  , p_source_1            IN VARCHAR2
135565 --Invoice Distribution Ledger Amount
135566  , p_source_16            IN NUMBER
135567 --Invoice Distribution Account
135568  , p_source_25            IN NUMBER
135569 --Invoice Distribution Type
135570  , p_source_28            IN VARCHAR2
135571  , p_source_28_meaning    IN VARCHAR2
135572 --Accrue on Receipt Option
135573  , p_source_54            IN VARCHAR2
135574  , p_source_54_meaning    IN VARCHAR2
135575 --Accounting Reversal Indicator
135576  , p_source_58            IN VARCHAR2
135577 --Distribution Link Type
135578  , p_source_60            IN VARCHAR2
135579 --Allocation to Main Distribution Identifier
135580  , p_source_62            IN NUMBER
135581 --Invoice Identifier
135582  , p_source_63            IN NUMBER
135583 --Invoice Distribution Identifier
135584  , p_source_69            IN NUMBER
135585 --Payables Encumbrance Upgrade Credit Account
135586  , p_source_70            IN NUMBER
135587 --Payables Encumbrance Upgrade Credit Amount
135588  , p_source_71            IN NUMBER
135589 --Invoice Currency Code
135590  , p_source_72            IN VARCHAR2
135591 --Payables Encumbrance Upgrade Credit Base Amount
135592  , p_source_73            IN NUMBER
135593 --Payables Encumbrance Upgrade Debit Account
135594  , p_source_74            IN NUMBER
135595 --Payables Encumbrance Upgrade Debit Amount
135596  , p_source_75            IN NUMBER
135597 --Payables Encumbrance Upgrade Debit Base Amount
135598  , p_source_76            IN NUMBER
135599 --Payables Encumbrance Upgrade Option
135600  , p_source_77            IN VARCHAR2
135601 --Invoice Distribution Amount
135602  , p_source_78            IN NUMBER
135603 --Deferred Accounting End Date
135604  , p_source_82            IN DATE
135605 --Deferred Accounting Option
135606  , p_source_83            IN VARCHAR2
135607 --Deferred Accounting Start Date
135608  , p_source_84            IN DATE
135609 --Override Accounted Amount Indicator
135610  , p_source_85            IN VARCHAR2
135611  , p_source_85_meaning    IN VARCHAR2
135612 --Invoice Supplier Identifier
135613  , p_source_86            IN NUMBER
135614 --Invoice Supplier Site Identifier
135615  , p_source_87            IN NUMBER
135616 --Third Party Type
135617  , p_source_88            IN VARCHAR2
135618 --Parent Reversal Identifier
135619  , p_source_89            IN NUMBER
135620 --Invoice Distribution Statistical Amount
135621  , p_source_90            IN NUMBER
135622 --Invoice Distribution Tax Line Identifier
135623  , p_source_91            IN NUMBER
135624 --Invoice Distribution Tax Distribution Identifier from Tax
135625  , p_source_92            IN NUMBER
135626 --Invoice Distribution Summary Tax Line Identifier
135627  , p_source_93            IN NUMBER
135628 --Payables Upgrade Credit Encumbrance Type Identifier
135629  , p_source_94            IN NUMBER
135630 --Payables Upgrade Debit Encumbrance Type Identifier
135631  , p_source_95            IN NUMBER
135632 --Business Flow Accounts Payable Application Identifier
135633  , p_source_96            IN NUMBER
135634 --Business Flow Invoice Distribution Type
135635  , p_source_97            IN VARCHAR2
135636 --Business Flow Invoice Entity Code
135637  , p_source_98            IN VARCHAR2
135638 --Business Flow Invoice Distribution Identifier
135639  , p_source_99            IN NUMBER
135640 --Business Flow Invoice Identifier
135641  , p_source_100            IN NUMBER
135642 --Invoice Exchange Date
135643  , p_source_146            IN DATE
135644 --Invoice Exchange Rate
135645  , p_source_147            IN NUMBER
135646 --Invoice Exchange Rate Type
135647  , p_source_148            IN VARCHAR2
135648 )
135649 IS
135650 
135651 l_component_type              VARCHAR2(80);
135652 l_component_code              VARCHAR2(30);
135653 l_component_type_code         VARCHAR2(1);
135654 l_component_appl_id           INTEGER;
135655 l_amb_context_code            VARCHAR2(30);
135656 l_entity_code                 VARCHAR2(30);
135657 l_event_class_code            VARCHAR2(30);
135658 l_ae_header_id                NUMBER;
135659 l_event_type_code             VARCHAR2(30);
135660 l_line_definition_code        VARCHAR2(30);
135661 l_line_definition_owner_code  VARCHAR2(1);
135662 --
135663 -- adr variables
135664 l_segment                     VARCHAR2(30);
135665 l_ccid                        NUMBER;
135666 l_adr_transaction_coa_id      NUMBER;
135667 l_adr_accounting_coa_id       NUMBER;
135668 l_adr_flexfield_segment_code  VARCHAR2(30);
135669 l_adr_flex_value_set_id       NUMBER;
135670 l_adr_value_type_code         VARCHAR2(30);
135671 l_adr_value_combination_id    NUMBER;
135672 l_adr_value_segment_code      VARCHAR2(30);
135673 
135674 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135675 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135676 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135677 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135678 
135682 l_acc_rev_flag                VARCHAR2(1);
135679 -- 4262811 Variables ------------------------------------------------------------------------------------------
135680 l_entered_amt_idx             NUMBER;
135681 l_accted_amt_idx              NUMBER;
135683 l_accrual_line_num            NUMBER;
135684 l_tmp_amt                     NUMBER;
135685 l_acc_rev_natural_side_code   VARCHAR2(1);
135686 
135687 l_num_entries                 NUMBER;
135688 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135689 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135690 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135691 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135692 l_recog_line_1                NUMBER;
135693 l_recog_line_2                NUMBER;
135694 
135695 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135696 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
135697 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
135698 
135699 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
135700 
135701 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
135702 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
135703 
135704 ---------------------------------------------------------------------------------------------------------------
135705 
135706 
135707 --
135708 -- bulk performance
135709 --
135710 l_balance_type_code           VARCHAR2(1);
135711 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135712 l_log_module                  VARCHAR2(240);
135713 
135714 --
135715 -- Upgrade strategy
135716 --
135717 l_actual_upg_option           VARCHAR2(1);
135718 l_enc_upg_option           VARCHAR2(1);
135719 
135720 --
135721 BEGIN
135722 --
135723 IF g_log_enabled THEN
135724       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_227';
135725 END IF;
135726 --
135727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135728 
135729       trace
135730          (p_msg      => 'BEGIN of AcctLineType_227'
135731          ,p_level    => C_LEVEL_PROCEDURE
135732          ,p_module   => l_log_module);
135733 
135734 END IF;
135735 --
135736 l_component_type             := 'AMB_JLT';
135737 l_component_code             := 'AP_TAX_INV_PRICE_VAR_INV';
135738 l_component_type_code        := 'S';
135739 l_component_appl_id          :=  200;
135740 l_amb_context_code           := 'DEFAULT';
135741 l_entity_code                := 'AP_INVOICES';
135742 l_event_class_code           := 'INVOICES';
135743 l_event_type_code            := 'INVOICES_ALL';
135744 l_line_definition_owner_code := 'S';
135745 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
135746 --
135747 l_balance_type_code          := 'A';
135748 l_segment                     := NULL;
135749 l_ccid                        := NULL;
135750 l_adr_transaction_coa_id      := NULL;
135751 l_adr_accounting_coa_id       := NULL;
135752 l_adr_flexfield_segment_code  := NULL;
135753 l_adr_flex_value_set_id       := NULL;
135754 l_adr_value_type_code         := NULL;
135755 l_adr_value_combination_id    := NULL;
135756 l_adr_value_segment_code      := NULL;
135757 
135758 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
135759 l_bflow_class_code           := '';    -- 4219869 Business Flow
135760 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135761 l_budgetary_control_flag     := 'N';
135762 
135763 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135764 l_bflow_applied_to_amt       := NULL; -- 5132302
135765 l_entered_amt_idx            := NULL;          -- 4262811
135766 l_accted_amt_idx             := NULL;          -- 4262811
135767 l_acc_rev_flag               := NULL;          -- 4262811
135768 l_accrual_line_num           := NULL;          -- 4262811
135769 l_tmp_amt                    := NULL;          -- 4262811
135770 --
135771  
135772 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135773     l_balance_type_code <> 'B' THEN
135774 IF NVL(p_source_28,'
135775 ') =  'TIPV' AND 
135776 NVL(p_source_54,'
135777 ') =  'Y'
135778  THEN 
135779 
135780    --
135781    XLA_AE_LINES_PKG.SetNewLine;
135782 
135783    p_balance_type_code          := l_balance_type_code;
135784    -- set the flag so later we will know whether the gain loss line needs to be created
135785    
135786    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135787      p_actual_flag :='A';
135788    END IF;
135789 
135790    --
135791    -- bulk performance
135792    --
135793    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135794                                       p_header_num   => 0); -- 4262811
135795    --
135796    -- set accounting line options
135797    --
135798    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135799            p_natural_side_code          => 'D'
135800          , p_gain_or_loss_flag          => 'N'
135801          , p_gl_transfer_mode_code      => 'S'
135802          , p_acct_entry_type_code       => 'A'
135803          , p_switch_side_flag           => 'Y'
135804          , p_merge_duplicate_code       => 'A'
135805          );
135806    --
135807    l_acc_rev_natural_side_code := 'C';  -- 4262811
135808    -- 
135809    --
135810    -- set accounting line type info
135811    --
135812    xla_ae_lines_pkg.SetAcctLineType
135813       (p_component_type             => l_component_type
135814       ,p_event_type_code            => l_event_type_code
135815       ,p_line_definition_owner_code => l_line_definition_owner_code
135816       ,p_line_definition_code       => l_line_definition_code
135817       ,p_accounting_line_code       => l_component_code
135818       ,p_accounting_line_type_code  => l_component_type_code
135822       ,p_event_class_code           => l_event_class_code);
135819       ,p_accounting_line_appl_id    => l_component_appl_id
135820       ,p_amb_context_code           => l_amb_context_code
135821       ,p_entity_code                => l_entity_code
135823    --
135824    -- set accounting class
135825    --
135826    xla_ae_lines_pkg.SetAcctClass(
135827            p_accounting_class_code  => 'TIPV'
135828          , p_ae_header_id           => l_ae_header_id
135829          );
135830 
135831    --
135832    -- set rounding class
135833    --
135834    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135835                       'TIPV';
135836 
135837    --
135838    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135839    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135840    --
135841    -- bulk performance
135842    --
135843    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135844 
135845    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135846       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135847 
135848    -- 4955764
135849    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135850       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135851 
135852    -- 4458381 Public Sector Enh
135853    
135854    --
135855    -- set accounting attributes for the line type
135856    --
135857    l_entered_amt_idx := 24;
135858    l_accted_amt_idx  := 29;
135859    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
135860    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135861    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
135862    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135863    l_rec_acct_attrs.array_num_value(2)  := 
135864 xla_ae_sources_pkg.GetSystemSourceNum(
135865    p_source_code           => 'XLA_EVENT_APPL_ID'
135866  , p_source_type_code      => 'Y'
135867  , p_source_application_id =>  602
135868 );
135869    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135870    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
135871    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
135872    l_rec_acct_attrs.array_char_value(4)  := 
135873 xla_ae_sources_pkg.GetSystemSourceChar(
135874    p_source_code           => 'XLA_ENTITY_CODE'
135875  , p_source_type_code      => 'Y'
135876  , p_source_application_id =>  602
135877 );
135878    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
135879    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
135880    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
135881    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
135882    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
135883    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
135884    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
135885    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
135886    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
135887    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
135888    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
135889    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
135890    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
135891    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
135892    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
135893    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
135894    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
135895    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
135896    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
135897    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
135898    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
135899    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
135900    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
135901    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
135902    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
135903    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
135904    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
135905    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
135906    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
135907    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
135908    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
135909    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
135910    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
135911    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
135912    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
135913    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
135914    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
135915    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
135916    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
135917    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
135918    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
135919    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
135920    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
135921    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
135922    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
135923    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
135924    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
135925    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
135929    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
135926    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
135927    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
135928    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
135930    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
135931    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
135932    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
135933    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
135934    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
135935    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
135936    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
135937    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
135938    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
135939    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
135940    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
135941    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
135942    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
135943    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
135944    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
135945    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
135946    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
135947    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
135948    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
135949    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
135950    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
135951    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
135952    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
135953    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
135954    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
135955    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
135956    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
135957    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
135958 
135959    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
135960    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
135961 
135962    ---------------------------------------------------------------------------------------------------------------
135963    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
135964    ---------------------------------------------------------------------------------------------------------------
135965    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
135966 
135967    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135968    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135969 
135970    IF xla_accounting_cache_pkg.GetValueChar
135971          (p_source_code         => 'LEDGER_CATEGORY_CODE'
135972          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
135973    AND l_bflow_method_code = 'PRIOR_ENTRY'
135974 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
135975    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
135976          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
135977        )
135978    THEN
135979          xla_ae_lines_pkg.BflowUpgEntry
135980            (p_business_method_code    => l_bflow_method_code
135981            ,p_business_class_code     => l_bflow_class_code
135982            ,p_balance_type            => l_balance_type_code);
135983    ELSE
135984       NULL;
135985 -- No business flow processing for business flow method of NONE.
135986    END IF;
135987 
135988    --
135989    -- call analytical criteria
135990    --
135991    
135992    --
135993    -- call description
135994    --
135995    
135996 xla_ae_lines_pkg.SetLineDescription(
135997    p_ae_header_id => l_ae_header_id
135998   ,p_description  => Description_2 (
135999      p_application_id         => p_application_id
136000    , p_ae_header_id           => l_ae_header_id 
136001 , p_source_1 => p_source_1
136002    )
136003 );
136004 
136005 
136006    --
136007    -- call ADRs
136008    -- Bug 4922099
136009    --
136010    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136011         (NVL(l_actual_upg_option, 'N') = 'O') OR
136012         (NVL(l_enc_upg_option, 'N') = 'O')
136013       )
136014    THEN
136015    NULL;
136016    --
136017    --
136018    
136019   l_ccid := AcctDerRule_35(
136020            p_application_id           => p_application_id
136021          , p_ae_header_id             => l_ae_header_id 
136022 , p_source_25 => p_source_25
136023          , x_transaction_coa_id       => l_adr_transaction_coa_id
136024          , x_accounting_coa_id        => l_adr_accounting_coa_id
136025          , x_value_type_code          => l_adr_value_type_code
136026          , p_side                     => 'NA'
136027    );
136028 
136029    xla_ae_lines_pkg.set_ccid(
136030     p_code_combination_id          => l_ccid
136031   , p_value_type_code              => l_adr_value_type_code
136032   , p_transaction_coa_id           => l_adr_transaction_coa_id
136033   , p_accounting_coa_id            => l_adr_accounting_coa_id
136034   , p_adr_code                     => 'AP_INVOICE_DIST'
136035   , p_adr_type_code                => 'S'
136036   , p_component_type               => l_component_type
136037   , p_component_code               => l_component_code
136038   , p_component_type_code          => l_component_type_code
136039   , p_component_appl_id            => l_component_appl_id
136040   , p_amb_context_code             => l_amb_context_code
136041   , p_side                         => 'NA'
136042   );
136043 
136044 
136045    --
136046    --
136050    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136047    END IF;
136048    --
136049    -- Bug 4922099
136051           (NVL(l_enc_upg_option, 'N') = 'O')
136052         ) AND
136053         (l_bflow_method_code = 'PRIOR_ENTRY')
136054       )
136055    THEN
136056       IF
136057       --
136058       1 = 2
136059       --
136060       THEN
136061       xla_accounting_err_pkg.build_message
136062                                     (p_appli_s_name            => 'XLA'
136063                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136064                                     ,p_token_1                 => 'LINE_NUMBER'
136065                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136066                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136067                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136068                                                                              l_component_type
136069                                                                             ,l_component_code
136070                                                                             ,l_component_type_code
136071                                                                             ,l_component_appl_id
136072                                                                             ,l_amb_context_code
136073                                                                             ,l_entity_code
136074                                                                             ,l_event_class_code
136075                                                                            )
136076                                     ,p_token_3                 => 'OWNER'
136077                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136078                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136079                                                                           ,p_lookup_code    => l_component_type_code
136080                                                                          )
136081                                     ,p_token_4                 => 'PRODUCT_NAME'
136082                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136083                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136084                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136085                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136086                                     ,p_ae_header_id            =>  NULL
136087                                        );
136088 
136089         IF (C_LEVEL_ERROR>= g_log_level) THEN
136090                  trace
136091                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136092                       ,p_level    => C_LEVEL_ERROR
136093                       ,p_module   => l_log_module);
136094         END IF;
136095       END IF;
136096    END IF;
136097    --
136098    --
136099    ------------------------------------------------------------------------------------------------
136100    -- 4219869 Business Flow
136101    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136102    -- Prior Entry.  Currently, the following code is always generated.
136103    ------------------------------------------------------------------------------------------------
136104    XLA_AE_LINES_PKG.ValidateCurrentLine;
136105 
136106    ------------------------------------------------------------------------------------
136107    -- 4219869 Business Flow
136108    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136109    ------------------------------------------------------------------------------------
136110    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136111 
136112    ----------------------------------------------------------------------------------
136113    -- 4219869 Business Flow
136114    -- Update journal entry status -- Need to generate this within IF <condition>
136115    ----------------------------------------------------------------------------------
136116    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136117          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136118          ,p_balance_type_code => l_balance_type_code
136119          );
136120 
136121    -------------------------------------------------------------------------------------------
136122    -- 4262811 - Generate the Accrual Reversal lines
136123    -------------------------------------------------------------------------------------------
136124    BEGIN
136125       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136126                               (g_array_event(p_event_id).array_value_num('header_index'));
136127       IF l_acc_rev_flag IS NULL THEN
136128          l_acc_rev_flag := 'N';
136129       END IF;
136130    EXCEPTION
136131       WHEN OTHERS THEN
136132          l_acc_rev_flag := 'N';
136133    END;
136134    --
136135    IF (l_acc_rev_flag = 'Y') THEN
136136 
136137        -- 4645092  ------------------------------------------------------------------------------
136138        -- To allow MPA report to determine if it should generate report process
136139        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136140        ------------------------------------------------------------------------------------------
136141 
136142        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136143        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136144    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136145    -- call ADRs
136146    -- Bug 4922099
136147    --
136148    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136149         (NVL(l_actual_upg_option, 'N') = 'O') OR
136153    NULL;
136150         (NVL(l_enc_upg_option, 'N') = 'O')
136151       )
136152    THEN
136154    --
136155    --
136156    
136157   l_ccid := AcctDerRule_35(
136158            p_application_id           => p_application_id
136159          , p_ae_header_id             => l_ae_header_id 
136160 , p_source_25 => p_source_25
136161          , x_transaction_coa_id       => l_adr_transaction_coa_id
136162          , x_accounting_coa_id        => l_adr_accounting_coa_id
136163          , x_value_type_code          => l_adr_value_type_code
136164          , p_side                     => 'NA'
136165    );
136166 
136167    xla_ae_lines_pkg.set_ccid(
136168     p_code_combination_id          => l_ccid
136169   , p_value_type_code              => l_adr_value_type_code
136170   , p_transaction_coa_id           => l_adr_transaction_coa_id
136171   , p_accounting_coa_id            => l_adr_accounting_coa_id
136172   , p_adr_code                     => 'AP_INVOICE_DIST'
136173   , p_adr_type_code                => 'S'
136174   , p_component_type               => l_component_type
136175   , p_component_code               => l_component_code
136176   , p_component_type_code          => l_component_type_code
136177   , p_component_appl_id            => l_component_appl_id
136178   , p_amb_context_code             => l_amb_context_code
136179   , p_side                         => 'NA'
136180   );
136181 
136182 
136183    --
136184    --
136185    END IF;
136186 
136187        --
136188        -- Update the line information that should be overwritten
136189        --
136190        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
136191                                          p_header_num   => 1);
136192        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
136193 
136194        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
136195 
136196        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
136197           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
136198        END IF;
136199 
136200       --
136201       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
136202       --
136203       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
136204           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
136205       ELSE
136206           ---------------------------------------------------------------------------------------------------
136207           -- 4262811a Switch Sign
136208           ---------------------------------------------------------------------------------------------------
136209           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
136210           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136211                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136212           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136213                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136214           -- 5132302
136215           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
136216                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136217 
136218       END IF;
136219 
136220       -- 4955764
136221       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136222       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
136223 
136224 
136225       XLA_AE_LINES_PKG.ValidateCurrentLine;
136226       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136227 
136228       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136229                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
136230                ,p_balance_type_code => l_balance_type_code);
136231 
136232    END IF;
136233 
136234    -----------------------------------------------------------------------------------------
136235    -- 4262811 Multiperiod Accounting
136236    -----------------------------------------------------------------------------------------
136237      -- No MPA option is assigned.
136238 
136239 
136240 END IF;
136241 END IF;
136242 --
136243 
136244 --
136245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136246    trace
136247       (p_msg      => 'END of AcctLineType_227'
136248       ,p_level    => C_LEVEL_PROCEDURE
136249       ,p_module   => l_log_module);
136250 END IF;
136251 --
136252 EXCEPTION
136253   WHEN xla_exceptions_pkg.application_exception THEN
136254       RAISE;
136255   WHEN OTHERS THEN
136256        xla_exceptions_pkg.raise_message
136257            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_227');
136258 END AcctLineType_227;
136259 --
136260 
136261 ---------------------------------------
136262 --
136263 -- PRIVATE FUNCTION
136264 --         AcctLineType_228
136265 --
136266 ---------------------------------------
136267 PROCEDURE AcctLineType_228 (
136268   p_application_id        IN NUMBER
136269  ,p_event_id              IN NUMBER
136270  ,p_calculate_acctd_flag  IN VARCHAR2
136271  ,p_calculate_g_l_flag    IN VARCHAR2
136272  ,p_actual_flag           IN OUT VARCHAR2
136273  ,p_balance_type_code     OUT VARCHAR2
136274  ,p_gain_or_loss_ref      OUT VARCHAR2
136275  
136276 --Invoice Distribution Description
136277  , p_source_1            IN VARCHAR2
136278 --Invoice Distribution Ledger Amount
136279  , p_source_16            IN NUMBER
136280 --Invoice Distribution Account
136281  , p_source_25            IN NUMBER
136282 --Invoice Distribution Type
136286  , p_source_54            IN VARCHAR2
136283  , p_source_28            IN VARCHAR2
136284  , p_source_28_meaning    IN VARCHAR2
136285 --Accrue on Receipt Option
136287  , p_source_54_meaning    IN VARCHAR2
136288 --Accounting Reversal Indicator
136289  , p_source_58            IN VARCHAR2
136290 --Distribution Link Type
136291  , p_source_60            IN VARCHAR2
136292 --Allocation to Main Distribution Identifier
136293  , p_source_62            IN NUMBER
136294 --Invoice Identifier
136295  , p_source_63            IN NUMBER
136296 --Invoice Distribution Identifier
136297  , p_source_69            IN NUMBER
136298 --Payables Encumbrance Upgrade Credit Account
136299  , p_source_70            IN NUMBER
136300 --Payables Encumbrance Upgrade Credit Amount
136301  , p_source_71            IN NUMBER
136302 --Invoice Currency Code
136303  , p_source_72            IN VARCHAR2
136304 --Payables Encumbrance Upgrade Credit Base Amount
136305  , p_source_73            IN NUMBER
136306 --Payables Encumbrance Upgrade Debit Account
136307  , p_source_74            IN NUMBER
136308 --Payables Encumbrance Upgrade Debit Amount
136309  , p_source_75            IN NUMBER
136310 --Payables Encumbrance Upgrade Debit Base Amount
136311  , p_source_76            IN NUMBER
136312 --Payables Encumbrance Upgrade Option
136313  , p_source_77            IN VARCHAR2
136314 --Invoice Distribution Amount
136315  , p_source_78            IN NUMBER
136316 --Deferred Accounting End Date
136317  , p_source_82            IN DATE
136318 --Deferred Accounting Option
136319  , p_source_83            IN VARCHAR2
136320 --Deferred Accounting Start Date
136321  , p_source_84            IN DATE
136322 --Override Accounted Amount Indicator
136323  , p_source_85            IN VARCHAR2
136324  , p_source_85_meaning    IN VARCHAR2
136325 --Invoice Supplier Identifier
136326  , p_source_86            IN NUMBER
136327 --Invoice Supplier Site Identifier
136328  , p_source_87            IN NUMBER
136329 --Third Party Type
136330  , p_source_88            IN VARCHAR2
136331 --Parent Reversal Identifier
136332  , p_source_89            IN NUMBER
136333 --Invoice Distribution Statistical Amount
136334  , p_source_90            IN NUMBER
136335 --Invoice Distribution Tax Line Identifier
136336  , p_source_91            IN NUMBER
136337 --Invoice Distribution Tax Distribution Identifier from Tax
136338  , p_source_92            IN NUMBER
136339 --Invoice Distribution Summary Tax Line Identifier
136340  , p_source_93            IN NUMBER
136341 --Payables Upgrade Credit Encumbrance Type Identifier
136342  , p_source_94            IN NUMBER
136343 --Payables Upgrade Debit Encumbrance Type Identifier
136344  , p_source_95            IN NUMBER
136345 --Business Flow Accounts Payable Application Identifier
136346  , p_source_96            IN NUMBER
136347 --Business Flow Invoice Distribution Type
136348  , p_source_97            IN VARCHAR2
136349 --Business Flow Invoice Entity Code
136350  , p_source_98            IN VARCHAR2
136351 --Business Flow Invoice Distribution Identifier
136352  , p_source_99            IN NUMBER
136353 --Business Flow Invoice Identifier
136354  , p_source_100            IN NUMBER
136355 --Invoice Exchange Date
136356  , p_source_146            IN DATE
136357 --Invoice Exchange Rate
136358  , p_source_147            IN NUMBER
136359 --Invoice Exchange Rate Type
136360  , p_source_148            IN VARCHAR2
136361 )
136362 IS
136363 
136364 l_component_type              VARCHAR2(80);
136365 l_component_code              VARCHAR2(30);
136366 l_component_type_code         VARCHAR2(1);
136367 l_component_appl_id           INTEGER;
136368 l_amb_context_code            VARCHAR2(30);
136369 l_entity_code                 VARCHAR2(30);
136370 l_event_class_code            VARCHAR2(30);
136371 l_ae_header_id                NUMBER;
136372 l_event_type_code             VARCHAR2(30);
136373 l_line_definition_code        VARCHAR2(30);
136374 l_line_definition_owner_code  VARCHAR2(1);
136375 --
136376 -- adr variables
136377 l_segment                     VARCHAR2(30);
136378 l_ccid                        NUMBER;
136379 l_adr_transaction_coa_id      NUMBER;
136380 l_adr_accounting_coa_id       NUMBER;
136381 l_adr_flexfield_segment_code  VARCHAR2(30);
136382 l_adr_flex_value_set_id       NUMBER;
136383 l_adr_value_type_code         VARCHAR2(30);
136384 l_adr_value_combination_id    NUMBER;
136385 l_adr_value_segment_code      VARCHAR2(30);
136386 
136387 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
136388 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
136389 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
136390 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
136391 
136392 -- 4262811 Variables ------------------------------------------------------------------------------------------
136393 l_entered_amt_idx             NUMBER;
136394 l_accted_amt_idx              NUMBER;
136395 l_acc_rev_flag                VARCHAR2(1);
136396 l_accrual_line_num            NUMBER;
136397 l_tmp_amt                     NUMBER;
136398 l_acc_rev_natural_side_code   VARCHAR2(1);
136399 
136400 l_num_entries                 NUMBER;
136401 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
136402 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
136403 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
136404 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
136405 l_recog_line_1                NUMBER;
136406 l_recog_line_2                NUMBER;
136407 
136408 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
136409 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
136410 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
136411 
136412 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
136413 
136417 ---------------------------------------------------------------------------------------------------------------
136414 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
136415 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
136416 
136418 
136419 
136420 --
136421 -- bulk performance
136422 --
136423 l_balance_type_code           VARCHAR2(1);
136424 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
136425 l_log_module                  VARCHAR2(240);
136426 
136427 --
136428 -- Upgrade strategy
136429 --
136430 l_actual_upg_option           VARCHAR2(1);
136431 l_enc_upg_option           VARCHAR2(1);
136432 
136433 --
136434 BEGIN
136435 --
136436 IF g_log_enabled THEN
136437       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_228';
136438 END IF;
136439 --
136440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136441 
136442       trace
136443          (p_msg      => 'BEGIN of AcctLineType_228'
136444          ,p_level    => C_LEVEL_PROCEDURE
136445          ,p_module   => l_log_module);
136446 
136447 END IF;
136448 --
136449 l_component_type             := 'AMB_JLT';
136450 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PREPAY';
136451 l_component_type_code        := 'S';
136452 l_component_appl_id          :=  200;
136453 l_amb_context_code           := 'DEFAULT';
136454 l_entity_code                := 'AP_INVOICES';
136455 l_event_class_code           := 'PREPAYMENTS';
136456 l_event_type_code            := 'PREPAYMENTS_ALL';
136457 l_line_definition_owner_code := 'S';
136458 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
136459 --
136460 l_balance_type_code          := 'A';
136461 l_segment                     := NULL;
136462 l_ccid                        := NULL;
136463 l_adr_transaction_coa_id      := NULL;
136464 l_adr_accounting_coa_id       := NULL;
136465 l_adr_flexfield_segment_code  := NULL;
136466 l_adr_flex_value_set_id       := NULL;
136467 l_adr_value_type_code         := NULL;
136468 l_adr_value_combination_id    := NULL;
136469 l_adr_value_segment_code      := NULL;
136470 
136471 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
136472 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
136473 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
136474 l_budgetary_control_flag     := 'N';
136475 
136476 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
136477 l_bflow_applied_to_amt       := NULL; -- 5132302
136478 l_entered_amt_idx            := NULL;          -- 4262811
136479 l_accted_amt_idx             := NULL;          -- 4262811
136480 l_acc_rev_flag               := NULL;          -- 4262811
136481 l_accrual_line_num           := NULL;          -- 4262811
136482 l_tmp_amt                    := NULL;          -- 4262811
136483 --
136484  
136485 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
136486     l_balance_type_code <> 'B' THEN
136487 IF NVL(p_source_28,'
136488 ') =  'TIPV' AND 
136489 NVL(p_source_54,'
136490 ') =  'Y'
136491  THEN 
136492 
136493    --
136494    XLA_AE_LINES_PKG.SetNewLine;
136495 
136496    p_balance_type_code          := l_balance_type_code;
136497    -- set the flag so later we will know whether the gain loss line needs to be created
136498    
136499    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
136500      p_actual_flag :='A';
136501    END IF;
136502 
136503    --
136504    -- bulk performance
136505    --
136506    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
136507                                       p_header_num   => 0); -- 4262811
136508    --
136509    -- set accounting line options
136510    --
136511    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
136512            p_natural_side_code          => 'D'
136513          , p_gain_or_loss_flag          => 'N'
136514          , p_gl_transfer_mode_code      => 'S'
136515          , p_acct_entry_type_code       => 'A'
136516          , p_switch_side_flag           => 'Y'
136517          , p_merge_duplicate_code       => 'A'
136518          );
136519    --
136520    l_acc_rev_natural_side_code := 'C';  -- 4262811
136521    -- 
136522    --
136523    -- set accounting line type info
136524    --
136525    xla_ae_lines_pkg.SetAcctLineType
136526       (p_component_type             => l_component_type
136527       ,p_event_type_code            => l_event_type_code
136528       ,p_line_definition_owner_code => l_line_definition_owner_code
136529       ,p_line_definition_code       => l_line_definition_code
136530       ,p_accounting_line_code       => l_component_code
136531       ,p_accounting_line_type_code  => l_component_type_code
136532       ,p_accounting_line_appl_id    => l_component_appl_id
136533       ,p_amb_context_code           => l_amb_context_code
136534       ,p_entity_code                => l_entity_code
136535       ,p_event_class_code           => l_event_class_code);
136536    --
136537    -- set accounting class
136538    --
136539    xla_ae_lines_pkg.SetAcctClass(
136540            p_accounting_class_code  => 'TIPV'
136541          , p_ae_header_id           => l_ae_header_id
136542          );
136543 
136544    --
136545    -- set rounding class
136546    --
136547    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
136548                       'TIPV';
136549 
136550    --
136551    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
136552    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
136553    --
136554    -- bulk performance
136555    --
136556    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
136557 
136561    -- 4955764
136558    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
136559       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
136560 
136562    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136563       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
136564 
136565    -- 4458381 Public Sector Enh
136566    
136567    --
136568    -- set accounting attributes for the line type
136569    --
136570    l_entered_amt_idx := 23;
136571    l_accted_amt_idx  := 28;
136572    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
136573    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
136574    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
136575    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
136576    l_rec_acct_attrs.array_num_value(2)  := 
136577 xla_ae_sources_pkg.GetSystemSourceNum(
136578    p_source_code           => 'XLA_EVENT_APPL_ID'
136579  , p_source_type_code      => 'Y'
136580  , p_source_application_id =>  602
136581 );
136582    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
136583    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
136584    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
136585    l_rec_acct_attrs.array_char_value(4)  := 
136586 xla_ae_sources_pkg.GetSystemSourceChar(
136587    p_source_code           => 'XLA_ENTITY_CODE'
136588  , p_source_type_code      => 'Y'
136589  , p_source_application_id =>  602
136590 );
136591    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
136592    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
136593    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
136594    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
136595    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
136596    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
136597    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
136598    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
136599    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
136600    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
136601    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
136602    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
136603    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
136604    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
136605    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
136606    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
136607    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
136608    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
136609    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
136610    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
136611    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
136612    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
136613    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
136614    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
136615    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
136616    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
136617    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
136618    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
136619    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
136620    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
136621    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
136622    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
136623    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
136624    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
136625    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
136626    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
136627    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
136628    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
136629    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
136630    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
136631    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
136632    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
136633    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
136634    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
136635    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
136636    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
136637    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
136638    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
136639    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
136640    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
136641    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
136642    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
136643    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
136644    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
136645    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
136646    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
136647    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
136648    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
136649    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
136650    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
136651    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
136652    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
136653    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
136654    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
136655    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
136659    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
136656    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
136657    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
136658    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
136660    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
136661    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
136662    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
136663    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
136664    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
136665    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
136666    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
136667    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
136668    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
136669 
136670    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136671    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136672 
136673    ---------------------------------------------------------------------------------------------------------------
136674    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136675    ---------------------------------------------------------------------------------------------------------------
136676    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136677 
136678    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136679    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136680 
136681    IF xla_accounting_cache_pkg.GetValueChar
136682          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136683          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136684    AND l_bflow_method_code = 'PRIOR_ENTRY'
136685 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136686    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136687          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136688        )
136689    THEN
136690          xla_ae_lines_pkg.BflowUpgEntry
136691            (p_business_method_code    => l_bflow_method_code
136692            ,p_business_class_code     => l_bflow_class_code
136693            ,p_balance_type            => l_balance_type_code);
136694    ELSE
136695       NULL;
136696 -- No business flow processing for business flow method of NONE.
136697    END IF;
136698 
136699    --
136700    -- call analytical criteria
136701    --
136702    
136703    --
136704    -- call description
136705    --
136706    
136707 xla_ae_lines_pkg.SetLineDescription(
136708    p_ae_header_id => l_ae_header_id
136709   ,p_description  => Description_2 (
136710      p_application_id         => p_application_id
136711    , p_ae_header_id           => l_ae_header_id 
136712 , p_source_1 => p_source_1
136713    )
136714 );
136715 
136716 
136717    --
136718    -- call ADRs
136719    -- Bug 4922099
136720    --
136721    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136722         (NVL(l_actual_upg_option, 'N') = 'O') OR
136723         (NVL(l_enc_upg_option, 'N') = 'O')
136724       )
136725    THEN
136726    NULL;
136727    --
136728    --
136729    
136730   l_ccid := AcctDerRule_35(
136731            p_application_id           => p_application_id
136732          , p_ae_header_id             => l_ae_header_id 
136733 , p_source_25 => p_source_25
136734          , x_transaction_coa_id       => l_adr_transaction_coa_id
136735          , x_accounting_coa_id        => l_adr_accounting_coa_id
136736          , x_value_type_code          => l_adr_value_type_code
136737          , p_side                     => 'NA'
136738    );
136739 
136740    xla_ae_lines_pkg.set_ccid(
136741     p_code_combination_id          => l_ccid
136742   , p_value_type_code              => l_adr_value_type_code
136743   , p_transaction_coa_id           => l_adr_transaction_coa_id
136744   , p_accounting_coa_id            => l_adr_accounting_coa_id
136745   , p_adr_code                     => 'AP_INVOICE_DIST'
136746   , p_adr_type_code                => 'S'
136747   , p_component_type               => l_component_type
136748   , p_component_code               => l_component_code
136749   , p_component_type_code          => l_component_type_code
136750   , p_component_appl_id            => l_component_appl_id
136751   , p_amb_context_code             => l_amb_context_code
136752   , p_side                         => 'NA'
136753   );
136754 
136755 
136756    --
136757    --
136758    END IF;
136759    --
136760    -- Bug 4922099
136761    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136762           (NVL(l_enc_upg_option, 'N') = 'O')
136763         ) AND
136764         (l_bflow_method_code = 'PRIOR_ENTRY')
136765       )
136766    THEN
136767       IF
136768       --
136769       1 = 2
136770       --
136771       THEN
136772       xla_accounting_err_pkg.build_message
136773                                     (p_appli_s_name            => 'XLA'
136774                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136775                                     ,p_token_1                 => 'LINE_NUMBER'
136776                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136777                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136778                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136779                                                                              l_component_type
136780                                                                             ,l_component_code
136781                                                                             ,l_component_type_code
136785                                                                             ,l_event_class_code
136782                                                                             ,l_component_appl_id
136783                                                                             ,l_amb_context_code
136784                                                                             ,l_entity_code
136786                                                                            )
136787                                     ,p_token_3                 => 'OWNER'
136788                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136789                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136790                                                                           ,p_lookup_code    => l_component_type_code
136791                                                                          )
136792                                     ,p_token_4                 => 'PRODUCT_NAME'
136793                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136794                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136795                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136796                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136797                                     ,p_ae_header_id            =>  NULL
136798                                        );
136799 
136800         IF (C_LEVEL_ERROR>= g_log_level) THEN
136801                  trace
136802                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136803                       ,p_level    => C_LEVEL_ERROR
136804                       ,p_module   => l_log_module);
136805         END IF;
136806       END IF;
136807    END IF;
136808    --
136809    --
136810    ------------------------------------------------------------------------------------------------
136811    -- 4219869 Business Flow
136812    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136813    -- Prior Entry.  Currently, the following code is always generated.
136814    ------------------------------------------------------------------------------------------------
136815    XLA_AE_LINES_PKG.ValidateCurrentLine;
136816 
136817    ------------------------------------------------------------------------------------
136818    -- 4219869 Business Flow
136819    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136820    ------------------------------------------------------------------------------------
136821    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136822 
136823    ----------------------------------------------------------------------------------
136824    -- 4219869 Business Flow
136825    -- Update journal entry status -- Need to generate this within IF <condition>
136826    ----------------------------------------------------------------------------------
136827    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136828          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136829          ,p_balance_type_code => l_balance_type_code
136830          );
136831 
136832    -------------------------------------------------------------------------------------------
136833    -- 4262811 - Generate the Accrual Reversal lines
136834    -------------------------------------------------------------------------------------------
136835    BEGIN
136836       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136837                               (g_array_event(p_event_id).array_value_num('header_index'));
136838       IF l_acc_rev_flag IS NULL THEN
136839          l_acc_rev_flag := 'N';
136840       END IF;
136841    EXCEPTION
136842       WHEN OTHERS THEN
136843          l_acc_rev_flag := 'N';
136844    END;
136845    --
136846    IF (l_acc_rev_flag = 'Y') THEN
136847 
136848        -- 4645092  ------------------------------------------------------------------------------
136849        -- To allow MPA report to determine if it should generate report process
136850        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136851        ------------------------------------------------------------------------------------------
136852 
136853        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136854        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136855    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136856    -- call ADRs
136857    -- Bug 4922099
136858    --
136859    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136860         (NVL(l_actual_upg_option, 'N') = 'O') OR
136861         (NVL(l_enc_upg_option, 'N') = 'O')
136862       )
136863    THEN
136864    NULL;
136865    --
136866    --
136867    
136868   l_ccid := AcctDerRule_35(
136869            p_application_id           => p_application_id
136870          , p_ae_header_id             => l_ae_header_id 
136871 , p_source_25 => p_source_25
136872          , x_transaction_coa_id       => l_adr_transaction_coa_id
136873          , x_accounting_coa_id        => l_adr_accounting_coa_id
136874          , x_value_type_code          => l_adr_value_type_code
136875          , p_side                     => 'NA'
136876    );
136877 
136878    xla_ae_lines_pkg.set_ccid(
136879     p_code_combination_id          => l_ccid
136880   , p_value_type_code              => l_adr_value_type_code
136881   , p_transaction_coa_id           => l_adr_transaction_coa_id
136882   , p_accounting_coa_id            => l_adr_accounting_coa_id
136883   , p_adr_code                     => 'AP_INVOICE_DIST'
136884   , p_adr_type_code                => 'S'
136885   , p_component_type               => l_component_type
136886   , p_component_code               => l_component_code
136887   , p_component_type_code          => l_component_type_code
136888   , p_component_appl_id            => l_component_appl_id
136892 
136889   , p_amb_context_code             => l_amb_context_code
136890   , p_side                         => 'NA'
136891   );
136893 
136894    --
136895    --
136896    END IF;
136897 
136898        --
136899        -- Update the line information that should be overwritten
136900        --
136901        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
136902                                          p_header_num   => 1);
136903        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
136904 
136905        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
136906 
136907        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
136908           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
136909        END IF;
136910 
136911       --
136912       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
136913       --
136914       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
136915           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
136916       ELSE
136917           ---------------------------------------------------------------------------------------------------
136918           -- 4262811a Switch Sign
136919           ---------------------------------------------------------------------------------------------------
136920           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
136921           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136922                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136923           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136924                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136925           -- 5132302
136926           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
136927                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136928 
136929       END IF;
136930 
136931       -- 4955764
136932       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136933       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
136934 
136935 
136936       XLA_AE_LINES_PKG.ValidateCurrentLine;
136937       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136938 
136939       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136940                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
136941                ,p_balance_type_code => l_balance_type_code);
136942 
136943    END IF;
136944 
136945    -----------------------------------------------------------------------------------------
136946    -- 4262811 Multiperiod Accounting
136947    -----------------------------------------------------------------------------------------
136948      -- No MPA option is assigned.
136949 
136950 
136951 END IF;
136952 END IF;
136953 --
136954 
136955 --
136956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136957    trace
136958       (p_msg      => 'END of AcctLineType_228'
136959       ,p_level    => C_LEVEL_PROCEDURE
136960       ,p_module   => l_log_module);
136961 END IF;
136962 --
136963 EXCEPTION
136964   WHEN xla_exceptions_pkg.application_exception THEN
136965       RAISE;
136966   WHEN OTHERS THEN
136967        xla_exceptions_pkg.raise_message
136968            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_228');
136969 END AcctLineType_228;
136970 --
136971 
136972 ---------------------------------------
136973 --
136974 -- PRIVATE FUNCTION
136975 --         AcctLineType_229
136976 --
136977 ---------------------------------------
136978 PROCEDURE AcctLineType_229 (
136979   p_application_id        IN NUMBER
136980  ,p_event_id              IN NUMBER
136981  ,p_calculate_acctd_flag  IN VARCHAR2
136982  ,p_calculate_g_l_flag    IN VARCHAR2
136983  ,p_actual_flag           IN OUT VARCHAR2
136984  ,p_balance_type_code     OUT VARCHAR2
136985  ,p_gain_or_loss_ref      OUT VARCHAR2
136986  
136987 --Invoice Distribution Description
136988  , p_source_1            IN VARCHAR2
136989 --Invoice Distribution Ledger Amount
136990  , p_source_16            IN NUMBER
136991 --Invoice Distribution Account
136992  , p_source_25            IN NUMBER
136993 --Invoice Distribution Type
136994  , p_source_28            IN VARCHAR2
136995  , p_source_28_meaning    IN VARCHAR2
136996 --Accrue on Receipt Option
136997  , p_source_54            IN VARCHAR2
136998  , p_source_54_meaning    IN VARCHAR2
136999 --Accounting Reversal Indicator
137000  , p_source_58            IN VARCHAR2
137001 --Distribution Link Type
137002  , p_source_60            IN VARCHAR2
137003 --Allocation to Main Distribution Identifier
137004  , p_source_62            IN NUMBER
137005 --Invoice Identifier
137006  , p_source_63            IN NUMBER
137007 --Invoice Distribution Identifier
137008  , p_source_69            IN NUMBER
137009 --Payables Encumbrance Upgrade Credit Account
137010  , p_source_70            IN NUMBER
137011 --Payables Encumbrance Upgrade Credit Amount
137012  , p_source_71            IN NUMBER
137013 --Invoice Currency Code
137014  , p_source_72            IN VARCHAR2
137015 --Payables Encumbrance Upgrade Credit Base Amount
137016  , p_source_73            IN NUMBER
137017 --Payables Encumbrance Upgrade Debit Account
137018  , p_source_74            IN NUMBER
137019 --Payables Encumbrance Upgrade Debit Amount
137020  , p_source_75            IN NUMBER
137021 --Payables Encumbrance Upgrade Debit Base Amount
137022  , p_source_76            IN NUMBER
137026  , p_source_78            IN NUMBER
137023 --Payables Encumbrance Upgrade Option
137024  , p_source_77            IN VARCHAR2
137025 --Invoice Distribution Amount
137027 --Deferred Accounting End Date
137028  , p_source_82            IN DATE
137029 --Deferred Accounting Option
137030  , p_source_83            IN VARCHAR2
137031 --Deferred Accounting Start Date
137032  , p_source_84            IN DATE
137033 --Override Accounted Amount Indicator
137034  , p_source_85            IN VARCHAR2
137035  , p_source_85_meaning    IN VARCHAR2
137036 --Invoice Supplier Identifier
137037  , p_source_86            IN NUMBER
137038 --Invoice Supplier Site Identifier
137039  , p_source_87            IN NUMBER
137040 --Third Party Type
137041  , p_source_88            IN VARCHAR2
137042 --Parent Reversal Identifier
137043  , p_source_89            IN NUMBER
137044 --Invoice Distribution Statistical Amount
137045  , p_source_90            IN NUMBER
137046 --Invoice Distribution Tax Line Identifier
137047  , p_source_91            IN NUMBER
137048 --Invoice Distribution Tax Distribution Identifier from Tax
137049  , p_source_92            IN NUMBER
137050 --Invoice Distribution Summary Tax Line Identifier
137051  , p_source_93            IN NUMBER
137052 --Payables Upgrade Credit Encumbrance Type Identifier
137053  , p_source_94            IN NUMBER
137054 --Payables Upgrade Debit Encumbrance Type Identifier
137055  , p_source_95            IN NUMBER
137056 --Business Flow Accounts Payable Application Identifier
137057  , p_source_96            IN NUMBER
137058 --Business Flow Invoice Distribution Type
137059  , p_source_97            IN VARCHAR2
137060 --Business Flow Invoice Entity Code
137061  , p_source_98            IN VARCHAR2
137062 --Business Flow Invoice Distribution Identifier
137063  , p_source_99            IN NUMBER
137064 --Business Flow Invoice Identifier
137065  , p_source_100            IN NUMBER
137066 --Invoice Exchange Date
137067  , p_source_146            IN DATE
137068 --Invoice Exchange Rate
137069  , p_source_147            IN NUMBER
137070 --Invoice Exchange Rate Type
137071  , p_source_148            IN VARCHAR2
137072 )
137073 IS
137074 
137075 l_component_type              VARCHAR2(80);
137076 l_component_code              VARCHAR2(30);
137077 l_component_type_code         VARCHAR2(1);
137078 l_component_appl_id           INTEGER;
137079 l_amb_context_code            VARCHAR2(30);
137080 l_entity_code                 VARCHAR2(30);
137081 l_event_class_code            VARCHAR2(30);
137082 l_ae_header_id                NUMBER;
137083 l_event_type_code             VARCHAR2(30);
137084 l_line_definition_code        VARCHAR2(30);
137085 l_line_definition_owner_code  VARCHAR2(1);
137086 --
137087 -- adr variables
137088 l_segment                     VARCHAR2(30);
137089 l_ccid                        NUMBER;
137090 l_adr_transaction_coa_id      NUMBER;
137091 l_adr_accounting_coa_id       NUMBER;
137092 l_adr_flexfield_segment_code  VARCHAR2(30);
137093 l_adr_flex_value_set_id       NUMBER;
137094 l_adr_value_type_code         VARCHAR2(30);
137095 l_adr_value_combination_id    NUMBER;
137096 l_adr_value_segment_code      VARCHAR2(30);
137097 
137098 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137099 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137100 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137101 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137102 
137103 -- 4262811 Variables ------------------------------------------------------------------------------------------
137104 l_entered_amt_idx             NUMBER;
137105 l_accted_amt_idx              NUMBER;
137106 l_acc_rev_flag                VARCHAR2(1);
137107 l_accrual_line_num            NUMBER;
137108 l_tmp_amt                     NUMBER;
137109 l_acc_rev_natural_side_code   VARCHAR2(1);
137110 
137111 l_num_entries                 NUMBER;
137112 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
137113 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
137114 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
137115 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
137116 l_recog_line_1                NUMBER;
137117 l_recog_line_2                NUMBER;
137118 
137119 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
137120 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
137121 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
137122 
137123 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
137124 
137125 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
137126 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
137127 
137128 ---------------------------------------------------------------------------------------------------------------
137129 
137130 
137131 --
137132 -- bulk performance
137133 --
137134 l_balance_type_code           VARCHAR2(1);
137135 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
137136 l_log_module                  VARCHAR2(240);
137137 
137138 --
137139 -- Upgrade strategy
137140 --
137141 l_actual_upg_option           VARCHAR2(1);
137142 l_enc_upg_option           VARCHAR2(1);
137143 
137144 --
137145 BEGIN
137146 --
137147 IF g_log_enabled THEN
137148       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_229';
137149 END IF;
137150 --
137151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137152 
137153       trace
137154          (p_msg      => 'BEGIN of AcctLineType_229'
137155          ,p_level    => C_LEVEL_PROCEDURE
137156          ,p_module   => l_log_module);
137157 
137158 END IF;
137159 --
137160 l_component_type             := 'AMB_JLT';
137161 l_component_code             := 'AP_TAX_RATE_VAR_CM';
137165 l_entity_code                := 'AP_INVOICES';
137162 l_component_type_code        := 'S';
137163 l_component_appl_id          :=  200;
137164 l_amb_context_code           := 'DEFAULT';
137166 l_event_class_code           := 'CREDIT MEMOS';
137167 l_event_type_code            := 'CREDIT MEMOS_ALL';
137168 l_line_definition_owner_code := 'S';
137169 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
137170 --
137171 l_balance_type_code          := 'A';
137172 l_segment                     := NULL;
137173 l_ccid                        := NULL;
137174 l_adr_transaction_coa_id      := NULL;
137175 l_adr_accounting_coa_id       := NULL;
137176 l_adr_flexfield_segment_code  := NULL;
137177 l_adr_flex_value_set_id       := NULL;
137178 l_adr_value_type_code         := NULL;
137179 l_adr_value_combination_id    := NULL;
137180 l_adr_value_segment_code      := NULL;
137181 
137182 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
137183 l_bflow_class_code           := '';    -- 4219869 Business Flow
137184 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
137185 l_budgetary_control_flag     := 'N';
137186 
137187 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
137188 l_bflow_applied_to_amt       := NULL; -- 5132302
137189 l_entered_amt_idx            := NULL;          -- 4262811
137190 l_accted_amt_idx             := NULL;          -- 4262811
137191 l_acc_rev_flag               := NULL;          -- 4262811
137192 l_accrual_line_num           := NULL;          -- 4262811
137193 l_tmp_amt                    := NULL;          -- 4262811
137194 --
137195  
137196 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
137197     l_balance_type_code <> 'B' THEN
137198 IF NVL(p_source_28,'
137199 ') =  'TRV' AND 
137200 NVL(p_source_54,'
137201 ') =  'Y'
137202  THEN 
137203 
137204    --
137205    XLA_AE_LINES_PKG.SetNewLine;
137206 
137207    p_balance_type_code          := l_balance_type_code;
137208    -- set the flag so later we will know whether the gain loss line needs to be created
137209    
137210    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
137211      p_actual_flag :='A';
137212    END IF;
137213 
137214    --
137215    -- bulk performance
137216    --
137217    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
137218                                       p_header_num   => 0); -- 4262811
137219    --
137220    -- set accounting line options
137221    --
137222    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
137223            p_natural_side_code          => 'D'
137224          , p_gain_or_loss_flag          => 'N'
137225          , p_gl_transfer_mode_code      => 'S'
137226          , p_acct_entry_type_code       => 'A'
137227          , p_switch_side_flag           => 'Y'
137228          , p_merge_duplicate_code       => 'A'
137229          );
137230    --
137231    l_acc_rev_natural_side_code := 'C';  -- 4262811
137232    -- 
137233    --
137234    -- set accounting line type info
137235    --
137236    xla_ae_lines_pkg.SetAcctLineType
137237       (p_component_type             => l_component_type
137238       ,p_event_type_code            => l_event_type_code
137239       ,p_line_definition_owner_code => l_line_definition_owner_code
137240       ,p_line_definition_code       => l_line_definition_code
137241       ,p_accounting_line_code       => l_component_code
137242       ,p_accounting_line_type_code  => l_component_type_code
137243       ,p_accounting_line_appl_id    => l_component_appl_id
137244       ,p_amb_context_code           => l_amb_context_code
137245       ,p_entity_code                => l_entity_code
137246       ,p_event_class_code           => l_event_class_code);
137247    --
137248    -- set accounting class
137249    --
137250    xla_ae_lines_pkg.SetAcctClass(
137251            p_accounting_class_code  => 'TRV'
137252          , p_ae_header_id           => l_ae_header_id
137253          );
137254 
137255    --
137256    -- set rounding class
137257    --
137258    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
137259                       'TRV';
137260 
137261    --
137262    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
137263    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
137264    --
137265    -- bulk performance
137266    --
137267    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
137268 
137269    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
137270       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
137271 
137272    -- 4955764
137273    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137274       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
137275 
137276    -- 4458381 Public Sector Enh
137277    
137278    --
137279    -- set accounting attributes for the line type
137280    --
137281    l_entered_amt_idx := 23;
137282    l_accted_amt_idx  := 28;
137283    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
137284    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
137285    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
137286    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
137287    l_rec_acct_attrs.array_num_value(2)  := 
137288 xla_ae_sources_pkg.GetSystemSourceNum(
137289    p_source_code           => 'XLA_EVENT_APPL_ID'
137290  , p_source_type_code      => 'Y'
137291  , p_source_application_id =>  602
137292 );
137293    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
137294    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
137295    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
137299  , p_source_type_code      => 'Y'
137296    l_rec_acct_attrs.array_char_value(4)  := 
137297 xla_ae_sources_pkg.GetSystemSourceChar(
137298    p_source_code           => 'XLA_ENTITY_CODE'
137300  , p_source_application_id =>  602
137301 );
137302    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
137303    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
137304    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
137305    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
137306    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
137307    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
137308    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
137309    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
137310    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
137311    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
137312    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
137313    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
137314    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
137315    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
137316    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
137317    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
137318    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
137319    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
137320    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
137321    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
137322    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
137323    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
137324    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
137325    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
137326    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
137327    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
137328    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
137329    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
137330    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
137331    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
137332    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
137333    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
137334    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
137335    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
137336    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
137337    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
137338    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
137339    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
137340    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
137341    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
137342    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
137343    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
137344    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
137345    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
137346    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
137347    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
137348    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
137349    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
137350    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
137351    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
137352    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
137353    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
137354    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
137355    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
137356    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
137357    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
137358    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
137359    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
137360    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
137361    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
137362    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
137363    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
137364    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
137365    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
137366    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
137367    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
137368    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
137369    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
137370    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
137371    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
137372    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
137373    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
137374    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
137375    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
137376    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
137377    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
137378    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
137379    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
137380 
137381    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
137382    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
137383 
137384    ---------------------------------------------------------------------------------------------------------------
137385    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
137386    ---------------------------------------------------------------------------------------------------------------
137390    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137387    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
137388 
137389    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137391 
137392    IF xla_accounting_cache_pkg.GetValueChar
137393          (p_source_code         => 'LEDGER_CATEGORY_CODE'
137394          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
137395    AND l_bflow_method_code = 'PRIOR_ENTRY'
137396 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
137397    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
137398          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
137399        )
137400    THEN
137401          xla_ae_lines_pkg.BflowUpgEntry
137402            (p_business_method_code    => l_bflow_method_code
137403            ,p_business_class_code     => l_bflow_class_code
137404            ,p_balance_type            => l_balance_type_code);
137405    ELSE
137406       NULL;
137407 -- No business flow processing for business flow method of NONE.
137408    END IF;
137409 
137410    --
137411    -- call analytical criteria
137412    --
137413    
137414    --
137415    -- call description
137416    --
137417    
137418 xla_ae_lines_pkg.SetLineDescription(
137419    p_ae_header_id => l_ae_header_id
137420   ,p_description  => Description_2 (
137421      p_application_id         => p_application_id
137422    , p_ae_header_id           => l_ae_header_id 
137423 , p_source_1 => p_source_1
137424    )
137425 );
137426 
137427 
137428    --
137429    -- call ADRs
137430    -- Bug 4922099
137431    --
137432    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137433         (NVL(l_actual_upg_option, 'N') = 'O') OR
137434         (NVL(l_enc_upg_option, 'N') = 'O')
137435       )
137436    THEN
137437    NULL;
137438    --
137439    --
137440    
137441   l_ccid := AcctDerRule_35(
137442            p_application_id           => p_application_id
137443          , p_ae_header_id             => l_ae_header_id 
137444 , p_source_25 => p_source_25
137445          , x_transaction_coa_id       => l_adr_transaction_coa_id
137446          , x_accounting_coa_id        => l_adr_accounting_coa_id
137447          , x_value_type_code          => l_adr_value_type_code
137448          , p_side                     => 'NA'
137449    );
137450 
137451    xla_ae_lines_pkg.set_ccid(
137452     p_code_combination_id          => l_ccid
137453   , p_value_type_code              => l_adr_value_type_code
137454   , p_transaction_coa_id           => l_adr_transaction_coa_id
137455   , p_accounting_coa_id            => l_adr_accounting_coa_id
137456   , p_adr_code                     => 'AP_INVOICE_DIST'
137457   , p_adr_type_code                => 'S'
137458   , p_component_type               => l_component_type
137459   , p_component_code               => l_component_code
137460   , p_component_type_code          => l_component_type_code
137461   , p_component_appl_id            => l_component_appl_id
137462   , p_amb_context_code             => l_amb_context_code
137463   , p_side                         => 'NA'
137464   );
137465 
137466 
137467    --
137468    --
137469    END IF;
137470    --
137471    -- Bug 4922099
137472    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
137473           (NVL(l_enc_upg_option, 'N') = 'O')
137474         ) AND
137475         (l_bflow_method_code = 'PRIOR_ENTRY')
137476       )
137477    THEN
137478       IF
137479       --
137480       1 = 2
137481       --
137482       THEN
137483       xla_accounting_err_pkg.build_message
137484                                     (p_appli_s_name            => 'XLA'
137485                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137486                                     ,p_token_1                 => 'LINE_NUMBER'
137487                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
137488                                     ,p_token_2                 => 'LINE_TYPE_NAME'
137489                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
137490                                                                              l_component_type
137491                                                                             ,l_component_code
137492                                                                             ,l_component_type_code
137493                                                                             ,l_component_appl_id
137494                                                                             ,l_amb_context_code
137495                                                                             ,l_entity_code
137496                                                                             ,l_event_class_code
137497                                                                            )
137498                                     ,p_token_3                 => 'OWNER'
137499                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
137500                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
137501                                                                           ,p_lookup_code    => l_component_type_code
137502                                                                          )
137503                                     ,p_token_4                 => 'PRODUCT_NAME'
137504                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
137505                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
137506                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
137510 
137507                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
137508                                     ,p_ae_header_id            =>  NULL
137509                                        );
137511         IF (C_LEVEL_ERROR>= g_log_level) THEN
137512                  trace
137513                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137514                       ,p_level    => C_LEVEL_ERROR
137515                       ,p_module   => l_log_module);
137516         END IF;
137517       END IF;
137518    END IF;
137519    --
137520    --
137521    ------------------------------------------------------------------------------------------------
137522    -- 4219869 Business Flow
137523    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
137524    -- Prior Entry.  Currently, the following code is always generated.
137525    ------------------------------------------------------------------------------------------------
137526    XLA_AE_LINES_PKG.ValidateCurrentLine;
137527 
137528    ------------------------------------------------------------------------------------
137529    -- 4219869 Business Flow
137530    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
137531    ------------------------------------------------------------------------------------
137532    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137533 
137534    ----------------------------------------------------------------------------------
137535    -- 4219869 Business Flow
137536    -- Update journal entry status -- Need to generate this within IF <condition>
137537    ----------------------------------------------------------------------------------
137538    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137539          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
137540          ,p_balance_type_code => l_balance_type_code
137541          );
137542 
137543    -------------------------------------------------------------------------------------------
137544    -- 4262811 - Generate the Accrual Reversal lines
137545    -------------------------------------------------------------------------------------------
137546    BEGIN
137547       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
137548                               (g_array_event(p_event_id).array_value_num('header_index'));
137549       IF l_acc_rev_flag IS NULL THEN
137550          l_acc_rev_flag := 'N';
137551       END IF;
137552    EXCEPTION
137553       WHEN OTHERS THEN
137554          l_acc_rev_flag := 'N';
137555    END;
137556    --
137557    IF (l_acc_rev_flag = 'Y') THEN
137558 
137559        -- 4645092  ------------------------------------------------------------------------------
137560        -- To allow MPA report to determine if it should generate report process
137561        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
137562        ------------------------------------------------------------------------------------------
137563 
137564        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
137565        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
137566    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
137567    -- call ADRs
137568    -- Bug 4922099
137569    --
137570    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137571         (NVL(l_actual_upg_option, 'N') = 'O') OR
137572         (NVL(l_enc_upg_option, 'N') = 'O')
137573       )
137574    THEN
137575    NULL;
137576    --
137577    --
137578    
137579   l_ccid := AcctDerRule_35(
137580            p_application_id           => p_application_id
137581          , p_ae_header_id             => l_ae_header_id 
137582 , p_source_25 => p_source_25
137583          , x_transaction_coa_id       => l_adr_transaction_coa_id
137584          , x_accounting_coa_id        => l_adr_accounting_coa_id
137585          , x_value_type_code          => l_adr_value_type_code
137586          , p_side                     => 'NA'
137587    );
137588 
137589    xla_ae_lines_pkg.set_ccid(
137590     p_code_combination_id          => l_ccid
137591   , p_value_type_code              => l_adr_value_type_code
137592   , p_transaction_coa_id           => l_adr_transaction_coa_id
137593   , p_accounting_coa_id            => l_adr_accounting_coa_id
137594   , p_adr_code                     => 'AP_INVOICE_DIST'
137595   , p_adr_type_code                => 'S'
137596   , p_component_type               => l_component_type
137597   , p_component_code               => l_component_code
137598   , p_component_type_code          => l_component_type_code
137599   , p_component_appl_id            => l_component_appl_id
137600   , p_amb_context_code             => l_amb_context_code
137601   , p_side                         => 'NA'
137602   );
137603 
137604 
137605    --
137606    --
137607    END IF;
137608 
137609        --
137610        -- Update the line information that should be overwritten
137611        --
137612        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
137613                                          p_header_num   => 1);
137614        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
137615 
137616        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
137617 
137618        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
137619           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
137620        END IF;
137621 
137622       --
137623       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
137624       --
137625       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
137626           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
137627       ELSE
137631           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
137628           ---------------------------------------------------------------------------------------------------
137629           -- 4262811a Switch Sign
137630           ---------------------------------------------------------------------------------------------------
137632           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137633                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137634           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137635                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137636           -- 5132302
137637           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
137638                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137639 
137640       END IF;
137641 
137642       -- 4955764
137643       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137644       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
137645 
137646 
137647       XLA_AE_LINES_PKG.ValidateCurrentLine;
137648       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137649 
137650       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137651                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
137652                ,p_balance_type_code => l_balance_type_code);
137653 
137654    END IF;
137655 
137656    -----------------------------------------------------------------------------------------
137657    -- 4262811 Multiperiod Accounting
137658    -----------------------------------------------------------------------------------------
137659      -- No MPA option is assigned.
137660 
137661 
137662 END IF;
137663 END IF;
137664 --
137665 
137666 --
137667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137668    trace
137669       (p_msg      => 'END of AcctLineType_229'
137670       ,p_level    => C_LEVEL_PROCEDURE
137671       ,p_module   => l_log_module);
137672 END IF;
137673 --
137674 EXCEPTION
137675   WHEN xla_exceptions_pkg.application_exception THEN
137676       RAISE;
137677   WHEN OTHERS THEN
137678        xla_exceptions_pkg.raise_message
137679            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_229');
137680 END AcctLineType_229;
137681 --
137682 
137683 ---------------------------------------
137684 --
137685 -- PRIVATE FUNCTION
137686 --         AcctLineType_230
137687 --
137688 ---------------------------------------
137689 PROCEDURE AcctLineType_230 (
137690   p_application_id        IN NUMBER
137691  ,p_event_id              IN NUMBER
137692  ,p_calculate_acctd_flag  IN VARCHAR2
137693  ,p_calculate_g_l_flag    IN VARCHAR2
137694  ,p_actual_flag           IN OUT VARCHAR2
137695  ,p_balance_type_code     OUT VARCHAR2
137696  ,p_gain_or_loss_ref      OUT VARCHAR2
137697  
137698 --Invoice Distribution Description
137699  , p_source_1            IN VARCHAR2
137700 --Invoice Distribution Ledger Amount
137701  , p_source_16            IN NUMBER
137702 --Invoice Distribution Account
137703  , p_source_25            IN NUMBER
137704 --Invoice Distribution Type
137705  , p_source_28            IN VARCHAR2
137706  , p_source_28_meaning    IN VARCHAR2
137707 --Accrue on Receipt Option
137708  , p_source_54            IN VARCHAR2
137709  , p_source_54_meaning    IN VARCHAR2
137710 --Accounting Reversal Indicator
137711  , p_source_58            IN VARCHAR2
137712 --Distribution Link Type
137713  , p_source_60            IN VARCHAR2
137714 --Allocation to Main Distribution Identifier
137715  , p_source_62            IN NUMBER
137716 --Invoice Identifier
137717  , p_source_63            IN NUMBER
137718 --Invoice Distribution Identifier
137719  , p_source_69            IN NUMBER
137720 --Payables Encumbrance Upgrade Credit Account
137721  , p_source_70            IN NUMBER
137722 --Payables Encumbrance Upgrade Credit Amount
137723  , p_source_71            IN NUMBER
137724 --Invoice Currency Code
137725  , p_source_72            IN VARCHAR2
137726 --Payables Encumbrance Upgrade Credit Base Amount
137727  , p_source_73            IN NUMBER
137728 --Payables Encumbrance Upgrade Debit Account
137729  , p_source_74            IN NUMBER
137730 --Payables Encumbrance Upgrade Debit Amount
137731  , p_source_75            IN NUMBER
137732 --Payables Encumbrance Upgrade Debit Base Amount
137733  , p_source_76            IN NUMBER
137734 --Payables Encumbrance Upgrade Option
137735  , p_source_77            IN VARCHAR2
137736 --Invoice Distribution Amount
137737  , p_source_78            IN NUMBER
137738 --Deferred Accounting End Date
137739  , p_source_82            IN DATE
137740 --Deferred Accounting Option
137741  , p_source_83            IN VARCHAR2
137742 --Deferred Accounting Start Date
137743  , p_source_84            IN DATE
137744 --Override Accounted Amount Indicator
137745  , p_source_85            IN VARCHAR2
137746  , p_source_85_meaning    IN VARCHAR2
137747 --Invoice Supplier Identifier
137748  , p_source_86            IN NUMBER
137749 --Invoice Supplier Site Identifier
137750  , p_source_87            IN NUMBER
137751 --Third Party Type
137752  , p_source_88            IN VARCHAR2
137753 --Parent Reversal Identifier
137754  , p_source_89            IN NUMBER
137755 --Invoice Distribution Tax Line Identifier
137756  , p_source_91            IN NUMBER
137757 --Invoice Distribution Tax Distribution Identifier from Tax
137758  , p_source_92            IN NUMBER
137759 --Invoice Distribution Summary Tax Line Identifier
137760  , p_source_93            IN NUMBER
137761 --Payables Upgrade Credit Encumbrance Type Identifier
137762  , p_source_94            IN NUMBER
137766  , p_source_96            IN NUMBER
137763 --Payables Upgrade Debit Encumbrance Type Identifier
137764  , p_source_95            IN NUMBER
137765 --Business Flow Accounts Payable Application Identifier
137767 --Business Flow Invoice Distribution Type
137768  , p_source_97            IN VARCHAR2
137769 --Business Flow Invoice Entity Code
137770  , p_source_98            IN VARCHAR2
137771 --Business Flow Invoice Distribution Identifier
137772  , p_source_99            IN NUMBER
137773 --Business Flow Invoice Identifier
137774  , p_source_100            IN NUMBER
137775 --Invoice Exchange Date
137776  , p_source_146            IN DATE
137777 --Invoice Exchange Rate
137778  , p_source_147            IN NUMBER
137779 --Invoice Exchange Rate Type
137780  , p_source_148            IN VARCHAR2
137781 )
137782 IS
137783 
137784 l_component_type              VARCHAR2(80);
137785 l_component_code              VARCHAR2(30);
137786 l_component_type_code         VARCHAR2(1);
137787 l_component_appl_id           INTEGER;
137788 l_amb_context_code            VARCHAR2(30);
137789 l_entity_code                 VARCHAR2(30);
137790 l_event_class_code            VARCHAR2(30);
137791 l_ae_header_id                NUMBER;
137792 l_event_type_code             VARCHAR2(30);
137793 l_line_definition_code        VARCHAR2(30);
137794 l_line_definition_owner_code  VARCHAR2(1);
137795 --
137796 -- adr variables
137797 l_segment                     VARCHAR2(30);
137798 l_ccid                        NUMBER;
137799 l_adr_transaction_coa_id      NUMBER;
137800 l_adr_accounting_coa_id       NUMBER;
137801 l_adr_flexfield_segment_code  VARCHAR2(30);
137802 l_adr_flex_value_set_id       NUMBER;
137803 l_adr_value_type_code         VARCHAR2(30);
137804 l_adr_value_combination_id    NUMBER;
137805 l_adr_value_segment_code      VARCHAR2(30);
137806 
137807 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137808 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137809 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137810 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137811 
137812 -- 4262811 Variables ------------------------------------------------------------------------------------------
137813 l_entered_amt_idx             NUMBER;
137814 l_accted_amt_idx              NUMBER;
137815 l_acc_rev_flag                VARCHAR2(1);
137816 l_accrual_line_num            NUMBER;
137817 l_tmp_amt                     NUMBER;
137818 l_acc_rev_natural_side_code   VARCHAR2(1);
137819 
137820 l_num_entries                 NUMBER;
137821 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
137822 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
137823 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
137824 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
137825 l_recog_line_1                NUMBER;
137826 l_recog_line_2                NUMBER;
137827 
137828 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
137829 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
137830 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
137831 
137832 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
137833 
137834 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
137835 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
137836 
137837 ---------------------------------------------------------------------------------------------------------------
137838 
137839 
137840 --
137841 -- bulk performance
137842 --
137843 l_balance_type_code           VARCHAR2(1);
137844 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
137845 l_log_module                  VARCHAR2(240);
137846 
137847 --
137848 -- Upgrade strategy
137849 --
137850 l_actual_upg_option           VARCHAR2(1);
137851 l_enc_upg_option           VARCHAR2(1);
137852 
137853 --
137854 BEGIN
137855 --
137856 IF g_log_enabled THEN
137857       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_230';
137858 END IF;
137859 --
137860 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137861 
137862       trace
137863          (p_msg      => 'BEGIN of AcctLineType_230'
137864          ,p_level    => C_LEVEL_PROCEDURE
137865          ,p_module   => l_log_module);
137866 
137867 END IF;
137868 --
137869 l_component_type             := 'AMB_JLT';
137870 l_component_code             := 'AP_TAX_RATE_VAR_DM';
137871 l_component_type_code        := 'S';
137872 l_component_appl_id          :=  200;
137873 l_amb_context_code           := 'DEFAULT';
137874 l_entity_code                := 'AP_INVOICES';
137875 l_event_class_code           := 'DEBIT MEMOS';
137876 l_event_type_code            := 'DEBIT MEMOS_ALL';
137877 l_line_definition_owner_code := 'S';
137878 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
137879 --
137880 l_balance_type_code          := 'A';
137881 l_segment                     := NULL;
137882 l_ccid                        := NULL;
137883 l_adr_transaction_coa_id      := NULL;
137884 l_adr_accounting_coa_id       := NULL;
137885 l_adr_flexfield_segment_code  := NULL;
137886 l_adr_flex_value_set_id       := NULL;
137887 l_adr_value_type_code         := NULL;
137888 l_adr_value_combination_id    := NULL;
137889 l_adr_value_segment_code      := NULL;
137890 
137891 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
137892 l_bflow_class_code           := '';    -- 4219869 Business Flow
137893 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
137894 l_budgetary_control_flag     := 'N';
137895 
137896 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
137897 l_bflow_applied_to_amt       := NULL; -- 5132302
137898 l_entered_amt_idx            := NULL;          -- 4262811
137899 l_accted_amt_idx             := NULL;          -- 4262811
137903 --
137900 l_acc_rev_flag               := NULL;          -- 4262811
137901 l_accrual_line_num           := NULL;          -- 4262811
137902 l_tmp_amt                    := NULL;          -- 4262811
137904  
137905 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
137906     l_balance_type_code <> 'B' THEN
137907 IF NVL(p_source_28,'
137908 ') =  'TRV' AND 
137909 NVL(p_source_54,'
137910 ') =  'Y'
137911  THEN 
137912 
137913    --
137914    XLA_AE_LINES_PKG.SetNewLine;
137915 
137916    p_balance_type_code          := l_balance_type_code;
137917    -- set the flag so later we will know whether the gain loss line needs to be created
137918    
137919    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
137920      p_actual_flag :='A';
137921    END IF;
137922 
137923    --
137924    -- bulk performance
137925    --
137926    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
137927                                       p_header_num   => 0); -- 4262811
137928    --
137929    -- set accounting line options
137930    --
137931    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
137932            p_natural_side_code          => 'D'
137933          , p_gain_or_loss_flag          => 'N'
137934          , p_gl_transfer_mode_code      => 'S'
137935          , p_acct_entry_type_code       => 'A'
137936          , p_switch_side_flag           => 'Y'
137937          , p_merge_duplicate_code       => 'A'
137938          );
137939    --
137940    l_acc_rev_natural_side_code := 'C';  -- 4262811
137941    -- 
137942    --
137943    -- set accounting line type info
137944    --
137945    xla_ae_lines_pkg.SetAcctLineType
137946       (p_component_type             => l_component_type
137947       ,p_event_type_code            => l_event_type_code
137948       ,p_line_definition_owner_code => l_line_definition_owner_code
137949       ,p_line_definition_code       => l_line_definition_code
137950       ,p_accounting_line_code       => l_component_code
137951       ,p_accounting_line_type_code  => l_component_type_code
137952       ,p_accounting_line_appl_id    => l_component_appl_id
137953       ,p_amb_context_code           => l_amb_context_code
137954       ,p_entity_code                => l_entity_code
137955       ,p_event_class_code           => l_event_class_code);
137956    --
137957    -- set accounting class
137958    --
137959    xla_ae_lines_pkg.SetAcctClass(
137960            p_accounting_class_code  => 'TRV'
137961          , p_ae_header_id           => l_ae_header_id
137962          );
137963 
137964    --
137965    -- set rounding class
137966    --
137967    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
137968                       'TRV';
137969 
137970    --
137971    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
137972    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
137973    --
137974    -- bulk performance
137975    --
137976    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
137977 
137978    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
137979       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
137980 
137981    -- 4955764
137982    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137983       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
137984 
137985    -- 4458381 Public Sector Enh
137986    
137987    --
137988    -- set accounting attributes for the line type
137989    --
137990    l_entered_amt_idx := 23;
137991    l_accted_amt_idx  := 28;
137992    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
137993    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
137994    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
137995    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
137996    l_rec_acct_attrs.array_num_value(2)  := 
137997 xla_ae_sources_pkg.GetSystemSourceNum(
137998    p_source_code           => 'XLA_EVENT_APPL_ID'
137999  , p_source_type_code      => 'Y'
138000  , p_source_application_id =>  602
138001 );
138002    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
138003    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
138004    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
138005    l_rec_acct_attrs.array_char_value(4)  := 
138006 xla_ae_sources_pkg.GetSystemSourceChar(
138007    p_source_code           => 'XLA_ENTITY_CODE'
138008  , p_source_type_code      => 'Y'
138009  , p_source_application_id =>  602
138010 );
138011    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
138012    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
138013    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
138014    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
138015    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
138016    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
138017    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138018    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
138019    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
138020    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
138021    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
138022    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
138023    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138024    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
138025    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
138026    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
138030    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
138027    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
138028    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
138029    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
138031    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
138032    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
138033    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
138034    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
138035    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
138036    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
138037    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
138038    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
138039    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
138040    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
138041    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
138042    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
138043    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
138044    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
138045    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
138046    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
138047    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
138048    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
138049    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
138050    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
138051    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
138052    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
138053    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
138054    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
138055    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
138056    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
138057    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
138058    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
138059    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
138060    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
138061    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
138062    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
138063    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
138064    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
138065    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
138066    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
138067    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
138068    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
138069    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
138070    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
138071    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
138072    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
138073    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
138074    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
138075    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
138076    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
138077    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
138078    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
138079    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
138080    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
138081    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
138082    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
138083    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
138084    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
138085    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
138086    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
138087 
138088    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
138089    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
138090 
138091    ---------------------------------------------------------------------------------------------------------------
138092    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
138093    ---------------------------------------------------------------------------------------------------------------
138094    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
138095 
138096    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138097    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138098 
138099    IF xla_accounting_cache_pkg.GetValueChar
138100          (p_source_code         => 'LEDGER_CATEGORY_CODE'
138101          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
138102    AND l_bflow_method_code = 'PRIOR_ENTRY'
138103 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
138104    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
138105          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
138106        )
138107    THEN
138108          xla_ae_lines_pkg.BflowUpgEntry
138109            (p_business_method_code    => l_bflow_method_code
138110            ,p_business_class_code     => l_bflow_class_code
138111            ,p_balance_type            => l_balance_type_code);
138112    ELSE
138113       NULL;
138114 -- No business flow processing for business flow method of NONE.
138115    END IF;
138116 
138117    --
138118    -- call analytical criteria
138119    --
138120    
138121    --
138122    -- call description
138123    --
138124    
138125 xla_ae_lines_pkg.SetLineDescription(
138126    p_ae_header_id => l_ae_header_id
138127   ,p_description  => Description_2 (
138131    )
138128      p_application_id         => p_application_id
138129    , p_ae_header_id           => l_ae_header_id 
138130 , p_source_1 => p_source_1
138132 );
138133 
138134 
138135    --
138136    -- call ADRs
138137    -- Bug 4922099
138138    --
138139    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138140         (NVL(l_actual_upg_option, 'N') = 'O') OR
138141         (NVL(l_enc_upg_option, 'N') = 'O')
138142       )
138143    THEN
138144    NULL;
138145    --
138146    --
138147    
138148   l_ccid := AcctDerRule_35(
138149            p_application_id           => p_application_id
138150          , p_ae_header_id             => l_ae_header_id 
138151 , p_source_25 => p_source_25
138152          , x_transaction_coa_id       => l_adr_transaction_coa_id
138153          , x_accounting_coa_id        => l_adr_accounting_coa_id
138154          , x_value_type_code          => l_adr_value_type_code
138155          , p_side                     => 'NA'
138156    );
138157 
138158    xla_ae_lines_pkg.set_ccid(
138159     p_code_combination_id          => l_ccid
138160   , p_value_type_code              => l_adr_value_type_code
138161   , p_transaction_coa_id           => l_adr_transaction_coa_id
138162   , p_accounting_coa_id            => l_adr_accounting_coa_id
138163   , p_adr_code                     => 'AP_INVOICE_DIST'
138164   , p_adr_type_code                => 'S'
138165   , p_component_type               => l_component_type
138166   , p_component_code               => l_component_code
138167   , p_component_type_code          => l_component_type_code
138168   , p_component_appl_id            => l_component_appl_id
138169   , p_amb_context_code             => l_amb_context_code
138170   , p_side                         => 'NA'
138171   );
138172 
138173 
138174    --
138175    --
138176    END IF;
138177    --
138178    -- Bug 4922099
138179    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
138180           (NVL(l_enc_upg_option, 'N') = 'O')
138181         ) AND
138182         (l_bflow_method_code = 'PRIOR_ENTRY')
138183       )
138184    THEN
138185       IF
138186       --
138187       1 = 2
138188       --
138189       THEN
138190       xla_accounting_err_pkg.build_message
138191                                     (p_appli_s_name            => 'XLA'
138192                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138193                                     ,p_token_1                 => 'LINE_NUMBER'
138194                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
138195                                     ,p_token_2                 => 'LINE_TYPE_NAME'
138196                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
138197                                                                              l_component_type
138198                                                                             ,l_component_code
138199                                                                             ,l_component_type_code
138200                                                                             ,l_component_appl_id
138201                                                                             ,l_amb_context_code
138202                                                                             ,l_entity_code
138203                                                                             ,l_event_class_code
138204                                                                            )
138205                                     ,p_token_3                 => 'OWNER'
138206                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
138207                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
138208                                                                           ,p_lookup_code    => l_component_type_code
138209                                                                          )
138210                                     ,p_token_4                 => 'PRODUCT_NAME'
138211                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
138212                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
138213                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
138214                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
138215                                     ,p_ae_header_id            =>  NULL
138216                                        );
138217 
138218         IF (C_LEVEL_ERROR>= g_log_level) THEN
138219                  trace
138220                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138221                       ,p_level    => C_LEVEL_ERROR
138222                       ,p_module   => l_log_module);
138223         END IF;
138224       END IF;
138225    END IF;
138226    --
138227    --
138228    ------------------------------------------------------------------------------------------------
138229    -- 4219869 Business Flow
138230    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
138231    -- Prior Entry.  Currently, the following code is always generated.
138232    ------------------------------------------------------------------------------------------------
138233    XLA_AE_LINES_PKG.ValidateCurrentLine;
138234 
138235    ------------------------------------------------------------------------------------
138236    -- 4219869 Business Flow
138237    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
138238    ------------------------------------------------------------------------------------
138239    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138240 
138241    ----------------------------------------------------------------------------------
138242    -- 4219869 Business Flow
138246          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
138243    -- Update journal entry status -- Need to generate this within IF <condition>
138244    ----------------------------------------------------------------------------------
138245    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138247          ,p_balance_type_code => l_balance_type_code
138248          );
138249 
138250    -------------------------------------------------------------------------------------------
138251    -- 4262811 - Generate the Accrual Reversal lines
138252    -------------------------------------------------------------------------------------------
138253    BEGIN
138254       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
138255                               (g_array_event(p_event_id).array_value_num('header_index'));
138256       IF l_acc_rev_flag IS NULL THEN
138257          l_acc_rev_flag := 'N';
138258       END IF;
138259    EXCEPTION
138260       WHEN OTHERS THEN
138261          l_acc_rev_flag := 'N';
138262    END;
138263    --
138264    IF (l_acc_rev_flag = 'Y') THEN
138265 
138266        -- 4645092  ------------------------------------------------------------------------------
138267        -- To allow MPA report to determine if it should generate report process
138268        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
138269        ------------------------------------------------------------------------------------------
138270 
138271        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
138272        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
138273    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
138274    -- call ADRs
138275    -- Bug 4922099
138276    --
138277    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138278         (NVL(l_actual_upg_option, 'N') = 'O') OR
138279         (NVL(l_enc_upg_option, 'N') = 'O')
138280       )
138281    THEN
138282    NULL;
138283    --
138284    --
138285    
138286   l_ccid := AcctDerRule_35(
138287            p_application_id           => p_application_id
138288          , p_ae_header_id             => l_ae_header_id 
138289 , p_source_25 => p_source_25
138290          , x_transaction_coa_id       => l_adr_transaction_coa_id
138291          , x_accounting_coa_id        => l_adr_accounting_coa_id
138292          , x_value_type_code          => l_adr_value_type_code
138293          , p_side                     => 'NA'
138294    );
138295 
138296    xla_ae_lines_pkg.set_ccid(
138297     p_code_combination_id          => l_ccid
138298   , p_value_type_code              => l_adr_value_type_code
138299   , p_transaction_coa_id           => l_adr_transaction_coa_id
138300   , p_accounting_coa_id            => l_adr_accounting_coa_id
138301   , p_adr_code                     => 'AP_INVOICE_DIST'
138302   , p_adr_type_code                => 'S'
138303   , p_component_type               => l_component_type
138304   , p_component_code               => l_component_code
138305   , p_component_type_code          => l_component_type_code
138306   , p_component_appl_id            => l_component_appl_id
138307   , p_amb_context_code             => l_amb_context_code
138308   , p_side                         => 'NA'
138309   );
138310 
138311 
138312    --
138313    --
138314    END IF;
138315 
138316        --
138317        -- Update the line information that should be overwritten
138318        --
138319        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
138320                                          p_header_num   => 1);
138321        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
138322 
138323        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
138324 
138325        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
138326           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
138327        END IF;
138328 
138329       --
138330       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
138331       --
138332       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
138333           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
138334       ELSE
138335           ---------------------------------------------------------------------------------------------------
138336           -- 4262811a Switch Sign
138337           ---------------------------------------------------------------------------------------------------
138338           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
138339           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138340                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138341           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138342                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138343           -- 5132302
138344           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
138345                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138346 
138347       END IF;
138348 
138349       -- 4955764
138350       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138351       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
138352 
138353 
138354       XLA_AE_LINES_PKG.ValidateCurrentLine;
138355       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138356 
138357       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138358                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
138362 
138359                ,p_balance_type_code => l_balance_type_code);
138360 
138361    END IF;
138363    -----------------------------------------------------------------------------------------
138364    -- 4262811 Multiperiod Accounting
138365    -----------------------------------------------------------------------------------------
138366      -- No MPA option is assigned.
138367 
138368 
138369 END IF;
138370 END IF;
138371 --
138372 
138373 --
138374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138375    trace
138376       (p_msg      => 'END of AcctLineType_230'
138377       ,p_level    => C_LEVEL_PROCEDURE
138378       ,p_module   => l_log_module);
138379 END IF;
138380 --
138381 EXCEPTION
138382   WHEN xla_exceptions_pkg.application_exception THEN
138383       RAISE;
138384   WHEN OTHERS THEN
138385        xla_exceptions_pkg.raise_message
138386            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_230');
138387 END AcctLineType_230;
138388 --
138389 
138390 ---------------------------------------
138391 --
138392 -- PRIVATE FUNCTION
138393 --         AcctLineType_231
138394 --
138395 ---------------------------------------
138396 PROCEDURE AcctLineType_231 (
138397   p_application_id        IN NUMBER
138398  ,p_event_id              IN NUMBER
138399  ,p_calculate_acctd_flag  IN VARCHAR2
138400  ,p_calculate_g_l_flag    IN VARCHAR2
138401  ,p_actual_flag           IN OUT VARCHAR2
138402  ,p_balance_type_code     OUT VARCHAR2
138403  ,p_gain_or_loss_ref      OUT VARCHAR2
138404  
138405 --Invoice Distribution Description
138406  , p_source_1            IN VARCHAR2
138407 --Invoice Distribution Ledger Amount
138408  , p_source_16            IN NUMBER
138409 --Invoice Distribution Account
138410  , p_source_25            IN NUMBER
138411 --Invoice Distribution Type
138412  , p_source_28            IN VARCHAR2
138413  , p_source_28_meaning    IN VARCHAR2
138414 --Accrue on Receipt Option
138415  , p_source_54            IN VARCHAR2
138416  , p_source_54_meaning    IN VARCHAR2
138417 --Accounting Reversal Indicator
138418  , p_source_58            IN VARCHAR2
138419 --Distribution Link Type
138420  , p_source_60            IN VARCHAR2
138421 --Allocation to Main Distribution Identifier
138422  , p_source_62            IN NUMBER
138423 --Invoice Identifier
138424  , p_source_63            IN NUMBER
138425 --Invoice Distribution Identifier
138426  , p_source_69            IN NUMBER
138427 --Payables Encumbrance Upgrade Credit Account
138428  , p_source_70            IN NUMBER
138429 --Payables Encumbrance Upgrade Credit Amount
138430  , p_source_71            IN NUMBER
138431 --Invoice Currency Code
138432  , p_source_72            IN VARCHAR2
138433 --Payables Encumbrance Upgrade Credit Base Amount
138434  , p_source_73            IN NUMBER
138435 --Payables Encumbrance Upgrade Debit Account
138436  , p_source_74            IN NUMBER
138437 --Payables Encumbrance Upgrade Debit Amount
138438  , p_source_75            IN NUMBER
138439 --Payables Encumbrance Upgrade Debit Base Amount
138440  , p_source_76            IN NUMBER
138441 --Payables Encumbrance Upgrade Option
138442  , p_source_77            IN VARCHAR2
138443 --Invoice Distribution Amount
138444  , p_source_78            IN NUMBER
138445 --Deferred Accounting End Date
138446  , p_source_82            IN DATE
138447 --Deferred Accounting Option
138448  , p_source_83            IN VARCHAR2
138449 --Deferred Accounting Start Date
138450  , p_source_84            IN DATE
138451 --Override Accounted Amount Indicator
138452  , p_source_85            IN VARCHAR2
138453  , p_source_85_meaning    IN VARCHAR2
138454 --Invoice Supplier Identifier
138455  , p_source_86            IN NUMBER
138456 --Invoice Supplier Site Identifier
138457  , p_source_87            IN NUMBER
138458 --Third Party Type
138459  , p_source_88            IN VARCHAR2
138460 --Parent Reversal Identifier
138461  , p_source_89            IN NUMBER
138462 --Invoice Distribution Statistical Amount
138463  , p_source_90            IN NUMBER
138464 --Invoice Distribution Tax Line Identifier
138465  , p_source_91            IN NUMBER
138466 --Invoice Distribution Tax Distribution Identifier from Tax
138467  , p_source_92            IN NUMBER
138468 --Invoice Distribution Summary Tax Line Identifier
138469  , p_source_93            IN NUMBER
138470 --Payables Upgrade Credit Encumbrance Type Identifier
138471  , p_source_94            IN NUMBER
138472 --Payables Upgrade Debit Encumbrance Type Identifier
138473  , p_source_95            IN NUMBER
138474 --Business Flow Accounts Payable Application Identifier
138475  , p_source_96            IN NUMBER
138476 --Business Flow Invoice Distribution Type
138477  , p_source_97            IN VARCHAR2
138478 --Business Flow Invoice Entity Code
138479  , p_source_98            IN VARCHAR2
138480 --Business Flow Invoice Distribution Identifier
138481  , p_source_99            IN NUMBER
138482 --Business Flow Invoice Identifier
138483  , p_source_100            IN NUMBER
138484 --Invoice Exchange Date
138485  , p_source_146            IN DATE
138486 --Invoice Exchange Rate
138487  , p_source_147            IN NUMBER
138488 --Invoice Exchange Rate Type
138489  , p_source_148            IN VARCHAR2
138490 )
138491 IS
138492 
138493 l_component_type              VARCHAR2(80);
138494 l_component_code              VARCHAR2(30);
138495 l_component_type_code         VARCHAR2(1);
138496 l_component_appl_id           INTEGER;
138497 l_amb_context_code            VARCHAR2(30);
138498 l_entity_code                 VARCHAR2(30);
138499 l_event_class_code            VARCHAR2(30);
138500 l_ae_header_id                NUMBER;
138501 l_event_type_code             VARCHAR2(30);
138502 l_line_definition_code        VARCHAR2(30);
138503 l_line_definition_owner_code  VARCHAR2(1);
138504 --
138505 -- adr variables
138506 l_segment                     VARCHAR2(30);
138510 l_adr_flexfield_segment_code  VARCHAR2(30);
138507 l_ccid                        NUMBER;
138508 l_adr_transaction_coa_id      NUMBER;
138509 l_adr_accounting_coa_id       NUMBER;
138511 l_adr_flex_value_set_id       NUMBER;
138512 l_adr_value_type_code         VARCHAR2(30);
138513 l_adr_value_combination_id    NUMBER;
138514 l_adr_value_segment_code      VARCHAR2(30);
138515 
138516 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
138517 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
138518 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
138519 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
138520 
138521 -- 4262811 Variables ------------------------------------------------------------------------------------------
138522 l_entered_amt_idx             NUMBER;
138523 l_accted_amt_idx              NUMBER;
138524 l_acc_rev_flag                VARCHAR2(1);
138525 l_accrual_line_num            NUMBER;
138526 l_tmp_amt                     NUMBER;
138527 l_acc_rev_natural_side_code   VARCHAR2(1);
138528 
138529 l_num_entries                 NUMBER;
138530 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
138531 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
138532 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
138533 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
138534 l_recog_line_1                NUMBER;
138535 l_recog_line_2                NUMBER;
138536 
138537 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
138538 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
138539 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
138540 
138541 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
138542 
138543 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
138544 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
138545 
138546 ---------------------------------------------------------------------------------------------------------------
138547 
138548 
138549 --
138550 -- bulk performance
138551 --
138552 l_balance_type_code           VARCHAR2(1);
138553 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
138554 l_log_module                  VARCHAR2(240);
138555 
138556 --
138557 -- Upgrade strategy
138558 --
138559 l_actual_upg_option           VARCHAR2(1);
138560 l_enc_upg_option           VARCHAR2(1);
138561 
138562 --
138563 BEGIN
138564 --
138565 IF g_log_enabled THEN
138566       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_231';
138567 END IF;
138568 --
138569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138570 
138571       trace
138572          (p_msg      => 'BEGIN of AcctLineType_231'
138573          ,p_level    => C_LEVEL_PROCEDURE
138574          ,p_module   => l_log_module);
138575 
138576 END IF;
138577 --
138578 l_component_type             := 'AMB_JLT';
138579 l_component_code             := 'AP_TAX_RATE_VAR_INV';
138580 l_component_type_code        := 'S';
138581 l_component_appl_id          :=  200;
138582 l_amb_context_code           := 'DEFAULT';
138583 l_entity_code                := 'AP_INVOICES';
138584 l_event_class_code           := 'INVOICES';
138585 l_event_type_code            := 'INVOICES_ALL';
138586 l_line_definition_owner_code := 'S';
138587 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
138588 --
138589 l_balance_type_code          := 'A';
138590 l_segment                     := NULL;
138591 l_ccid                        := NULL;
138592 l_adr_transaction_coa_id      := NULL;
138593 l_adr_accounting_coa_id       := NULL;
138594 l_adr_flexfield_segment_code  := NULL;
138595 l_adr_flex_value_set_id       := NULL;
138596 l_adr_value_type_code         := NULL;
138597 l_adr_value_combination_id    := NULL;
138598 l_adr_value_segment_code      := NULL;
138599 
138600 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138601 l_bflow_class_code           := '';    -- 4219869 Business Flow
138602 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138603 l_budgetary_control_flag     := 'N';
138604 
138605 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138606 l_bflow_applied_to_amt       := NULL; -- 5132302
138607 l_entered_amt_idx            := NULL;          -- 4262811
138608 l_accted_amt_idx             := NULL;          -- 4262811
138609 l_acc_rev_flag               := NULL;          -- 4262811
138610 l_accrual_line_num           := NULL;          -- 4262811
138611 l_tmp_amt                    := NULL;          -- 4262811
138612 --
138613  
138614 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138615     l_balance_type_code <> 'B' THEN
138616 IF NVL(p_source_28,'
138617 ') =  'TRV' AND 
138618 NVL(p_source_54,'
138619 ') =  'Y'
138620  THEN 
138621 
138622    --
138623    XLA_AE_LINES_PKG.SetNewLine;
138624 
138625    p_balance_type_code          := l_balance_type_code;
138626    -- set the flag so later we will know whether the gain loss line needs to be created
138627    
138628    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138629      p_actual_flag :='A';
138630    END IF;
138631 
138632    --
138633    -- bulk performance
138634    --
138635    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138636                                       p_header_num   => 0); -- 4262811
138637    --
138638    -- set accounting line options
138639    --
138640    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
138641            p_natural_side_code          => 'D'
138642          , p_gain_or_loss_flag          => 'N'
138643          , p_gl_transfer_mode_code      => 'S'
138644          , p_acct_entry_type_code       => 'A'
138645          , p_switch_side_flag           => 'Y'
138649    l_acc_rev_natural_side_code := 'C';  -- 4262811
138646          , p_merge_duplicate_code       => 'A'
138647          );
138648    --
138650    -- 
138651    --
138652    -- set accounting line type info
138653    --
138654    xla_ae_lines_pkg.SetAcctLineType
138655       (p_component_type             => l_component_type
138656       ,p_event_type_code            => l_event_type_code
138657       ,p_line_definition_owner_code => l_line_definition_owner_code
138658       ,p_line_definition_code       => l_line_definition_code
138659       ,p_accounting_line_code       => l_component_code
138660       ,p_accounting_line_type_code  => l_component_type_code
138661       ,p_accounting_line_appl_id    => l_component_appl_id
138662       ,p_amb_context_code           => l_amb_context_code
138663       ,p_entity_code                => l_entity_code
138664       ,p_event_class_code           => l_event_class_code);
138665    --
138666    -- set accounting class
138667    --
138668    xla_ae_lines_pkg.SetAcctClass(
138669            p_accounting_class_code  => 'TRV'
138670          , p_ae_header_id           => l_ae_header_id
138671          );
138672 
138673    --
138674    -- set rounding class
138675    --
138676    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
138677                       'TRV';
138678 
138679    --
138680    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
138681    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
138682    --
138683    -- bulk performance
138684    --
138685    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
138686 
138687    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
138688       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
138689 
138690    -- 4955764
138691    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138692       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
138693 
138694    -- 4458381 Public Sector Enh
138695    
138696    --
138697    -- set accounting attributes for the line type
138698    --
138699    l_entered_amt_idx := 24;
138700    l_accted_amt_idx  := 29;
138701    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
138702    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
138703    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
138704    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
138705    l_rec_acct_attrs.array_num_value(2)  := 
138706 xla_ae_sources_pkg.GetSystemSourceNum(
138707    p_source_code           => 'XLA_EVENT_APPL_ID'
138708  , p_source_type_code      => 'Y'
138709  , p_source_application_id =>  602
138710 );
138711    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
138712    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
138713    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
138714    l_rec_acct_attrs.array_char_value(4)  := 
138715 xla_ae_sources_pkg.GetSystemSourceChar(
138716    p_source_code           => 'XLA_ENTITY_CODE'
138717  , p_source_type_code      => 'Y'
138718  , p_source_application_id =>  602
138719 );
138720    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
138721    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
138722    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
138723    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
138724    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
138725    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
138726    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
138727    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
138728    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138729    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
138730    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
138731    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
138732    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
138733    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
138734    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138735    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
138736    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
138737    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
138738    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
138739    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
138740    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
138741    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
138742    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
138743    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
138744    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
138745    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
138746    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
138747    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
138748    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
138749    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
138750    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
138751    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
138752    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
138753    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
138754    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
138755    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
138756    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
138757    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
138761    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
138758    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
138759    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
138760    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
138762    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
138763    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
138764    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
138765    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
138766    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
138767    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
138768    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
138769    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
138770    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
138771    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
138772    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
138773    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
138774    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
138775    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
138776    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
138777    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
138778    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
138779    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
138780    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
138781    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
138782    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
138783    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
138784    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
138785    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
138786    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
138787    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
138788    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
138789    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
138790    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
138791    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
138792    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
138793    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
138794    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
138795    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
138796    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
138797    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
138798    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
138799    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
138800 
138801    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
138802    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
138803 
138804    ---------------------------------------------------------------------------------------------------------------
138805    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
138806    ---------------------------------------------------------------------------------------------------------------
138807    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
138808 
138809    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138810    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138811 
138812    IF xla_accounting_cache_pkg.GetValueChar
138813          (p_source_code         => 'LEDGER_CATEGORY_CODE'
138814          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
138815    AND l_bflow_method_code = 'PRIOR_ENTRY'
138816 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
138817    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
138818          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
138819        )
138820    THEN
138821          xla_ae_lines_pkg.BflowUpgEntry
138822            (p_business_method_code    => l_bflow_method_code
138823            ,p_business_class_code     => l_bflow_class_code
138824            ,p_balance_type            => l_balance_type_code);
138825    ELSE
138826       NULL;
138827 -- No business flow processing for business flow method of NONE.
138828    END IF;
138829 
138830    --
138831    -- call analytical criteria
138832    --
138833    
138834    --
138835    -- call description
138836    --
138837    
138838 xla_ae_lines_pkg.SetLineDescription(
138839    p_ae_header_id => l_ae_header_id
138840   ,p_description  => Description_2 (
138841      p_application_id         => p_application_id
138842    , p_ae_header_id           => l_ae_header_id 
138843 , p_source_1 => p_source_1
138844    )
138845 );
138846 
138847 
138848    --
138849    -- call ADRs
138850    -- Bug 4922099
138851    --
138852    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138853         (NVL(l_actual_upg_option, 'N') = 'O') OR
138854         (NVL(l_enc_upg_option, 'N') = 'O')
138855       )
138856    THEN
138857    NULL;
138858    --
138859    --
138860    
138861   l_ccid := AcctDerRule_35(
138862            p_application_id           => p_application_id
138863          , p_ae_header_id             => l_ae_header_id 
138864 , p_source_25 => p_source_25
138865          , x_transaction_coa_id       => l_adr_transaction_coa_id
138866          , x_accounting_coa_id        => l_adr_accounting_coa_id
138867          , x_value_type_code          => l_adr_value_type_code
138868          , p_side                     => 'NA'
138869    );
138870 
138871    xla_ae_lines_pkg.set_ccid(
138872     p_code_combination_id          => l_ccid
138873   , p_value_type_code              => l_adr_value_type_code
138877   , p_adr_type_code                => 'S'
138874   , p_transaction_coa_id           => l_adr_transaction_coa_id
138875   , p_accounting_coa_id            => l_adr_accounting_coa_id
138876   , p_adr_code                     => 'AP_INVOICE_DIST'
138878   , p_component_type               => l_component_type
138879   , p_component_code               => l_component_code
138880   , p_component_type_code          => l_component_type_code
138881   , p_component_appl_id            => l_component_appl_id
138882   , p_amb_context_code             => l_amb_context_code
138883   , p_side                         => 'NA'
138884   );
138885 
138886 
138887    --
138888    --
138889    END IF;
138890    --
138891    -- Bug 4922099
138892    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
138893           (NVL(l_enc_upg_option, 'N') = 'O')
138894         ) AND
138895         (l_bflow_method_code = 'PRIOR_ENTRY')
138896       )
138897    THEN
138898       IF
138899       --
138900       1 = 2
138901       --
138902       THEN
138903       xla_accounting_err_pkg.build_message
138904                                     (p_appli_s_name            => 'XLA'
138905                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138906                                     ,p_token_1                 => 'LINE_NUMBER'
138907                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
138908                                     ,p_token_2                 => 'LINE_TYPE_NAME'
138909                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
138910                                                                              l_component_type
138911                                                                             ,l_component_code
138912                                                                             ,l_component_type_code
138913                                                                             ,l_component_appl_id
138914                                                                             ,l_amb_context_code
138915                                                                             ,l_entity_code
138916                                                                             ,l_event_class_code
138917                                                                            )
138918                                     ,p_token_3                 => 'OWNER'
138919                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
138920                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
138921                                                                           ,p_lookup_code    => l_component_type_code
138922                                                                          )
138923                                     ,p_token_4                 => 'PRODUCT_NAME'
138924                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
138925                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
138926                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
138927                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
138928                                     ,p_ae_header_id            =>  NULL
138929                                        );
138930 
138931         IF (C_LEVEL_ERROR>= g_log_level) THEN
138932                  trace
138933                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138934                       ,p_level    => C_LEVEL_ERROR
138935                       ,p_module   => l_log_module);
138936         END IF;
138937       END IF;
138938    END IF;
138939    --
138940    --
138941    ------------------------------------------------------------------------------------------------
138942    -- 4219869 Business Flow
138943    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
138944    -- Prior Entry.  Currently, the following code is always generated.
138945    ------------------------------------------------------------------------------------------------
138946    XLA_AE_LINES_PKG.ValidateCurrentLine;
138947 
138948    ------------------------------------------------------------------------------------
138949    -- 4219869 Business Flow
138950    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
138951    ------------------------------------------------------------------------------------
138952    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138953 
138954    ----------------------------------------------------------------------------------
138955    -- 4219869 Business Flow
138956    -- Update journal entry status -- Need to generate this within IF <condition>
138957    ----------------------------------------------------------------------------------
138958    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138959          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
138960          ,p_balance_type_code => l_balance_type_code
138961          );
138962 
138963    -------------------------------------------------------------------------------------------
138964    -- 4262811 - Generate the Accrual Reversal lines
138965    -------------------------------------------------------------------------------------------
138966    BEGIN
138967       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
138968                               (g_array_event(p_event_id).array_value_num('header_index'));
138969       IF l_acc_rev_flag IS NULL THEN
138970          l_acc_rev_flag := 'N';
138971       END IF;
138972    EXCEPTION
138973       WHEN OTHERS THEN
138974          l_acc_rev_flag := 'N';
138975    END;
138976    --
138977    IF (l_acc_rev_flag = 'Y') THEN
138978 
138979        -- 4645092  ------------------------------------------------------------------------------
138983 
138980        -- To allow MPA report to determine if it should generate report process
138981        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
138982        ------------------------------------------------------------------------------------------
138984        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
138985        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
138986    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
138987    -- call ADRs
138988    -- Bug 4922099
138989    --
138990    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138991         (NVL(l_actual_upg_option, 'N') = 'O') OR
138992         (NVL(l_enc_upg_option, 'N') = 'O')
138993       )
138994    THEN
138995    NULL;
138996    --
138997    --
138998    
138999   l_ccid := AcctDerRule_35(
139000            p_application_id           => p_application_id
139001          , p_ae_header_id             => l_ae_header_id 
139002 , p_source_25 => p_source_25
139003          , x_transaction_coa_id       => l_adr_transaction_coa_id
139004          , x_accounting_coa_id        => l_adr_accounting_coa_id
139005          , x_value_type_code          => l_adr_value_type_code
139006          , p_side                     => 'NA'
139007    );
139008 
139009    xla_ae_lines_pkg.set_ccid(
139010     p_code_combination_id          => l_ccid
139011   , p_value_type_code              => l_adr_value_type_code
139012   , p_transaction_coa_id           => l_adr_transaction_coa_id
139013   , p_accounting_coa_id            => l_adr_accounting_coa_id
139014   , p_adr_code                     => 'AP_INVOICE_DIST'
139015   , p_adr_type_code                => 'S'
139016   , p_component_type               => l_component_type
139017   , p_component_code               => l_component_code
139018   , p_component_type_code          => l_component_type_code
139019   , p_component_appl_id            => l_component_appl_id
139020   , p_amb_context_code             => l_amb_context_code
139021   , p_side                         => 'NA'
139022   );
139023 
139024 
139025    --
139026    --
139027    END IF;
139028 
139029        --
139030        -- Update the line information that should be overwritten
139031        --
139032        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
139033                                          p_header_num   => 1);
139034        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
139035 
139036        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
139037 
139038        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
139039           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
139040        END IF;
139041 
139042       --
139043       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
139044       --
139045       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
139046           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
139047       ELSE
139048           ---------------------------------------------------------------------------------------------------
139049           -- 4262811a Switch Sign
139050           ---------------------------------------------------------------------------------------------------
139051           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
139052           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139053                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139054           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139055                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139056           -- 5132302
139057           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
139058                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139059 
139060       END IF;
139061 
139062       -- 4955764
139063       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139064       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
139065 
139066 
139067       XLA_AE_LINES_PKG.ValidateCurrentLine;
139068       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139069 
139070       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139071                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
139072                ,p_balance_type_code => l_balance_type_code);
139073 
139074    END IF;
139075 
139076    -----------------------------------------------------------------------------------------
139077    -- 4262811 Multiperiod Accounting
139078    -----------------------------------------------------------------------------------------
139079      -- No MPA option is assigned.
139080 
139081 
139082 END IF;
139083 END IF;
139084 --
139085 
139086 --
139087 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139088    trace
139089       (p_msg      => 'END of AcctLineType_231'
139090       ,p_level    => C_LEVEL_PROCEDURE
139091       ,p_module   => l_log_module);
139092 END IF;
139093 --
139094 EXCEPTION
139095   WHEN xla_exceptions_pkg.application_exception THEN
139096       RAISE;
139097   WHEN OTHERS THEN
139098        xla_exceptions_pkg.raise_message
139099            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_231');
139100 END AcctLineType_231;
139101 --
139102 
139103 ---------------------------------------
139104 --
139105 -- PRIVATE FUNCTION
139106 --         AcctLineType_232
139107 --
139108 ---------------------------------------
139112  ,p_calculate_acctd_flag  IN VARCHAR2
139109 PROCEDURE AcctLineType_232 (
139110   p_application_id        IN NUMBER
139111  ,p_event_id              IN NUMBER
139113  ,p_calculate_g_l_flag    IN VARCHAR2
139114  ,p_actual_flag           IN OUT VARCHAR2
139115  ,p_balance_type_code     OUT VARCHAR2
139116  ,p_gain_or_loss_ref      OUT VARCHAR2
139117  
139118 --Invoice Distribution Description
139119  , p_source_1            IN VARCHAR2
139120 --Invoice Distribution Ledger Amount
139121  , p_source_16            IN NUMBER
139122 --Invoice Distribution Account
139123  , p_source_25            IN NUMBER
139124 --Invoice Distribution Type
139125  , p_source_28            IN VARCHAR2
139126  , p_source_28_meaning    IN VARCHAR2
139127 --Accrue on Receipt Option
139128  , p_source_54            IN VARCHAR2
139129  , p_source_54_meaning    IN VARCHAR2
139130 --Accounting Reversal Indicator
139131  , p_source_58            IN VARCHAR2
139132 --Distribution Link Type
139133  , p_source_60            IN VARCHAR2
139134 --Allocation to Main Distribution Identifier
139135  , p_source_62            IN NUMBER
139136 --Invoice Identifier
139137  , p_source_63            IN NUMBER
139138 --Invoice Distribution Identifier
139139  , p_source_69            IN NUMBER
139140 --Payables Encumbrance Upgrade Credit Account
139141  , p_source_70            IN NUMBER
139142 --Payables Encumbrance Upgrade Credit Amount
139143  , p_source_71            IN NUMBER
139144 --Invoice Currency Code
139145  , p_source_72            IN VARCHAR2
139146 --Payables Encumbrance Upgrade Credit Base Amount
139147  , p_source_73            IN NUMBER
139148 --Payables Encumbrance Upgrade Debit Account
139149  , p_source_74            IN NUMBER
139150 --Payables Encumbrance Upgrade Debit Amount
139151  , p_source_75            IN NUMBER
139152 --Payables Encumbrance Upgrade Debit Base Amount
139153  , p_source_76            IN NUMBER
139154 --Payables Encumbrance Upgrade Option
139155  , p_source_77            IN VARCHAR2
139156 --Invoice Distribution Amount
139157  , p_source_78            IN NUMBER
139158 --Deferred Accounting End Date
139159  , p_source_82            IN DATE
139160 --Deferred Accounting Option
139161  , p_source_83            IN VARCHAR2
139162 --Deferred Accounting Start Date
139163  , p_source_84            IN DATE
139164 --Override Accounted Amount Indicator
139165  , p_source_85            IN VARCHAR2
139166  , p_source_85_meaning    IN VARCHAR2
139167 --Invoice Supplier Identifier
139168  , p_source_86            IN NUMBER
139169 --Invoice Supplier Site Identifier
139170  , p_source_87            IN NUMBER
139171 --Third Party Type
139172  , p_source_88            IN VARCHAR2
139173 --Parent Reversal Identifier
139174  , p_source_89            IN NUMBER
139175 --Invoice Distribution Statistical Amount
139176  , p_source_90            IN NUMBER
139177 --Invoice Distribution Tax Line Identifier
139178  , p_source_91            IN NUMBER
139179 --Invoice Distribution Tax Distribution Identifier from Tax
139180  , p_source_92            IN NUMBER
139181 --Invoice Distribution Summary Tax Line Identifier
139182  , p_source_93            IN NUMBER
139183 --Payables Upgrade Credit Encumbrance Type Identifier
139184  , p_source_94            IN NUMBER
139185 --Payables Upgrade Debit Encumbrance Type Identifier
139186  , p_source_95            IN NUMBER
139187 --Business Flow Accounts Payable Application Identifier
139188  , p_source_96            IN NUMBER
139189 --Business Flow Invoice Distribution Type
139190  , p_source_97            IN VARCHAR2
139191 --Business Flow Invoice Entity Code
139192  , p_source_98            IN VARCHAR2
139193 --Business Flow Invoice Distribution Identifier
139194  , p_source_99            IN NUMBER
139195 --Business Flow Invoice Identifier
139196  , p_source_100            IN NUMBER
139197 --Invoice Exchange Date
139198  , p_source_146            IN DATE
139199 --Invoice Exchange Rate
139200  , p_source_147            IN NUMBER
139201 --Invoice Exchange Rate Type
139202  , p_source_148            IN VARCHAR2
139203 )
139204 IS
139205 
139206 l_component_type              VARCHAR2(80);
139207 l_component_code              VARCHAR2(30);
139208 l_component_type_code         VARCHAR2(1);
139209 l_component_appl_id           INTEGER;
139210 l_amb_context_code            VARCHAR2(30);
139211 l_entity_code                 VARCHAR2(30);
139212 l_event_class_code            VARCHAR2(30);
139213 l_ae_header_id                NUMBER;
139214 l_event_type_code             VARCHAR2(30);
139215 l_line_definition_code        VARCHAR2(30);
139216 l_line_definition_owner_code  VARCHAR2(1);
139217 --
139218 -- adr variables
139219 l_segment                     VARCHAR2(30);
139220 l_ccid                        NUMBER;
139221 l_adr_transaction_coa_id      NUMBER;
139222 l_adr_accounting_coa_id       NUMBER;
139223 l_adr_flexfield_segment_code  VARCHAR2(30);
139224 l_adr_flex_value_set_id       NUMBER;
139225 l_adr_value_type_code         VARCHAR2(30);
139226 l_adr_value_combination_id    NUMBER;
139227 l_adr_value_segment_code      VARCHAR2(30);
139228 
139229 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
139230 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
139231 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
139232 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
139233 
139234 -- 4262811 Variables ------------------------------------------------------------------------------------------
139235 l_entered_amt_idx             NUMBER;
139236 l_accted_amt_idx              NUMBER;
139237 l_acc_rev_flag                VARCHAR2(1);
139238 l_accrual_line_num            NUMBER;
139239 l_tmp_amt                     NUMBER;
139240 l_acc_rev_natural_side_code   VARCHAR2(1);
139241 
139242 l_num_entries                 NUMBER;
139243 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
139244 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
139248 l_recog_line_2                NUMBER;
139245 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
139246 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
139247 l_recog_line_1                NUMBER;
139249 
139250 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
139251 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
139252 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
139253 
139254 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
139255 
139256 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
139257 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
139258 
139259 ---------------------------------------------------------------------------------------------------------------
139260 
139261 
139262 --
139263 -- bulk performance
139264 --
139265 l_balance_type_code           VARCHAR2(1);
139266 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
139267 l_log_module                  VARCHAR2(240);
139268 
139269 --
139270 -- Upgrade strategy
139271 --
139272 l_actual_upg_option           VARCHAR2(1);
139273 l_enc_upg_option           VARCHAR2(1);
139274 
139275 --
139276 BEGIN
139277 --
139278 IF g_log_enabled THEN
139279       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_232';
139280 END IF;
139281 --
139282 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139283 
139284       trace
139285          (p_msg      => 'BEGIN of AcctLineType_232'
139286          ,p_level    => C_LEVEL_PROCEDURE
139287          ,p_module   => l_log_module);
139288 
139289 END IF;
139290 --
139291 l_component_type             := 'AMB_JLT';
139292 l_component_code             := 'AP_TAX_RATE_VAR_PREPAY';
139293 l_component_type_code        := 'S';
139294 l_component_appl_id          :=  200;
139295 l_amb_context_code           := 'DEFAULT';
139296 l_entity_code                := 'AP_INVOICES';
139297 l_event_class_code           := 'PREPAYMENTS';
139298 l_event_type_code            := 'PREPAYMENTS_ALL';
139299 l_line_definition_owner_code := 'S';
139300 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
139301 --
139302 l_balance_type_code          := 'A';
139303 l_segment                     := NULL;
139304 l_ccid                        := NULL;
139305 l_adr_transaction_coa_id      := NULL;
139306 l_adr_accounting_coa_id       := NULL;
139307 l_adr_flexfield_segment_code  := NULL;
139308 l_adr_flex_value_set_id       := NULL;
139309 l_adr_value_type_code         := NULL;
139310 l_adr_value_combination_id    := NULL;
139311 l_adr_value_segment_code      := NULL;
139312 
139313 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
139314 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
139315 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
139316 l_budgetary_control_flag     := 'N';
139317 
139318 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
139319 l_bflow_applied_to_amt       := NULL; -- 5132302
139320 l_entered_amt_idx            := NULL;          -- 4262811
139321 l_accted_amt_idx             := NULL;          -- 4262811
139322 l_acc_rev_flag               := NULL;          -- 4262811
139323 l_accrual_line_num           := NULL;          -- 4262811
139324 l_tmp_amt                    := NULL;          -- 4262811
139325 --
139326  
139327 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
139328     l_balance_type_code <> 'B' THEN
139329 IF NVL(p_source_28,'
139330 ') =  'TRV' AND 
139331 NVL(p_source_54,'
139332 ') =  'Y'
139333  THEN 
139334 
139335    --
139336    XLA_AE_LINES_PKG.SetNewLine;
139337 
139338    p_balance_type_code          := l_balance_type_code;
139339    -- set the flag so later we will know whether the gain loss line needs to be created
139340    
139341    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
139342      p_actual_flag :='A';
139343    END IF;
139344 
139345    --
139346    -- bulk performance
139347    --
139348    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
139349                                       p_header_num   => 0); -- 4262811
139350    --
139351    -- set accounting line options
139352    --
139353    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
139354            p_natural_side_code          => 'D'
139355          , p_gain_or_loss_flag          => 'N'
139356          , p_gl_transfer_mode_code      => 'S'
139357          , p_acct_entry_type_code       => 'A'
139358          , p_switch_side_flag           => 'Y'
139359          , p_merge_duplicate_code       => 'A'
139360          );
139361    --
139362    l_acc_rev_natural_side_code := 'C';  -- 4262811
139363    -- 
139364    --
139365    -- set accounting line type info
139366    --
139367    xla_ae_lines_pkg.SetAcctLineType
139368       (p_component_type             => l_component_type
139369       ,p_event_type_code            => l_event_type_code
139370       ,p_line_definition_owner_code => l_line_definition_owner_code
139371       ,p_line_definition_code       => l_line_definition_code
139372       ,p_accounting_line_code       => l_component_code
139373       ,p_accounting_line_type_code  => l_component_type_code
139374       ,p_accounting_line_appl_id    => l_component_appl_id
139375       ,p_amb_context_code           => l_amb_context_code
139376       ,p_entity_code                => l_entity_code
139377       ,p_event_class_code           => l_event_class_code);
139378    --
139379    -- set accounting class
139380    --
139381    xla_ae_lines_pkg.SetAcctClass(
139382            p_accounting_class_code  => 'TRV'
139383          , p_ae_header_id           => l_ae_header_id
139384          );
139385 
139386    --
139387    -- set rounding class
139388    --
139392    --
139389    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
139390                       'TRV';
139391 
139393    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
139394    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
139395    --
139396    -- bulk performance
139397    --
139398    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
139399 
139400    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
139401       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
139402 
139403    -- 4955764
139404    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139405       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
139406 
139407    -- 4458381 Public Sector Enh
139408    
139409    --
139410    -- set accounting attributes for the line type
139411    --
139412    l_entered_amt_idx := 23;
139413    l_accted_amt_idx  := 28;
139414    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
139415    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
139416    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
139417    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
139418    l_rec_acct_attrs.array_num_value(2)  := 
139419 xla_ae_sources_pkg.GetSystemSourceNum(
139420    p_source_code           => 'XLA_EVENT_APPL_ID'
139421  , p_source_type_code      => 'Y'
139422  , p_source_application_id =>  602
139423 );
139424    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
139425    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
139426    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
139427    l_rec_acct_attrs.array_char_value(4)  := 
139428 xla_ae_sources_pkg.GetSystemSourceChar(
139429    p_source_code           => 'XLA_ENTITY_CODE'
139430  , p_source_type_code      => 'Y'
139431  , p_source_application_id =>  602
139432 );
139433    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
139434    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
139435    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
139436    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
139437    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
139438    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
139439    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
139440    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
139441    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
139442    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
139443    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
139444    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
139445    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
139446    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
139447    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
139448    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
139449    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
139450    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
139451    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
139452    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
139453    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
139454    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
139455    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
139456    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
139457    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
139458    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
139459    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
139460    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
139461    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
139462    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
139463    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
139464    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
139465    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
139466    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
139467    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
139468    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
139469    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
139470    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
139471    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
139472    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
139473    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
139474    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
139475    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
139476    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
139477    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
139478    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
139479    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
139480    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
139481    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
139482    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
139483    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
139484    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
139485    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
139486    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
139487    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
139488    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
139489    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
139493    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
139490    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
139491    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
139492    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
139494    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
139495    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
139496    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
139497    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
139498    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
139499    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
139500    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
139501    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
139502    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
139503    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
139504    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
139505    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
139506    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
139507    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
139508    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
139509    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
139510    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
139511 
139512    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
139513    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
139514 
139515    ---------------------------------------------------------------------------------------------------------------
139516    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
139517    ---------------------------------------------------------------------------------------------------------------
139518    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
139519 
139520    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139521    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139522 
139523    IF xla_accounting_cache_pkg.GetValueChar
139524          (p_source_code         => 'LEDGER_CATEGORY_CODE'
139525          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
139526    AND l_bflow_method_code = 'PRIOR_ENTRY'
139527 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
139528    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
139529          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
139530        )
139531    THEN
139532          xla_ae_lines_pkg.BflowUpgEntry
139533            (p_business_method_code    => l_bflow_method_code
139534            ,p_business_class_code     => l_bflow_class_code
139535            ,p_balance_type            => l_balance_type_code);
139536    ELSE
139537       NULL;
139538 -- No business flow processing for business flow method of NONE.
139539    END IF;
139540 
139541    --
139542    -- call analytical criteria
139543    --
139544    
139545    --
139546    -- call description
139547    --
139548    
139549 xla_ae_lines_pkg.SetLineDescription(
139550    p_ae_header_id => l_ae_header_id
139551   ,p_description  => Description_2 (
139552      p_application_id         => p_application_id
139553    , p_ae_header_id           => l_ae_header_id 
139554 , p_source_1 => p_source_1
139555    )
139556 );
139557 
139558 
139559    --
139560    -- call ADRs
139561    -- Bug 4922099
139562    --
139563    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139564         (NVL(l_actual_upg_option, 'N') = 'O') OR
139565         (NVL(l_enc_upg_option, 'N') = 'O')
139566       )
139567    THEN
139568    NULL;
139569    --
139570    --
139571    
139572   l_ccid := AcctDerRule_35(
139573            p_application_id           => p_application_id
139574          , p_ae_header_id             => l_ae_header_id 
139575 , p_source_25 => p_source_25
139576          , x_transaction_coa_id       => l_adr_transaction_coa_id
139577          , x_accounting_coa_id        => l_adr_accounting_coa_id
139578          , x_value_type_code          => l_adr_value_type_code
139579          , p_side                     => 'NA'
139580    );
139581 
139582    xla_ae_lines_pkg.set_ccid(
139583     p_code_combination_id          => l_ccid
139584   , p_value_type_code              => l_adr_value_type_code
139585   , p_transaction_coa_id           => l_adr_transaction_coa_id
139586   , p_accounting_coa_id            => l_adr_accounting_coa_id
139587   , p_adr_code                     => 'AP_INVOICE_DIST'
139588   , p_adr_type_code                => 'S'
139589   , p_component_type               => l_component_type
139590   , p_component_code               => l_component_code
139591   , p_component_type_code          => l_component_type_code
139592   , p_component_appl_id            => l_component_appl_id
139593   , p_amb_context_code             => l_amb_context_code
139594   , p_side                         => 'NA'
139595   );
139596 
139597 
139598    --
139599    --
139600    END IF;
139601    --
139602    -- Bug 4922099
139603    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
139604           (NVL(l_enc_upg_option, 'N') = 'O')
139605         ) AND
139606         (l_bflow_method_code = 'PRIOR_ENTRY')
139607       )
139608    THEN
139609       IF
139610       --
139611       1 = 2
139612       --
139613       THEN
139614       xla_accounting_err_pkg.build_message
139615                                     (p_appli_s_name            => 'XLA'
139616                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139617                                     ,p_token_1                 => 'LINE_NUMBER'
139621                                                                              l_component_type
139618                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
139619                                     ,p_token_2                 => 'LINE_TYPE_NAME'
139620                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
139622                                                                             ,l_component_code
139623                                                                             ,l_component_type_code
139624                                                                             ,l_component_appl_id
139625                                                                             ,l_amb_context_code
139626                                                                             ,l_entity_code
139627                                                                             ,l_event_class_code
139628                                                                            )
139629                                     ,p_token_3                 => 'OWNER'
139630                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
139631                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
139632                                                                           ,p_lookup_code    => l_component_type_code
139633                                                                          )
139634                                     ,p_token_4                 => 'PRODUCT_NAME'
139635                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
139636                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
139637                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
139638                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
139639                                     ,p_ae_header_id            =>  NULL
139640                                        );
139641 
139642         IF (C_LEVEL_ERROR>= g_log_level) THEN
139643                  trace
139644                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139645                       ,p_level    => C_LEVEL_ERROR
139646                       ,p_module   => l_log_module);
139647         END IF;
139648       END IF;
139649    END IF;
139650    --
139651    --
139652    ------------------------------------------------------------------------------------------------
139653    -- 4219869 Business Flow
139654    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
139655    -- Prior Entry.  Currently, the following code is always generated.
139656    ------------------------------------------------------------------------------------------------
139657    XLA_AE_LINES_PKG.ValidateCurrentLine;
139658 
139659    ------------------------------------------------------------------------------------
139660    -- 4219869 Business Flow
139661    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
139662    ------------------------------------------------------------------------------------
139663    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139664 
139665    ----------------------------------------------------------------------------------
139666    -- 4219869 Business Flow
139667    -- Update journal entry status -- Need to generate this within IF <condition>
139668    ----------------------------------------------------------------------------------
139669    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139670          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
139671          ,p_balance_type_code => l_balance_type_code
139672          );
139673 
139674    -------------------------------------------------------------------------------------------
139675    -- 4262811 - Generate the Accrual Reversal lines
139676    -------------------------------------------------------------------------------------------
139677    BEGIN
139678       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
139679                               (g_array_event(p_event_id).array_value_num('header_index'));
139680       IF l_acc_rev_flag IS NULL THEN
139681          l_acc_rev_flag := 'N';
139682       END IF;
139683    EXCEPTION
139684       WHEN OTHERS THEN
139685          l_acc_rev_flag := 'N';
139686    END;
139687    --
139688    IF (l_acc_rev_flag = 'Y') THEN
139689 
139690        -- 4645092  ------------------------------------------------------------------------------
139691        -- To allow MPA report to determine if it should generate report process
139692        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
139693        ------------------------------------------------------------------------------------------
139694 
139695        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
139696        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
139697    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
139698    -- call ADRs
139699    -- Bug 4922099
139700    --
139701    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139702         (NVL(l_actual_upg_option, 'N') = 'O') OR
139703         (NVL(l_enc_upg_option, 'N') = 'O')
139704       )
139705    THEN
139706    NULL;
139707    --
139708    --
139709    
139710   l_ccid := AcctDerRule_35(
139711            p_application_id           => p_application_id
139712          , p_ae_header_id             => l_ae_header_id 
139713 , p_source_25 => p_source_25
139714          , x_transaction_coa_id       => l_adr_transaction_coa_id
139715          , x_accounting_coa_id        => l_adr_accounting_coa_id
139716          , x_value_type_code          => l_adr_value_type_code
139717          , p_side                     => 'NA'
139718    );
139719 
139720    xla_ae_lines_pkg.set_ccid(
139721     p_code_combination_id          => l_ccid
139725   , p_adr_code                     => 'AP_INVOICE_DIST'
139722   , p_value_type_code              => l_adr_value_type_code
139723   , p_transaction_coa_id           => l_adr_transaction_coa_id
139724   , p_accounting_coa_id            => l_adr_accounting_coa_id
139726   , p_adr_type_code                => 'S'
139727   , p_component_type               => l_component_type
139728   , p_component_code               => l_component_code
139729   , p_component_type_code          => l_component_type_code
139730   , p_component_appl_id            => l_component_appl_id
139731   , p_amb_context_code             => l_amb_context_code
139732   , p_side                         => 'NA'
139733   );
139734 
139735 
139736    --
139737    --
139738    END IF;
139739 
139740        --
139741        -- Update the line information that should be overwritten
139742        --
139743        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
139744                                          p_header_num   => 1);
139745        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
139746 
139747        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
139748 
139749        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
139750           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
139751        END IF;
139752 
139753       --
139754       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
139755       --
139756       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
139757           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
139758       ELSE
139759           ---------------------------------------------------------------------------------------------------
139760           -- 4262811a Switch Sign
139761           ---------------------------------------------------------------------------------------------------
139762           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
139763           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139764                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139765           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139766                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139767           -- 5132302
139768           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
139769                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139770 
139771       END IF;
139772 
139773       -- 4955764
139774       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139775       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
139776 
139777 
139778       XLA_AE_LINES_PKG.ValidateCurrentLine;
139779       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139780 
139781       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139782                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
139783                ,p_balance_type_code => l_balance_type_code);
139784 
139785    END IF;
139786 
139787    -----------------------------------------------------------------------------------------
139788    -- 4262811 Multiperiod Accounting
139789    -----------------------------------------------------------------------------------------
139790      -- No MPA option is assigned.
139791 
139792 
139793 END IF;
139794 END IF;
139795 --
139796 
139797 --
139798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139799    trace
139800       (p_msg      => 'END of AcctLineType_232'
139801       ,p_level    => C_LEVEL_PROCEDURE
139802       ,p_module   => l_log_module);
139803 END IF;
139804 --
139805 EXCEPTION
139806   WHEN xla_exceptions_pkg.application_exception THEN
139807       RAISE;
139808   WHEN OTHERS THEN
139809        xla_exceptions_pkg.raise_message
139810            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_232');
139811 END AcctLineType_232;
139812 --
139813 
139814 ---------------------------------------
139815 --
139816 -- PRIVATE FUNCTION
139817 --         AcctLineType_233
139818 --
139819 ---------------------------------------
139820 PROCEDURE AcctLineType_233 (
139821   p_application_id        IN NUMBER
139822  ,p_event_id              IN NUMBER
139823  ,p_calculate_acctd_flag  IN VARCHAR2
139824  ,p_calculate_g_l_flag    IN VARCHAR2
139825  ,p_actual_flag           IN OUT VARCHAR2
139826  ,p_balance_type_code     OUT VARCHAR2
139827  ,p_gain_or_loss_ref      OUT VARCHAR2
139828  
139829 --Payment Currency Code
139830  , p_source_8            IN VARCHAR2
139831 --Automatic Offsets Value
139832  , p_source_10            IN VARCHAR2
139833  , p_source_10_meaning    IN VARCHAR2
139834 --Invoice Distribution Account
139835  , p_source_25            IN NUMBER
139836 --Withholding Related Distribution Account
139837  , p_source_39            IN NUMBER
139838 --When to Account for Payment Option
139839  , p_source_57            IN VARCHAR2
139840 --Accounting Reversal Indicator
139841  , p_source_58            IN VARCHAR2
139842 --Distribution Link Type
139843  , p_source_60            IN VARCHAR2
139844 --Override Accounted Amount Indicator
139845  , p_source_85            IN VARCHAR2
139846  , p_source_85_meaning    IN VARCHAR2
139847 --Third Party Type
139848  , p_source_88            IN VARCHAR2
139849 --Invoice Distribution Tax Line Identifier
139850  , p_source_91            IN NUMBER
139851 --Invoice Distribution Summary Tax Line Identifier
139852  , p_source_93            IN NUMBER
139856  , p_source_101            IN VARCHAR2
139853 --Business Flow Accounts Payable Application Identifier
139854  , p_source_96            IN NUMBER
139855 --Payment Distribution Type
139857  , p_source_101_meaning    IN VARCHAR2
139858 --Payment Distribution Amount
139859  , p_source_102            IN NUMBER
139860 --Business Flow Payment Distribution Type
139861  , p_source_103            IN VARCHAR2
139862 --Business Flow Payment Entity Code
139863  , p_source_104            IN VARCHAR2
139864 --Business Flow Payment Distribution Identifier
139865  , p_source_105            IN NUMBER
139866 --Business Flow Payment Identifier
139867  , p_source_106            IN NUMBER
139868 --Payment Distribution Identifier
139869  , p_source_107            IN NUMBER
139870 --Payment Supplier Identifier
139871  , p_source_113            IN NUMBER
139872 --Payment Supplier Site Identifier
139873  , p_source_114            IN NUMBER
139874 --Payment Distribution Reversed Identifier
139875  , p_source_115            IN NUMBER
139876 --Payment Distribution (Invoice Rate) Ledger Amount
139877  , p_source_119            IN NUMBER
139878 --Invoice Exchange Date
139879  , p_source_146            IN DATE
139880 --Invoice Exchange Rate
139881  , p_source_147            IN NUMBER
139882 --Invoice Exchange Rate Type
139883  , p_source_148            IN VARCHAR2
139884 --Withholding at Payment Indicator
139885  , p_source_166            IN VARCHAR2
139886  , p_source_166_meaning    IN VARCHAR2
139887 )
139888 IS
139889 
139890 l_component_type              VARCHAR2(80);
139891 l_component_code              VARCHAR2(30);
139892 l_component_type_code         VARCHAR2(1);
139893 l_component_appl_id           INTEGER;
139894 l_amb_context_code            VARCHAR2(30);
139895 l_entity_code                 VARCHAR2(30);
139896 l_event_class_code            VARCHAR2(30);
139897 l_ae_header_id                NUMBER;
139898 l_event_type_code             VARCHAR2(30);
139899 l_line_definition_code        VARCHAR2(30);
139900 l_line_definition_owner_code  VARCHAR2(1);
139901 --
139902 -- adr variables
139903 l_segment                     VARCHAR2(30);
139904 l_ccid                        NUMBER;
139905 l_adr_transaction_coa_id      NUMBER;
139906 l_adr_accounting_coa_id       NUMBER;
139907 l_adr_flexfield_segment_code  VARCHAR2(30);
139908 l_adr_flex_value_set_id       NUMBER;
139909 l_adr_value_type_code         VARCHAR2(30);
139910 l_adr_value_combination_id    NUMBER;
139911 l_adr_value_segment_code      VARCHAR2(30);
139912 
139913 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
139914 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
139915 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
139916 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
139917 
139918 -- 4262811 Variables ------------------------------------------------------------------------------------------
139919 l_entered_amt_idx             NUMBER;
139920 l_accted_amt_idx              NUMBER;
139921 l_acc_rev_flag                VARCHAR2(1);
139922 l_accrual_line_num            NUMBER;
139923 l_tmp_amt                     NUMBER;
139924 l_acc_rev_natural_side_code   VARCHAR2(1);
139925 
139926 l_num_entries                 NUMBER;
139927 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
139928 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
139929 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
139930 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
139931 l_recog_line_1                NUMBER;
139932 l_recog_line_2                NUMBER;
139933 
139934 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
139935 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
139936 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
139937 
139938 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
139939 
139940 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
139941 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
139942 
139943 ---------------------------------------------------------------------------------------------------------------
139944 
139945 
139946 --
139947 -- bulk performance
139948 --
139949 l_balance_type_code           VARCHAR2(1);
139950 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
139951 l_log_module                  VARCHAR2(240);
139952 
139953 --
139954 -- Upgrade strategy
139955 --
139956 l_actual_upg_option           VARCHAR2(1);
139957 l_enc_upg_option           VARCHAR2(1);
139958 
139959 --
139960 BEGIN
139961 --
139962 IF g_log_enabled THEN
139963       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_233';
139964 END IF;
139965 --
139966 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139967 
139968       trace
139969          (p_msg      => 'BEGIN of AcctLineType_233'
139970          ,p_level    => C_LEVEL_PROCEDURE
139971          ,p_module   => l_log_module);
139972 
139973 END IF;
139974 --
139975 l_component_type             := 'AMB_JLT';
139976 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_CLEAR';
139977 l_component_type_code        := 'S';
139978 l_component_appl_id          :=  200;
139979 l_amb_context_code           := 'DEFAULT';
139980 l_entity_code                := 'AP_PAYMENTS';
139981 l_event_class_code           := 'RECONCILED PAYMENTS';
139982 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
139983 l_line_definition_owner_code := 'S';
139984 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
139985 --
139986 l_balance_type_code          := 'A';
139987 l_segment                     := NULL;
139988 l_ccid                        := NULL;
139989 l_adr_transaction_coa_id      := NULL;
139990 l_adr_accounting_coa_id       := NULL;
139994 l_adr_value_combination_id    := NULL;
139991 l_adr_flexfield_segment_code  := NULL;
139992 l_adr_flex_value_set_id       := NULL;
139993 l_adr_value_type_code         := NULL;
139995 l_adr_value_segment_code      := NULL;
139996 
139997 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
139998 l_bflow_class_code           := '';    -- 4219869 Business Flow
139999 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
140000 l_budgetary_control_flag     := 'N';
140001 
140002 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
140003 l_bflow_applied_to_amt       := NULL; -- 5132302
140004 l_entered_amt_idx            := NULL;          -- 4262811
140005 l_accted_amt_idx             := NULL;          -- 4262811
140006 l_acc_rev_flag               := NULL;          -- 4262811
140007 l_accrual_line_num           := NULL;          -- 4262811
140008 l_tmp_amt                    := NULL;          -- 4262811
140009 --
140010  
140011 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
140012     l_balance_type_code <> 'B' THEN
140013 IF NVL(p_source_57,'
140014 ') =  'CLEAR_CLEAR' AND 
140015 NVL(p_source_101,'
140016 ') =  'AWT' AND 
140017 NVL(p_source_166,'
140018 ') =  'Y'
140019  THEN 
140020 
140021    --
140022    XLA_AE_LINES_PKG.SetNewLine;
140023 
140024    p_balance_type_code          := l_balance_type_code;
140025    -- set the flag so later we will know whether the gain loss line needs to be created
140026    
140027    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
140028      p_actual_flag :='A';
140029    END IF;
140030 
140031    --
140032    -- bulk performance
140033    --
140034    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
140035                                       p_header_num   => 0); -- 4262811
140036    --
140037    -- set accounting line options
140038    --
140039    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
140040            p_natural_side_code          => 'C'
140041          , p_gain_or_loss_flag          => 'N'
140042          , p_gl_transfer_mode_code      => 'S'
140043          , p_acct_entry_type_code       => 'A'
140044          , p_switch_side_flag           => 'Y'
140045          , p_merge_duplicate_code       => 'A'
140046          );
140047    --
140048    l_acc_rev_natural_side_code := 'D';  -- 4262811
140049    -- 
140050    --
140051    -- set accounting line type info
140052    --
140053    xla_ae_lines_pkg.SetAcctLineType
140054       (p_component_type             => l_component_type
140055       ,p_event_type_code            => l_event_type_code
140056       ,p_line_definition_owner_code => l_line_definition_owner_code
140057       ,p_line_definition_code       => l_line_definition_code
140058       ,p_accounting_line_code       => l_component_code
140059       ,p_accounting_line_type_code  => l_component_type_code
140060       ,p_accounting_line_appl_id    => l_component_appl_id
140061       ,p_amb_context_code           => l_amb_context_code
140062       ,p_entity_code                => l_entity_code
140063       ,p_event_class_code           => l_event_class_code);
140064    --
140065    -- set accounting class
140066    --
140067    xla_ae_lines_pkg.SetAcctClass(
140068            p_accounting_class_code  => 'AWT'
140069          , p_ae_header_id           => l_ae_header_id
140070          );
140071 
140072    --
140073    -- set rounding class
140074    --
140075    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
140076                       'AWT';
140077 
140078    --
140079    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
140080    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
140081    --
140082    -- bulk performance
140083    --
140084    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
140085 
140086    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
140087       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
140088 
140089    -- 4955764
140090    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140091       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
140092 
140093    -- 4458381 Public Sector Enh
140094    
140095    --
140096    -- set accounting attributes for the line type
140097    --
140098    l_entered_amt_idx := 10;
140099    l_accted_amt_idx  := 15;
140100    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
140101    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
140102    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
140103    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
140104    l_rec_acct_attrs.array_num_value(2)  := p_source_102;
140105    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
140106    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
140107    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
140108    l_rec_acct_attrs.array_char_value(4)  := p_source_103;
140109    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
140110    l_rec_acct_attrs.array_char_value(5)  := p_source_104;
140111    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
140112    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_105);
140113    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
140114    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_106);
140115    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
140116    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
140117    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
140118    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
140122    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
140119    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
140120    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
140121    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
140123    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
140124    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
140125    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
140126    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
140127    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
140128    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
140129    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
140130    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
140131    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
140132    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
140133    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
140134    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
140135    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
140136    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
140137    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
140138    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
140139    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
140140    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
140141    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
140142    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
140143    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
140144    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
140145    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
140146    l_rec_acct_attrs.array_num_value(23)  := p_source_91;
140147    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
140148    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
140149 
140150    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
140151    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
140152 
140153    ---------------------------------------------------------------------------------------------------------------
140154    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
140155    ---------------------------------------------------------------------------------------------------------------
140156    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
140157 
140158    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140159    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140160 
140161    IF xla_accounting_cache_pkg.GetValueChar
140162          (p_source_code         => 'LEDGER_CATEGORY_CODE'
140163          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
140164    AND l_bflow_method_code = 'PRIOR_ENTRY'
140165 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
140166    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
140167          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
140168        )
140169    THEN
140170          xla_ae_lines_pkg.BflowUpgEntry
140171            (p_business_method_code    => l_bflow_method_code
140172            ,p_business_class_code     => l_bflow_class_code
140173            ,p_balance_type            => l_balance_type_code);
140174    ELSE
140175       NULL;
140176 -- No business flow processing for business flow method of NONE.
140177    END IF;
140178 
140179    --
140180    -- call analytical criteria
140181    --
140182    
140183    --
140184    -- call description
140185    --
140186    -- No description or it is inherited.
140187    --
140188    -- call ADRs
140189    -- Bug 4922099
140190    --
140191    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140192         (NVL(l_actual_upg_option, 'N') = 'O') OR
140193         (NVL(l_enc_upg_option, 'N') = 'O')
140194       )
140195    THEN
140196    NULL;
140197    --
140198    --
140199    
140200   l_ccid := AcctDerRule_48(
140201            p_application_id           => p_application_id
140202          , p_ae_header_id             => l_ae_header_id 
140203 , p_source_10 => p_source_10
140204 , p_source_10_meaning => p_source_10_meaning
140205 , p_source_25 => p_source_25
140206 , p_source_39 => p_source_39
140207          , x_transaction_coa_id       => l_adr_transaction_coa_id
140208          , x_accounting_coa_id        => l_adr_accounting_coa_id
140209          , x_value_type_code          => l_adr_value_type_code
140210          , p_side                     => 'NA'
140211    );
140212 
140213    xla_ae_lines_pkg.set_ccid(
140214     p_code_combination_id          => l_ccid
140215   , p_value_type_code              => l_adr_value_type_code
140216   , p_transaction_coa_id           => l_adr_transaction_coa_id
140217   , p_accounting_coa_id            => l_adr_accounting_coa_id
140218   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140219   , p_adr_type_code                => 'S'
140220   , p_component_type               => l_component_type
140221   , p_component_code               => l_component_code
140222   , p_component_type_code          => l_component_type_code
140223   , p_component_appl_id            => l_component_appl_id
140224   , p_amb_context_code             => l_amb_context_code
140225   , p_side                         => 'NA'
140226   );
140227 
140228 
140229    l_segment := AcctDerRule_14(
140230            p_application_id           => p_application_id
140231          , p_ae_header_id             => l_ae_header_id 
140232 , p_source_10 => p_source_10
140233 , p_source_10_meaning => p_source_10_meaning
140234 , p_source_25 => p_source_25
140238          , x_flex_value_set_id        => l_adr_flex_value_set_id
140235          , x_transaction_coa_id       => l_adr_transaction_coa_id
140236          , x_accounting_coa_id        => l_adr_accounting_coa_id
140237          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140239          , x_value_type_code          => l_adr_value_type_code
140240          , x_value_combination_id     => l_adr_value_combination_id
140241          , x_value_segment_code       => l_adr_value_segment_code
140242          , p_side                     => 'NA'
140243          , p_override_seg_flag        => 'Y'
140244    );
140245 
140246    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140247 
140248       xla_ae_lines_pkg.set_segment(
140249           p_to_segment_code         => 'GL_ACCOUNT'
140250         , p_segment_value           => l_segment
140251         , p_from_segment_code       => l_adr_value_segment_code
140252         , p_from_combination_id     => l_adr_value_combination_id
140253         , p_value_type_code         => l_adr_value_type_code
140254         , p_transaction_coa_id      => l_adr_transaction_coa_id
140255         , p_accounting_coa_id       => l_adr_accounting_coa_id
140256         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140257         , p_flex_value_set_id       => l_adr_flex_value_set_id
140258         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140259         , p_adr_type_code           => 'S'
140260         , p_component_type          => l_component_type
140261         , p_component_code          => l_component_code
140262         , p_component_type_code     => l_component_type_code
140263         , p_component_appl_id       => l_component_appl_id
140264         , p_amb_context_code        => l_amb_context_code
140265         , p_entity_code             => 'AP_PAYMENTS'
140266         , p_event_class_code        => 'RECONCILED PAYMENTS'
140267         , p_side                    => 'NA'
140268         );
140269 
140270   END IF;
140271 
140272    l_segment := AcctDerRule_26(
140273            p_application_id           => p_application_id
140274          , p_ae_header_id             => l_ae_header_id 
140275 , p_source_10 => p_source_10
140276 , p_source_10_meaning => p_source_10_meaning
140277 , p_source_39 => p_source_39
140278          , x_transaction_coa_id       => l_adr_transaction_coa_id
140279          , x_accounting_coa_id        => l_adr_accounting_coa_id
140280          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140281          , x_flex_value_set_id        => l_adr_flex_value_set_id
140282          , x_value_type_code          => l_adr_value_type_code
140283          , x_value_combination_id     => l_adr_value_combination_id
140284          , x_value_segment_code       => l_adr_value_segment_code
140285          , p_side                     => 'NA'
140286          , p_override_seg_flag        => 'Y'
140287    );
140288 
140289    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140290 
140291       xla_ae_lines_pkg.set_segment(
140292           p_to_segment_code         => 'GL_BALANCING'
140293         , p_segment_value           => l_segment
140294         , p_from_segment_code       => l_adr_value_segment_code
140295         , p_from_combination_id     => l_adr_value_combination_id
140296         , p_value_type_code         => l_adr_value_type_code
140297         , p_transaction_coa_id      => l_adr_transaction_coa_id
140298         , p_accounting_coa_id       => l_adr_accounting_coa_id
140299         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140300         , p_flex_value_set_id       => l_adr_flex_value_set_id
140301         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140302         , p_adr_type_code           => 'S'
140303         , p_component_type          => l_component_type
140304         , p_component_code          => l_component_code
140305         , p_component_type_code     => l_component_type_code
140306         , p_component_appl_id       => l_component_appl_id
140307         , p_amb_context_code        => l_amb_context_code
140308         , p_entity_code             => 'AP_PAYMENTS'
140309         , p_event_class_code        => 'RECONCILED PAYMENTS'
140310         , p_side                    => 'NA'
140311         );
140312 
140313   END IF;
140314 
140315    --
140316    --
140317    END IF;
140318    --
140319    -- Bug 4922099
140320    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
140321           (NVL(l_enc_upg_option, 'N') = 'O')
140322         ) AND
140323         (l_bflow_method_code = 'PRIOR_ENTRY')
140324       )
140325    THEN
140326       IF
140327       --
140328       1 = 2
140329       --
140330       THEN
140331       xla_accounting_err_pkg.build_message
140332                                     (p_appli_s_name            => 'XLA'
140333                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140334                                     ,p_token_1                 => 'LINE_NUMBER'
140335                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
140336                                     ,p_token_2                 => 'LINE_TYPE_NAME'
140337                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
140338                                                                              l_component_type
140339                                                                             ,l_component_code
140340                                                                             ,l_component_type_code
140341                                                                             ,l_component_appl_id
140342                                                                             ,l_amb_context_code
140343                                                                             ,l_entity_code
140344                                                                             ,l_event_class_code
140345                                                                            )
140349                                                                           ,p_lookup_code    => l_component_type_code
140346                                     ,p_token_3                 => 'OWNER'
140347                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
140348                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
140350                                                                          )
140351                                     ,p_token_4                 => 'PRODUCT_NAME'
140352                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
140353                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
140354                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
140355                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
140356                                     ,p_ae_header_id            =>  NULL
140357                                        );
140358 
140359         IF (C_LEVEL_ERROR>= g_log_level) THEN
140360                  trace
140361                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140362                       ,p_level    => C_LEVEL_ERROR
140363                       ,p_module   => l_log_module);
140364         END IF;
140365       END IF;
140366    END IF;
140367    --
140368    --
140369    ------------------------------------------------------------------------------------------------
140370    -- 4219869 Business Flow
140371    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
140372    -- Prior Entry.  Currently, the following code is always generated.
140373    ------------------------------------------------------------------------------------------------
140374    XLA_AE_LINES_PKG.ValidateCurrentLine;
140375 
140376    ------------------------------------------------------------------------------------
140377    -- 4219869 Business Flow
140378    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
140379    ------------------------------------------------------------------------------------
140380    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140381 
140382    ----------------------------------------------------------------------------------
140383    -- 4219869 Business Flow
140384    -- Update journal entry status -- Need to generate this within IF <condition>
140385    ----------------------------------------------------------------------------------
140386    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140387          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
140388          ,p_balance_type_code => l_balance_type_code
140389          );
140390 
140391    -------------------------------------------------------------------------------------------
140392    -- 4262811 - Generate the Accrual Reversal lines
140393    -------------------------------------------------------------------------------------------
140394    BEGIN
140395       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
140396                               (g_array_event(p_event_id).array_value_num('header_index'));
140397       IF l_acc_rev_flag IS NULL THEN
140398          l_acc_rev_flag := 'N';
140399       END IF;
140400    EXCEPTION
140401       WHEN OTHERS THEN
140402          l_acc_rev_flag := 'N';
140403    END;
140404    --
140405    IF (l_acc_rev_flag = 'Y') THEN
140406 
140407        -- 4645092  ------------------------------------------------------------------------------
140408        -- To allow MPA report to determine if it should generate report process
140409        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
140410        ------------------------------------------------------------------------------------------
140411 
140412        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
140413        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
140414    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
140415    -- call ADRs
140416    -- Bug 4922099
140417    --
140418    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140419         (NVL(l_actual_upg_option, 'N') = 'O') OR
140420         (NVL(l_enc_upg_option, 'N') = 'O')
140421       )
140422    THEN
140423    NULL;
140424    --
140425    --
140426    
140427   l_ccid := AcctDerRule_48(
140428            p_application_id           => p_application_id
140429          , p_ae_header_id             => l_ae_header_id 
140430 , p_source_10 => p_source_10
140431 , p_source_10_meaning => p_source_10_meaning
140432 , p_source_25 => p_source_25
140433 , p_source_39 => p_source_39
140434          , x_transaction_coa_id       => l_adr_transaction_coa_id
140435          , x_accounting_coa_id        => l_adr_accounting_coa_id
140436          , x_value_type_code          => l_adr_value_type_code
140437          , p_side                     => 'NA'
140438    );
140439 
140440    xla_ae_lines_pkg.set_ccid(
140441     p_code_combination_id          => l_ccid
140442   , p_value_type_code              => l_adr_value_type_code
140443   , p_transaction_coa_id           => l_adr_transaction_coa_id
140444   , p_accounting_coa_id            => l_adr_accounting_coa_id
140445   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140446   , p_adr_type_code                => 'S'
140447   , p_component_type               => l_component_type
140448   , p_component_code               => l_component_code
140449   , p_component_type_code          => l_component_type_code
140450   , p_component_appl_id            => l_component_appl_id
140451   , p_amb_context_code             => l_amb_context_code
140452   , p_side                         => 'NA'
140453   );
140454 
140455 
140456    l_segment := AcctDerRule_14(
140457            p_application_id           => p_application_id
140458          , p_ae_header_id             => l_ae_header_id 
140462          , x_transaction_coa_id       => l_adr_transaction_coa_id
140459 , p_source_10 => p_source_10
140460 , p_source_10_meaning => p_source_10_meaning
140461 , p_source_25 => p_source_25
140463          , x_accounting_coa_id        => l_adr_accounting_coa_id
140464          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140465          , x_flex_value_set_id        => l_adr_flex_value_set_id
140466          , x_value_type_code          => l_adr_value_type_code
140467          , x_value_combination_id     => l_adr_value_combination_id
140468          , x_value_segment_code       => l_adr_value_segment_code
140469          , p_side                     => 'NA'
140470          , p_override_seg_flag        => 'Y'
140471    );
140472 
140473    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140474 
140475       xla_ae_lines_pkg.set_segment(
140476           p_to_segment_code         => 'GL_ACCOUNT'
140477         , p_segment_value           => l_segment
140478         , p_from_segment_code       => l_adr_value_segment_code
140479         , p_from_combination_id     => l_adr_value_combination_id
140480         , p_value_type_code         => l_adr_value_type_code
140481         , p_transaction_coa_id      => l_adr_transaction_coa_id
140482         , p_accounting_coa_id       => l_adr_accounting_coa_id
140483         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140484         , p_flex_value_set_id       => l_adr_flex_value_set_id
140485         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140486         , p_adr_type_code           => 'S'
140487         , p_component_type          => l_component_type
140488         , p_component_code          => l_component_code
140489         , p_component_type_code     => l_component_type_code
140490         , p_component_appl_id       => l_component_appl_id
140491         , p_amb_context_code        => l_amb_context_code
140492         , p_entity_code             => 'AP_PAYMENTS'
140493         , p_event_class_code        => 'RECONCILED PAYMENTS'
140494         , p_side                    => 'NA'
140495         );
140496 
140497   END IF;
140498 
140499    l_segment := AcctDerRule_26(
140500            p_application_id           => p_application_id
140501          , p_ae_header_id             => l_ae_header_id 
140502 , p_source_10 => p_source_10
140503 , p_source_10_meaning => p_source_10_meaning
140504 , p_source_39 => p_source_39
140505          , x_transaction_coa_id       => l_adr_transaction_coa_id
140506          , x_accounting_coa_id        => l_adr_accounting_coa_id
140507          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140508          , x_flex_value_set_id        => l_adr_flex_value_set_id
140509          , x_value_type_code          => l_adr_value_type_code
140510          , x_value_combination_id     => l_adr_value_combination_id
140511          , x_value_segment_code       => l_adr_value_segment_code
140512          , p_side                     => 'NA'
140513          , p_override_seg_flag        => 'Y'
140514    );
140515 
140516    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140517 
140518       xla_ae_lines_pkg.set_segment(
140519           p_to_segment_code         => 'GL_BALANCING'
140520         , p_segment_value           => l_segment
140521         , p_from_segment_code       => l_adr_value_segment_code
140522         , p_from_combination_id     => l_adr_value_combination_id
140523         , p_value_type_code         => l_adr_value_type_code
140524         , p_transaction_coa_id      => l_adr_transaction_coa_id
140525         , p_accounting_coa_id       => l_adr_accounting_coa_id
140526         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140527         , p_flex_value_set_id       => l_adr_flex_value_set_id
140528         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140529         , p_adr_type_code           => 'S'
140530         , p_component_type          => l_component_type
140531         , p_component_code          => l_component_code
140532         , p_component_type_code     => l_component_type_code
140533         , p_component_appl_id       => l_component_appl_id
140534         , p_amb_context_code        => l_amb_context_code
140535         , p_entity_code             => 'AP_PAYMENTS'
140536         , p_event_class_code        => 'RECONCILED PAYMENTS'
140537         , p_side                    => 'NA'
140538         );
140539 
140540   END IF;
140541 
140542    --
140543    --
140544    END IF;
140545 
140546        --
140547        -- Update the line information that should be overwritten
140548        --
140549        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
140550                                          p_header_num   => 1);
140551        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
140552 
140553        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
140554 
140555        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
140556           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
140557        END IF;
140558 
140559       --
140560       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
140561       --
140562       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
140563           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
140564       ELSE
140565           ---------------------------------------------------------------------------------------------------
140566           -- 4262811a Switch Sign
140567           ---------------------------------------------------------------------------------------------------
140568           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
140569           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140573           -- 5132302
140570                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140571           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140572                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140574           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
140575                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140576 
140577       END IF;
140578 
140579       -- 4955764
140580       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140581       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
140582 
140583 
140584       XLA_AE_LINES_PKG.ValidateCurrentLine;
140585       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140586 
140587       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140588                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
140589                ,p_balance_type_code => l_balance_type_code);
140590 
140591    END IF;
140592 
140593    -----------------------------------------------------------------------------------------
140594    -- 4262811 Multiperiod Accounting
140595    -----------------------------------------------------------------------------------------
140596      -- No MPA option is assigned.
140597 
140598 
140599 END IF;
140600 END IF;
140601 --
140602 
140603 --
140604 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140605    trace
140606       (p_msg      => 'END of AcctLineType_233'
140607       ,p_level    => C_LEVEL_PROCEDURE
140608       ,p_module   => l_log_module);
140609 END IF;
140610 --
140611 EXCEPTION
140612   WHEN xla_exceptions_pkg.application_exception THEN
140613       RAISE;
140614   WHEN OTHERS THEN
140615        xla_exceptions_pkg.raise_message
140616            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_233');
140617 END AcctLineType_233;
140618 --
140619 
140620 ---------------------------------------
140621 --
140622 -- PRIVATE FUNCTION
140623 --         AcctLineType_234
140624 --
140625 ---------------------------------------
140626 PROCEDURE AcctLineType_234 (
140627   p_application_id        IN NUMBER
140628  ,p_event_id              IN NUMBER
140629  ,p_calculate_acctd_flag  IN VARCHAR2
140630  ,p_calculate_g_l_flag    IN VARCHAR2
140631  ,p_actual_flag           IN OUT VARCHAR2
140632  ,p_balance_type_code     OUT VARCHAR2
140633  ,p_gain_or_loss_ref      OUT VARCHAR2
140634  
140635 --Payment Currency Code
140636  , p_source_8            IN VARCHAR2
140637 --Automatic Offsets Value
140638  , p_source_10            IN VARCHAR2
140639  , p_source_10_meaning    IN VARCHAR2
140640 --Invoice Distribution Account
140641  , p_source_25            IN NUMBER
140642 --Withholding Related Distribution Account
140643  , p_source_39            IN NUMBER
140644 --When to Account for Payment Option
140645  , p_source_57            IN VARCHAR2
140646 --Accounting Reversal Indicator
140647  , p_source_58            IN VARCHAR2
140648 --Distribution Link Type
140649  , p_source_60            IN VARCHAR2
140650 --Override Accounted Amount Indicator
140651  , p_source_85            IN VARCHAR2
140652  , p_source_85_meaning    IN VARCHAR2
140653 --Third Party Type
140654  , p_source_88            IN VARCHAR2
140655 --Invoice Distribution Tax Line Identifier
140656  , p_source_91            IN NUMBER
140657 --Invoice Distribution Tax Distribution Identifier from Tax
140658  , p_source_92            IN NUMBER
140659 --Invoice Distribution Summary Tax Line Identifier
140660  , p_source_93            IN NUMBER
140661 --Business Flow Accounts Payable Application Identifier
140662  , p_source_96            IN NUMBER
140663 --Business Flow Invoice Distribution Type
140664  , p_source_97            IN VARCHAR2
140665 --Business Flow Invoice Entity Code
140666  , p_source_98            IN VARCHAR2
140667 --Business Flow Invoice Distribution Identifier
140668  , p_source_99            IN NUMBER
140669 --Business Flow Invoice Identifier
140670  , p_source_100            IN NUMBER
140671 --Payment Distribution Type
140672  , p_source_101            IN VARCHAR2
140673  , p_source_101_meaning    IN VARCHAR2
140674 --Payment Distribution Amount
140675  , p_source_102            IN NUMBER
140676 --Payment Distribution Identifier
140677  , p_source_107            IN NUMBER
140678 --Payment Supplier Identifier
140679  , p_source_113            IN NUMBER
140680 --Payment Supplier Site Identifier
140681  , p_source_114            IN NUMBER
140682 --Payment Distribution Reversed Identifier
140683  , p_source_115            IN NUMBER
140684 --Payment Distribution (Invoice Rate) Ledger Amount
140685  , p_source_119            IN NUMBER
140686 --Payment Type
140687  , p_source_125            IN VARCHAR2
140688  , p_source_125_meaning    IN VARCHAR2
140689 --Payment Processing Type
140690  , p_source_126            IN VARCHAR2
140691 --Invoice Distribution Amount of the Payment Distribution
140692  , p_source_127            IN NUMBER
140693 --Invoice Exchange Date
140694  , p_source_146            IN DATE
140695 --Invoice Exchange Rate
140696  , p_source_147            IN NUMBER
140697 --Invoice Exchange Rate Type
140698  , p_source_148            IN VARCHAR2
140699 --Withholding at Payment Indicator
140700  , p_source_166            IN VARCHAR2
140701  , p_source_166_meaning    IN VARCHAR2
140702 )
140703 IS
140704 
140705 l_component_type              VARCHAR2(80);
140706 l_component_code              VARCHAR2(30);
140707 l_component_type_code         VARCHAR2(1);
140708 l_component_appl_id           INTEGER;
140709 l_amb_context_code            VARCHAR2(30);
140710 l_entity_code                 VARCHAR2(30);
140711 l_event_class_code            VARCHAR2(30);
140715 l_line_definition_owner_code  VARCHAR2(1);
140712 l_ae_header_id                NUMBER;
140713 l_event_type_code             VARCHAR2(30);
140714 l_line_definition_code        VARCHAR2(30);
140716 --
140717 -- adr variables
140718 l_segment                     VARCHAR2(30);
140719 l_ccid                        NUMBER;
140720 l_adr_transaction_coa_id      NUMBER;
140721 l_adr_accounting_coa_id       NUMBER;
140722 l_adr_flexfield_segment_code  VARCHAR2(30);
140723 l_adr_flex_value_set_id       NUMBER;
140724 l_adr_value_type_code         VARCHAR2(30);
140725 l_adr_value_combination_id    NUMBER;
140726 l_adr_value_segment_code      VARCHAR2(30);
140727 
140728 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
140729 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
140730 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
140731 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
140732 
140733 -- 4262811 Variables ------------------------------------------------------------------------------------------
140734 l_entered_amt_idx             NUMBER;
140735 l_accted_amt_idx              NUMBER;
140736 l_acc_rev_flag                VARCHAR2(1);
140737 l_accrual_line_num            NUMBER;
140738 l_tmp_amt                     NUMBER;
140739 l_acc_rev_natural_side_code   VARCHAR2(1);
140740 
140741 l_num_entries                 NUMBER;
140742 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
140743 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
140744 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
140745 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
140746 l_recog_line_1                NUMBER;
140747 l_recog_line_2                NUMBER;
140748 
140749 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
140750 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
140751 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
140752 
140753 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
140754 
140755 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
140756 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
140757 
140758 ---------------------------------------------------------------------------------------------------------------
140759 
140760 
140761 --
140762 -- bulk performance
140763 --
140764 l_balance_type_code           VARCHAR2(1);
140765 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
140766 l_log_module                  VARCHAR2(240);
140767 
140768 --
140769 -- Upgrade strategy
140770 --
140771 l_actual_upg_option           VARCHAR2(1);
140772 l_enc_upg_option           VARCHAR2(1);
140773 
140774 --
140775 BEGIN
140776 --
140777 IF g_log_enabled THEN
140778       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_234';
140779 END IF;
140780 --
140781 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140782 
140783       trace
140784          (p_msg      => 'BEGIN of AcctLineType_234'
140785          ,p_level    => C_LEVEL_PROCEDURE
140786          ,p_module   => l_log_module);
140787 
140788 END IF;
140789 --
140790 l_component_type             := 'AMB_JLT';
140791 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_PMT';
140792 l_component_type_code        := 'S';
140793 l_component_appl_id          :=  200;
140794 l_amb_context_code           := 'DEFAULT';
140795 l_entity_code                := 'AP_PAYMENTS';
140796 l_event_class_code           := 'PAYMENTS';
140797 l_event_type_code            := 'PAYMENTS_ALL';
140798 l_line_definition_owner_code := 'S';
140799 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
140800 --
140801 l_balance_type_code          := 'A';
140802 l_segment                     := NULL;
140803 l_ccid                        := NULL;
140804 l_adr_transaction_coa_id      := NULL;
140805 l_adr_accounting_coa_id       := NULL;
140806 l_adr_flexfield_segment_code  := NULL;
140807 l_adr_flex_value_set_id       := NULL;
140808 l_adr_value_type_code         := NULL;
140809 l_adr_value_combination_id    := NULL;
140810 l_adr_value_segment_code      := NULL;
140811 
140812 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
140813 l_bflow_class_code           := '';    -- 4219869 Business Flow
140814 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
140815 l_budgetary_control_flag     := 'N';
140816 
140817 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
140818 l_bflow_applied_to_amt       := NULL; -- 5132302
140819 l_entered_amt_idx            := NULL;          -- 4262811
140820 l_accted_amt_idx             := NULL;          -- 4262811
140821 l_acc_rev_flag               := NULL;          -- 4262811
140822 l_accrual_line_num           := NULL;          -- 4262811
140823 l_tmp_amt                    := NULL;          -- 4262811
140824 --
140825  
140826 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
140827     l_balance_type_code <> 'B' THEN
140828 IF NVL(p_source_57,'
140829 ') <>  'CLEAR_CLEAR' AND 
140830 NVL(p_source_101,'
140831 ') =  'AWT' AND 
140832 NVL(p_source_166,'
140833 ') =  'Y' AND 
140834 NVL(p_source_125,'
140835 ') <>  'R' AND 
140836 NVL(p_source_126,'
140837 ') <>  'PAYMENTCARD'
140838  THEN 
140839 
140840    --
140841    XLA_AE_LINES_PKG.SetNewLine;
140842 
140843    p_balance_type_code          := l_balance_type_code;
140844    -- set the flag so later we will know whether the gain loss line needs to be created
140845    
140846    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
140847      p_actual_flag :='A';
140848    END IF;
140849 
140850    --
140851    -- bulk performance
140852    --
140856    -- set accounting line options
140853    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
140854                                       p_header_num   => 0); -- 4262811
140855    --
140857    --
140858    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
140859            p_natural_side_code          => 'C'
140860          , p_gain_or_loss_flag          => 'N'
140861          , p_gl_transfer_mode_code      => 'S'
140862          , p_acct_entry_type_code       => 'A'
140863          , p_switch_side_flag           => 'Y'
140864          , p_merge_duplicate_code       => 'A'
140865          );
140866    --
140867    l_acc_rev_natural_side_code := 'D';  -- 4262811
140868    -- 
140869    --
140870    -- set accounting line type info
140871    --
140872    xla_ae_lines_pkg.SetAcctLineType
140873       (p_component_type             => l_component_type
140874       ,p_event_type_code            => l_event_type_code
140875       ,p_line_definition_owner_code => l_line_definition_owner_code
140876       ,p_line_definition_code       => l_line_definition_code
140877       ,p_accounting_line_code       => l_component_code
140878       ,p_accounting_line_type_code  => l_component_type_code
140879       ,p_accounting_line_appl_id    => l_component_appl_id
140880       ,p_amb_context_code           => l_amb_context_code
140881       ,p_entity_code                => l_entity_code
140882       ,p_event_class_code           => l_event_class_code);
140883    --
140884    -- set accounting class
140885    --
140886    xla_ae_lines_pkg.SetAcctClass(
140887            p_accounting_class_code  => 'AWT'
140888          , p_ae_header_id           => l_ae_header_id
140889          );
140890 
140891    --
140892    -- set rounding class
140893    --
140894    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
140895                       'AWT';
140896 
140897    --
140898    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
140899    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
140900    --
140901    -- bulk performance
140902    --
140903    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
140904 
140905    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
140906       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
140907 
140908    -- 4955764
140909    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140910       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
140911 
140912    -- 4458381 Public Sector Enh
140913    
140914    --
140915    -- set accounting attributes for the line type
140916    --
140917    l_entered_amt_idx := 10;
140918    l_accted_amt_idx  := 15;
140919    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
140920    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
140921    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
140922    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
140923    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
140924    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
140925    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
140926    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
140927    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
140928    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
140929    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
140930    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
140931    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
140932    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
140933    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
140934    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
140935    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
140936    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
140937    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
140938    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
140939    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
140940    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
140941    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
140942    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
140943    l_rec_acct_attrs.array_date_value(12)  := p_source_146;
140944    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
140945    l_rec_acct_attrs.array_num_value(13)  := p_source_147;
140946    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
140947    l_rec_acct_attrs.array_char_value(14)  := p_source_148;
140948    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
140949    l_rec_acct_attrs.array_num_value(15)  := p_source_119;
140950    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
140951    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
140952    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
140953    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
140954    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
140955    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
140956    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
140957    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
140958    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
140959    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
140960    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
140961    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
140962    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
140963    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
140967    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
140964    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
140965    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
140966    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
140968 
140969    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
140970    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
140971 
140972    ---------------------------------------------------------------------------------------------------------------
140973    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
140974    ---------------------------------------------------------------------------------------------------------------
140975    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
140976 
140977    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140978    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140979 
140980    IF xla_accounting_cache_pkg.GetValueChar
140981          (p_source_code         => 'LEDGER_CATEGORY_CODE'
140982          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
140983    AND l_bflow_method_code = 'PRIOR_ENTRY'
140984 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
140985    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
140986          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
140987        )
140988    THEN
140989          xla_ae_lines_pkg.BflowUpgEntry
140990            (p_business_method_code    => l_bflow_method_code
140991            ,p_business_class_code     => l_bflow_class_code
140992            ,p_balance_type            => l_balance_type_code);
140993    ELSE
140994       NULL;
140995 -- No business flow processing for business flow method of NONE.
140996    END IF;
140997 
140998    --
140999    -- call analytical criteria
141000    --
141001    
141002    --
141003    -- call description
141004    --
141005    -- No description or it is inherited.
141006    --
141007    -- call ADRs
141008    -- Bug 4922099
141009    --
141010    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141011         (NVL(l_actual_upg_option, 'N') = 'O') OR
141012         (NVL(l_enc_upg_option, 'N') = 'O')
141013       )
141014    THEN
141015    NULL;
141016    --
141017    --
141018    
141019   l_ccid := AcctDerRule_48(
141020            p_application_id           => p_application_id
141021          , p_ae_header_id             => l_ae_header_id 
141022 , p_source_10 => p_source_10
141023 , p_source_10_meaning => p_source_10_meaning
141024 , p_source_25 => p_source_25
141025 , p_source_39 => p_source_39
141026          , x_transaction_coa_id       => l_adr_transaction_coa_id
141027          , x_accounting_coa_id        => l_adr_accounting_coa_id
141028          , x_value_type_code          => l_adr_value_type_code
141029          , p_side                     => 'NA'
141030    );
141031 
141032    xla_ae_lines_pkg.set_ccid(
141033     p_code_combination_id          => l_ccid
141034   , p_value_type_code              => l_adr_value_type_code
141035   , p_transaction_coa_id           => l_adr_transaction_coa_id
141036   , p_accounting_coa_id            => l_adr_accounting_coa_id
141037   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141038   , p_adr_type_code                => 'S'
141039   , p_component_type               => l_component_type
141040   , p_component_code               => l_component_code
141041   , p_component_type_code          => l_component_type_code
141042   , p_component_appl_id            => l_component_appl_id
141043   , p_amb_context_code             => l_amb_context_code
141044   , p_side                         => 'NA'
141045   );
141046 
141047 
141048    l_segment := AcctDerRule_14(
141049            p_application_id           => p_application_id
141050          , p_ae_header_id             => l_ae_header_id 
141051 , p_source_10 => p_source_10
141052 , p_source_10_meaning => p_source_10_meaning
141053 , p_source_25 => p_source_25
141054          , x_transaction_coa_id       => l_adr_transaction_coa_id
141055          , x_accounting_coa_id        => l_adr_accounting_coa_id
141056          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141057          , x_flex_value_set_id        => l_adr_flex_value_set_id
141058          , x_value_type_code          => l_adr_value_type_code
141059          , x_value_combination_id     => l_adr_value_combination_id
141060          , x_value_segment_code       => l_adr_value_segment_code
141061          , p_side                     => 'NA'
141062          , p_override_seg_flag        => 'Y'
141063    );
141064 
141065    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141066 
141067       xla_ae_lines_pkg.set_segment(
141068           p_to_segment_code         => 'GL_ACCOUNT'
141069         , p_segment_value           => l_segment
141070         , p_from_segment_code       => l_adr_value_segment_code
141071         , p_from_combination_id     => l_adr_value_combination_id
141072         , p_value_type_code         => l_adr_value_type_code
141073         , p_transaction_coa_id      => l_adr_transaction_coa_id
141074         , p_accounting_coa_id       => l_adr_accounting_coa_id
141075         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141076         , p_flex_value_set_id       => l_adr_flex_value_set_id
141077         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141078         , p_adr_type_code           => 'S'
141079         , p_component_type          => l_component_type
141080         , p_component_code          => l_component_code
141081         , p_component_type_code     => l_component_type_code
141082         , p_component_appl_id       => l_component_appl_id
141083         , p_amb_context_code        => l_amb_context_code
141087         );
141084         , p_entity_code             => 'AP_PAYMENTS'
141085         , p_event_class_code        => 'PAYMENTS'
141086         , p_side                    => 'NA'
141088 
141089   END IF;
141090 
141091    l_segment := AcctDerRule_26(
141092            p_application_id           => p_application_id
141093          , p_ae_header_id             => l_ae_header_id 
141094 , p_source_10 => p_source_10
141095 , p_source_10_meaning => p_source_10_meaning
141096 , p_source_39 => p_source_39
141097          , x_transaction_coa_id       => l_adr_transaction_coa_id
141098          , x_accounting_coa_id        => l_adr_accounting_coa_id
141099          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141100          , x_flex_value_set_id        => l_adr_flex_value_set_id
141101          , x_value_type_code          => l_adr_value_type_code
141102          , x_value_combination_id     => l_adr_value_combination_id
141103          , x_value_segment_code       => l_adr_value_segment_code
141104          , p_side                     => 'NA'
141105          , p_override_seg_flag        => 'Y'
141106    );
141107 
141108    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141109 
141110       xla_ae_lines_pkg.set_segment(
141111           p_to_segment_code         => 'GL_BALANCING'
141112         , p_segment_value           => l_segment
141113         , p_from_segment_code       => l_adr_value_segment_code
141114         , p_from_combination_id     => l_adr_value_combination_id
141115         , p_value_type_code         => l_adr_value_type_code
141116         , p_transaction_coa_id      => l_adr_transaction_coa_id
141117         , p_accounting_coa_id       => l_adr_accounting_coa_id
141118         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141119         , p_flex_value_set_id       => l_adr_flex_value_set_id
141120         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
141121         , p_adr_type_code           => 'S'
141122         , p_component_type          => l_component_type
141123         , p_component_code          => l_component_code
141124         , p_component_type_code     => l_component_type_code
141125         , p_component_appl_id       => l_component_appl_id
141126         , p_amb_context_code        => l_amb_context_code
141127         , p_entity_code             => 'AP_PAYMENTS'
141128         , p_event_class_code        => 'PAYMENTS'
141129         , p_side                    => 'NA'
141130         );
141131 
141132   END IF;
141133 
141134    --
141135    --
141136    END IF;
141137    --
141138    -- Bug 4922099
141139    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
141140           (NVL(l_enc_upg_option, 'N') = 'O')
141141         ) AND
141142         (l_bflow_method_code = 'PRIOR_ENTRY')
141143       )
141144    THEN
141145       IF
141146       --
141147       1 = 2
141148       --
141149       THEN
141150       xla_accounting_err_pkg.build_message
141151                                     (p_appli_s_name            => 'XLA'
141152                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141153                                     ,p_token_1                 => 'LINE_NUMBER'
141154                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
141155                                     ,p_token_2                 => 'LINE_TYPE_NAME'
141156                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
141157                                                                              l_component_type
141158                                                                             ,l_component_code
141159                                                                             ,l_component_type_code
141160                                                                             ,l_component_appl_id
141161                                                                             ,l_amb_context_code
141162                                                                             ,l_entity_code
141163                                                                             ,l_event_class_code
141164                                                                            )
141165                                     ,p_token_3                 => 'OWNER'
141166                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
141167                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
141168                                                                           ,p_lookup_code    => l_component_type_code
141169                                                                          )
141170                                     ,p_token_4                 => 'PRODUCT_NAME'
141171                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
141172                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
141173                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
141174                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
141175                                     ,p_ae_header_id            =>  NULL
141176                                        );
141177 
141178         IF (C_LEVEL_ERROR>= g_log_level) THEN
141179                  trace
141180                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141181                       ,p_level    => C_LEVEL_ERROR
141182                       ,p_module   => l_log_module);
141183         END IF;
141184       END IF;
141185    END IF;
141186    --
141187    --
141188    ------------------------------------------------------------------------------------------------
141189    -- 4219869 Business Flow
141190    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
141191    -- Prior Entry.  Currently, the following code is always generated.
141195    ------------------------------------------------------------------------------------
141192    ------------------------------------------------------------------------------------------------
141193    XLA_AE_LINES_PKG.ValidateCurrentLine;
141194 
141196    -- 4219869 Business Flow
141197    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
141198    ------------------------------------------------------------------------------------
141199    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141200 
141201    ----------------------------------------------------------------------------------
141202    -- 4219869 Business Flow
141203    -- Update journal entry status -- Need to generate this within IF <condition>
141204    ----------------------------------------------------------------------------------
141205    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141206          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
141207          ,p_balance_type_code => l_balance_type_code
141208          );
141209 
141210    -------------------------------------------------------------------------------------------
141211    -- 4262811 - Generate the Accrual Reversal lines
141212    -------------------------------------------------------------------------------------------
141213    BEGIN
141214       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
141215                               (g_array_event(p_event_id).array_value_num('header_index'));
141216       IF l_acc_rev_flag IS NULL THEN
141217          l_acc_rev_flag := 'N';
141218       END IF;
141219    EXCEPTION
141220       WHEN OTHERS THEN
141221          l_acc_rev_flag := 'N';
141222    END;
141223    --
141224    IF (l_acc_rev_flag = 'Y') THEN
141225 
141226        -- 4645092  ------------------------------------------------------------------------------
141227        -- To allow MPA report to determine if it should generate report process
141228        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
141229        ------------------------------------------------------------------------------------------
141230 
141231        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
141232        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
141233    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
141234    -- call ADRs
141235    -- Bug 4922099
141236    --
141237    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141238         (NVL(l_actual_upg_option, 'N') = 'O') OR
141239         (NVL(l_enc_upg_option, 'N') = 'O')
141240       )
141241    THEN
141242    NULL;
141243    --
141244    --
141245    
141246   l_ccid := AcctDerRule_48(
141247            p_application_id           => p_application_id
141248          , p_ae_header_id             => l_ae_header_id 
141249 , p_source_10 => p_source_10
141250 , p_source_10_meaning => p_source_10_meaning
141251 , p_source_25 => p_source_25
141252 , p_source_39 => p_source_39
141253          , x_transaction_coa_id       => l_adr_transaction_coa_id
141254          , x_accounting_coa_id        => l_adr_accounting_coa_id
141255          , x_value_type_code          => l_adr_value_type_code
141256          , p_side                     => 'NA'
141257    );
141258 
141259    xla_ae_lines_pkg.set_ccid(
141260     p_code_combination_id          => l_ccid
141261   , p_value_type_code              => l_adr_value_type_code
141262   , p_transaction_coa_id           => l_adr_transaction_coa_id
141263   , p_accounting_coa_id            => l_adr_accounting_coa_id
141264   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141265   , p_adr_type_code                => 'S'
141266   , p_component_type               => l_component_type
141267   , p_component_code               => l_component_code
141268   , p_component_type_code          => l_component_type_code
141269   , p_component_appl_id            => l_component_appl_id
141270   , p_amb_context_code             => l_amb_context_code
141271   , p_side                         => 'NA'
141272   );
141273 
141274 
141275    l_segment := AcctDerRule_14(
141276            p_application_id           => p_application_id
141277          , p_ae_header_id             => l_ae_header_id 
141278 , p_source_10 => p_source_10
141279 , p_source_10_meaning => p_source_10_meaning
141280 , p_source_25 => p_source_25
141281          , x_transaction_coa_id       => l_adr_transaction_coa_id
141282          , x_accounting_coa_id        => l_adr_accounting_coa_id
141283          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141284          , x_flex_value_set_id        => l_adr_flex_value_set_id
141285          , x_value_type_code          => l_adr_value_type_code
141286          , x_value_combination_id     => l_adr_value_combination_id
141287          , x_value_segment_code       => l_adr_value_segment_code
141288          , p_side                     => 'NA'
141289          , p_override_seg_flag        => 'Y'
141290    );
141291 
141292    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141293 
141294       xla_ae_lines_pkg.set_segment(
141295           p_to_segment_code         => 'GL_ACCOUNT'
141296         , p_segment_value           => l_segment
141297         , p_from_segment_code       => l_adr_value_segment_code
141298         , p_from_combination_id     => l_adr_value_combination_id
141299         , p_value_type_code         => l_adr_value_type_code
141300         , p_transaction_coa_id      => l_adr_transaction_coa_id
141301         , p_accounting_coa_id       => l_adr_accounting_coa_id
141302         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141303         , p_flex_value_set_id       => l_adr_flex_value_set_id
141304         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141305         , p_adr_type_code           => 'S'
141306         , p_component_type          => l_component_type
141307         , p_component_code          => l_component_code
141308         , p_component_type_code     => l_component_type_code
141309         , p_component_appl_id       => l_component_appl_id
141313         , p_side                    => 'NA'
141310         , p_amb_context_code        => l_amb_context_code
141311         , p_entity_code             => 'AP_PAYMENTS'
141312         , p_event_class_code        => 'PAYMENTS'
141314         );
141315 
141316   END IF;
141317 
141318    l_segment := AcctDerRule_26(
141319            p_application_id           => p_application_id
141320          , p_ae_header_id             => l_ae_header_id 
141321 , p_source_10 => p_source_10
141322 , p_source_10_meaning => p_source_10_meaning
141323 , p_source_39 => p_source_39
141324          , x_transaction_coa_id       => l_adr_transaction_coa_id
141325          , x_accounting_coa_id        => l_adr_accounting_coa_id
141326          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141327          , x_flex_value_set_id        => l_adr_flex_value_set_id
141328          , x_value_type_code          => l_adr_value_type_code
141329          , x_value_combination_id     => l_adr_value_combination_id
141330          , x_value_segment_code       => l_adr_value_segment_code
141331          , p_side                     => 'NA'
141332          , p_override_seg_flag        => 'Y'
141333    );
141334 
141335    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141336 
141337       xla_ae_lines_pkg.set_segment(
141338           p_to_segment_code         => 'GL_BALANCING'
141339         , p_segment_value           => l_segment
141340         , p_from_segment_code       => l_adr_value_segment_code
141341         , p_from_combination_id     => l_adr_value_combination_id
141342         , p_value_type_code         => l_adr_value_type_code
141343         , p_transaction_coa_id      => l_adr_transaction_coa_id
141344         , p_accounting_coa_id       => l_adr_accounting_coa_id
141345         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141346         , p_flex_value_set_id       => l_adr_flex_value_set_id
141347         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
141348         , p_adr_type_code           => 'S'
141349         , p_component_type          => l_component_type
141350         , p_component_code          => l_component_code
141351         , p_component_type_code     => l_component_type_code
141352         , p_component_appl_id       => l_component_appl_id
141353         , p_amb_context_code        => l_amb_context_code
141354         , p_entity_code             => 'AP_PAYMENTS'
141355         , p_event_class_code        => 'PAYMENTS'
141356         , p_side                    => 'NA'
141357         );
141358 
141359   END IF;
141360 
141361    --
141362    --
141363    END IF;
141364 
141365        --
141366        -- Update the line information that should be overwritten
141367        --
141368        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
141369                                          p_header_num   => 1);
141370        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
141371 
141372        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
141373 
141374        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
141375           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
141376        END IF;
141377 
141378       --
141379       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
141380       --
141381       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
141382           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
141383       ELSE
141384           ---------------------------------------------------------------------------------------------------
141385           -- 4262811a Switch Sign
141386           ---------------------------------------------------------------------------------------------------
141387           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
141388           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141389                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141390           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141391                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141392           -- 5132302
141393           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
141394                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141395 
141396       END IF;
141397 
141398       -- 4955764
141399       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141400       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
141401 
141402 
141403       XLA_AE_LINES_PKG.ValidateCurrentLine;
141404       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141405 
141406       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141407                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
141408                ,p_balance_type_code => l_balance_type_code);
141409 
141410    END IF;
141411 
141412    -----------------------------------------------------------------------------------------
141413    -- 4262811 Multiperiod Accounting
141414    -----------------------------------------------------------------------------------------
141415      -- No MPA option is assigned.
141416 
141417 
141418 END IF;
141419 END IF;
141420 --
141421 
141422 --
141423 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141424    trace
141425       (p_msg      => 'END of AcctLineType_234'
141426       ,p_level    => C_LEVEL_PROCEDURE
141427       ,p_module   => l_log_module);
141428 END IF;
141429 --
141430 EXCEPTION
141434        xla_exceptions_pkg.raise_message
141431   WHEN xla_exceptions_pkg.application_exception THEN
141432       RAISE;
141433   WHEN OTHERS THEN
141435            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_234');
141436 END AcctLineType_234;
141437 --
141438 
141439 ---------------------------------------
141440 --
141441 -- PRIVATE FUNCTION
141442 --         AcctLineType_235
141443 --
141444 ---------------------------------------
141445 PROCEDURE AcctLineType_235 (
141446   p_application_id        IN NUMBER
141447  ,p_event_id              IN NUMBER
141448  ,p_calculate_acctd_flag  IN VARCHAR2
141449  ,p_calculate_g_l_flag    IN VARCHAR2
141450  ,p_actual_flag           IN OUT VARCHAR2
141451  ,p_balance_type_code     OUT VARCHAR2
141452  ,p_gain_or_loss_ref      OUT VARCHAR2
141453  
141454 --Invoice Distribution Description
141455  , p_source_1            IN VARCHAR2
141456 --Automatic Offsets Value
141457  , p_source_10            IN VARCHAR2
141458  , p_source_10_meaning    IN VARCHAR2
141459 --Invoice Distribution Ledger Amount
141460  , p_source_16            IN NUMBER
141461 --Invoice Distribution Account
141462  , p_source_25            IN NUMBER
141463 --Invoice Distribution Type
141464  , p_source_28            IN VARCHAR2
141465  , p_source_28_meaning    IN VARCHAR2
141466 --Withholding Related Distribution Account
141467  , p_source_39            IN NUMBER
141468 --Accounting Reversal Indicator
141469  , p_source_58            IN VARCHAR2
141470 --Distribution Link Type
141471  , p_source_60            IN VARCHAR2
141472 --Allocation to Main Distribution Identifier
141473  , p_source_62            IN NUMBER
141474 --Invoice Identifier
141475  , p_source_63            IN NUMBER
141476 --Invoice Distribution Identifier
141477  , p_source_69            IN NUMBER
141478 --Payables Encumbrance Upgrade Credit Account
141479  , p_source_70            IN NUMBER
141480 --Payables Encumbrance Upgrade Credit Amount
141481  , p_source_71            IN NUMBER
141482 --Invoice Currency Code
141483  , p_source_72            IN VARCHAR2
141484 --Payables Encumbrance Upgrade Credit Base Amount
141485  , p_source_73            IN NUMBER
141486 --Payables Encumbrance Upgrade Debit Account
141487  , p_source_74            IN NUMBER
141488 --Payables Encumbrance Upgrade Debit Amount
141489  , p_source_75            IN NUMBER
141490 --Payables Encumbrance Upgrade Debit Base Amount
141491  , p_source_76            IN NUMBER
141492 --Payables Encumbrance Upgrade Option
141493  , p_source_77            IN VARCHAR2
141494 --Invoice Distribution Amount
141495  , p_source_78            IN NUMBER
141496 --Deferred Accounting End Date
141497  , p_source_82            IN DATE
141498 --Deferred Accounting Option
141499  , p_source_83            IN VARCHAR2
141500 --Deferred Accounting Start Date
141501  , p_source_84            IN DATE
141502 --Override Accounted Amount Indicator
141503  , p_source_85            IN VARCHAR2
141504  , p_source_85_meaning    IN VARCHAR2
141505 --Invoice Supplier Identifier
141506  , p_source_86            IN NUMBER
141507 --Invoice Supplier Site Identifier
141508  , p_source_87            IN NUMBER
141509 --Third Party Type
141510  , p_source_88            IN VARCHAR2
141511 --Parent Reversal Identifier
141512  , p_source_89            IN NUMBER
141513 --Invoice Distribution Statistical Amount
141514  , p_source_90            IN NUMBER
141515 --Invoice Distribution Tax Line Identifier
141516  , p_source_91            IN NUMBER
141517 --Invoice Distribution Tax Distribution Identifier from Tax
141518  , p_source_92            IN NUMBER
141519 --Invoice Distribution Summary Tax Line Identifier
141520  , p_source_93            IN NUMBER
141521 --Payables Upgrade Credit Encumbrance Type Identifier
141522  , p_source_94            IN NUMBER
141523 --Payables Upgrade Debit Encumbrance Type Identifier
141524  , p_source_95            IN NUMBER
141525 --Business Flow Accounts Payable Application Identifier
141526  , p_source_96            IN NUMBER
141527 --Business Flow Invoice Distribution Type
141528  , p_source_97            IN VARCHAR2
141529 --Business Flow Invoice Entity Code
141530  , p_source_98            IN VARCHAR2
141531 --Business Flow Invoice Distribution Identifier
141532  , p_source_99            IN NUMBER
141533 --Business Flow Invoice Identifier
141534  , p_source_100            IN NUMBER
141535 --Invoice Exchange Date
141536  , p_source_146            IN DATE
141537 --Invoice Exchange Rate
141538  , p_source_147            IN NUMBER
141539 --Invoice Exchange Rate Type
141540  , p_source_148            IN VARCHAR2
141541 )
141542 IS
141543 
141544 l_component_type              VARCHAR2(80);
141545 l_component_code              VARCHAR2(30);
141546 l_component_type_code         VARCHAR2(1);
141547 l_component_appl_id           INTEGER;
141548 l_amb_context_code            VARCHAR2(30);
141549 l_entity_code                 VARCHAR2(30);
141550 l_event_class_code            VARCHAR2(30);
141551 l_ae_header_id                NUMBER;
141552 l_event_type_code             VARCHAR2(30);
141553 l_line_definition_code        VARCHAR2(30);
141554 l_line_definition_owner_code  VARCHAR2(1);
141555 --
141556 -- adr variables
141557 l_segment                     VARCHAR2(30);
141558 l_ccid                        NUMBER;
141559 l_adr_transaction_coa_id      NUMBER;
141560 l_adr_accounting_coa_id       NUMBER;
141561 l_adr_flexfield_segment_code  VARCHAR2(30);
141562 l_adr_flex_value_set_id       NUMBER;
141563 l_adr_value_type_code         VARCHAR2(30);
141564 l_adr_value_combination_id    NUMBER;
141565 l_adr_value_segment_code      VARCHAR2(30);
141566 
141567 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
141568 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
141569 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
141570 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
141571 
141575 l_acc_rev_flag                VARCHAR2(1);
141572 -- 4262811 Variables ------------------------------------------------------------------------------------------
141573 l_entered_amt_idx             NUMBER;
141574 l_accted_amt_idx              NUMBER;
141576 l_accrual_line_num            NUMBER;
141577 l_tmp_amt                     NUMBER;
141578 l_acc_rev_natural_side_code   VARCHAR2(1);
141579 
141580 l_num_entries                 NUMBER;
141581 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
141582 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
141583 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
141584 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
141585 l_recog_line_1                NUMBER;
141586 l_recog_line_2                NUMBER;
141587 
141588 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
141589 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
141590 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
141591 
141592 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
141593 
141594 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
141595 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
141596 
141597 ---------------------------------------------------------------------------------------------------------------
141598 
141599 
141600 --
141601 -- bulk performance
141602 --
141603 l_balance_type_code           VARCHAR2(1);
141604 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
141605 l_log_module                  VARCHAR2(240);
141606 
141607 --
141608 -- Upgrade strategy
141609 --
141610 l_actual_upg_option           VARCHAR2(1);
141611 l_enc_upg_option           VARCHAR2(1);
141612 
141613 --
141614 BEGIN
141615 --
141616 IF g_log_enabled THEN
141617       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_235';
141618 END IF;
141619 --
141620 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141621 
141622       trace
141623          (p_msg      => 'BEGIN of AcctLineType_235'
141624          ,p_level    => C_LEVEL_PROCEDURE
141625          ,p_module   => l_log_module);
141626 
141627 END IF;
141628 --
141629 l_component_type             := 'AMB_JLT';
141630 l_component_code             := 'AP_WITHHOLD_TAX_CM';
141631 l_component_type_code        := 'S';
141632 l_component_appl_id          :=  200;
141633 l_amb_context_code           := 'DEFAULT';
141634 l_entity_code                := 'AP_INVOICES';
141635 l_event_class_code           := 'CREDIT MEMOS';
141636 l_event_type_code            := 'CREDIT MEMOS_ALL';
141637 l_line_definition_owner_code := 'S';
141638 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
141639 --
141640 l_balance_type_code          := 'A';
141641 l_segment                     := NULL;
141642 l_ccid                        := NULL;
141643 l_adr_transaction_coa_id      := NULL;
141644 l_adr_accounting_coa_id       := NULL;
141645 l_adr_flexfield_segment_code  := NULL;
141646 l_adr_flex_value_set_id       := NULL;
141647 l_adr_value_type_code         := NULL;
141648 l_adr_value_combination_id    := NULL;
141649 l_adr_value_segment_code      := NULL;
141650 
141651 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
141652 l_bflow_class_code           := '';    -- 4219869 Business Flow
141653 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
141654 l_budgetary_control_flag     := 'N';
141655 
141656 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
141657 l_bflow_applied_to_amt       := NULL; -- 5132302
141658 l_entered_amt_idx            := NULL;          -- 4262811
141659 l_accted_amt_idx             := NULL;          -- 4262811
141660 l_acc_rev_flag               := NULL;          -- 4262811
141661 l_accrual_line_num           := NULL;          -- 4262811
141662 l_tmp_amt                    := NULL;          -- 4262811
141663 --
141664  
141665 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
141666     l_balance_type_code <> 'B' THEN
141667 IF NVL(p_source_28,'
141668 ') =  'AWT'
141669  THEN 
141670 
141671    --
141672    XLA_AE_LINES_PKG.SetNewLine;
141673 
141674    p_balance_type_code          := l_balance_type_code;
141675    -- set the flag so later we will know whether the gain loss line needs to be created
141676    
141677    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
141678      p_actual_flag :='A';
141679    END IF;
141680 
141681    --
141682    -- bulk performance
141683    --
141684    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
141685                                       p_header_num   => 0); -- 4262811
141686    --
141687    -- set accounting line options
141688    --
141689    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
141690            p_natural_side_code          => 'D'
141691          , p_gain_or_loss_flag          => 'N'
141692          , p_gl_transfer_mode_code      => 'S'
141693          , p_acct_entry_type_code       => 'A'
141694          , p_switch_side_flag           => 'Y'
141695          , p_merge_duplicate_code       => 'A'
141696          );
141697    --
141698    l_acc_rev_natural_side_code := 'C';  -- 4262811
141699    -- 
141700    --
141701    -- set accounting line type info
141702    --
141703    xla_ae_lines_pkg.SetAcctLineType
141704       (p_component_type             => l_component_type
141705       ,p_event_type_code            => l_event_type_code
141706       ,p_line_definition_owner_code => l_line_definition_owner_code
141707       ,p_line_definition_code       => l_line_definition_code
141708       ,p_accounting_line_code       => l_component_code
141709       ,p_accounting_line_type_code  => l_component_type_code
141710       ,p_accounting_line_appl_id    => l_component_appl_id
141714    --
141711       ,p_amb_context_code           => l_amb_context_code
141712       ,p_entity_code                => l_entity_code
141713       ,p_event_class_code           => l_event_class_code);
141715    -- set accounting class
141716    --
141717    xla_ae_lines_pkg.SetAcctClass(
141718            p_accounting_class_code  => 'AWT'
141719          , p_ae_header_id           => l_ae_header_id
141720          );
141721 
141722    --
141723    -- set rounding class
141724    --
141725    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
141726                       'AWT';
141727 
141728    --
141729    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
141730    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
141731    --
141732    -- bulk performance
141733    --
141734    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
141735 
141736    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
141737       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
141738 
141739    -- 4955764
141740    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141741       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
141742 
141743    -- 4458381 Public Sector Enh
141744    
141745    --
141746    -- set accounting attributes for the line type
141747    --
141748    l_entered_amt_idx := 23;
141749    l_accted_amt_idx  := 28;
141750    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
141751    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
141752    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
141753    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
141754    l_rec_acct_attrs.array_num_value(2)  := 
141755 xla_ae_sources_pkg.GetSystemSourceNum(
141756    p_source_code           => 'XLA_EVENT_APPL_ID'
141757  , p_source_type_code      => 'Y'
141758  , p_source_application_id =>  602
141759 );
141760    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
141761    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
141762    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
141763    l_rec_acct_attrs.array_char_value(4)  := 
141764 xla_ae_sources_pkg.GetSystemSourceChar(
141765    p_source_code           => 'XLA_ENTITY_CODE'
141766  , p_source_type_code      => 'Y'
141767  , p_source_application_id =>  602
141768 );
141769    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
141770    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
141771    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
141772    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
141773    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
141774    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
141775    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
141776    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
141777    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
141778    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
141779    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
141780    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
141781    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
141782    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
141783    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
141784    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
141785    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
141786    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
141787    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
141788    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
141789    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
141790    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
141791    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
141792    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
141793    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
141794    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
141795    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
141796    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
141797    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
141798    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
141799    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
141800    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
141801    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
141802    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
141803    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
141804    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
141805    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
141806    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
141807    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
141808    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
141809    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
141810    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
141811    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
141812    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
141813    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
141814    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
141815    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
141816    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
141817    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
141821    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
141818    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
141819    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
141820    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
141822    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
141823    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
141824    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
141825    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
141826    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
141827    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
141828    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
141829    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
141830    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
141831    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
141832    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
141833    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
141834    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
141835    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
141836    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
141837    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
141838    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
141839    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
141840    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
141841    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
141842    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
141843    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
141844    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
141845    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
141846    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
141847 
141848    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
141849    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
141850 
141851    ---------------------------------------------------------------------------------------------------------------
141852    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
141853    ---------------------------------------------------------------------------------------------------------------
141854    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
141855 
141856    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141857    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141858 
141859    IF xla_accounting_cache_pkg.GetValueChar
141860          (p_source_code         => 'LEDGER_CATEGORY_CODE'
141861          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
141862    AND l_bflow_method_code = 'PRIOR_ENTRY'
141863 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
141864    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
141865          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
141866        )
141867    THEN
141868          xla_ae_lines_pkg.BflowUpgEntry
141869            (p_business_method_code    => l_bflow_method_code
141870            ,p_business_class_code     => l_bflow_class_code
141871            ,p_balance_type            => l_balance_type_code);
141872    ELSE
141873       NULL;
141874 -- No business flow processing for business flow method of NONE.
141875    END IF;
141876 
141877    --
141878    -- call analytical criteria
141879    --
141880    
141881    --
141882    -- call description
141883    --
141884    
141885 xla_ae_lines_pkg.SetLineDescription(
141886    p_ae_header_id => l_ae_header_id
141887   ,p_description  => Description_2 (
141888      p_application_id         => p_application_id
141889    , p_ae_header_id           => l_ae_header_id 
141890 , p_source_1 => p_source_1
141891    )
141892 );
141893 
141894 
141895    --
141896    -- call ADRs
141897    -- Bug 4922099
141898    --
141899    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141900         (NVL(l_actual_upg_option, 'N') = 'O') OR
141901         (NVL(l_enc_upg_option, 'N') = 'O')
141902       )
141903    THEN
141904    NULL;
141905    --
141906    --
141907    
141908   l_ccid := AcctDerRule_48(
141909            p_application_id           => p_application_id
141910          , p_ae_header_id             => l_ae_header_id 
141911 , p_source_10 => p_source_10
141912 , p_source_10_meaning => p_source_10_meaning
141913 , p_source_25 => p_source_25
141914 , p_source_39 => p_source_39
141915          , x_transaction_coa_id       => l_adr_transaction_coa_id
141916          , x_accounting_coa_id        => l_adr_accounting_coa_id
141917          , x_value_type_code          => l_adr_value_type_code
141918          , p_side                     => 'NA'
141919    );
141920 
141921    xla_ae_lines_pkg.set_ccid(
141922     p_code_combination_id          => l_ccid
141923   , p_value_type_code              => l_adr_value_type_code
141924   , p_transaction_coa_id           => l_adr_transaction_coa_id
141925   , p_accounting_coa_id            => l_adr_accounting_coa_id
141926   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141927   , p_adr_type_code                => 'S'
141928   , p_component_type               => l_component_type
141929   , p_component_code               => l_component_code
141930   , p_component_type_code          => l_component_type_code
141931   , p_component_appl_id            => l_component_appl_id
141932   , p_amb_context_code             => l_amb_context_code
141933   , p_side                         => 'NA'
141934   );
141935 
141936 
141937    l_segment := AcctDerRule_14(
141938            p_application_id           => p_application_id
141942 , p_source_25 => p_source_25
141939          , p_ae_header_id             => l_ae_header_id 
141940 , p_source_10 => p_source_10
141941 , p_source_10_meaning => p_source_10_meaning
141943          , x_transaction_coa_id       => l_adr_transaction_coa_id
141944          , x_accounting_coa_id        => l_adr_accounting_coa_id
141945          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141946          , x_flex_value_set_id        => l_adr_flex_value_set_id
141947          , x_value_type_code          => l_adr_value_type_code
141948          , x_value_combination_id     => l_adr_value_combination_id
141949          , x_value_segment_code       => l_adr_value_segment_code
141950          , p_side                     => 'NA'
141951          , p_override_seg_flag        => 'Y'
141952    );
141953 
141954    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141955 
141956       xla_ae_lines_pkg.set_segment(
141957           p_to_segment_code         => 'GL_ACCOUNT'
141958         , p_segment_value           => l_segment
141959         , p_from_segment_code       => l_adr_value_segment_code
141960         , p_from_combination_id     => l_adr_value_combination_id
141961         , p_value_type_code         => l_adr_value_type_code
141962         , p_transaction_coa_id      => l_adr_transaction_coa_id
141963         , p_accounting_coa_id       => l_adr_accounting_coa_id
141964         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141965         , p_flex_value_set_id       => l_adr_flex_value_set_id
141966         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141967         , p_adr_type_code           => 'S'
141968         , p_component_type          => l_component_type
141969         , p_component_code          => l_component_code
141970         , p_component_type_code     => l_component_type_code
141971         , p_component_appl_id       => l_component_appl_id
141972         , p_amb_context_code        => l_amb_context_code
141973         , p_entity_code             => 'AP_INVOICES'
141974         , p_event_class_code        => 'CREDIT MEMOS'
141975         , p_side                    => 'NA'
141976         );
141977 
141978   END IF;
141979 
141980    l_segment := AcctDerRule_26(
141981            p_application_id           => p_application_id
141982          , p_ae_header_id             => l_ae_header_id 
141983 , p_source_10 => p_source_10
141984 , p_source_10_meaning => p_source_10_meaning
141985 , p_source_39 => p_source_39
141986          , x_transaction_coa_id       => l_adr_transaction_coa_id
141987          , x_accounting_coa_id        => l_adr_accounting_coa_id
141988          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141989          , x_flex_value_set_id        => l_adr_flex_value_set_id
141990          , x_value_type_code          => l_adr_value_type_code
141991          , x_value_combination_id     => l_adr_value_combination_id
141992          , x_value_segment_code       => l_adr_value_segment_code
141993          , p_side                     => 'NA'
141994          , p_override_seg_flag        => 'Y'
141995    );
141996 
141997    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141998 
141999       xla_ae_lines_pkg.set_segment(
142000           p_to_segment_code         => 'GL_BALANCING'
142001         , p_segment_value           => l_segment
142002         , p_from_segment_code       => l_adr_value_segment_code
142003         , p_from_combination_id     => l_adr_value_combination_id
142004         , p_value_type_code         => l_adr_value_type_code
142005         , p_transaction_coa_id      => l_adr_transaction_coa_id
142006         , p_accounting_coa_id       => l_adr_accounting_coa_id
142007         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142008         , p_flex_value_set_id       => l_adr_flex_value_set_id
142009         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142010         , p_adr_type_code           => 'S'
142011         , p_component_type          => l_component_type
142012         , p_component_code          => l_component_code
142013         , p_component_type_code     => l_component_type_code
142014         , p_component_appl_id       => l_component_appl_id
142015         , p_amb_context_code        => l_amb_context_code
142016         , p_entity_code             => 'AP_INVOICES'
142017         , p_event_class_code        => 'CREDIT MEMOS'
142018         , p_side                    => 'NA'
142019         );
142020 
142021   END IF;
142022 
142023    --
142024    --
142025    END IF;
142026    --
142027    -- Bug 4922099
142028    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
142029           (NVL(l_enc_upg_option, 'N') = 'O')
142030         ) AND
142031         (l_bflow_method_code = 'PRIOR_ENTRY')
142032       )
142033    THEN
142034       IF
142035       --
142036       1 = 2
142037       --
142038       THEN
142039       xla_accounting_err_pkg.build_message
142040                                     (p_appli_s_name            => 'XLA'
142041                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142042                                     ,p_token_1                 => 'LINE_NUMBER'
142043                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
142044                                     ,p_token_2                 => 'LINE_TYPE_NAME'
142045                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
142046                                                                              l_component_type
142047                                                                             ,l_component_code
142048                                                                             ,l_component_type_code
142049                                                                             ,l_component_appl_id
142050                                                                             ,l_amb_context_code
142051                                                                             ,l_entity_code
142055                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
142052                                                                             ,l_event_class_code
142053                                                                            )
142054                                     ,p_token_3                 => 'OWNER'
142056                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
142057                                                                           ,p_lookup_code    => l_component_type_code
142058                                                                          )
142059                                     ,p_token_4                 => 'PRODUCT_NAME'
142060                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
142061                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
142062                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
142063                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
142064                                     ,p_ae_header_id            =>  NULL
142065                                        );
142066 
142067         IF (C_LEVEL_ERROR>= g_log_level) THEN
142068                  trace
142069                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142070                       ,p_level    => C_LEVEL_ERROR
142071                       ,p_module   => l_log_module);
142072         END IF;
142073       END IF;
142074    END IF;
142075    --
142076    --
142077    ------------------------------------------------------------------------------------------------
142078    -- 4219869 Business Flow
142079    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
142080    -- Prior Entry.  Currently, the following code is always generated.
142081    ------------------------------------------------------------------------------------------------
142082    XLA_AE_LINES_PKG.ValidateCurrentLine;
142083 
142084    ------------------------------------------------------------------------------------
142085    -- 4219869 Business Flow
142086    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
142087    ------------------------------------------------------------------------------------
142088    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142089 
142090    ----------------------------------------------------------------------------------
142091    -- 4219869 Business Flow
142092    -- Update journal entry status -- Need to generate this within IF <condition>
142093    ----------------------------------------------------------------------------------
142094    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142095          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
142096          ,p_balance_type_code => l_balance_type_code
142097          );
142098 
142099    -------------------------------------------------------------------------------------------
142100    -- 4262811 - Generate the Accrual Reversal lines
142101    -------------------------------------------------------------------------------------------
142102    BEGIN
142103       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
142104                               (g_array_event(p_event_id).array_value_num('header_index'));
142105       IF l_acc_rev_flag IS NULL THEN
142106          l_acc_rev_flag := 'N';
142107       END IF;
142108    EXCEPTION
142109       WHEN OTHERS THEN
142110          l_acc_rev_flag := 'N';
142111    END;
142112    --
142113    IF (l_acc_rev_flag = 'Y') THEN
142114 
142115        -- 4645092  ------------------------------------------------------------------------------
142116        -- To allow MPA report to determine if it should generate report process
142117        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
142118        ------------------------------------------------------------------------------------------
142119 
142120        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
142121        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
142122    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
142123    -- call ADRs
142124    -- Bug 4922099
142125    --
142126    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142127         (NVL(l_actual_upg_option, 'N') = 'O') OR
142128         (NVL(l_enc_upg_option, 'N') = 'O')
142129       )
142130    THEN
142131    NULL;
142132    --
142133    --
142134    
142135   l_ccid := AcctDerRule_48(
142136            p_application_id           => p_application_id
142137          , p_ae_header_id             => l_ae_header_id 
142138 , p_source_10 => p_source_10
142139 , p_source_10_meaning => p_source_10_meaning
142140 , p_source_25 => p_source_25
142141 , p_source_39 => p_source_39
142142          , x_transaction_coa_id       => l_adr_transaction_coa_id
142143          , x_accounting_coa_id        => l_adr_accounting_coa_id
142144          , x_value_type_code          => l_adr_value_type_code
142145          , p_side                     => 'NA'
142146    );
142147 
142148    xla_ae_lines_pkg.set_ccid(
142149     p_code_combination_id          => l_ccid
142150   , p_value_type_code              => l_adr_value_type_code
142151   , p_transaction_coa_id           => l_adr_transaction_coa_id
142152   , p_accounting_coa_id            => l_adr_accounting_coa_id
142153   , p_adr_code                     => 'AP_WH_DIST_ACCT'
142154   , p_adr_type_code                => 'S'
142155   , p_component_type               => l_component_type
142156   , p_component_code               => l_component_code
142157   , p_component_type_code          => l_component_type_code
142158   , p_component_appl_id            => l_component_appl_id
142159   , p_amb_context_code             => l_amb_context_code
142160   , p_side                         => 'NA'
142161   );
142162 
142163 
142167 , p_source_10 => p_source_10
142164    l_segment := AcctDerRule_14(
142165            p_application_id           => p_application_id
142166          , p_ae_header_id             => l_ae_header_id 
142168 , p_source_10_meaning => p_source_10_meaning
142169 , p_source_25 => p_source_25
142170          , x_transaction_coa_id       => l_adr_transaction_coa_id
142171          , x_accounting_coa_id        => l_adr_accounting_coa_id
142172          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142173          , x_flex_value_set_id        => l_adr_flex_value_set_id
142174          , x_value_type_code          => l_adr_value_type_code
142175          , x_value_combination_id     => l_adr_value_combination_id
142176          , x_value_segment_code       => l_adr_value_segment_code
142177          , p_side                     => 'NA'
142178          , p_override_seg_flag        => 'Y'
142179    );
142180 
142181    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142182 
142183       xla_ae_lines_pkg.set_segment(
142184           p_to_segment_code         => 'GL_ACCOUNT'
142185         , p_segment_value           => l_segment
142186         , p_from_segment_code       => l_adr_value_segment_code
142187         , p_from_combination_id     => l_adr_value_combination_id
142188         , p_value_type_code         => l_adr_value_type_code
142189         , p_transaction_coa_id      => l_adr_transaction_coa_id
142190         , p_accounting_coa_id       => l_adr_accounting_coa_id
142191         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142192         , p_flex_value_set_id       => l_adr_flex_value_set_id
142193         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
142194         , p_adr_type_code           => 'S'
142195         , p_component_type          => l_component_type
142196         , p_component_code          => l_component_code
142197         , p_component_type_code     => l_component_type_code
142198         , p_component_appl_id       => l_component_appl_id
142199         , p_amb_context_code        => l_amb_context_code
142200         , p_entity_code             => 'AP_INVOICES'
142201         , p_event_class_code        => 'CREDIT MEMOS'
142202         , p_side                    => 'NA'
142203         );
142204 
142205   END IF;
142206 
142207    l_segment := AcctDerRule_26(
142208            p_application_id           => p_application_id
142209          , p_ae_header_id             => l_ae_header_id 
142210 , p_source_10 => p_source_10
142211 , p_source_10_meaning => p_source_10_meaning
142212 , p_source_39 => p_source_39
142213          , x_transaction_coa_id       => l_adr_transaction_coa_id
142214          , x_accounting_coa_id        => l_adr_accounting_coa_id
142215          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142216          , x_flex_value_set_id        => l_adr_flex_value_set_id
142217          , x_value_type_code          => l_adr_value_type_code
142218          , x_value_combination_id     => l_adr_value_combination_id
142219          , x_value_segment_code       => l_adr_value_segment_code
142220          , p_side                     => 'NA'
142221          , p_override_seg_flag        => 'Y'
142222    );
142223 
142224    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142225 
142226       xla_ae_lines_pkg.set_segment(
142227           p_to_segment_code         => 'GL_BALANCING'
142228         , p_segment_value           => l_segment
142229         , p_from_segment_code       => l_adr_value_segment_code
142230         , p_from_combination_id     => l_adr_value_combination_id
142231         , p_value_type_code         => l_adr_value_type_code
142232         , p_transaction_coa_id      => l_adr_transaction_coa_id
142233         , p_accounting_coa_id       => l_adr_accounting_coa_id
142234         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142235         , p_flex_value_set_id       => l_adr_flex_value_set_id
142236         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142237         , p_adr_type_code           => 'S'
142238         , p_component_type          => l_component_type
142239         , p_component_code          => l_component_code
142240         , p_component_type_code     => l_component_type_code
142241         , p_component_appl_id       => l_component_appl_id
142242         , p_amb_context_code        => l_amb_context_code
142243         , p_entity_code             => 'AP_INVOICES'
142244         , p_event_class_code        => 'CREDIT MEMOS'
142245         , p_side                    => 'NA'
142246         );
142247 
142248   END IF;
142249 
142250    --
142251    --
142252    END IF;
142253 
142254        --
142255        -- Update the line information that should be overwritten
142256        --
142257        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
142258                                          p_header_num   => 1);
142259        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
142260 
142261        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
142262 
142263        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
142264           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
142265        END IF;
142266 
142267       --
142268       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
142269       --
142270       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
142271           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
142272       ELSE
142273           ---------------------------------------------------------------------------------------------------
142274           -- 4262811a Switch Sign
142275           ---------------------------------------------------------------------------------------------------
142276           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
142280                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142277           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142278                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142279           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142281           -- 5132302
142282           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
142283                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142284 
142285       END IF;
142286 
142287       -- 4955764
142288       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142289       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
142290 
142291 
142292       XLA_AE_LINES_PKG.ValidateCurrentLine;
142293       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142294 
142295       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142296                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
142297                ,p_balance_type_code => l_balance_type_code);
142298 
142299    END IF;
142300 
142301    -----------------------------------------------------------------------------------------
142302    -- 4262811 Multiperiod Accounting
142303    -----------------------------------------------------------------------------------------
142304      -- No MPA option is assigned.
142305 
142306 
142307 END IF;
142308 END IF;
142309 --
142310 
142311 --
142312 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142313    trace
142314       (p_msg      => 'END of AcctLineType_235'
142315       ,p_level    => C_LEVEL_PROCEDURE
142316       ,p_module   => l_log_module);
142317 END IF;
142318 --
142319 EXCEPTION
142320   WHEN xla_exceptions_pkg.application_exception THEN
142321       RAISE;
142322   WHEN OTHERS THEN
142323        xla_exceptions_pkg.raise_message
142324            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_235');
142325 END AcctLineType_235;
142326 --
142327 
142328 ---------------------------------------
142329 --
142330 -- PRIVATE FUNCTION
142331 --         AcctLineType_236
142332 --
142333 ---------------------------------------
142334 PROCEDURE AcctLineType_236 (
142335   p_application_id        IN NUMBER
142336  ,p_event_id              IN NUMBER
142337  ,p_calculate_acctd_flag  IN VARCHAR2
142338  ,p_calculate_g_l_flag    IN VARCHAR2
142339  ,p_actual_flag           IN OUT VARCHAR2
142340  ,p_balance_type_code     OUT VARCHAR2
142341  ,p_gain_or_loss_ref      OUT VARCHAR2
142342  
142343 --Invoice Distribution Description
142344  , p_source_1            IN VARCHAR2
142345 --Automatic Offsets Value
142346  , p_source_10            IN VARCHAR2
142347  , p_source_10_meaning    IN VARCHAR2
142348 --Invoice Distribution Ledger Amount
142349  , p_source_16            IN NUMBER
142350 --Invoice Distribution Account
142351  , p_source_25            IN NUMBER
142352 --Invoice Distribution Type
142353  , p_source_28            IN VARCHAR2
142354  , p_source_28_meaning    IN VARCHAR2
142355 --Withholding Related Distribution Account
142356  , p_source_39            IN NUMBER
142357 --Accounting Reversal Indicator
142358  , p_source_58            IN VARCHAR2
142359 --Distribution Link Type
142360  , p_source_60            IN VARCHAR2
142361 --Allocation to Main Distribution Identifier
142362  , p_source_62            IN NUMBER
142363 --Invoice Identifier
142364  , p_source_63            IN NUMBER
142365 --Invoice Distribution Identifier
142366  , p_source_69            IN NUMBER
142367 --Payables Encumbrance Upgrade Credit Account
142368  , p_source_70            IN NUMBER
142369 --Payables Encumbrance Upgrade Credit Amount
142370  , p_source_71            IN NUMBER
142371 --Invoice Currency Code
142372  , p_source_72            IN VARCHAR2
142373 --Payables Encumbrance Upgrade Credit Base Amount
142374  , p_source_73            IN NUMBER
142375 --Payables Encumbrance Upgrade Debit Account
142376  , p_source_74            IN NUMBER
142377 --Payables Encumbrance Upgrade Debit Amount
142378  , p_source_75            IN NUMBER
142379 --Payables Encumbrance Upgrade Debit Base Amount
142380  , p_source_76            IN NUMBER
142381 --Payables Encumbrance Upgrade Option
142382  , p_source_77            IN VARCHAR2
142383 --Invoice Distribution Amount
142384  , p_source_78            IN NUMBER
142385 --Deferred Accounting End Date
142386  , p_source_82            IN DATE
142387 --Deferred Accounting Option
142388  , p_source_83            IN VARCHAR2
142389 --Deferred Accounting Start Date
142390  , p_source_84            IN DATE
142391 --Override Accounted Amount Indicator
142392  , p_source_85            IN VARCHAR2
142393  , p_source_85_meaning    IN VARCHAR2
142394 --Invoice Supplier Identifier
142395  , p_source_86            IN NUMBER
142396 --Invoice Supplier Site Identifier
142397  , p_source_87            IN NUMBER
142398 --Third Party Type
142399  , p_source_88            IN VARCHAR2
142400 --Parent Reversal Identifier
142401  , p_source_89            IN NUMBER
142402 --Invoice Distribution Tax Line Identifier
142403  , p_source_91            IN NUMBER
142404 --Invoice Distribution Tax Distribution Identifier from Tax
142405  , p_source_92            IN NUMBER
142406 --Invoice Distribution Summary Tax Line Identifier
142407  , p_source_93            IN NUMBER
142408 --Payables Upgrade Credit Encumbrance Type Identifier
142409  , p_source_94            IN NUMBER
142410 --Payables Upgrade Debit Encumbrance Type Identifier
142411  , p_source_95            IN NUMBER
142412 --Business Flow Accounts Payable Application Identifier
142413  , p_source_96            IN NUMBER
142414 --Business Flow Invoice Distribution Type
142415  , p_source_97            IN VARCHAR2
142419  , p_source_99            IN NUMBER
142416 --Business Flow Invoice Entity Code
142417  , p_source_98            IN VARCHAR2
142418 --Business Flow Invoice Distribution Identifier
142420 --Business Flow Invoice Identifier
142421  , p_source_100            IN NUMBER
142422 --Invoice Exchange Date
142423  , p_source_146            IN DATE
142424 --Invoice Exchange Rate
142425  , p_source_147            IN NUMBER
142426 --Invoice Exchange Rate Type
142427  , p_source_148            IN VARCHAR2
142428 )
142429 IS
142430 
142431 l_component_type              VARCHAR2(80);
142432 l_component_code              VARCHAR2(30);
142433 l_component_type_code         VARCHAR2(1);
142434 l_component_appl_id           INTEGER;
142435 l_amb_context_code            VARCHAR2(30);
142436 l_entity_code                 VARCHAR2(30);
142437 l_event_class_code            VARCHAR2(30);
142438 l_ae_header_id                NUMBER;
142439 l_event_type_code             VARCHAR2(30);
142440 l_line_definition_code        VARCHAR2(30);
142441 l_line_definition_owner_code  VARCHAR2(1);
142442 --
142443 -- adr variables
142444 l_segment                     VARCHAR2(30);
142445 l_ccid                        NUMBER;
142446 l_adr_transaction_coa_id      NUMBER;
142447 l_adr_accounting_coa_id       NUMBER;
142448 l_adr_flexfield_segment_code  VARCHAR2(30);
142449 l_adr_flex_value_set_id       NUMBER;
142450 l_adr_value_type_code         VARCHAR2(30);
142451 l_adr_value_combination_id    NUMBER;
142452 l_adr_value_segment_code      VARCHAR2(30);
142453 
142454 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
142455 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
142456 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
142457 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
142458 
142459 -- 4262811 Variables ------------------------------------------------------------------------------------------
142460 l_entered_amt_idx             NUMBER;
142461 l_accted_amt_idx              NUMBER;
142462 l_acc_rev_flag                VARCHAR2(1);
142463 l_accrual_line_num            NUMBER;
142464 l_tmp_amt                     NUMBER;
142465 l_acc_rev_natural_side_code   VARCHAR2(1);
142466 
142467 l_num_entries                 NUMBER;
142468 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
142469 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
142470 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
142471 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
142472 l_recog_line_1                NUMBER;
142473 l_recog_line_2                NUMBER;
142474 
142475 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
142476 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
142477 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
142478 
142479 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
142480 
142481 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
142482 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
142483 
142484 ---------------------------------------------------------------------------------------------------------------
142485 
142486 
142487 --
142488 -- bulk performance
142489 --
142490 l_balance_type_code           VARCHAR2(1);
142491 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
142492 l_log_module                  VARCHAR2(240);
142493 
142494 --
142495 -- Upgrade strategy
142496 --
142497 l_actual_upg_option           VARCHAR2(1);
142498 l_enc_upg_option           VARCHAR2(1);
142499 
142500 --
142501 BEGIN
142502 --
142503 IF g_log_enabled THEN
142504       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_236';
142505 END IF;
142506 --
142507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142508 
142509       trace
142510          (p_msg      => 'BEGIN of AcctLineType_236'
142511          ,p_level    => C_LEVEL_PROCEDURE
142512          ,p_module   => l_log_module);
142513 
142514 END IF;
142515 --
142516 l_component_type             := 'AMB_JLT';
142517 l_component_code             := 'AP_WITHHOLD_TAX_DM';
142518 l_component_type_code        := 'S';
142519 l_component_appl_id          :=  200;
142520 l_amb_context_code           := 'DEFAULT';
142521 l_entity_code                := 'AP_INVOICES';
142522 l_event_class_code           := 'DEBIT MEMOS';
142523 l_event_type_code            := 'DEBIT MEMOS_ALL';
142524 l_line_definition_owner_code := 'S';
142525 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
142526 --
142527 l_balance_type_code          := 'A';
142528 l_segment                     := NULL;
142529 l_ccid                        := NULL;
142530 l_adr_transaction_coa_id      := NULL;
142531 l_adr_accounting_coa_id       := NULL;
142532 l_adr_flexfield_segment_code  := NULL;
142533 l_adr_flex_value_set_id       := NULL;
142534 l_adr_value_type_code         := NULL;
142535 l_adr_value_combination_id    := NULL;
142536 l_adr_value_segment_code      := NULL;
142537 
142538 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
142539 l_bflow_class_code           := '';    -- 4219869 Business Flow
142540 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
142541 l_budgetary_control_flag     := 'N';
142542 
142543 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
142544 l_bflow_applied_to_amt       := NULL; -- 5132302
142545 l_entered_amt_idx            := NULL;          -- 4262811
142546 l_accted_amt_idx             := NULL;          -- 4262811
142547 l_acc_rev_flag               := NULL;          -- 4262811
142548 l_accrual_line_num           := NULL;          -- 4262811
142549 l_tmp_amt                    := NULL;          -- 4262811
142550 --
142551  
142555 ') =  'AWT'
142552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
142553     l_balance_type_code <> 'B' THEN
142554 IF NVL(p_source_28,'
142556  THEN 
142557 
142558    --
142559    XLA_AE_LINES_PKG.SetNewLine;
142560 
142561    p_balance_type_code          := l_balance_type_code;
142562    -- set the flag so later we will know whether the gain loss line needs to be created
142563    
142564    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
142565      p_actual_flag :='A';
142566    END IF;
142567 
142568    --
142569    -- bulk performance
142570    --
142571    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
142572                                       p_header_num   => 0); -- 4262811
142573    --
142574    -- set accounting line options
142575    --
142576    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
142577            p_natural_side_code          => 'D'
142578          , p_gain_or_loss_flag          => 'N'
142579          , p_gl_transfer_mode_code      => 'S'
142580          , p_acct_entry_type_code       => 'A'
142581          , p_switch_side_flag           => 'Y'
142582          , p_merge_duplicate_code       => 'A'
142583          );
142584    --
142585    l_acc_rev_natural_side_code := 'C';  -- 4262811
142586    -- 
142587    --
142588    -- set accounting line type info
142589    --
142590    xla_ae_lines_pkg.SetAcctLineType
142591       (p_component_type             => l_component_type
142592       ,p_event_type_code            => l_event_type_code
142593       ,p_line_definition_owner_code => l_line_definition_owner_code
142594       ,p_line_definition_code       => l_line_definition_code
142595       ,p_accounting_line_code       => l_component_code
142596       ,p_accounting_line_type_code  => l_component_type_code
142597       ,p_accounting_line_appl_id    => l_component_appl_id
142598       ,p_amb_context_code           => l_amb_context_code
142599       ,p_entity_code                => l_entity_code
142600       ,p_event_class_code           => l_event_class_code);
142601    --
142602    -- set accounting class
142603    --
142604    xla_ae_lines_pkg.SetAcctClass(
142605            p_accounting_class_code  => 'AWT'
142606          , p_ae_header_id           => l_ae_header_id
142607          );
142608 
142609    --
142610    -- set rounding class
142611    --
142612    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
142613                       'AWT';
142614 
142615    --
142616    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
142617    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
142618    --
142619    -- bulk performance
142620    --
142621    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
142622 
142623    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
142624       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
142625 
142626    -- 4955764
142627    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142628       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
142629 
142630    -- 4458381 Public Sector Enh
142631    
142632    --
142633    -- set accounting attributes for the line type
142634    --
142635    l_entered_amt_idx := 23;
142636    l_accted_amt_idx  := 28;
142637    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
142638    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
142639    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
142640    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
142641    l_rec_acct_attrs.array_num_value(2)  := 
142642 xla_ae_sources_pkg.GetSystemSourceNum(
142643    p_source_code           => 'XLA_EVENT_APPL_ID'
142644  , p_source_type_code      => 'Y'
142645  , p_source_application_id =>  602
142646 );
142647    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
142648    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
142649    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
142650    l_rec_acct_attrs.array_char_value(4)  := 
142651 xla_ae_sources_pkg.GetSystemSourceChar(
142652    p_source_code           => 'XLA_ENTITY_CODE'
142653  , p_source_type_code      => 'Y'
142654  , p_source_application_id =>  602
142655 );
142656    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
142657    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
142658    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
142659    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
142660    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
142661    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
142662    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
142663    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
142664    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
142665    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
142666    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
142667    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
142668    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
142669    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
142670    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
142671    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
142672    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
142673    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
142674    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
142675    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
142679    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
142676    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
142677    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
142678    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
142680    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
142681    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
142682    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
142683    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
142684    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
142685    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
142686    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
142687    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
142688    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
142689    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
142690    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
142691    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
142692    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
142693    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
142694    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
142695    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
142696    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
142697    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
142698    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
142699    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
142700    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
142701    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
142702    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
142703    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
142704    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
142705    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
142706    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
142707    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
142708    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
142709    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
142710    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
142711    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
142712    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
142713    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
142714    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
142715    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
142716    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
142717    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
142718    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
142719    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
142720    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
142721    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
142722    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
142723    l_rec_acct_attrs.array_num_value(38)  := p_source_91;
142724    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
142725    l_rec_acct_attrs.array_num_value(39)  := p_source_92;
142726    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
142727    l_rec_acct_attrs.array_num_value(40)  := p_source_93;
142728    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
142729    l_rec_acct_attrs.array_num_value(41)  := p_source_94;
142730    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
142731    l_rec_acct_attrs.array_num_value(42)  := p_source_95;
142732 
142733    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
142734    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
142735 
142736    ---------------------------------------------------------------------------------------------------------------
142737    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
142738    ---------------------------------------------------------------------------------------------------------------
142739    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
142740 
142741    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142742    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142743 
142744    IF xla_accounting_cache_pkg.GetValueChar
142745          (p_source_code         => 'LEDGER_CATEGORY_CODE'
142746          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
142747    AND l_bflow_method_code = 'PRIOR_ENTRY'
142748 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
142749    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
142750          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
142751        )
142752    THEN
142753          xla_ae_lines_pkg.BflowUpgEntry
142754            (p_business_method_code    => l_bflow_method_code
142755            ,p_business_class_code     => l_bflow_class_code
142756            ,p_balance_type            => l_balance_type_code);
142757    ELSE
142758       NULL;
142759 -- No business flow processing for business flow method of NONE.
142760    END IF;
142761 
142762    --
142763    -- call analytical criteria
142764    --
142765    
142766    --
142767    -- call description
142768    --
142769    
142770 xla_ae_lines_pkg.SetLineDescription(
142771    p_ae_header_id => l_ae_header_id
142772   ,p_description  => Description_2 (
142773      p_application_id         => p_application_id
142774    , p_ae_header_id           => l_ae_header_id 
142775 , p_source_1 => p_source_1
142776    )
142777 );
142778 
142779 
142780    --
142781    -- call ADRs
142785         (NVL(l_actual_upg_option, 'N') = 'O') OR
142782    -- Bug 4922099
142783    --
142784    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142786         (NVL(l_enc_upg_option, 'N') = 'O')
142787       )
142788    THEN
142789    NULL;
142790    --
142791    --
142792    
142793   l_ccid := AcctDerRule_48(
142794            p_application_id           => p_application_id
142795          , p_ae_header_id             => l_ae_header_id 
142796 , p_source_10 => p_source_10
142797 , p_source_10_meaning => p_source_10_meaning
142798 , p_source_25 => p_source_25
142799 , p_source_39 => p_source_39
142800          , x_transaction_coa_id       => l_adr_transaction_coa_id
142801          , x_accounting_coa_id        => l_adr_accounting_coa_id
142802          , x_value_type_code          => l_adr_value_type_code
142803          , p_side                     => 'NA'
142804    );
142805 
142806    xla_ae_lines_pkg.set_ccid(
142807     p_code_combination_id          => l_ccid
142808   , p_value_type_code              => l_adr_value_type_code
142809   , p_transaction_coa_id           => l_adr_transaction_coa_id
142810   , p_accounting_coa_id            => l_adr_accounting_coa_id
142811   , p_adr_code                     => 'AP_WH_DIST_ACCT'
142812   , p_adr_type_code                => 'S'
142813   , p_component_type               => l_component_type
142814   , p_component_code               => l_component_code
142815   , p_component_type_code          => l_component_type_code
142816   , p_component_appl_id            => l_component_appl_id
142817   , p_amb_context_code             => l_amb_context_code
142818   , p_side                         => 'NA'
142819   );
142820 
142821 
142822    l_segment := AcctDerRule_14(
142823            p_application_id           => p_application_id
142824          , p_ae_header_id             => l_ae_header_id 
142825 , p_source_10 => p_source_10
142826 , p_source_10_meaning => p_source_10_meaning
142827 , p_source_25 => p_source_25
142828          , x_transaction_coa_id       => l_adr_transaction_coa_id
142829          , x_accounting_coa_id        => l_adr_accounting_coa_id
142830          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142831          , x_flex_value_set_id        => l_adr_flex_value_set_id
142832          , x_value_type_code          => l_adr_value_type_code
142833          , x_value_combination_id     => l_adr_value_combination_id
142834          , x_value_segment_code       => l_adr_value_segment_code
142835          , p_side                     => 'NA'
142836          , p_override_seg_flag        => 'Y'
142837    );
142838 
142839    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142840 
142841       xla_ae_lines_pkg.set_segment(
142842           p_to_segment_code         => 'GL_ACCOUNT'
142843         , p_segment_value           => l_segment
142844         , p_from_segment_code       => l_adr_value_segment_code
142845         , p_from_combination_id     => l_adr_value_combination_id
142846         , p_value_type_code         => l_adr_value_type_code
142847         , p_transaction_coa_id      => l_adr_transaction_coa_id
142848         , p_accounting_coa_id       => l_adr_accounting_coa_id
142849         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142850         , p_flex_value_set_id       => l_adr_flex_value_set_id
142851         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
142852         , p_adr_type_code           => 'S'
142853         , p_component_type          => l_component_type
142854         , p_component_code          => l_component_code
142855         , p_component_type_code     => l_component_type_code
142856         , p_component_appl_id       => l_component_appl_id
142857         , p_amb_context_code        => l_amb_context_code
142858         , p_entity_code             => 'AP_INVOICES'
142859         , p_event_class_code        => 'DEBIT MEMOS'
142860         , p_side                    => 'NA'
142861         );
142862 
142863   END IF;
142864 
142865    l_segment := AcctDerRule_26(
142866            p_application_id           => p_application_id
142867          , p_ae_header_id             => l_ae_header_id 
142868 , p_source_10 => p_source_10
142869 , p_source_10_meaning => p_source_10_meaning
142870 , p_source_39 => p_source_39
142871          , x_transaction_coa_id       => l_adr_transaction_coa_id
142872          , x_accounting_coa_id        => l_adr_accounting_coa_id
142873          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142874          , x_flex_value_set_id        => l_adr_flex_value_set_id
142875          , x_value_type_code          => l_adr_value_type_code
142876          , x_value_combination_id     => l_adr_value_combination_id
142877          , x_value_segment_code       => l_adr_value_segment_code
142878          , p_side                     => 'NA'
142879          , p_override_seg_flag        => 'Y'
142880    );
142881 
142882    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142883 
142884       xla_ae_lines_pkg.set_segment(
142885           p_to_segment_code         => 'GL_BALANCING'
142886         , p_segment_value           => l_segment
142887         , p_from_segment_code       => l_adr_value_segment_code
142888         , p_from_combination_id     => l_adr_value_combination_id
142889         , p_value_type_code         => l_adr_value_type_code
142890         , p_transaction_coa_id      => l_adr_transaction_coa_id
142891         , p_accounting_coa_id       => l_adr_accounting_coa_id
142892         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142893         , p_flex_value_set_id       => l_adr_flex_value_set_id
142894         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142895         , p_adr_type_code           => 'S'
142896         , p_component_type          => l_component_type
142897         , p_component_code          => l_component_code
142898         , p_component_type_code     => l_component_type_code
142899         , p_component_appl_id       => l_component_appl_id
142900         , p_amb_context_code        => l_amb_context_code
142904         );
142901         , p_entity_code             => 'AP_INVOICES'
142902         , p_event_class_code        => 'DEBIT MEMOS'
142903         , p_side                    => 'NA'
142905 
142906   END IF;
142907 
142908    --
142909    --
142910    END IF;
142911    --
142912    -- Bug 4922099
142913    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
142914           (NVL(l_enc_upg_option, 'N') = 'O')
142915         ) AND
142916         (l_bflow_method_code = 'PRIOR_ENTRY')
142917       )
142918    THEN
142919       IF
142920       --
142921       1 = 2
142922       --
142923       THEN
142924       xla_accounting_err_pkg.build_message
142925                                     (p_appli_s_name            => 'XLA'
142926                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142927                                     ,p_token_1                 => 'LINE_NUMBER'
142928                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
142929                                     ,p_token_2                 => 'LINE_TYPE_NAME'
142930                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
142931                                                                              l_component_type
142932                                                                             ,l_component_code
142933                                                                             ,l_component_type_code
142934                                                                             ,l_component_appl_id
142935                                                                             ,l_amb_context_code
142936                                                                             ,l_entity_code
142937                                                                             ,l_event_class_code
142938                                                                            )
142939                                     ,p_token_3                 => 'OWNER'
142940                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
142941                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
142942                                                                           ,p_lookup_code    => l_component_type_code
142943                                                                          )
142944                                     ,p_token_4                 => 'PRODUCT_NAME'
142945                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
142946                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
142947                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
142948                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
142949                                     ,p_ae_header_id            =>  NULL
142950                                        );
142951 
142952         IF (C_LEVEL_ERROR>= g_log_level) THEN
142953                  trace
142954                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142955                       ,p_level    => C_LEVEL_ERROR
142956                       ,p_module   => l_log_module);
142957         END IF;
142958       END IF;
142959    END IF;
142960    --
142961    --
142962    ------------------------------------------------------------------------------------------------
142963    -- 4219869 Business Flow
142964    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
142965    -- Prior Entry.  Currently, the following code is always generated.
142966    ------------------------------------------------------------------------------------------------
142967    XLA_AE_LINES_PKG.ValidateCurrentLine;
142968 
142969    ------------------------------------------------------------------------------------
142970    -- 4219869 Business Flow
142971    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
142972    ------------------------------------------------------------------------------------
142973    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142974 
142975    ----------------------------------------------------------------------------------
142976    -- 4219869 Business Flow
142977    -- Update journal entry status -- Need to generate this within IF <condition>
142978    ----------------------------------------------------------------------------------
142979    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142980          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
142981          ,p_balance_type_code => l_balance_type_code
142982          );
142983 
142984    -------------------------------------------------------------------------------------------
142985    -- 4262811 - Generate the Accrual Reversal lines
142986    -------------------------------------------------------------------------------------------
142987    BEGIN
142988       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
142989                               (g_array_event(p_event_id).array_value_num('header_index'));
142990       IF l_acc_rev_flag IS NULL THEN
142991          l_acc_rev_flag := 'N';
142992       END IF;
142993    EXCEPTION
142994       WHEN OTHERS THEN
142995          l_acc_rev_flag := 'N';
142996    END;
142997    --
142998    IF (l_acc_rev_flag = 'Y') THEN
142999 
143000        -- 4645092  ------------------------------------------------------------------------------
143001        -- To allow MPA report to determine if it should generate report process
143002        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
143003        ------------------------------------------------------------------------------------------
143004 
143005        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
143006        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
143010    --
143007    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
143008    -- call ADRs
143009    -- Bug 4922099
143011    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143012         (NVL(l_actual_upg_option, 'N') = 'O') OR
143013         (NVL(l_enc_upg_option, 'N') = 'O')
143014       )
143015    THEN
143016    NULL;
143017    --
143018    --
143019    
143020   l_ccid := AcctDerRule_48(
143021            p_application_id           => p_application_id
143022          , p_ae_header_id             => l_ae_header_id 
143023 , p_source_10 => p_source_10
143024 , p_source_10_meaning => p_source_10_meaning
143025 , p_source_25 => p_source_25
143026 , p_source_39 => p_source_39
143027          , x_transaction_coa_id       => l_adr_transaction_coa_id
143028          , x_accounting_coa_id        => l_adr_accounting_coa_id
143029          , x_value_type_code          => l_adr_value_type_code
143030          , p_side                     => 'NA'
143031    );
143032 
143033    xla_ae_lines_pkg.set_ccid(
143034     p_code_combination_id          => l_ccid
143035   , p_value_type_code              => l_adr_value_type_code
143036   , p_transaction_coa_id           => l_adr_transaction_coa_id
143037   , p_accounting_coa_id            => l_adr_accounting_coa_id
143038   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143039   , p_adr_type_code                => 'S'
143040   , p_component_type               => l_component_type
143041   , p_component_code               => l_component_code
143042   , p_component_type_code          => l_component_type_code
143043   , p_component_appl_id            => l_component_appl_id
143044   , p_amb_context_code             => l_amb_context_code
143045   , p_side                         => 'NA'
143046   );
143047 
143048 
143049    l_segment := AcctDerRule_14(
143050            p_application_id           => p_application_id
143051          , p_ae_header_id             => l_ae_header_id 
143052 , p_source_10 => p_source_10
143053 , p_source_10_meaning => p_source_10_meaning
143054 , p_source_25 => p_source_25
143055          , x_transaction_coa_id       => l_adr_transaction_coa_id
143056          , x_accounting_coa_id        => l_adr_accounting_coa_id
143057          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143058          , x_flex_value_set_id        => l_adr_flex_value_set_id
143059          , x_value_type_code          => l_adr_value_type_code
143060          , x_value_combination_id     => l_adr_value_combination_id
143061          , x_value_segment_code       => l_adr_value_segment_code
143062          , p_side                     => 'NA'
143063          , p_override_seg_flag        => 'Y'
143064    );
143065 
143066    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143067 
143068       xla_ae_lines_pkg.set_segment(
143069           p_to_segment_code         => 'GL_ACCOUNT'
143070         , p_segment_value           => l_segment
143071         , p_from_segment_code       => l_adr_value_segment_code
143072         , p_from_combination_id     => l_adr_value_combination_id
143073         , p_value_type_code         => l_adr_value_type_code
143074         , p_transaction_coa_id      => l_adr_transaction_coa_id
143075         , p_accounting_coa_id       => l_adr_accounting_coa_id
143076         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143077         , p_flex_value_set_id       => l_adr_flex_value_set_id
143078         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143079         , p_adr_type_code           => 'S'
143080         , p_component_type          => l_component_type
143081         , p_component_code          => l_component_code
143082         , p_component_type_code     => l_component_type_code
143083         , p_component_appl_id       => l_component_appl_id
143084         , p_amb_context_code        => l_amb_context_code
143085         , p_entity_code             => 'AP_INVOICES'
143086         , p_event_class_code        => 'DEBIT MEMOS'
143087         , p_side                    => 'NA'
143088         );
143089 
143090   END IF;
143091 
143092    l_segment := AcctDerRule_26(
143093            p_application_id           => p_application_id
143094          , p_ae_header_id             => l_ae_header_id 
143095 , p_source_10 => p_source_10
143096 , p_source_10_meaning => p_source_10_meaning
143097 , p_source_39 => p_source_39
143098          , x_transaction_coa_id       => l_adr_transaction_coa_id
143099          , x_accounting_coa_id        => l_adr_accounting_coa_id
143100          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143101          , x_flex_value_set_id        => l_adr_flex_value_set_id
143102          , x_value_type_code          => l_adr_value_type_code
143103          , x_value_combination_id     => l_adr_value_combination_id
143104          , x_value_segment_code       => l_adr_value_segment_code
143105          , p_side                     => 'NA'
143106          , p_override_seg_flag        => 'Y'
143107    );
143108 
143109    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143110 
143111       xla_ae_lines_pkg.set_segment(
143112           p_to_segment_code         => 'GL_BALANCING'
143113         , p_segment_value           => l_segment
143114         , p_from_segment_code       => l_adr_value_segment_code
143115         , p_from_combination_id     => l_adr_value_combination_id
143116         , p_value_type_code         => l_adr_value_type_code
143117         , p_transaction_coa_id      => l_adr_transaction_coa_id
143118         , p_accounting_coa_id       => l_adr_accounting_coa_id
143119         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143120         , p_flex_value_set_id       => l_adr_flex_value_set_id
143121         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
143122         , p_adr_type_code           => 'S'
143123         , p_component_type          => l_component_type
143124         , p_component_code          => l_component_code
143125         , p_component_type_code     => l_component_type_code
143129         , p_event_class_code        => 'DEBIT MEMOS'
143126         , p_component_appl_id       => l_component_appl_id
143127         , p_amb_context_code        => l_amb_context_code
143128         , p_entity_code             => 'AP_INVOICES'
143130         , p_side                    => 'NA'
143131         );
143132 
143133   END IF;
143134 
143135    --
143136    --
143137    END IF;
143138 
143139        --
143140        -- Update the line information that should be overwritten
143141        --
143142        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
143143                                          p_header_num   => 1);
143144        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
143145 
143146        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
143147 
143148        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
143149           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
143150        END IF;
143151 
143152       --
143153       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
143154       --
143155       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
143156           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
143157       ELSE
143158           ---------------------------------------------------------------------------------------------------
143159           -- 4262811a Switch Sign
143160           ---------------------------------------------------------------------------------------------------
143161           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
143162           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143163                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143164           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143165                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143166           -- 5132302
143167           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
143168                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143169 
143170       END IF;
143171 
143172       -- 4955764
143173       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143174       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
143175 
143176 
143177       XLA_AE_LINES_PKG.ValidateCurrentLine;
143178       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143179 
143180       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143181                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
143182                ,p_balance_type_code => l_balance_type_code);
143183 
143184    END IF;
143185 
143186    -----------------------------------------------------------------------------------------
143187    -- 4262811 Multiperiod Accounting
143188    -----------------------------------------------------------------------------------------
143189      -- No MPA option is assigned.
143190 
143191 
143192 END IF;
143193 END IF;
143194 --
143195 
143196 --
143197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143198    trace
143199       (p_msg      => 'END of AcctLineType_236'
143200       ,p_level    => C_LEVEL_PROCEDURE
143201       ,p_module   => l_log_module);
143202 END IF;
143203 --
143204 EXCEPTION
143205   WHEN xla_exceptions_pkg.application_exception THEN
143206       RAISE;
143207   WHEN OTHERS THEN
143208        xla_exceptions_pkg.raise_message
143209            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_236');
143210 END AcctLineType_236;
143211 --
143212 
143213 ---------------------------------------
143214 --
143215 -- PRIVATE FUNCTION
143216 --         AcctLineType_237
143217 --
143218 ---------------------------------------
143219 PROCEDURE AcctLineType_237 (
143220   p_application_id        IN NUMBER
143221  ,p_event_id              IN NUMBER
143222  ,p_calculate_acctd_flag  IN VARCHAR2
143223  ,p_calculate_g_l_flag    IN VARCHAR2
143224  ,p_actual_flag           IN OUT VARCHAR2
143225  ,p_balance_type_code     OUT VARCHAR2
143226  ,p_gain_or_loss_ref      OUT VARCHAR2
143227  
143228 --Invoice Distribution Description
143229  , p_source_1            IN VARCHAR2
143230 --Automatic Offsets Value
143231  , p_source_10            IN VARCHAR2
143232  , p_source_10_meaning    IN VARCHAR2
143233 --Invoice Distribution Ledger Amount
143234  , p_source_16            IN NUMBER
143235 --Invoice Distribution Account
143236  , p_source_25            IN NUMBER
143237 --Invoice Distribution Type
143238  , p_source_28            IN VARCHAR2
143239  , p_source_28_meaning    IN VARCHAR2
143240 --Withholding Related Distribution Account
143241  , p_source_39            IN NUMBER
143242 --Accounting Reversal Indicator
143243  , p_source_58            IN VARCHAR2
143244 --Distribution Link Type
143245  , p_source_60            IN VARCHAR2
143246 --Allocation to Main Distribution Identifier
143247  , p_source_62            IN NUMBER
143248 --Invoice Identifier
143249  , p_source_63            IN NUMBER
143250 --Invoice Distribution Identifier
143251  , p_source_69            IN NUMBER
143252 --Payables Encumbrance Upgrade Credit Account
143253  , p_source_70            IN NUMBER
143254 --Payables Encumbrance Upgrade Credit Amount
143255  , p_source_71            IN NUMBER
143256 --Invoice Currency Code
143257  , p_source_72            IN VARCHAR2
143258 --Payables Encumbrance Upgrade Credit Base Amount
143259  , p_source_73            IN NUMBER
143263  , p_source_75            IN NUMBER
143260 --Payables Encumbrance Upgrade Debit Account
143261  , p_source_74            IN NUMBER
143262 --Payables Encumbrance Upgrade Debit Amount
143264 --Payables Encumbrance Upgrade Debit Base Amount
143265  , p_source_76            IN NUMBER
143266 --Payables Encumbrance Upgrade Option
143267  , p_source_77            IN VARCHAR2
143268 --Invoice Distribution Amount
143269  , p_source_78            IN NUMBER
143270 --Deferred Accounting End Date
143271  , p_source_82            IN DATE
143272 --Deferred Accounting Option
143273  , p_source_83            IN VARCHAR2
143274 --Deferred Accounting Start Date
143275  , p_source_84            IN DATE
143276 --Override Accounted Amount Indicator
143277  , p_source_85            IN VARCHAR2
143278  , p_source_85_meaning    IN VARCHAR2
143279 --Invoice Supplier Identifier
143280  , p_source_86            IN NUMBER
143281 --Invoice Supplier Site Identifier
143282  , p_source_87            IN NUMBER
143283 --Third Party Type
143284  , p_source_88            IN VARCHAR2
143285 --Parent Reversal Identifier
143286  , p_source_89            IN NUMBER
143287 --Invoice Distribution Statistical Amount
143288  , p_source_90            IN NUMBER
143289 --Invoice Distribution Tax Line Identifier
143290  , p_source_91            IN NUMBER
143291 --Invoice Distribution Tax Distribution Identifier from Tax
143292  , p_source_92            IN NUMBER
143293 --Invoice Distribution Summary Tax Line Identifier
143294  , p_source_93            IN NUMBER
143295 --Payables Upgrade Credit Encumbrance Type Identifier
143296  , p_source_94            IN NUMBER
143297 --Payables Upgrade Debit Encumbrance Type Identifier
143298  , p_source_95            IN NUMBER
143299 --Business Flow Accounts Payable Application Identifier
143300  , p_source_96            IN NUMBER
143301 --Business Flow Invoice Distribution Type
143302  , p_source_97            IN VARCHAR2
143303 --Business Flow Invoice Entity Code
143304  , p_source_98            IN VARCHAR2
143305 --Business Flow Invoice Distribution Identifier
143306  , p_source_99            IN NUMBER
143307 --Business Flow Invoice Identifier
143308  , p_source_100            IN NUMBER
143309 --Invoice Exchange Date
143310  , p_source_146            IN DATE
143311 --Invoice Exchange Rate
143312  , p_source_147            IN NUMBER
143313 --Invoice Exchange Rate Type
143314  , p_source_148            IN VARCHAR2
143315 )
143316 IS
143317 
143318 l_component_type              VARCHAR2(80);
143319 l_component_code              VARCHAR2(30);
143320 l_component_type_code         VARCHAR2(1);
143321 l_component_appl_id           INTEGER;
143322 l_amb_context_code            VARCHAR2(30);
143323 l_entity_code                 VARCHAR2(30);
143324 l_event_class_code            VARCHAR2(30);
143325 l_ae_header_id                NUMBER;
143326 l_event_type_code             VARCHAR2(30);
143327 l_line_definition_code        VARCHAR2(30);
143328 l_line_definition_owner_code  VARCHAR2(1);
143329 --
143330 -- adr variables
143331 l_segment                     VARCHAR2(30);
143332 l_ccid                        NUMBER;
143333 l_adr_transaction_coa_id      NUMBER;
143334 l_adr_accounting_coa_id       NUMBER;
143335 l_adr_flexfield_segment_code  VARCHAR2(30);
143336 l_adr_flex_value_set_id       NUMBER;
143337 l_adr_value_type_code         VARCHAR2(30);
143338 l_adr_value_combination_id    NUMBER;
143339 l_adr_value_segment_code      VARCHAR2(30);
143340 
143341 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
143342 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
143343 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
143344 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
143345 
143346 -- 4262811 Variables ------------------------------------------------------------------------------------------
143347 l_entered_amt_idx             NUMBER;
143348 l_accted_amt_idx              NUMBER;
143349 l_acc_rev_flag                VARCHAR2(1);
143350 l_accrual_line_num            NUMBER;
143351 l_tmp_amt                     NUMBER;
143352 l_acc_rev_natural_side_code   VARCHAR2(1);
143353 
143354 l_num_entries                 NUMBER;
143355 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
143356 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
143357 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
143358 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
143359 l_recog_line_1                NUMBER;
143360 l_recog_line_2                NUMBER;
143361 
143362 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
143363 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
143364 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
143365 
143366 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
143367 
143368 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
143369 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
143370 
143371 ---------------------------------------------------------------------------------------------------------------
143372 
143373 
143374 --
143375 -- bulk performance
143376 --
143377 l_balance_type_code           VARCHAR2(1);
143378 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
143379 l_log_module                  VARCHAR2(240);
143380 
143381 --
143382 -- Upgrade strategy
143383 --
143384 l_actual_upg_option           VARCHAR2(1);
143385 l_enc_upg_option           VARCHAR2(1);
143386 
143387 --
143388 BEGIN
143389 --
143390 IF g_log_enabled THEN
143391       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_237';
143392 END IF;
143393 --
143394 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143395 
143396       trace
143400 
143397          (p_msg      => 'BEGIN of AcctLineType_237'
143398          ,p_level    => C_LEVEL_PROCEDURE
143399          ,p_module   => l_log_module);
143401 END IF;
143402 --
143403 l_component_type             := 'AMB_JLT';
143404 l_component_code             := 'AP_WITHHOLD_TAX_INV';
143405 l_component_type_code        := 'S';
143406 l_component_appl_id          :=  200;
143407 l_amb_context_code           := 'DEFAULT';
143408 l_entity_code                := 'AP_INVOICES';
143409 l_event_class_code           := 'INVOICES';
143410 l_event_type_code            := 'INVOICES_ALL';
143411 l_line_definition_owner_code := 'S';
143412 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
143413 --
143414 l_balance_type_code          := 'A';
143415 l_segment                     := NULL;
143416 l_ccid                        := NULL;
143417 l_adr_transaction_coa_id      := NULL;
143418 l_adr_accounting_coa_id       := NULL;
143419 l_adr_flexfield_segment_code  := NULL;
143420 l_adr_flex_value_set_id       := NULL;
143421 l_adr_value_type_code         := NULL;
143422 l_adr_value_combination_id    := NULL;
143423 l_adr_value_segment_code      := NULL;
143424 
143425 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
143426 l_bflow_class_code           := '';    -- 4219869 Business Flow
143427 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
143428 l_budgetary_control_flag     := 'N';
143429 
143430 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
143431 l_bflow_applied_to_amt       := NULL; -- 5132302
143432 l_entered_amt_idx            := NULL;          -- 4262811
143433 l_accted_amt_idx             := NULL;          -- 4262811
143434 l_acc_rev_flag               := NULL;          -- 4262811
143435 l_accrual_line_num           := NULL;          -- 4262811
143436 l_tmp_amt                    := NULL;          -- 4262811
143437 --
143438  
143439 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
143440     l_balance_type_code <> 'B' THEN
143441 IF NVL(p_source_28,'
143442 ') =  'AWT'
143443  THEN 
143444 
143445    --
143446    XLA_AE_LINES_PKG.SetNewLine;
143447 
143448    p_balance_type_code          := l_balance_type_code;
143449    -- set the flag so later we will know whether the gain loss line needs to be created
143450    
143451    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
143452      p_actual_flag :='A';
143453    END IF;
143454 
143455    --
143456    -- bulk performance
143457    --
143458    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
143459                                       p_header_num   => 0); -- 4262811
143460    --
143461    -- set accounting line options
143462    --
143463    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
143464            p_natural_side_code          => 'D'
143465          , p_gain_or_loss_flag          => 'N'
143466          , p_gl_transfer_mode_code      => 'S'
143467          , p_acct_entry_type_code       => 'A'
143468          , p_switch_side_flag           => 'Y'
143469          , p_merge_duplicate_code       => 'A'
143470          );
143471    --
143472    l_acc_rev_natural_side_code := 'C';  -- 4262811
143473    -- 
143474    --
143475    -- set accounting line type info
143476    --
143477    xla_ae_lines_pkg.SetAcctLineType
143478       (p_component_type             => l_component_type
143479       ,p_event_type_code            => l_event_type_code
143480       ,p_line_definition_owner_code => l_line_definition_owner_code
143481       ,p_line_definition_code       => l_line_definition_code
143482       ,p_accounting_line_code       => l_component_code
143483       ,p_accounting_line_type_code  => l_component_type_code
143484       ,p_accounting_line_appl_id    => l_component_appl_id
143485       ,p_amb_context_code           => l_amb_context_code
143486       ,p_entity_code                => l_entity_code
143487       ,p_event_class_code           => l_event_class_code);
143488    --
143489    -- set accounting class
143490    --
143491    xla_ae_lines_pkg.SetAcctClass(
143492            p_accounting_class_code  => 'AWT'
143493          , p_ae_header_id           => l_ae_header_id
143494          );
143495 
143496    --
143497    -- set rounding class
143498    --
143499    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
143500                       'AWT';
143501 
143502    --
143503    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
143504    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
143505    --
143506    -- bulk performance
143507    --
143508    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
143509 
143510    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
143511       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
143512 
143513    -- 4955764
143514    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143515       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
143516 
143517    -- 4458381 Public Sector Enh
143518    
143519    --
143520    -- set accounting attributes for the line type
143521    --
143522    l_entered_amt_idx := 24;
143523    l_accted_amt_idx  := 29;
143524    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
143525    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
143526    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
143527    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
143528    l_rec_acct_attrs.array_num_value(2)  := 
143529 xla_ae_sources_pkg.GetSystemSourceNum(
143530    p_source_code           => 'XLA_EVENT_APPL_ID'
143531  , p_source_type_code      => 'Y'
143532  , p_source_application_id =>  602
143533 );
143537    l_rec_acct_attrs.array_char_value(4)  := 
143534    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
143535    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
143536    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
143538 xla_ae_sources_pkg.GetSystemSourceChar(
143539    p_source_code           => 'XLA_ENTITY_CODE'
143540  , p_source_type_code      => 'Y'
143541  , p_source_application_id =>  602
143542 );
143543    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
143544    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
143545    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
143546    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
143547    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
143548    l_rec_acct_attrs.array_num_value(7)  := p_source_78;
143549    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
143550    l_rec_acct_attrs.array_num_value(8)  := p_source_96;
143551    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
143552    l_rec_acct_attrs.array_char_value(9)  := p_source_97;
143553    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
143554    l_rec_acct_attrs.array_char_value(10)  := p_source_98;
143555    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
143556    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_99);
143557    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
143558    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_100);
143559    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
143560    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_69);
143561    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
143562    l_rec_acct_attrs.array_char_value(14)  := p_source_60;
143563    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
143564    l_rec_acct_attrs.array_num_value(15)  := p_source_70;
143565    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
143566    l_rec_acct_attrs.array_num_value(16)  := p_source_71;
143567    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
143568    l_rec_acct_attrs.array_char_value(17)  := p_source_72;
143569    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
143570    l_rec_acct_attrs.array_num_value(18)  := p_source_73;
143571    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
143572    l_rec_acct_attrs.array_num_value(19)  := p_source_74;
143573    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
143574    l_rec_acct_attrs.array_num_value(20)  := p_source_75;
143575    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
143576    l_rec_acct_attrs.array_char_value(21)  := p_source_72;
143577    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
143578    l_rec_acct_attrs.array_num_value(22)  := p_source_76;
143579    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
143580    l_rec_acct_attrs.array_char_value(23)  := p_source_77;
143581    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
143582    l_rec_acct_attrs.array_num_value(24)  := p_source_78;
143583    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
143584    l_rec_acct_attrs.array_char_value(25)  := p_source_72;
143585    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
143586    l_rec_acct_attrs.array_date_value(26)  := p_source_146;
143587    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
143588    l_rec_acct_attrs.array_num_value(27)  := p_source_147;
143589    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
143590    l_rec_acct_attrs.array_char_value(28)  := p_source_148;
143591    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
143592    l_rec_acct_attrs.array_num_value(29)  := p_source_16;
143593    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
143594    l_rec_acct_attrs.array_date_value(30)  := p_source_82;
143595    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
143596    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
143597    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
143598    l_rec_acct_attrs.array_date_value(32)  := p_source_84;
143599    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
143600    l_rec_acct_attrs.array_char_value(33)  := p_source_85;
143601    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
143602    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
143603    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
143604    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
143605    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
143606    l_rec_acct_attrs.array_char_value(36)  := p_source_88;
143607    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
143608    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_89);
143609    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
143610    l_rec_acct_attrs.array_char_value(38)  := p_source_60;
143611    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
143612    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
143613    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
143614    l_rec_acct_attrs.array_num_value(40)  := p_source_91;
143615    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
143616    l_rec_acct_attrs.array_num_value(41)  := p_source_92;
143617    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
143618    l_rec_acct_attrs.array_num_value(42)  := p_source_93;
143619    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
143620    l_rec_acct_attrs.array_num_value(43)  := p_source_94;
143621    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
143622    l_rec_acct_attrs.array_num_value(44)  := p_source_95;
143623 
143624    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
143625    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
143626 
143630    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
143627    ---------------------------------------------------------------------------------------------------------------
143628    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
143629    ---------------------------------------------------------------------------------------------------------------
143631 
143632    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143633    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143634 
143635    IF xla_accounting_cache_pkg.GetValueChar
143636          (p_source_code         => 'LEDGER_CATEGORY_CODE'
143637          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
143638    AND l_bflow_method_code = 'PRIOR_ENTRY'
143639 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
143640    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
143641          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
143642        )
143643    THEN
143644          xla_ae_lines_pkg.BflowUpgEntry
143645            (p_business_method_code    => l_bflow_method_code
143646            ,p_business_class_code     => l_bflow_class_code
143647            ,p_balance_type            => l_balance_type_code);
143648    ELSE
143649       NULL;
143650 -- No business flow processing for business flow method of NONE.
143651    END IF;
143652 
143653    --
143654    -- call analytical criteria
143655    --
143656    
143657    --
143658    -- call description
143659    --
143660    
143661 xla_ae_lines_pkg.SetLineDescription(
143662    p_ae_header_id => l_ae_header_id
143663   ,p_description  => Description_2 (
143664      p_application_id         => p_application_id
143665    , p_ae_header_id           => l_ae_header_id 
143666 , p_source_1 => p_source_1
143667    )
143668 );
143669 
143670 
143671    --
143672    -- call ADRs
143673    -- Bug 4922099
143674    --
143675    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143676         (NVL(l_actual_upg_option, 'N') = 'O') OR
143677         (NVL(l_enc_upg_option, 'N') = 'O')
143678       )
143679    THEN
143680    NULL;
143681    --
143682    --
143683    
143684   l_ccid := AcctDerRule_48(
143685            p_application_id           => p_application_id
143686          , p_ae_header_id             => l_ae_header_id 
143687 , p_source_10 => p_source_10
143688 , p_source_10_meaning => p_source_10_meaning
143689 , p_source_25 => p_source_25
143690 , p_source_39 => p_source_39
143691          , x_transaction_coa_id       => l_adr_transaction_coa_id
143692          , x_accounting_coa_id        => l_adr_accounting_coa_id
143693          , x_value_type_code          => l_adr_value_type_code
143694          , p_side                     => 'NA'
143695    );
143696 
143697    xla_ae_lines_pkg.set_ccid(
143698     p_code_combination_id          => l_ccid
143699   , p_value_type_code              => l_adr_value_type_code
143700   , p_transaction_coa_id           => l_adr_transaction_coa_id
143701   , p_accounting_coa_id            => l_adr_accounting_coa_id
143702   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143703   , p_adr_type_code                => 'S'
143704   , p_component_type               => l_component_type
143705   , p_component_code               => l_component_code
143706   , p_component_type_code          => l_component_type_code
143707   , p_component_appl_id            => l_component_appl_id
143708   , p_amb_context_code             => l_amb_context_code
143709   , p_side                         => 'NA'
143710   );
143711 
143712 
143713    l_segment := AcctDerRule_14(
143714            p_application_id           => p_application_id
143715          , p_ae_header_id             => l_ae_header_id 
143716 , p_source_10 => p_source_10
143717 , p_source_10_meaning => p_source_10_meaning
143718 , p_source_25 => p_source_25
143719          , x_transaction_coa_id       => l_adr_transaction_coa_id
143720          , x_accounting_coa_id        => l_adr_accounting_coa_id
143721          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143722          , x_flex_value_set_id        => l_adr_flex_value_set_id
143723          , x_value_type_code          => l_adr_value_type_code
143724          , x_value_combination_id     => l_adr_value_combination_id
143725          , x_value_segment_code       => l_adr_value_segment_code
143726          , p_side                     => 'NA'
143727          , p_override_seg_flag        => 'Y'
143728    );
143729 
143730    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143731 
143732       xla_ae_lines_pkg.set_segment(
143733           p_to_segment_code         => 'GL_ACCOUNT'
143734         , p_segment_value           => l_segment
143735         , p_from_segment_code       => l_adr_value_segment_code
143736         , p_from_combination_id     => l_adr_value_combination_id
143737         , p_value_type_code         => l_adr_value_type_code
143738         , p_transaction_coa_id      => l_adr_transaction_coa_id
143739         , p_accounting_coa_id       => l_adr_accounting_coa_id
143740         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143741         , p_flex_value_set_id       => l_adr_flex_value_set_id
143742         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143743         , p_adr_type_code           => 'S'
143744         , p_component_type          => l_component_type
143745         , p_component_code          => l_component_code
143746         , p_component_type_code     => l_component_type_code
143747         , p_component_appl_id       => l_component_appl_id
143748         , p_amb_context_code        => l_amb_context_code
143749         , p_entity_code             => 'AP_INVOICES'
143750         , p_event_class_code        => 'INVOICES'
143751         , p_side                    => 'NA'
143752         );
143753 
143757            p_application_id           => p_application_id
143754   END IF;
143755 
143756    l_segment := AcctDerRule_26(
143758          , p_ae_header_id             => l_ae_header_id 
143759 , p_source_10 => p_source_10
143760 , p_source_10_meaning => p_source_10_meaning
143761 , p_source_39 => p_source_39
143762          , x_transaction_coa_id       => l_adr_transaction_coa_id
143763          , x_accounting_coa_id        => l_adr_accounting_coa_id
143764          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143765          , x_flex_value_set_id        => l_adr_flex_value_set_id
143766          , x_value_type_code          => l_adr_value_type_code
143767          , x_value_combination_id     => l_adr_value_combination_id
143768          , x_value_segment_code       => l_adr_value_segment_code
143769          , p_side                     => 'NA'
143770          , p_override_seg_flag        => 'Y'
143771    );
143772 
143773    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143774 
143775       xla_ae_lines_pkg.set_segment(
143776           p_to_segment_code         => 'GL_BALANCING'
143777         , p_segment_value           => l_segment
143778         , p_from_segment_code       => l_adr_value_segment_code
143779         , p_from_combination_id     => l_adr_value_combination_id
143780         , p_value_type_code         => l_adr_value_type_code
143781         , p_transaction_coa_id      => l_adr_transaction_coa_id
143782         , p_accounting_coa_id       => l_adr_accounting_coa_id
143783         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143784         , p_flex_value_set_id       => l_adr_flex_value_set_id
143785         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
143786         , p_adr_type_code           => 'S'
143787         , p_component_type          => l_component_type
143788         , p_component_code          => l_component_code
143789         , p_component_type_code     => l_component_type_code
143790         , p_component_appl_id       => l_component_appl_id
143791         , p_amb_context_code        => l_amb_context_code
143792         , p_entity_code             => 'AP_INVOICES'
143793         , p_event_class_code        => 'INVOICES'
143794         , p_side                    => 'NA'
143795         );
143796 
143797   END IF;
143798 
143799    --
143800    --
143801    END IF;
143802    --
143803    -- Bug 4922099
143804    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
143805           (NVL(l_enc_upg_option, 'N') = 'O')
143806         ) AND
143807         (l_bflow_method_code = 'PRIOR_ENTRY')
143808       )
143809    THEN
143810       IF
143811       --
143812       1 = 2
143813       --
143814       THEN
143815       xla_accounting_err_pkg.build_message
143816                                     (p_appli_s_name            => 'XLA'
143817                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143818                                     ,p_token_1                 => 'LINE_NUMBER'
143819                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
143820                                     ,p_token_2                 => 'LINE_TYPE_NAME'
143821                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
143822                                                                              l_component_type
143823                                                                             ,l_component_code
143824                                                                             ,l_component_type_code
143825                                                                             ,l_component_appl_id
143826                                                                             ,l_amb_context_code
143827                                                                             ,l_entity_code
143828                                                                             ,l_event_class_code
143829                                                                            )
143830                                     ,p_token_3                 => 'OWNER'
143831                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
143832                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
143833                                                                           ,p_lookup_code    => l_component_type_code
143834                                                                          )
143835                                     ,p_token_4                 => 'PRODUCT_NAME'
143836                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
143837                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
143838                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
143839                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
143840                                     ,p_ae_header_id            =>  NULL
143841                                        );
143842 
143843         IF (C_LEVEL_ERROR>= g_log_level) THEN
143844                  trace
143845                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143846                       ,p_level    => C_LEVEL_ERROR
143847                       ,p_module   => l_log_module);
143848         END IF;
143849       END IF;
143850    END IF;
143851    --
143852    --
143853    ------------------------------------------------------------------------------------------------
143854    -- 4219869 Business Flow
143855    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
143856    -- Prior Entry.  Currently, the following code is always generated.
143857    ------------------------------------------------------------------------------------------------
143858    XLA_AE_LINES_PKG.ValidateCurrentLine;
143859 
143863    ------------------------------------------------------------------------------------
143860    ------------------------------------------------------------------------------------
143861    -- 4219869 Business Flow
143862    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
143864    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143865 
143866    ----------------------------------------------------------------------------------
143867    -- 4219869 Business Flow
143868    -- Update journal entry status -- Need to generate this within IF <condition>
143869    ----------------------------------------------------------------------------------
143870    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143871          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
143872          ,p_balance_type_code => l_balance_type_code
143873          );
143874 
143875    -------------------------------------------------------------------------------------------
143876    -- 4262811 - Generate the Accrual Reversal lines
143877    -------------------------------------------------------------------------------------------
143878    BEGIN
143879       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
143880                               (g_array_event(p_event_id).array_value_num('header_index'));
143881       IF l_acc_rev_flag IS NULL THEN
143882          l_acc_rev_flag := 'N';
143883       END IF;
143884    EXCEPTION
143885       WHEN OTHERS THEN
143886          l_acc_rev_flag := 'N';
143887    END;
143888    --
143889    IF (l_acc_rev_flag = 'Y') THEN
143890 
143891        -- 4645092  ------------------------------------------------------------------------------
143892        -- To allow MPA report to determine if it should generate report process
143893        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
143894        ------------------------------------------------------------------------------------------
143895 
143896        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
143897        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
143898    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
143899    -- call ADRs
143900    -- Bug 4922099
143901    --
143902    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143903         (NVL(l_actual_upg_option, 'N') = 'O') OR
143904         (NVL(l_enc_upg_option, 'N') = 'O')
143905       )
143906    THEN
143907    NULL;
143908    --
143909    --
143910    
143911   l_ccid := AcctDerRule_48(
143912            p_application_id           => p_application_id
143913          , p_ae_header_id             => l_ae_header_id 
143914 , p_source_10 => p_source_10
143915 , p_source_10_meaning => p_source_10_meaning
143916 , p_source_25 => p_source_25
143917 , p_source_39 => p_source_39
143918          , x_transaction_coa_id       => l_adr_transaction_coa_id
143919          , x_accounting_coa_id        => l_adr_accounting_coa_id
143920          , x_value_type_code          => l_adr_value_type_code
143921          , p_side                     => 'NA'
143922    );
143923 
143924    xla_ae_lines_pkg.set_ccid(
143925     p_code_combination_id          => l_ccid
143926   , p_value_type_code              => l_adr_value_type_code
143927   , p_transaction_coa_id           => l_adr_transaction_coa_id
143928   , p_accounting_coa_id            => l_adr_accounting_coa_id
143929   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143930   , p_adr_type_code                => 'S'
143931   , p_component_type               => l_component_type
143932   , p_component_code               => l_component_code
143933   , p_component_type_code          => l_component_type_code
143934   , p_component_appl_id            => l_component_appl_id
143935   , p_amb_context_code             => l_amb_context_code
143936   , p_side                         => 'NA'
143937   );
143938 
143939 
143940    l_segment := AcctDerRule_14(
143941            p_application_id           => p_application_id
143942          , p_ae_header_id             => l_ae_header_id 
143943 , p_source_10 => p_source_10
143944 , p_source_10_meaning => p_source_10_meaning
143945 , p_source_25 => p_source_25
143946          , x_transaction_coa_id       => l_adr_transaction_coa_id
143947          , x_accounting_coa_id        => l_adr_accounting_coa_id
143948          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143949          , x_flex_value_set_id        => l_adr_flex_value_set_id
143950          , x_value_type_code          => l_adr_value_type_code
143951          , x_value_combination_id     => l_adr_value_combination_id
143952          , x_value_segment_code       => l_adr_value_segment_code
143953          , p_side                     => 'NA'
143954          , p_override_seg_flag        => 'Y'
143955    );
143956 
143957    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143958 
143959       xla_ae_lines_pkg.set_segment(
143960           p_to_segment_code         => 'GL_ACCOUNT'
143961         , p_segment_value           => l_segment
143962         , p_from_segment_code       => l_adr_value_segment_code
143963         , p_from_combination_id     => l_adr_value_combination_id
143964         , p_value_type_code         => l_adr_value_type_code
143965         , p_transaction_coa_id      => l_adr_transaction_coa_id
143966         , p_accounting_coa_id       => l_adr_accounting_coa_id
143967         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143968         , p_flex_value_set_id       => l_adr_flex_value_set_id
143969         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143970         , p_adr_type_code           => 'S'
143971         , p_component_type          => l_component_type
143972         , p_component_code          => l_component_code
143973         , p_component_type_code     => l_component_type_code
143974         , p_component_appl_id       => l_component_appl_id
143975         , p_amb_context_code        => l_amb_context_code
143976         , p_entity_code             => 'AP_INVOICES'
143977         , p_event_class_code        => 'INVOICES'
143981   END IF;
143978         , p_side                    => 'NA'
143979         );
143980 
143982 
143983    l_segment := AcctDerRule_26(
143984            p_application_id           => p_application_id
143985          , p_ae_header_id             => l_ae_header_id 
143986 , p_source_10 => p_source_10
143987 , p_source_10_meaning => p_source_10_meaning
143988 , p_source_39 => p_source_39
143989          , x_transaction_coa_id       => l_adr_transaction_coa_id
143990          , x_accounting_coa_id        => l_adr_accounting_coa_id
143991          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143992          , x_flex_value_set_id        => l_adr_flex_value_set_id
143993          , x_value_type_code          => l_adr_value_type_code
143994          , x_value_combination_id     => l_adr_value_combination_id
143995          , x_value_segment_code       => l_adr_value_segment_code
143996          , p_side                     => 'NA'
143997          , p_override_seg_flag        => 'Y'
143998    );
143999 
144000    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
144001 
144002       xla_ae_lines_pkg.set_segment(
144003           p_to_segment_code         => 'GL_BALANCING'
144004         , p_segment_value           => l_segment
144005         , p_from_segment_code       => l_adr_value_segment_code
144006         , p_from_combination_id     => l_adr_value_combination_id
144007         , p_value_type_code         => l_adr_value_type_code
144008         , p_transaction_coa_id      => l_adr_transaction_coa_id
144009         , p_accounting_coa_id       => l_adr_accounting_coa_id
144010         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
144011         , p_flex_value_set_id       => l_adr_flex_value_set_id
144012         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
144013         , p_adr_type_code           => 'S'
144014         , p_component_type          => l_component_type
144015         , p_component_code          => l_component_code
144016         , p_component_type_code     => l_component_type_code
144017         , p_component_appl_id       => l_component_appl_id
144018         , p_amb_context_code        => l_amb_context_code
144019         , p_entity_code             => 'AP_INVOICES'
144020         , p_event_class_code        => 'INVOICES'
144021         , p_side                    => 'NA'
144022         );
144023 
144024   END IF;
144025 
144026    --
144027    --
144028    END IF;
144029 
144030        --
144031        -- Update the line information that should be overwritten
144032        --
144033        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
144034                                          p_header_num   => 1);
144035        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
144036 
144037        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
144038 
144039        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
144040           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
144041        END IF;
144042 
144043       --
144044       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
144045       --
144046       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
144047           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
144048       ELSE
144049           ---------------------------------------------------------------------------------------------------
144050           -- 4262811a Switch Sign
144051           ---------------------------------------------------------------------------------------------------
144052           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
144053           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144054                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144055           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144056                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144057           -- 5132302
144058           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
144059                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144060 
144061       END IF;
144062 
144063       -- 4955764
144064       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
144065       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
144066 
144067 
144068       XLA_AE_LINES_PKG.ValidateCurrentLine;
144069       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144070 
144071       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144072                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
144073                ,p_balance_type_code => l_balance_type_code);
144074 
144075    END IF;
144076 
144077    -----------------------------------------------------------------------------------------
144078    -- 4262811 Multiperiod Accounting
144079    -----------------------------------------------------------------------------------------
144080      -- No MPA option is assigned.
144081 
144082 
144083 END IF;
144084 END IF;
144085 --
144086 
144087 --
144088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144089    trace
144090       (p_msg      => 'END of AcctLineType_237'
144091       ,p_level    => C_LEVEL_PROCEDURE
144092       ,p_module   => l_log_module);
144093 END IF;
144094 --
144095 EXCEPTION
144096   WHEN xla_exceptions_pkg.application_exception THEN
144097       RAISE;
144098   WHEN OTHERS THEN
144099        xla_exceptions_pkg.raise_message
144103 
144100            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_237');
144101 END AcctLineType_237;
144102 --
144104 ---------------------------------------
144105 --
144106 -- PRIVATE FUNCTION
144107 --         AcctLineType_238
144108 --
144109 ---------------------------------------
144110 PROCEDURE AcctLineType_238 (
144111   p_application_id        IN NUMBER
144112  ,p_event_id              IN NUMBER
144113  ,p_calculate_acctd_flag  IN VARCHAR2
144114  ,p_calculate_g_l_flag    IN VARCHAR2
144115  ,p_actual_flag           IN OUT VARCHAR2
144116  ,p_balance_type_code     OUT VARCHAR2
144117  ,p_gain_or_loss_ref      OUT VARCHAR2
144118  
144119 --Invoice Distribution Description
144120  , p_source_1            IN VARCHAR2
144121 --Automatic Offsets Value
144122  , p_source_10            IN VARCHAR2
144123  , p_source_10_meaning    IN VARCHAR2
144124 --Invoice Distribution Ledger Amount
144125  , p_source_16            IN NUMBER
144126 --Invoice Distribution Account
144127  , p_source_25            IN NUMBER
144128 --Invoice Distribution Type
144129  , p_source_28            IN VARCHAR2
144130  , p_source_28_meaning    IN VARCHAR2
144131 --Withholding Related Distribution Account
144132  , p_source_39            IN NUMBER
144133 --Accounting Reversal Indicator
144134  , p_source_58            IN VARCHAR2
144135 --Distribution Link Type
144136  , p_source_60            IN VARCHAR2
144137 --Allocation to Main Distribution Identifier
144138  , p_source_62            IN NUMBER
144139 --Invoice Identifier
144140  , p_source_63            IN NUMBER
144141 --Invoice Distribution Identifier
144142  , p_source_69            IN NUMBER
144143 --Payables Encumbrance Upgrade Credit Account
144144  , p_source_70            IN NUMBER
144145 --Payables Encumbrance Upgrade Credit Amount
144146  , p_source_71            IN NUMBER
144147 --Invoice Currency Code
144148  , p_source_72            IN VARCHAR2
144149 --Payables Encumbrance Upgrade Credit Base Amount
144150  , p_source_73            IN NUMBER
144151 --Payables Encumbrance Upgrade Debit Account
144152  , p_source_74            IN NUMBER
144153 --Payables Encumbrance Upgrade Debit Amount
144154  , p_source_75            IN NUMBER
144155 --Payables Encumbrance Upgrade Debit Base Amount
144156  , p_source_76            IN NUMBER
144157 --Payables Encumbrance Upgrade Option
144158  , p_source_77            IN VARCHAR2
144159 --Invoice Distribution Amount
144160  , p_source_78            IN NUMBER
144161 --Deferred Accounting End Date
144162  , p_source_82            IN DATE
144163 --Deferred Accounting Option
144164  , p_source_83            IN VARCHAR2
144165 --Deferred Accounting Start Date
144166  , p_source_84            IN DATE
144167 --Override Accounted Amount Indicator
144168  , p_source_85            IN VARCHAR2
144169  , p_source_85_meaning    IN VARCHAR2
144170 --Invoice Supplier Identifier
144171  , p_source_86            IN NUMBER
144172 --Invoice Supplier Site Identifier
144173  , p_source_87            IN NUMBER
144174 --Third Party Type
144175  , p_source_88            IN VARCHAR2
144176 --Parent Reversal Identifier
144177  , p_source_89            IN NUMBER
144178 --Invoice Distribution Statistical Amount
144179  , p_source_90            IN NUMBER
144180 --Invoice Distribution Tax Line Identifier
144181  , p_source_91            IN NUMBER
144182 --Invoice Distribution Tax Distribution Identifier from Tax
144183  , p_source_92            IN NUMBER
144184 --Invoice Distribution Summary Tax Line Identifier
144185  , p_source_93            IN NUMBER
144186 --Payables Upgrade Credit Encumbrance Type Identifier
144187  , p_source_94            IN NUMBER
144188 --Payables Upgrade Debit Encumbrance Type Identifier
144189  , p_source_95            IN NUMBER
144190 --Business Flow Accounts Payable Application Identifier
144191  , p_source_96            IN NUMBER
144192 --Business Flow Invoice Distribution Type
144193  , p_source_97            IN VARCHAR2
144194 --Business Flow Invoice Entity Code
144195  , p_source_98            IN VARCHAR2
144196 --Business Flow Invoice Distribution Identifier
144197  , p_source_99            IN NUMBER
144198 --Business Flow Invoice Identifier
144199  , p_source_100            IN NUMBER
144200 --Invoice Exchange Date
144201  , p_source_146            IN DATE
144202 --Invoice Exchange Rate
144203  , p_source_147            IN NUMBER
144204 --Invoice Exchange Rate Type
144205  , p_source_148            IN VARCHAR2
144206 )
144207 IS
144208 
144209 l_component_type              VARCHAR2(80);
144210 l_component_code              VARCHAR2(30);
144211 l_component_type_code         VARCHAR2(1);
144212 l_component_appl_id           INTEGER;
144213 l_amb_context_code            VARCHAR2(30);
144214 l_entity_code                 VARCHAR2(30);
144215 l_event_class_code            VARCHAR2(30);
144216 l_ae_header_id                NUMBER;
144217 l_event_type_code             VARCHAR2(30);
144218 l_line_definition_code        VARCHAR2(30);
144219 l_line_definition_owner_code  VARCHAR2(1);
144220 --
144221 -- adr variables
144222 l_segment                     VARCHAR2(30);
144223 l_ccid                        NUMBER;
144224 l_adr_transaction_coa_id      NUMBER;
144225 l_adr_accounting_coa_id       NUMBER;
144226 l_adr_flexfield_segment_code  VARCHAR2(30);
144227 l_adr_flex_value_set_id       NUMBER;
144228 l_adr_value_type_code         VARCHAR2(30);
144229 l_adr_value_combination_id    NUMBER;
144230 l_adr_value_segment_code      VARCHAR2(30);
144231 
144232 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
144233 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
144234 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
144235 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
144236 
144237 -- 4262811 Variables ------------------------------------------------------------------------------------------
144238 l_entered_amt_idx             NUMBER;
144242 l_tmp_amt                     NUMBER;
144239 l_accted_amt_idx              NUMBER;
144240 l_acc_rev_flag                VARCHAR2(1);
144241 l_accrual_line_num            NUMBER;
144243 l_acc_rev_natural_side_code   VARCHAR2(1);
144244 
144245 l_num_entries                 NUMBER;
144246 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
144247 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
144248 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
144249 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
144250 l_recog_line_1                NUMBER;
144251 l_recog_line_2                NUMBER;
144252 
144253 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
144254 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
144255 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
144256 
144257 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
144258 
144259 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
144260 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
144261 
144262 ---------------------------------------------------------------------------------------------------------------
144263 
144264 
144265 --
144266 -- bulk performance
144267 --
144268 l_balance_type_code           VARCHAR2(1);
144269 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
144270 l_log_module                  VARCHAR2(240);
144271 
144272 --
144273 -- Upgrade strategy
144274 --
144275 l_actual_upg_option           VARCHAR2(1);
144276 l_enc_upg_option           VARCHAR2(1);
144277 
144278 --
144279 BEGIN
144280 --
144281 IF g_log_enabled THEN
144282       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_238';
144283 END IF;
144284 --
144285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144286 
144287       trace
144288          (p_msg      => 'BEGIN of AcctLineType_238'
144289          ,p_level    => C_LEVEL_PROCEDURE
144290          ,p_module   => l_log_module);
144291 
144292 END IF;
144293 --
144294 l_component_type             := 'AMB_JLT';
144295 l_component_code             := 'AP_WITHHOLD_TAX_PREPAY';
144296 l_component_type_code        := 'S';
144297 l_component_appl_id          :=  200;
144298 l_amb_context_code           := 'DEFAULT';
144299 l_entity_code                := 'AP_INVOICES';
144300 l_event_class_code           := 'PREPAYMENTS';
144301 l_event_type_code            := 'PREPAYMENTS_ALL';
144302 l_line_definition_owner_code := 'S';
144303 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
144304 --
144305 l_balance_type_code          := 'A';
144306 l_segment                     := NULL;
144307 l_ccid                        := NULL;
144308 l_adr_transaction_coa_id      := NULL;
144309 l_adr_accounting_coa_id       := NULL;
144310 l_adr_flexfield_segment_code  := NULL;
144311 l_adr_flex_value_set_id       := NULL;
144312 l_adr_value_type_code         := NULL;
144313 l_adr_value_combination_id    := NULL;
144314 l_adr_value_segment_code      := NULL;
144315 
144316 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
144317 l_bflow_class_code           := '';    -- 4219869 Business Flow
144318 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
144319 l_budgetary_control_flag     := 'N';
144320 
144321 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
144322 l_bflow_applied_to_amt       := NULL; -- 5132302
144323 l_entered_amt_idx            := NULL;          -- 4262811
144324 l_accted_amt_idx             := NULL;          -- 4262811
144325 l_acc_rev_flag               := NULL;          -- 4262811
144326 l_accrual_line_num           := NULL;          -- 4262811
144327 l_tmp_amt                    := NULL;          -- 4262811
144328 --
144329  
144330 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
144331     l_balance_type_code <> 'B' THEN
144332 IF NVL(p_source_28,'
144333 ') =  'AWT'
144334  THEN 
144335 
144336    --
144337    XLA_AE_LINES_PKG.SetNewLine;
144338 
144339    p_balance_type_code          := l_balance_type_code;
144340    -- set the flag so later we will know whether the gain loss line needs to be created
144341    
144342    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
144343      p_actual_flag :='A';
144344    END IF;
144345 
144346    --
144347    -- bulk performance
144348    --
144349    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
144350                                       p_header_num   => 0); -- 4262811
144351    --
144352    -- set accounting line options
144353    --
144354    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
144355            p_natural_side_code          => 'D'
144356          , p_gain_or_loss_flag          => 'N'
144357          , p_gl_transfer_mode_code      => 'S'
144358          , p_acct_entry_type_code       => 'A'
144359          , p_switch_side_flag           => 'Y'
144360          , p_merge_duplicate_code       => 'A'
144361          );
144362    --
144363    l_acc_rev_natural_side_code := 'C';  -- 4262811
144364    -- 
144365    --
144366    -- set accounting line type info
144367    --
144368    xla_ae_lines_pkg.SetAcctLineType
144369       (p_component_type             => l_component_type
144370       ,p_event_type_code            => l_event_type_code
144371       ,p_line_definition_owner_code => l_line_definition_owner_code
144372       ,p_line_definition_code       => l_line_definition_code
144373       ,p_accounting_line_code       => l_component_code
144374       ,p_accounting_line_type_code  => l_component_type_code
144375       ,p_accounting_line_appl_id    => l_component_appl_id
144376       ,p_amb_context_code           => l_amb_context_code
144377       ,p_entity_code                => l_entity_code
144381    --
144378       ,p_event_class_code           => l_event_class_code);
144379    --
144380    -- set accounting class
144382    xla_ae_lines_pkg.SetAcctClass(
144383            p_accounting_class_code  => 'AWT'
144384          , p_ae_header_id           => l_ae_header_id
144385          );
144386 
144387    --
144388    -- set rounding class
144389    --
144390    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
144391                       'AWT';
144392 
144393    --
144394    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
144395    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
144396    --
144397    -- bulk performance
144398    --
144399    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
144400 
144401    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
144402       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
144403 
144404    -- 4955764
144405    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
144406       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
144407 
144408    -- 4458381 Public Sector Enh
144409    
144410    --
144411    -- set accounting attributes for the line type
144412    --
144413    l_entered_amt_idx := 23;
144414    l_accted_amt_idx  := 28;
144415    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
144416    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
144417    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
144418    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
144419    l_rec_acct_attrs.array_num_value(2)  := 
144420 xla_ae_sources_pkg.GetSystemSourceNum(
144421    p_source_code           => 'XLA_EVENT_APPL_ID'
144422  , p_source_type_code      => 'Y'
144423  , p_source_application_id =>  602
144424 );
144425    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
144426    l_rec_acct_attrs.array_char_value(3)  := p_source_60;
144427    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
144428    l_rec_acct_attrs.array_char_value(4)  := 
144429 xla_ae_sources_pkg.GetSystemSourceChar(
144430    p_source_code           => 'XLA_ENTITY_CODE'
144431  , p_source_type_code      => 'Y'
144432  , p_source_application_id =>  602
144433 );
144434    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
144435    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_62);
144436    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
144437    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_63);
144438    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
144439    l_rec_acct_attrs.array_num_value(7)  := p_source_96;
144440    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
144441    l_rec_acct_attrs.array_char_value(8)  := p_source_97;
144442    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
144443    l_rec_acct_attrs.array_char_value(9)  := p_source_98;
144444    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
144445    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_99);
144446    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
144447    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_100);
144448    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
144449    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_69);
144450    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
144451    l_rec_acct_attrs.array_char_value(13)  := p_source_60;
144452    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
144453    l_rec_acct_attrs.array_num_value(14)  := p_source_70;
144454    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
144455    l_rec_acct_attrs.array_num_value(15)  := p_source_71;
144456    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
144457    l_rec_acct_attrs.array_char_value(16)  := p_source_72;
144458    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
144459    l_rec_acct_attrs.array_num_value(17)  := p_source_73;
144460    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
144461    l_rec_acct_attrs.array_num_value(18)  := p_source_74;
144462    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
144463    l_rec_acct_attrs.array_num_value(19)  := p_source_75;
144464    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
144465    l_rec_acct_attrs.array_char_value(20)  := p_source_72;
144466    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
144467    l_rec_acct_attrs.array_num_value(21)  := p_source_76;
144468    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
144469    l_rec_acct_attrs.array_char_value(22)  := p_source_77;
144470    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
144471    l_rec_acct_attrs.array_num_value(23)  := p_source_78;
144472    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
144473    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
144474    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
144475    l_rec_acct_attrs.array_date_value(25)  := p_source_146;
144476    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
144477    l_rec_acct_attrs.array_num_value(26)  := p_source_147;
144478    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
144479    l_rec_acct_attrs.array_char_value(27)  := p_source_148;
144480    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
144481    l_rec_acct_attrs.array_num_value(28)  := p_source_16;
144482    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
144483    l_rec_acct_attrs.array_date_value(29)  := p_source_82;
144484    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
144488    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
144485    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
144486    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
144487    l_rec_acct_attrs.array_date_value(31)  := p_source_84;
144489    l_rec_acct_attrs.array_char_value(32)  := p_source_85;
144490    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
144491    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
144492    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
144493    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
144494    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
144495    l_rec_acct_attrs.array_char_value(35)  := p_source_88;
144496    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
144497    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_89);
144498    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
144499    l_rec_acct_attrs.array_char_value(37)  := p_source_60;
144500    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
144501    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
144502    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
144503    l_rec_acct_attrs.array_num_value(39)  := p_source_91;
144504    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
144505    l_rec_acct_attrs.array_num_value(40)  := p_source_92;
144506    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
144507    l_rec_acct_attrs.array_num_value(41)  := p_source_93;
144508    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
144509    l_rec_acct_attrs.array_num_value(42)  := p_source_94;
144510    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
144511    l_rec_acct_attrs.array_num_value(43)  := p_source_95;
144512 
144513    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
144514    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
144515 
144516    ---------------------------------------------------------------------------------------------------------------
144517    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
144518    ---------------------------------------------------------------------------------------------------------------
144519    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
144520 
144521    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
144522    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
144523 
144524    IF xla_accounting_cache_pkg.GetValueChar
144525          (p_source_code         => 'LEDGER_CATEGORY_CODE'
144526          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
144527    AND l_bflow_method_code = 'PRIOR_ENTRY'
144528 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
144529    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
144530          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
144531        )
144532    THEN
144533          xla_ae_lines_pkg.BflowUpgEntry
144534            (p_business_method_code    => l_bflow_method_code
144535            ,p_business_class_code     => l_bflow_class_code
144536            ,p_balance_type            => l_balance_type_code);
144537    ELSE
144538       NULL;
144539 -- No business flow processing for business flow method of NONE.
144540    END IF;
144541 
144542    --
144543    -- call analytical criteria
144544    --
144545    
144546    --
144547    -- call description
144548    --
144549    
144550 xla_ae_lines_pkg.SetLineDescription(
144551    p_ae_header_id => l_ae_header_id
144552   ,p_description  => Description_2 (
144553      p_application_id         => p_application_id
144554    , p_ae_header_id           => l_ae_header_id 
144555 , p_source_1 => p_source_1
144556    )
144557 );
144558 
144559 
144560    --
144561    -- call ADRs
144562    -- Bug 4922099
144563    --
144564    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
144565         (NVL(l_actual_upg_option, 'N') = 'O') OR
144566         (NVL(l_enc_upg_option, 'N') = 'O')
144567       )
144568    THEN
144569    NULL;
144570    --
144571    --
144572    
144573   l_ccid := AcctDerRule_48(
144574            p_application_id           => p_application_id
144575          , p_ae_header_id             => l_ae_header_id 
144576 , p_source_10 => p_source_10
144577 , p_source_10_meaning => p_source_10_meaning
144578 , p_source_25 => p_source_25
144579 , p_source_39 => p_source_39
144580          , x_transaction_coa_id       => l_adr_transaction_coa_id
144581          , x_accounting_coa_id        => l_adr_accounting_coa_id
144582          , x_value_type_code          => l_adr_value_type_code
144583          , p_side                     => 'NA'
144584    );
144585 
144586    xla_ae_lines_pkg.set_ccid(
144587     p_code_combination_id          => l_ccid
144588   , p_value_type_code              => l_adr_value_type_code
144589   , p_transaction_coa_id           => l_adr_transaction_coa_id
144590   , p_accounting_coa_id            => l_adr_accounting_coa_id
144591   , p_adr_code                     => 'AP_WH_DIST_ACCT'
144592   , p_adr_type_code                => 'S'
144593   , p_component_type               => l_component_type
144594   , p_component_code               => l_component_code
144595   , p_component_type_code          => l_component_type_code
144596   , p_component_appl_id            => l_component_appl_id
144597   , p_amb_context_code             => l_amb_context_code
144598   , p_side                         => 'NA'
144599   );
144600 
144601 
144602    l_segment := AcctDerRule_14(
144603            p_application_id           => p_application_id
144604          , p_ae_header_id             => l_ae_header_id 
144605 , p_source_10 => p_source_10
144609          , x_accounting_coa_id        => l_adr_accounting_coa_id
144606 , p_source_10_meaning => p_source_10_meaning
144607 , p_source_25 => p_source_25
144608          , x_transaction_coa_id       => l_adr_transaction_coa_id
144610          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
144611          , x_flex_value_set_id        => l_adr_flex_value_set_id
144612          , x_value_type_code          => l_adr_value_type_code
144613          , x_value_combination_id     => l_adr_value_combination_id
144614          , x_value_segment_code       => l_adr_value_segment_code
144615          , p_side                     => 'NA'
144616          , p_override_seg_flag        => 'Y'
144617    );
144618 
144619    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
144620 
144621       xla_ae_lines_pkg.set_segment(
144622           p_to_segment_code         => 'GL_ACCOUNT'
144623         , p_segment_value           => l_segment
144624         , p_from_segment_code       => l_adr_value_segment_code
144625         , p_from_combination_id     => l_adr_value_combination_id
144626         , p_value_type_code         => l_adr_value_type_code
144627         , p_transaction_coa_id      => l_adr_transaction_coa_id
144628         , p_accounting_coa_id       => l_adr_accounting_coa_id
144629         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
144630         , p_flex_value_set_id       => l_adr_flex_value_set_id
144631         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
144632         , p_adr_type_code           => 'S'
144633         , p_component_type          => l_component_type
144634         , p_component_code          => l_component_code
144635         , p_component_type_code     => l_component_type_code
144636         , p_component_appl_id       => l_component_appl_id
144637         , p_amb_context_code        => l_amb_context_code
144638         , p_entity_code             => 'AP_INVOICES'
144639         , p_event_class_code        => 'PREPAYMENTS'
144640         , p_side                    => 'NA'
144641         );
144642 
144643   END IF;
144644 
144645    l_segment := AcctDerRule_26(
144646            p_application_id           => p_application_id
144647          , p_ae_header_id             => l_ae_header_id 
144648 , p_source_10 => p_source_10
144649 , p_source_10_meaning => p_source_10_meaning
144650 , p_source_39 => p_source_39
144651          , x_transaction_coa_id       => l_adr_transaction_coa_id
144652          , x_accounting_coa_id        => l_adr_accounting_coa_id
144653          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
144654          , x_flex_value_set_id        => l_adr_flex_value_set_id
144655          , x_value_type_code          => l_adr_value_type_code
144656          , x_value_combination_id     => l_adr_value_combination_id
144657          , x_value_segment_code       => l_adr_value_segment_code
144658          , p_side                     => 'NA'
144659          , p_override_seg_flag        => 'Y'
144660    );
144661 
144662    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
144663 
144664       xla_ae_lines_pkg.set_segment(
144665           p_to_segment_code         => 'GL_BALANCING'
144666         , p_segment_value           => l_segment
144667         , p_from_segment_code       => l_adr_value_segment_code
144668         , p_from_combination_id     => l_adr_value_combination_id
144669         , p_value_type_code         => l_adr_value_type_code
144670         , p_transaction_coa_id      => l_adr_transaction_coa_id
144671         , p_accounting_coa_id       => l_adr_accounting_coa_id
144672         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
144673         , p_flex_value_set_id       => l_adr_flex_value_set_id
144674         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
144675         , p_adr_type_code           => 'S'
144676         , p_component_type          => l_component_type
144677         , p_component_code          => l_component_code
144678         , p_component_type_code     => l_component_type_code
144679         , p_component_appl_id       => l_component_appl_id
144680         , p_amb_context_code        => l_amb_context_code
144681         , p_entity_code             => 'AP_INVOICES'
144682         , p_event_class_code        => 'PREPAYMENTS'
144683         , p_side                    => 'NA'
144684         );
144685 
144686   END IF;
144687 
144688    --
144689    --
144690    END IF;
144691    --
144692    -- Bug 4922099
144693    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
144694           (NVL(l_enc_upg_option, 'N') = 'O')
144695         ) AND
144696         (l_bflow_method_code = 'PRIOR_ENTRY')
144697       )
144698    THEN
144699       IF
144700       --
144701       1 = 2
144702       --
144703       THEN
144704       xla_accounting_err_pkg.build_message
144705                                     (p_appli_s_name            => 'XLA'
144706                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
144707                                     ,p_token_1                 => 'LINE_NUMBER'
144708                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
144709                                     ,p_token_2                 => 'LINE_TYPE_NAME'
144710                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
144711                                                                              l_component_type
144712                                                                             ,l_component_code
144713                                                                             ,l_component_type_code
144714                                                                             ,l_component_appl_id
144715                                                                             ,l_amb_context_code
144716                                                                             ,l_entity_code
144717                                                                             ,l_event_class_code
144721                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
144718                                                                            )
144719                                     ,p_token_3                 => 'OWNER'
144720                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
144722                                                                           ,p_lookup_code    => l_component_type_code
144723                                                                          )
144724                                     ,p_token_4                 => 'PRODUCT_NAME'
144725                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
144726                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
144727                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
144728                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
144729                                     ,p_ae_header_id            =>  NULL
144730                                        );
144731 
144732         IF (C_LEVEL_ERROR>= g_log_level) THEN
144733                  trace
144734                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
144735                       ,p_level    => C_LEVEL_ERROR
144736                       ,p_module   => l_log_module);
144737         END IF;
144738       END IF;
144739    END IF;
144740    --
144741    --
144742    ------------------------------------------------------------------------------------------------
144743    -- 4219869 Business Flow
144744    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
144745    -- Prior Entry.  Currently, the following code is always generated.
144746    ------------------------------------------------------------------------------------------------
144747    XLA_AE_LINES_PKG.ValidateCurrentLine;
144748 
144749    ------------------------------------------------------------------------------------
144750    -- 4219869 Business Flow
144751    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
144752    ------------------------------------------------------------------------------------
144753    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144754 
144755    ----------------------------------------------------------------------------------
144756    -- 4219869 Business Flow
144757    -- Update journal entry status -- Need to generate this within IF <condition>
144758    ----------------------------------------------------------------------------------
144759    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144760          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
144761          ,p_balance_type_code => l_balance_type_code
144762          );
144763 
144764    -------------------------------------------------------------------------------------------
144765    -- 4262811 - Generate the Accrual Reversal lines
144766    -------------------------------------------------------------------------------------------
144767    BEGIN
144768       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
144769                               (g_array_event(p_event_id).array_value_num('header_index'));
144770       IF l_acc_rev_flag IS NULL THEN
144771          l_acc_rev_flag := 'N';
144772       END IF;
144773    EXCEPTION
144774       WHEN OTHERS THEN
144775          l_acc_rev_flag := 'N';
144776    END;
144777    --
144778    IF (l_acc_rev_flag = 'Y') THEN
144779 
144780        -- 4645092  ------------------------------------------------------------------------------
144781        -- To allow MPA report to determine if it should generate report process
144782        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
144783        ------------------------------------------------------------------------------------------
144784 
144785        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
144786        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
144787    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
144788    -- call ADRs
144789    -- Bug 4922099
144790    --
144791    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
144792         (NVL(l_actual_upg_option, 'N') = 'O') OR
144793         (NVL(l_enc_upg_option, 'N') = 'O')
144794       )
144795    THEN
144796    NULL;
144797    --
144798    --
144799    
144800   l_ccid := AcctDerRule_48(
144801            p_application_id           => p_application_id
144802          , p_ae_header_id             => l_ae_header_id 
144803 , p_source_10 => p_source_10
144804 , p_source_10_meaning => p_source_10_meaning
144805 , p_source_25 => p_source_25
144806 , p_source_39 => p_source_39
144807          , x_transaction_coa_id       => l_adr_transaction_coa_id
144808          , x_accounting_coa_id        => l_adr_accounting_coa_id
144809          , x_value_type_code          => l_adr_value_type_code
144810          , p_side                     => 'NA'
144811    );
144812 
144813    xla_ae_lines_pkg.set_ccid(
144814     p_code_combination_id          => l_ccid
144815   , p_value_type_code              => l_adr_value_type_code
144816   , p_transaction_coa_id           => l_adr_transaction_coa_id
144817   , p_accounting_coa_id            => l_adr_accounting_coa_id
144818   , p_adr_code                     => 'AP_WH_DIST_ACCT'
144819   , p_adr_type_code                => 'S'
144820   , p_component_type               => l_component_type
144821   , p_component_code               => l_component_code
144822   , p_component_type_code          => l_component_type_code
144823   , p_component_appl_id            => l_component_appl_id
144824   , p_amb_context_code             => l_amb_context_code
144825   , p_side                         => 'NA'
144826   );
144827 
144828 
144829    l_segment := AcctDerRule_14(
144833 , p_source_10_meaning => p_source_10_meaning
144830            p_application_id           => p_application_id
144831          , p_ae_header_id             => l_ae_header_id 
144832 , p_source_10 => p_source_10
144834 , p_source_25 => p_source_25
144835          , x_transaction_coa_id       => l_adr_transaction_coa_id
144836          , x_accounting_coa_id        => l_adr_accounting_coa_id
144837          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
144838          , x_flex_value_set_id        => l_adr_flex_value_set_id
144839          , x_value_type_code          => l_adr_value_type_code
144840          , x_value_combination_id     => l_adr_value_combination_id
144841          , x_value_segment_code       => l_adr_value_segment_code
144842          , p_side                     => 'NA'
144843          , p_override_seg_flag        => 'Y'
144844    );
144845 
144846    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
144847 
144848       xla_ae_lines_pkg.set_segment(
144849           p_to_segment_code         => 'GL_ACCOUNT'
144850         , p_segment_value           => l_segment
144851         , p_from_segment_code       => l_adr_value_segment_code
144852         , p_from_combination_id     => l_adr_value_combination_id
144853         , p_value_type_code         => l_adr_value_type_code
144854         , p_transaction_coa_id      => l_adr_transaction_coa_id
144855         , p_accounting_coa_id       => l_adr_accounting_coa_id
144856         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
144857         , p_flex_value_set_id       => l_adr_flex_value_set_id
144858         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
144859         , p_adr_type_code           => 'S'
144860         , p_component_type          => l_component_type
144861         , p_component_code          => l_component_code
144862         , p_component_type_code     => l_component_type_code
144863         , p_component_appl_id       => l_component_appl_id
144864         , p_amb_context_code        => l_amb_context_code
144865         , p_entity_code             => 'AP_INVOICES'
144866         , p_event_class_code        => 'PREPAYMENTS'
144867         , p_side                    => 'NA'
144868         );
144869 
144870   END IF;
144871 
144872    l_segment := AcctDerRule_26(
144873            p_application_id           => p_application_id
144874          , p_ae_header_id             => l_ae_header_id 
144875 , p_source_10 => p_source_10
144876 , p_source_10_meaning => p_source_10_meaning
144877 , p_source_39 => p_source_39
144878          , x_transaction_coa_id       => l_adr_transaction_coa_id
144879          , x_accounting_coa_id        => l_adr_accounting_coa_id
144880          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
144881          , x_flex_value_set_id        => l_adr_flex_value_set_id
144882          , x_value_type_code          => l_adr_value_type_code
144883          , x_value_combination_id     => l_adr_value_combination_id
144884          , x_value_segment_code       => l_adr_value_segment_code
144885          , p_side                     => 'NA'
144886          , p_override_seg_flag        => 'Y'
144887    );
144888 
144889    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
144890 
144891       xla_ae_lines_pkg.set_segment(
144892           p_to_segment_code         => 'GL_BALANCING'
144893         , p_segment_value           => l_segment
144894         , p_from_segment_code       => l_adr_value_segment_code
144895         , p_from_combination_id     => l_adr_value_combination_id
144896         , p_value_type_code         => l_adr_value_type_code
144897         , p_transaction_coa_id      => l_adr_transaction_coa_id
144898         , p_accounting_coa_id       => l_adr_accounting_coa_id
144899         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
144900         , p_flex_value_set_id       => l_adr_flex_value_set_id
144901         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
144902         , p_adr_type_code           => 'S'
144903         , p_component_type          => l_component_type
144904         , p_component_code          => l_component_code
144905         , p_component_type_code     => l_component_type_code
144906         , p_component_appl_id       => l_component_appl_id
144907         , p_amb_context_code        => l_amb_context_code
144908         , p_entity_code             => 'AP_INVOICES'
144909         , p_event_class_code        => 'PREPAYMENTS'
144910         , p_side                    => 'NA'
144911         );
144912 
144913   END IF;
144914 
144915    --
144916    --
144917    END IF;
144918 
144919        --
144920        -- Update the line information that should be overwritten
144921        --
144922        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
144923                                          p_header_num   => 1);
144924        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
144925 
144926        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
144927 
144928        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
144929           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
144930        END IF;
144931 
144932       --
144933       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
144934       --
144935       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
144936           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
144937       ELSE
144938           ---------------------------------------------------------------------------------------------------
144939           -- 4262811a Switch Sign
144940           ---------------------------------------------------------------------------------------------------
144941           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
144945                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144942           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144943                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144944           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
144946           -- 5132302
144947           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
144948                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
144949 
144950       END IF;
144951 
144952       -- 4955764
144953       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
144954       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
144955 
144956 
144957       XLA_AE_LINES_PKG.ValidateCurrentLine;
144958       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
144959 
144960       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
144961                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
144962                ,p_balance_type_code => l_balance_type_code);
144963 
144964    END IF;
144965 
144966    -----------------------------------------------------------------------------------------
144967    -- 4262811 Multiperiod Accounting
144968    -----------------------------------------------------------------------------------------
144969      -- No MPA option is assigned.
144970 
144971 
144972 END IF;
144973 END IF;
144974 --
144975 
144976 --
144977 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144978    trace
144979       (p_msg      => 'END of AcctLineType_238'
144980       ,p_level    => C_LEVEL_PROCEDURE
144981       ,p_module   => l_log_module);
144982 END IF;
144983 --
144984 EXCEPTION
144985   WHEN xla_exceptions_pkg.application_exception THEN
144986       RAISE;
144987   WHEN OTHERS THEN
144988        xla_exceptions_pkg.raise_message
144989            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_238');
144990 END AcctLineType_238;
144991 --
144992 
144993 ---------------------------------------
144994 --
144995 -- PRIVATE FUNCTION
144996 --         AcctLineType_239
144997 --
144998 ---------------------------------------
144999 PROCEDURE AcctLineType_239 (
145000   p_application_id        IN NUMBER
145001  ,p_event_id              IN NUMBER
145002  ,p_calculate_acctd_flag  IN VARCHAR2
145003  ,p_calculate_g_l_flag    IN VARCHAR2
145004  ,p_actual_flag           IN OUT VARCHAR2
145005  ,p_balance_type_code     OUT VARCHAR2
145006  ,p_gain_or_loss_ref      OUT VARCHAR2
145007  
145008 --Document Sequence Name
145009  , p_source_3            IN VARCHAR2
145010 --Payment Document Voucher Number
145011  , p_source_4            IN NUMBER
145012 --Payment Transaction Number
145013  , p_source_5            IN NUMBER
145014 --Payment Document Date
145015  , p_source_6            IN DATE
145016 --Bank Account Name
145017  , p_source_7            IN VARCHAR2
145018 --Payment Currency Code
145019  , p_source_8            IN VARCHAR2
145020 --Automatic Offsets Value
145021  , p_source_10            IN VARCHAR2
145022  , p_source_10_meaning    IN VARCHAR2
145023 --Bank Cash Account
145024  , p_source_12            IN NUMBER
145025 --Invoice Distribution Account
145026  , p_source_25            IN NUMBER
145027 --Invoice Distribution Type
145028  , p_source_28            IN VARCHAR2
145029  , p_source_28_meaning    IN VARCHAR2
145030 --Invoice Liability Account
145031  , p_source_29            IN NUMBER
145032 --Bank Cash Clearing Account
145033  , p_source_30            IN NUMBER
145034 --Federal Prior Year Flag
145035  , p_source_52            IN VARCHAR2
145036 --Invoice Distribution Encumbrance Amount
145037  , p_source_53            IN NUMBER
145038 --Accrue on Receipt Option
145039  , p_source_54            IN VARCHAR2
145040  , p_source_54_meaning    IN VARCHAR2
145041 --Payment Status Flag of the Invoice
145042  , p_source_55            IN VARCHAR2
145043 --Invoice Type Paid
145044  , p_source_56            IN VARCHAR2
145045  , p_source_56_meaning    IN VARCHAR2
145046 --When to Account for Payment Option
145047  , p_source_57            IN VARCHAR2
145048 --Accounting Reversal Indicator
145049  , p_source_58            IN VARCHAR2
145050 --Distribution Link Type
145051  , p_source_60            IN VARCHAR2
145052 --Override Accounted Amount Indicator
145053  , p_source_85            IN VARCHAR2
145054  , p_source_85_meaning    IN VARCHAR2
145055 --Third Party Type
145056  , p_source_88            IN VARCHAR2
145057 --Invoice Distribution Tax Line Identifier
145058  , p_source_91            IN NUMBER
145059 --Invoice Distribution Tax Distribution Identifier from Tax
145060  , p_source_92            IN NUMBER
145061 --Invoice Distribution Summary Tax Line Identifier
145062  , p_source_93            IN NUMBER
145063 --Business Flow Accounts Payable Application Identifier
145064  , p_source_96            IN NUMBER
145065 --Business Flow Invoice Distribution Type
145066  , p_source_97            IN VARCHAR2
145067 --Business Flow Invoice Entity Code
145068  , p_source_98            IN VARCHAR2
145069 --Business Flow Invoice Distribution Identifier
145070  , p_source_99            IN NUMBER
145071 --Business Flow Invoice Identifier
145072  , p_source_100            IN NUMBER
145073 --Payment Distribution Amount
145074  , p_source_102            IN NUMBER
145075 --Payment Distribution Identifier
145076  , p_source_107            IN NUMBER
145077 --Payment Supplier Identifier
145078  , p_source_113            IN NUMBER
145079 --Payment Supplier Site Identifier
145080  , p_source_114            IN NUMBER
145081 --Payment Distribution Reversed Identifier
145082  , p_source_115            IN NUMBER
145086  , p_source_120            IN DATE
145083 --Payment Distribution (Payment Rate) Ledger Amount
145084  , p_source_118            IN NUMBER
145085 --Payment Exchange Date
145087 --Payment Exchange Rate
145088  , p_source_121            IN NUMBER
145089 --Payment Exchange Rate Type
145090  , p_source_122            IN VARCHAR2
145091 --Invoice Distribution Amount of the Payment Distribution
145092  , p_source_127            IN NUMBER
145093 )
145094 IS
145095 
145096 l_component_type              VARCHAR2(80);
145097 l_component_code              VARCHAR2(30);
145098 l_component_type_code         VARCHAR2(1);
145099 l_component_appl_id           INTEGER;
145100 l_amb_context_code            VARCHAR2(30);
145101 l_entity_code                 VARCHAR2(30);
145102 l_event_class_code            VARCHAR2(30);
145103 l_ae_header_id                NUMBER;
145104 l_event_type_code             VARCHAR2(30);
145105 l_line_definition_code        VARCHAR2(30);
145106 l_line_definition_owner_code  VARCHAR2(1);
145107 --
145108 -- adr variables
145109 l_segment                     VARCHAR2(30);
145110 l_ccid                        NUMBER;
145111 l_adr_transaction_coa_id      NUMBER;
145112 l_adr_accounting_coa_id       NUMBER;
145113 l_adr_flexfield_segment_code  VARCHAR2(30);
145114 l_adr_flex_value_set_id       NUMBER;
145115 l_adr_value_type_code         VARCHAR2(30);
145116 l_adr_value_combination_id    NUMBER;
145117 l_adr_value_segment_code      VARCHAR2(30);
145118 
145119 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
145120 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
145121 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
145122 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
145123 
145124 -- 4262811 Variables ------------------------------------------------------------------------------------------
145125 l_entered_amt_idx             NUMBER;
145126 l_accted_amt_idx              NUMBER;
145127 l_acc_rev_flag                VARCHAR2(1);
145128 l_accrual_line_num            NUMBER;
145129 l_tmp_amt                     NUMBER;
145130 l_acc_rev_natural_side_code   VARCHAR2(1);
145131 
145132 l_num_entries                 NUMBER;
145133 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
145134 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
145135 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
145136 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
145137 l_recog_line_1                NUMBER;
145138 l_recog_line_2                NUMBER;
145139 
145140 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
145141 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
145142 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
145143 
145144 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
145145 
145146 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
145147 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
145148 
145149 ---------------------------------------------------------------------------------------------------------------
145150 
145151 
145152 --
145153 -- bulk performance
145154 --
145155 l_balance_type_code           VARCHAR2(1);
145156 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
145157 l_log_module                  VARCHAR2(240);
145158 
145159 --
145160 -- Upgrade strategy
145161 --
145162 l_actual_upg_option           VARCHAR2(1);
145163 l_enc_upg_option           VARCHAR2(1);
145164 
145165 --
145166 BEGIN
145167 --
145168 IF g_log_enabled THEN
145169       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_239';
145170 END IF;
145171 --
145172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145173 
145174       trace
145175          (p_msg      => 'BEGIN of AcctLineType_239'
145176          ,p_level    => C_LEVEL_PROCEDURE
145177          ,p_module   => l_log_module);
145178 
145179 END IF;
145180 --
145181 l_component_type             := 'AMB_JLT';
145182 l_component_code             := 'FV_AP_DIRECT_EXP_PAYMENT_CR';
145183 l_component_type_code        := 'S';
145184 l_component_appl_id          :=  200;
145185 l_amb_context_code           := 'DEFAULT';
145186 l_entity_code                := 'AP_PAYMENTS';
145187 l_event_class_code           := 'PAYMENTS';
145188 l_event_type_code            := 'PAYMENTS_ALL';
145189 l_line_definition_owner_code := 'S';
145190 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
145191 --
145192 l_balance_type_code          := 'A';
145193 l_segment                     := NULL;
145194 l_ccid                        := NULL;
145195 l_adr_transaction_coa_id      := NULL;
145196 l_adr_accounting_coa_id       := NULL;
145197 l_adr_flexfield_segment_code  := NULL;
145198 l_adr_flex_value_set_id       := NULL;
145199 l_adr_value_type_code         := NULL;
145200 l_adr_value_combination_id    := NULL;
145201 l_adr_value_segment_code      := NULL;
145202 
145203 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
145204 l_bflow_class_code           := '';    -- 4219869 Business Flow
145205 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
145206 l_budgetary_control_flag     := 'N';
145207 
145208 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
145209 l_bflow_applied_to_amt       := NULL; -- 5132302
145210 l_entered_amt_idx            := NULL;          -- 4262811
145211 l_accted_amt_idx             := NULL;          -- 4262811
145212 l_acc_rev_flag               := NULL;          -- 4262811
145213 l_accrual_line_num           := NULL;          -- 4262811
145214 l_tmp_amt                    := NULL;          -- 4262811
145215 --
145216  
145217 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
145221  THEN 
145218     l_balance_type_code <> 'B' THEN
145219 IF NVL(p_source_56,'
145220 ') =  'INTEREST'
145222 
145223    --
145224    XLA_AE_LINES_PKG.SetNewLine;
145225 
145226    p_balance_type_code          := l_balance_type_code;
145227    -- set the flag so later we will know whether the gain loss line needs to be created
145228    
145229    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
145230      p_actual_flag :='A';
145231    END IF;
145232 
145233    --
145234    -- bulk performance
145235    --
145236    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
145237                                       p_header_num   => 0); -- 4262811
145238    --
145239    -- set accounting line options
145240    --
145241    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
145242            p_natural_side_code          => 'C'
145243          , p_gain_or_loss_flag          => 'N'
145244          , p_gl_transfer_mode_code      => 'S'
145245          , p_acct_entry_type_code       => 'A'
145246          , p_switch_side_flag           => 'N'
145247          , p_merge_duplicate_code       => 'N'
145248          );
145249    --
145250    l_acc_rev_natural_side_code := 'D';  -- 4262811
145251    -- 
145252    --
145253    -- set accounting line type info
145254    --
145255    xla_ae_lines_pkg.SetAcctLineType
145256       (p_component_type             => l_component_type
145257       ,p_event_type_code            => l_event_type_code
145258       ,p_line_definition_owner_code => l_line_definition_owner_code
145259       ,p_line_definition_code       => l_line_definition_code
145260       ,p_accounting_line_code       => l_component_code
145261       ,p_accounting_line_type_code  => l_component_type_code
145262       ,p_accounting_line_appl_id    => l_component_appl_id
145263       ,p_amb_context_code           => l_amb_context_code
145264       ,p_entity_code                => l_entity_code
145265       ,p_event_class_code           => l_event_class_code);
145266    --
145267    -- set accounting class
145268    --
145269    xla_ae_lines_pkg.SetAcctClass(
145270            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
145271          , p_ae_header_id           => l_ae_header_id
145272          );
145273 
145274    --
145275    -- set rounding class
145276    --
145277    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
145278                       'ACCOUNTSPAYABLE';
145279 
145280    --
145281    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
145282    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
145283    --
145284    -- bulk performance
145285    --
145286    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
145287 
145288    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
145289       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
145290 
145291    -- 4955764
145292    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
145293       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
145294 
145295    -- 4458381 Public Sector Enh
145296    
145297    --
145298    -- set accounting attributes for the line type
145299    --
145300    l_entered_amt_idx := 10;
145301    l_accted_amt_idx  := 15;
145302    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
145303    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
145304    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
145305    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
145306    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
145307    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
145308    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
145309    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
145310    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
145311    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
145312    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
145313    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
145314    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
145315    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
145316    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
145317    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
145318    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
145319    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
145320    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
145321    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
145322    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
145323    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
145324    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
145325    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
145326    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
145327    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
145328    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
145329    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
145330    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
145331    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
145332    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
145333    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
145334    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
145335    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
145336    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
145337    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
145338    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
145342    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
145339    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
145340    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
145341    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
145343    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
145344    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
145345    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
145346    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
145347    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
145348    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
145349    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
145350    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
145351 
145352    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
145353    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
145354 
145355    ---------------------------------------------------------------------------------------------------------------
145356    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
145357    ---------------------------------------------------------------------------------------------------------------
145358    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
145359 
145360    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
145361    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
145362 
145363    IF xla_accounting_cache_pkg.GetValueChar
145364          (p_source_code         => 'LEDGER_CATEGORY_CODE'
145365          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
145366    AND l_bflow_method_code = 'PRIOR_ENTRY'
145367 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
145368    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
145369          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
145370        )
145371    THEN
145372          xla_ae_lines_pkg.BflowUpgEntry
145373            (p_business_method_code    => l_bflow_method_code
145374            ,p_business_class_code     => l_bflow_class_code
145375            ,p_balance_type            => l_balance_type_code);
145376    ELSE
145377       NULL;
145378 -- No business flow processing for business flow method of NONE.
145379    END IF;
145380 
145381    --
145382    -- call analytical criteria
145383    --
145384    
145385    --
145386    -- call description
145387    --
145388    
145389 xla_ae_lines_pkg.SetLineDescription(
145390    p_ae_header_id => l_ae_header_id
145391   ,p_description  => Description_3 (
145392      p_application_id         => p_application_id
145393    , p_ae_header_id           => l_ae_header_id 
145394 , p_source_3 => p_source_3
145395 , p_source_4 => p_source_4
145396 , p_source_5 => p_source_5
145397 , p_source_6 => p_source_6
145398 , p_source_7 => p_source_7
145399 , p_source_8 => p_source_8
145400    )
145401 );
145402 
145403 
145404    --
145405    -- call ADRs
145406    -- Bug 4922099
145407    --
145408    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
145409         (NVL(l_actual_upg_option, 'N') = 'O') OR
145410         (NVL(l_enc_upg_option, 'N') = 'O')
145411       )
145412    THEN
145413    NULL;
145414    --
145415    --
145416    
145417   l_ccid := AcctDerRule_55(
145418            p_application_id           => p_application_id
145419          , p_ae_header_id             => l_ae_header_id 
145420 , p_source_12 => p_source_12
145421 , p_source_30 => p_source_30
145422 , p_source_57 => p_source_57
145423          , x_transaction_coa_id       => l_adr_transaction_coa_id
145424          , x_accounting_coa_id        => l_adr_accounting_coa_id
145425          , x_value_type_code          => l_adr_value_type_code
145426          , p_side                     => 'NA'
145427    );
145428 
145429    xla_ae_lines_pkg.set_ccid(
145430     p_code_combination_id          => l_ccid
145431   , p_value_type_code              => l_adr_value_type_code
145432   , p_transaction_coa_id           => l_adr_transaction_coa_id
145433   , p_accounting_coa_id            => l_adr_accounting_coa_id
145434   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
145435   , p_adr_type_code                => 'S'
145436   , p_component_type               => l_component_type
145437   , p_component_code               => l_component_code
145438   , p_component_type_code          => l_component_type_code
145439   , p_component_appl_id            => l_component_appl_id
145440   , p_amb_context_code             => l_amb_context_code
145441   , p_side                         => 'NA'
145442   );
145443 
145444 
145445    l_segment := AcctDerRule_51(
145446            p_application_id           => p_application_id
145447          , p_ae_header_id             => l_ae_header_id 
145448 , p_source_28 => p_source_28
145449 , p_source_28_meaning => p_source_28_meaning
145450 , p_source_52 => p_source_52
145451 , p_source_53 => p_source_53
145452 , p_source_54 => p_source_54
145453 , p_source_54_meaning => p_source_54_meaning
145454 , p_source_55 => p_source_55
145455          , x_transaction_coa_id       => l_adr_transaction_coa_id
145456          , x_accounting_coa_id        => l_adr_accounting_coa_id
145457          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
145458          , x_flex_value_set_id        => l_adr_flex_value_set_id
145459          , x_value_type_code          => l_adr_value_type_code
145460          , x_value_combination_id     => l_adr_value_combination_id
145461          , x_value_segment_code       => l_adr_value_segment_code
145462          , p_side                     => 'NA'
145463          , p_override_seg_flag        => 'Y'
145464    );
145465 
145469           p_to_segment_code         => 'GL_ACCOUNT'
145466    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
145467 
145468       xla_ae_lines_pkg.set_segment(
145470         , p_segment_value           => l_segment
145471         , p_from_segment_code       => l_adr_value_segment_code
145472         , p_from_combination_id     => l_adr_value_combination_id
145473         , p_value_type_code         => l_adr_value_type_code
145474         , p_transaction_coa_id      => l_adr_transaction_coa_id
145475         , p_accounting_coa_id       => l_adr_accounting_coa_id
145476         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
145477         , p_flex_value_set_id       => l_adr_flex_value_set_id
145478         , p_adr_code                => 'FV_490X01_OBL_ACCOUNT'
145479         , p_adr_type_code           => 'S'
145480         , p_component_type          => l_component_type
145481         , p_component_code          => l_component_code
145482         , p_component_type_code     => l_component_type_code
145483         , p_component_appl_id       => l_component_appl_id
145484         , p_amb_context_code        => l_amb_context_code
145485         , p_entity_code             => 'AP_PAYMENTS'
145486         , p_event_class_code        => 'PAYMENTS'
145487         , p_side                    => 'NA'
145488         );
145489 
145490   END IF;
145491 
145492    l_segment := AcctDerRule_27(
145493            p_application_id           => p_application_id
145494          , p_ae_header_id             => l_ae_header_id 
145495 , p_source_10 => p_source_10
145496 , p_source_10_meaning => p_source_10_meaning
145497 , p_source_25 => p_source_25
145498 , p_source_29 => p_source_29
145499          , x_transaction_coa_id       => l_adr_transaction_coa_id
145500          , x_accounting_coa_id        => l_adr_accounting_coa_id
145501          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
145502          , x_flex_value_set_id        => l_adr_flex_value_set_id
145503          , x_value_type_code          => l_adr_value_type_code
145504          , x_value_combination_id     => l_adr_value_combination_id
145505          , x_value_segment_code       => l_adr_value_segment_code
145506          , p_side                     => 'NA'
145507          , p_override_seg_flag        => 'Y'
145508    );
145509 
145510    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
145511 
145512       xla_ae_lines_pkg.set_segment(
145513           p_to_segment_code         => 'GL_BALANCING'
145514         , p_segment_value           => l_segment
145515         , p_from_segment_code       => l_adr_value_segment_code
145516         , p_from_combination_id     => l_adr_value_combination_id
145517         , p_value_type_code         => l_adr_value_type_code
145518         , p_transaction_coa_id      => l_adr_transaction_coa_id
145519         , p_accounting_coa_id       => l_adr_accounting_coa_id
145520         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
145521         , p_flex_value_set_id       => l_adr_flex_value_set_id
145522         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
145523         , p_adr_type_code           => 'S'
145524         , p_component_type          => l_component_type
145525         , p_component_code          => l_component_code
145526         , p_component_type_code     => l_component_type_code
145527         , p_component_appl_id       => l_component_appl_id
145528         , p_amb_context_code        => l_amb_context_code
145529         , p_entity_code             => 'AP_PAYMENTS'
145530         , p_event_class_code        => 'PAYMENTS'
145531         , p_side                    => 'NA'
145532         );
145533 
145534   END IF;
145535 
145536    --
145537    --
145538    END IF;
145539    --
145540    -- Bug 4922099
145541    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
145542           (NVL(l_enc_upg_option, 'N') = 'O')
145543         ) AND
145544         (l_bflow_method_code = 'PRIOR_ENTRY')
145545       )
145546    THEN
145547       IF
145548       --
145549       1 = 2
145550       --
145551       THEN
145552       xla_accounting_err_pkg.build_message
145553                                     (p_appli_s_name            => 'XLA'
145554                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
145555                                     ,p_token_1                 => 'LINE_NUMBER'
145556                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
145557                                     ,p_token_2                 => 'LINE_TYPE_NAME'
145558                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
145559                                                                              l_component_type
145560                                                                             ,l_component_code
145561                                                                             ,l_component_type_code
145562                                                                             ,l_component_appl_id
145563                                                                             ,l_amb_context_code
145564                                                                             ,l_entity_code
145565                                                                             ,l_event_class_code
145566                                                                            )
145567                                     ,p_token_3                 => 'OWNER'
145568                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
145569                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
145570                                                                           ,p_lookup_code    => l_component_type_code
145571                                                                          )
145572                                     ,p_token_4                 => 'PRODUCT_NAME'
145573                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
145577                                     ,p_ae_header_id            =>  NULL
145574                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
145575                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
145576                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
145578                                        );
145579 
145580         IF (C_LEVEL_ERROR>= g_log_level) THEN
145581                  trace
145582                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
145583                       ,p_level    => C_LEVEL_ERROR
145584                       ,p_module   => l_log_module);
145585         END IF;
145586       END IF;
145587    END IF;
145588    --
145589    --
145590    ------------------------------------------------------------------------------------------------
145591    -- 4219869 Business Flow
145592    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
145593    -- Prior Entry.  Currently, the following code is always generated.
145594    ------------------------------------------------------------------------------------------------
145595    XLA_AE_LINES_PKG.ValidateCurrentLine;
145596 
145597    ------------------------------------------------------------------------------------
145598    -- 4219869 Business Flow
145599    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
145600    ------------------------------------------------------------------------------------
145601    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
145602 
145603    ----------------------------------------------------------------------------------
145604    -- 4219869 Business Flow
145605    -- Update journal entry status -- Need to generate this within IF <condition>
145606    ----------------------------------------------------------------------------------
145607    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
145608          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
145609          ,p_balance_type_code => l_balance_type_code
145610          );
145611 
145612    -------------------------------------------------------------------------------------------
145613    -- 4262811 - Generate the Accrual Reversal lines
145614    -------------------------------------------------------------------------------------------
145615    BEGIN
145616       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
145617                               (g_array_event(p_event_id).array_value_num('header_index'));
145618       IF l_acc_rev_flag IS NULL THEN
145619          l_acc_rev_flag := 'N';
145620       END IF;
145621    EXCEPTION
145622       WHEN OTHERS THEN
145623          l_acc_rev_flag := 'N';
145624    END;
145625    --
145626    IF (l_acc_rev_flag = 'Y') THEN
145627 
145628        -- 4645092  ------------------------------------------------------------------------------
145629        -- To allow MPA report to determine if it should generate report process
145630        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
145631        ------------------------------------------------------------------------------------------
145632 
145633        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
145634        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
145635    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
145636    -- call ADRs
145637    -- Bug 4922099
145638    --
145639    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
145640         (NVL(l_actual_upg_option, 'N') = 'O') OR
145641         (NVL(l_enc_upg_option, 'N') = 'O')
145642       )
145643    THEN
145644    NULL;
145645    --
145646    --
145647    
145648   l_ccid := AcctDerRule_55(
145649            p_application_id           => p_application_id
145650          , p_ae_header_id             => l_ae_header_id 
145651 , p_source_12 => p_source_12
145652 , p_source_30 => p_source_30
145653 , p_source_57 => p_source_57
145654          , x_transaction_coa_id       => l_adr_transaction_coa_id
145655          , x_accounting_coa_id        => l_adr_accounting_coa_id
145656          , x_value_type_code          => l_adr_value_type_code
145657          , p_side                     => 'NA'
145658    );
145659 
145660    xla_ae_lines_pkg.set_ccid(
145661     p_code_combination_id          => l_ccid
145662   , p_value_type_code              => l_adr_value_type_code
145663   , p_transaction_coa_id           => l_adr_transaction_coa_id
145664   , p_accounting_coa_id            => l_adr_accounting_coa_id
145665   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
145666   , p_adr_type_code                => 'S'
145667   , p_component_type               => l_component_type
145668   , p_component_code               => l_component_code
145669   , p_component_type_code          => l_component_type_code
145670   , p_component_appl_id            => l_component_appl_id
145671   , p_amb_context_code             => l_amb_context_code
145672   , p_side                         => 'NA'
145673   );
145674 
145675 
145676    l_segment := AcctDerRule_51(
145677            p_application_id           => p_application_id
145678          , p_ae_header_id             => l_ae_header_id 
145679 , p_source_28 => p_source_28
145680 , p_source_28_meaning => p_source_28_meaning
145681 , p_source_52 => p_source_52
145682 , p_source_53 => p_source_53
145683 , p_source_54 => p_source_54
145684 , p_source_54_meaning => p_source_54_meaning
145685 , p_source_55 => p_source_55
145686          , x_transaction_coa_id       => l_adr_transaction_coa_id
145687          , x_accounting_coa_id        => l_adr_accounting_coa_id
145688          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
145689          , x_flex_value_set_id        => l_adr_flex_value_set_id
145690          , x_value_type_code          => l_adr_value_type_code
145691          , x_value_combination_id     => l_adr_value_combination_id
145695    );
145692          , x_value_segment_code       => l_adr_value_segment_code
145693          , p_side                     => 'NA'
145694          , p_override_seg_flag        => 'Y'
145696 
145697    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
145698 
145699       xla_ae_lines_pkg.set_segment(
145700           p_to_segment_code         => 'GL_ACCOUNT'
145701         , p_segment_value           => l_segment
145702         , p_from_segment_code       => l_adr_value_segment_code
145703         , p_from_combination_id     => l_adr_value_combination_id
145704         , p_value_type_code         => l_adr_value_type_code
145705         , p_transaction_coa_id      => l_adr_transaction_coa_id
145706         , p_accounting_coa_id       => l_adr_accounting_coa_id
145707         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
145708         , p_flex_value_set_id       => l_adr_flex_value_set_id
145709         , p_adr_code                => 'FV_490X01_OBL_ACCOUNT'
145710         , p_adr_type_code           => 'S'
145711         , p_component_type          => l_component_type
145712         , p_component_code          => l_component_code
145713         , p_component_type_code     => l_component_type_code
145714         , p_component_appl_id       => l_component_appl_id
145715         , p_amb_context_code        => l_amb_context_code
145716         , p_entity_code             => 'AP_PAYMENTS'
145717         , p_event_class_code        => 'PAYMENTS'
145718         , p_side                    => 'NA'
145719         );
145720 
145721   END IF;
145722 
145723    l_segment := AcctDerRule_27(
145724            p_application_id           => p_application_id
145725          , p_ae_header_id             => l_ae_header_id 
145726 , p_source_10 => p_source_10
145727 , p_source_10_meaning => p_source_10_meaning
145728 , p_source_25 => p_source_25
145729 , p_source_29 => p_source_29
145730          , x_transaction_coa_id       => l_adr_transaction_coa_id
145731          , x_accounting_coa_id        => l_adr_accounting_coa_id
145732          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
145733          , x_flex_value_set_id        => l_adr_flex_value_set_id
145734          , x_value_type_code          => l_adr_value_type_code
145735          , x_value_combination_id     => l_adr_value_combination_id
145736          , x_value_segment_code       => l_adr_value_segment_code
145737          , p_side                     => 'NA'
145738          , p_override_seg_flag        => 'Y'
145739    );
145740 
145741    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
145742 
145743       xla_ae_lines_pkg.set_segment(
145744           p_to_segment_code         => 'GL_BALANCING'
145745         , p_segment_value           => l_segment
145746         , p_from_segment_code       => l_adr_value_segment_code
145747         , p_from_combination_id     => l_adr_value_combination_id
145748         , p_value_type_code         => l_adr_value_type_code
145749         , p_transaction_coa_id      => l_adr_transaction_coa_id
145750         , p_accounting_coa_id       => l_adr_accounting_coa_id
145751         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
145752         , p_flex_value_set_id       => l_adr_flex_value_set_id
145753         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
145754         , p_adr_type_code           => 'S'
145755         , p_component_type          => l_component_type
145756         , p_component_code          => l_component_code
145757         , p_component_type_code     => l_component_type_code
145758         , p_component_appl_id       => l_component_appl_id
145759         , p_amb_context_code        => l_amb_context_code
145760         , p_entity_code             => 'AP_PAYMENTS'
145761         , p_event_class_code        => 'PAYMENTS'
145762         , p_side                    => 'NA'
145763         );
145764 
145765   END IF;
145766 
145767    --
145768    --
145769    END IF;
145770 
145771        --
145772        -- Update the line information that should be overwritten
145773        --
145774        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
145775                                          p_header_num   => 1);
145776        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
145777 
145778        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
145779 
145780        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
145781           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
145782        END IF;
145783 
145784       --
145785       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
145786       --
145787       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
145788           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
145789       ELSE
145790           ---------------------------------------------------------------------------------------------------
145791           -- 4262811a Switch Sign
145792           ---------------------------------------------------------------------------------------------------
145793           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
145794           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
145795                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
145796           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
145797                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
145798           -- 5132302
145799           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
145800                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
145801 
145802       END IF;
145803 
145804       -- 4955764
145808 
145805       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
145806       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
145807 
145809       XLA_AE_LINES_PKG.ValidateCurrentLine;
145810       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
145811 
145812       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
145813                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
145814                ,p_balance_type_code => l_balance_type_code);
145815 
145816    END IF;
145817 
145818    -----------------------------------------------------------------------------------------
145819    -- 4262811 Multiperiod Accounting
145820    -----------------------------------------------------------------------------------------
145821      -- No MPA option is assigned.
145822 
145823 
145824 END IF;
145825 END IF;
145826 --
145827 
145828 --
145829 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
145830    trace
145831       (p_msg      => 'END of AcctLineType_239'
145832       ,p_level    => C_LEVEL_PROCEDURE
145833       ,p_module   => l_log_module);
145834 END IF;
145835 --
145836 EXCEPTION
145837   WHEN xla_exceptions_pkg.application_exception THEN
145838       RAISE;
145839   WHEN OTHERS THEN
145840        xla_exceptions_pkg.raise_message
145841            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_239');
145842 END AcctLineType_239;
145843 --
145844 
145845 ---------------------------------------
145846 --
145847 -- PRIVATE FUNCTION
145848 --         AcctLineType_240
145849 --
145850 ---------------------------------------
145851 PROCEDURE AcctLineType_240 (
145852   p_application_id        IN NUMBER
145853  ,p_event_id              IN NUMBER
145854  ,p_calculate_acctd_flag  IN VARCHAR2
145855  ,p_calculate_g_l_flag    IN VARCHAR2
145856  ,p_actual_flag           IN OUT VARCHAR2
145857  ,p_balance_type_code     OUT VARCHAR2
145858  ,p_gain_or_loss_ref      OUT VARCHAR2
145859  
145860 --Document Sequence Name
145861  , p_source_3            IN VARCHAR2
145862 --Payment Document Voucher Number
145863  , p_source_4            IN NUMBER
145864 --Payment Transaction Number
145865  , p_source_5            IN NUMBER
145866 --Payment Document Date
145867  , p_source_6            IN DATE
145868 --Bank Account Name
145869  , p_source_7            IN VARCHAR2
145870 --Payment Currency Code
145871  , p_source_8            IN VARCHAR2
145872 --Automatic Offsets Value
145873  , p_source_10            IN VARCHAR2
145874  , p_source_10_meaning    IN VARCHAR2
145875 --Bank Cash Account
145876  , p_source_12            IN NUMBER
145877 --Invoice Distribution Account
145878  , p_source_25            IN NUMBER
145879 --Invoice Liability Account
145880  , p_source_29            IN NUMBER
145881 --Bank Cash Clearing Account
145882  , p_source_30            IN NUMBER
145883 --Federal Fund Category
145884  , p_source_49            IN VARCHAR2
145885 --Federal Fund Expired Status
145886  , p_source_50            IN VARCHAR2
145887 --Federal Fund Category Description
145888  , p_source_51            IN VARCHAR2
145889 --Invoice Type Paid
145890  , p_source_56            IN VARCHAR2
145891  , p_source_56_meaning    IN VARCHAR2
145892 --When to Account for Payment Option
145893  , p_source_57            IN VARCHAR2
145894 --Accounting Reversal Indicator
145895  , p_source_58            IN VARCHAR2
145896 --Distribution Link Type
145897  , p_source_60            IN VARCHAR2
145898 --Override Accounted Amount Indicator
145899  , p_source_85            IN VARCHAR2
145900  , p_source_85_meaning    IN VARCHAR2
145901 --Third Party Type
145902  , p_source_88            IN VARCHAR2
145903 --Invoice Distribution Tax Line Identifier
145904  , p_source_91            IN NUMBER
145905 --Invoice Distribution Tax Distribution Identifier from Tax
145906  , p_source_92            IN NUMBER
145907 --Invoice Distribution Summary Tax Line Identifier
145908  , p_source_93            IN NUMBER
145909 --Business Flow Accounts Payable Application Identifier
145910  , p_source_96            IN NUMBER
145911 --Business Flow Invoice Distribution Type
145912  , p_source_97            IN VARCHAR2
145913 --Business Flow Invoice Entity Code
145914  , p_source_98            IN VARCHAR2
145915 --Business Flow Invoice Distribution Identifier
145916  , p_source_99            IN NUMBER
145917 --Business Flow Invoice Identifier
145918  , p_source_100            IN NUMBER
145919 --Payment Distribution Amount
145920  , p_source_102            IN NUMBER
145921 --Payment Distribution Identifier
145922  , p_source_107            IN NUMBER
145923 --Payment Supplier Identifier
145924  , p_source_113            IN NUMBER
145925 --Payment Supplier Site Identifier
145926  , p_source_114            IN NUMBER
145927 --Payment Distribution Reversed Identifier
145928  , p_source_115            IN NUMBER
145929 --Payment Distribution (Payment Rate) Ledger Amount
145930  , p_source_118            IN NUMBER
145931 --Payment Exchange Date
145932  , p_source_120            IN DATE
145933 --Payment Exchange Rate
145934  , p_source_121            IN NUMBER
145935 --Payment Exchange Rate Type
145936  , p_source_122            IN VARCHAR2
145937 --Invoice Distribution Amount of the Payment Distribution
145938  , p_source_127            IN NUMBER
145939 )
145940 IS
145941 
145942 l_component_type              VARCHAR2(80);
145943 l_component_code              VARCHAR2(30);
145944 l_component_type_code         VARCHAR2(1);
145945 l_component_appl_id           INTEGER;
145946 l_amb_context_code            VARCHAR2(30);
145947 l_entity_code                 VARCHAR2(30);
145948 l_event_class_code            VARCHAR2(30);
145949 l_ae_header_id                NUMBER;
145950 l_event_type_code             VARCHAR2(30);
145951 l_line_definition_code        VARCHAR2(30);
145955 l_segment                     VARCHAR2(30);
145952 l_line_definition_owner_code  VARCHAR2(1);
145953 --
145954 -- adr variables
145956 l_ccid                        NUMBER;
145957 l_adr_transaction_coa_id      NUMBER;
145958 l_adr_accounting_coa_id       NUMBER;
145959 l_adr_flexfield_segment_code  VARCHAR2(30);
145960 l_adr_flex_value_set_id       NUMBER;
145961 l_adr_value_type_code         VARCHAR2(30);
145962 l_adr_value_combination_id    NUMBER;
145963 l_adr_value_segment_code      VARCHAR2(30);
145964 
145965 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
145966 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
145967 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
145968 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
145969 
145970 -- 4262811 Variables ------------------------------------------------------------------------------------------
145971 l_entered_amt_idx             NUMBER;
145972 l_accted_amt_idx              NUMBER;
145973 l_acc_rev_flag                VARCHAR2(1);
145974 l_accrual_line_num            NUMBER;
145975 l_tmp_amt                     NUMBER;
145976 l_acc_rev_natural_side_code   VARCHAR2(1);
145977 
145978 l_num_entries                 NUMBER;
145979 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
145980 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
145981 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
145982 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
145983 l_recog_line_1                NUMBER;
145984 l_recog_line_2                NUMBER;
145985 
145986 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
145987 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
145988 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
145989 
145990 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
145991 
145992 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
145993 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
145994 
145995 ---------------------------------------------------------------------------------------------------------------
145996 
145997 
145998 --
145999 -- bulk performance
146000 --
146001 l_balance_type_code           VARCHAR2(1);
146002 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
146003 l_log_module                  VARCHAR2(240);
146004 
146005 --
146006 -- Upgrade strategy
146007 --
146008 l_actual_upg_option           VARCHAR2(1);
146009 l_enc_upg_option           VARCHAR2(1);
146010 
146011 --
146012 BEGIN
146013 --
146014 IF g_log_enabled THEN
146015       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_240';
146016 END IF;
146017 --
146018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
146019 
146020       trace
146021          (p_msg      => 'BEGIN of AcctLineType_240'
146022          ,p_level    => C_LEVEL_PROCEDURE
146023          ,p_module   => l_log_module);
146024 
146025 END IF;
146026 --
146027 l_component_type             := 'AMB_JLT';
146028 l_component_code             := 'FV_AP_DIRECT_EXP_PAYMENT_DR';
146029 l_component_type_code        := 'S';
146030 l_component_appl_id          :=  200;
146031 l_amb_context_code           := 'DEFAULT';
146032 l_entity_code                := 'AP_PAYMENTS';
146033 l_event_class_code           := 'PAYMENTS';
146034 l_event_type_code            := 'PAYMENTS_ALL';
146035 l_line_definition_owner_code := 'S';
146036 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
146037 --
146038 l_balance_type_code          := 'A';
146039 l_segment                     := NULL;
146040 l_ccid                        := NULL;
146041 l_adr_transaction_coa_id      := NULL;
146042 l_adr_accounting_coa_id       := NULL;
146043 l_adr_flexfield_segment_code  := NULL;
146044 l_adr_flex_value_set_id       := NULL;
146045 l_adr_value_type_code         := NULL;
146046 l_adr_value_combination_id    := NULL;
146047 l_adr_value_segment_code      := NULL;
146048 
146049 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
146050 l_bflow_class_code           := '';    -- 4219869 Business Flow
146051 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
146052 l_budgetary_control_flag     := 'N';
146053 
146054 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
146055 l_bflow_applied_to_amt       := NULL; -- 5132302
146056 l_entered_amt_idx            := NULL;          -- 4262811
146057 l_accted_amt_idx             := NULL;          -- 4262811
146058 l_acc_rev_flag               := NULL;          -- 4262811
146059 l_accrual_line_num           := NULL;          -- 4262811
146060 l_tmp_amt                    := NULL;          -- 4262811
146061 --
146062  
146063 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
146064     l_balance_type_code <> 'B' THEN
146065 IF NVL(p_source_56,'
146066 ') =  'INTEREST'
146067  THEN 
146068 
146069    --
146070    XLA_AE_LINES_PKG.SetNewLine;
146071 
146072    p_balance_type_code          := l_balance_type_code;
146073    -- set the flag so later we will know whether the gain loss line needs to be created
146074    
146075    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
146076      p_actual_flag :='A';
146077    END IF;
146078 
146079    --
146080    -- bulk performance
146081    --
146082    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
146083                                       p_header_num   => 0); -- 4262811
146084    --
146085    -- set accounting line options
146086    --
146087    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
146088            p_natural_side_code          => 'D'
146089          , p_gain_or_loss_flag          => 'N'
146090          , p_gl_transfer_mode_code      => 'S'
146094          );
146091          , p_acct_entry_type_code       => 'A'
146092          , p_switch_side_flag           => 'N'
146093          , p_merge_duplicate_code       => 'N'
146095    --
146096    l_acc_rev_natural_side_code := 'C';  -- 4262811
146097    -- 
146098    --
146099    -- set accounting line type info
146100    --
146101    xla_ae_lines_pkg.SetAcctLineType
146102       (p_component_type             => l_component_type
146103       ,p_event_type_code            => l_event_type_code
146104       ,p_line_definition_owner_code => l_line_definition_owner_code
146105       ,p_line_definition_code       => l_line_definition_code
146106       ,p_accounting_line_code       => l_component_code
146107       ,p_accounting_line_type_code  => l_component_type_code
146108       ,p_accounting_line_appl_id    => l_component_appl_id
146109       ,p_amb_context_code           => l_amb_context_code
146110       ,p_entity_code                => l_entity_code
146111       ,p_event_class_code           => l_event_class_code);
146112    --
146113    -- set accounting class
146114    --
146115    xla_ae_lines_pkg.SetAcctClass(
146116            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
146117          , p_ae_header_id           => l_ae_header_id
146118          );
146119 
146120    --
146121    -- set rounding class
146122    --
146123    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
146124                       'ACCOUNTSPAYABLE';
146125 
146126    --
146127    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
146128    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
146129    --
146130    -- bulk performance
146131    --
146132    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
146133 
146134    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
146135       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
146136 
146137    -- 4955764
146138    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
146139       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
146140 
146141    -- 4458381 Public Sector Enh
146142    
146143    --
146144    -- set accounting attributes for the line type
146145    --
146146    l_entered_amt_idx := 10;
146147    l_accted_amt_idx  := 15;
146148    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
146149    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
146150    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
146151    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
146152    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
146153    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
146154    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
146155    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
146156    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
146157    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
146158    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
146159    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
146160    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
146161    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
146162    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
146163    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
146164    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
146165    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
146166    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
146167    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
146168    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
146169    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
146170    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
146171    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
146172    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
146173    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
146174    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
146175    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
146176    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
146177    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
146178    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
146179    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
146180    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
146181    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
146182    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
146183    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
146184    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
146185    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
146186    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
146187    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
146188    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
146189    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
146190    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
146191    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
146192    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
146193    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
146194    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
146195    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
146196    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
146197 
146198    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
146199    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
146200 
146204    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
146201    ---------------------------------------------------------------------------------------------------------------
146202    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
146203    ---------------------------------------------------------------------------------------------------------------
146205 
146206    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
146207    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
146208 
146209    IF xla_accounting_cache_pkg.GetValueChar
146210          (p_source_code         => 'LEDGER_CATEGORY_CODE'
146211          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
146212    AND l_bflow_method_code = 'PRIOR_ENTRY'
146213 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
146214    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
146215          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
146216        )
146217    THEN
146218          xla_ae_lines_pkg.BflowUpgEntry
146219            (p_business_method_code    => l_bflow_method_code
146220            ,p_business_class_code     => l_bflow_class_code
146221            ,p_balance_type            => l_balance_type_code);
146222    ELSE
146223       NULL;
146224 -- No business flow processing for business flow method of NONE.
146225    END IF;
146226 
146227    --
146228    -- call analytical criteria
146229    --
146230    
146231    --
146232    -- call description
146233    --
146234    
146235 xla_ae_lines_pkg.SetLineDescription(
146236    p_ae_header_id => l_ae_header_id
146237   ,p_description  => Description_3 (
146238      p_application_id         => p_application_id
146239    , p_ae_header_id           => l_ae_header_id 
146240 , p_source_3 => p_source_3
146241 , p_source_4 => p_source_4
146242 , p_source_5 => p_source_5
146243 , p_source_6 => p_source_6
146244 , p_source_7 => p_source_7
146245 , p_source_8 => p_source_8
146246    )
146247 );
146248 
146249 
146250    --
146251    -- call ADRs
146252    -- Bug 4922099
146253    --
146254    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
146255         (NVL(l_actual_upg_option, 'N') = 'O') OR
146256         (NVL(l_enc_upg_option, 'N') = 'O')
146257       )
146258    THEN
146259    NULL;
146260    --
146261    --
146262    
146263   l_ccid := AcctDerRule_55(
146264            p_application_id           => p_application_id
146265          , p_ae_header_id             => l_ae_header_id 
146266 , p_source_12 => p_source_12
146267 , p_source_30 => p_source_30
146268 , p_source_57 => p_source_57
146269          , x_transaction_coa_id       => l_adr_transaction_coa_id
146270          , x_accounting_coa_id        => l_adr_accounting_coa_id
146271          , x_value_type_code          => l_adr_value_type_code
146272          , p_side                     => 'NA'
146273    );
146274 
146275    xla_ae_lines_pkg.set_ccid(
146276     p_code_combination_id          => l_ccid
146277   , p_value_type_code              => l_adr_value_type_code
146278   , p_transaction_coa_id           => l_adr_transaction_coa_id
146279   , p_accounting_coa_id            => l_adr_accounting_coa_id
146280   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
146281   , p_adr_type_code                => 'S'
146282   , p_component_type               => l_component_type
146283   , p_component_code               => l_component_code
146284   , p_component_type_code          => l_component_type_code
146285   , p_component_appl_id            => l_component_appl_id
146286   , p_amb_context_code             => l_amb_context_code
146287   , p_side                         => 'NA'
146288   );
146289 
146290 
146291    l_segment := AcctDerRule_50(
146292            p_application_id           => p_application_id
146293          , p_ae_header_id             => l_ae_header_id 
146294 , p_source_49 => p_source_49
146295 , p_source_50 => p_source_50
146296 , p_source_51 => p_source_51
146297          , x_transaction_coa_id       => l_adr_transaction_coa_id
146298          , x_accounting_coa_id        => l_adr_accounting_coa_id
146299          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
146300          , x_flex_value_set_id        => l_adr_flex_value_set_id
146301          , x_value_type_code          => l_adr_value_type_code
146302          , x_value_combination_id     => l_adr_value_combination_id
146303          , x_value_segment_code       => l_adr_value_segment_code
146304          , p_side                     => 'NA'
146305          , p_override_seg_flag        => 'Y'
146306    );
146307 
146308    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
146309 
146310       xla_ae_lines_pkg.set_segment(
146311           p_to_segment_code         => 'GL_ACCOUNT'
146312         , p_segment_value           => l_segment
146313         , p_from_segment_code       => l_adr_value_segment_code
146314         , p_from_combination_id     => l_adr_value_combination_id
146315         , p_value_type_code         => l_adr_value_type_code
146316         , p_transaction_coa_id      => l_adr_transaction_coa_id
146317         , p_accounting_coa_id       => l_adr_accounting_coa_id
146318         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
146319         , p_flex_value_set_id       => l_adr_flex_value_set_id
146320         , p_adr_code                => 'FV_46X002_ALLOTMENT_RES_ACCT'
146321         , p_adr_type_code           => 'S'
146322         , p_component_type          => l_component_type
146323         , p_component_code          => l_component_code
146324         , p_component_type_code     => l_component_type_code
146325         , p_component_appl_id       => l_component_appl_id
146326         , p_amb_context_code        => l_amb_context_code
146327         , p_entity_code             => 'AP_PAYMENTS'
146331 
146328         , p_event_class_code        => 'PAYMENTS'
146329         , p_side                    => 'NA'
146330         );
146332   END IF;
146333 
146334    l_segment := AcctDerRule_27(
146335            p_application_id           => p_application_id
146336          , p_ae_header_id             => l_ae_header_id 
146337 , p_source_10 => p_source_10
146338 , p_source_10_meaning => p_source_10_meaning
146339 , p_source_25 => p_source_25
146340 , p_source_29 => p_source_29
146341          , x_transaction_coa_id       => l_adr_transaction_coa_id
146342          , x_accounting_coa_id        => l_adr_accounting_coa_id
146343          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
146344          , x_flex_value_set_id        => l_adr_flex_value_set_id
146345          , x_value_type_code          => l_adr_value_type_code
146346          , x_value_combination_id     => l_adr_value_combination_id
146347          , x_value_segment_code       => l_adr_value_segment_code
146348          , p_side                     => 'NA'
146349          , p_override_seg_flag        => 'Y'
146350    );
146351 
146352    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
146353 
146354       xla_ae_lines_pkg.set_segment(
146355           p_to_segment_code         => 'GL_BALANCING'
146356         , p_segment_value           => l_segment
146357         , p_from_segment_code       => l_adr_value_segment_code
146358         , p_from_combination_id     => l_adr_value_combination_id
146359         , p_value_type_code         => l_adr_value_type_code
146360         , p_transaction_coa_id      => l_adr_transaction_coa_id
146361         , p_accounting_coa_id       => l_adr_accounting_coa_id
146362         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
146363         , p_flex_value_set_id       => l_adr_flex_value_set_id
146364         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
146365         , p_adr_type_code           => 'S'
146366         , p_component_type          => l_component_type
146367         , p_component_code          => l_component_code
146368         , p_component_type_code     => l_component_type_code
146369         , p_component_appl_id       => l_component_appl_id
146370         , p_amb_context_code        => l_amb_context_code
146371         , p_entity_code             => 'AP_PAYMENTS'
146372         , p_event_class_code        => 'PAYMENTS'
146373         , p_side                    => 'NA'
146374         );
146375 
146376   END IF;
146377 
146378    --
146379    --
146380    END IF;
146381    --
146382    -- Bug 4922099
146383    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
146384           (NVL(l_enc_upg_option, 'N') = 'O')
146385         ) AND
146386         (l_bflow_method_code = 'PRIOR_ENTRY')
146387       )
146388    THEN
146389       IF
146390       --
146391       1 = 2
146392       --
146393       THEN
146394       xla_accounting_err_pkg.build_message
146395                                     (p_appli_s_name            => 'XLA'
146396                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
146397                                     ,p_token_1                 => 'LINE_NUMBER'
146398                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
146399                                     ,p_token_2                 => 'LINE_TYPE_NAME'
146400                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
146401                                                                              l_component_type
146402                                                                             ,l_component_code
146403                                                                             ,l_component_type_code
146404                                                                             ,l_component_appl_id
146405                                                                             ,l_amb_context_code
146406                                                                             ,l_entity_code
146407                                                                             ,l_event_class_code
146408                                                                            )
146409                                     ,p_token_3                 => 'OWNER'
146410                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
146411                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
146412                                                                           ,p_lookup_code    => l_component_type_code
146413                                                                          )
146414                                     ,p_token_4                 => 'PRODUCT_NAME'
146415                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
146416                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
146417                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
146418                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
146419                                     ,p_ae_header_id            =>  NULL
146420                                        );
146421 
146422         IF (C_LEVEL_ERROR>= g_log_level) THEN
146423                  trace
146424                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
146425                       ,p_level    => C_LEVEL_ERROR
146426                       ,p_module   => l_log_module);
146427         END IF;
146428       END IF;
146429    END IF;
146430    --
146431    --
146432    ------------------------------------------------------------------------------------------------
146433    -- 4219869 Business Flow
146434    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
146435    -- Prior Entry.  Currently, the following code is always generated.
146439    ------------------------------------------------------------------------------------
146436    ------------------------------------------------------------------------------------------------
146437    XLA_AE_LINES_PKG.ValidateCurrentLine;
146438 
146440    -- 4219869 Business Flow
146441    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
146442    ------------------------------------------------------------------------------------
146443    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
146444 
146445    ----------------------------------------------------------------------------------
146446    -- 4219869 Business Flow
146447    -- Update journal entry status -- Need to generate this within IF <condition>
146448    ----------------------------------------------------------------------------------
146449    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
146450          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
146451          ,p_balance_type_code => l_balance_type_code
146452          );
146453 
146454    -------------------------------------------------------------------------------------------
146455    -- 4262811 - Generate the Accrual Reversal lines
146456    -------------------------------------------------------------------------------------------
146457    BEGIN
146458       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
146459                               (g_array_event(p_event_id).array_value_num('header_index'));
146460       IF l_acc_rev_flag IS NULL THEN
146461          l_acc_rev_flag := 'N';
146462       END IF;
146463    EXCEPTION
146464       WHEN OTHERS THEN
146465          l_acc_rev_flag := 'N';
146466    END;
146467    --
146468    IF (l_acc_rev_flag = 'Y') THEN
146469 
146470        -- 4645092  ------------------------------------------------------------------------------
146471        -- To allow MPA report to determine if it should generate report process
146472        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
146473        ------------------------------------------------------------------------------------------
146474 
146475        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
146476        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
146477    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
146478    -- call ADRs
146479    -- Bug 4922099
146480    --
146481    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
146482         (NVL(l_actual_upg_option, 'N') = 'O') OR
146483         (NVL(l_enc_upg_option, 'N') = 'O')
146484       )
146485    THEN
146486    NULL;
146487    --
146488    --
146489    
146490   l_ccid := AcctDerRule_55(
146491            p_application_id           => p_application_id
146492          , p_ae_header_id             => l_ae_header_id 
146493 , p_source_12 => p_source_12
146494 , p_source_30 => p_source_30
146495 , p_source_57 => p_source_57
146496          , x_transaction_coa_id       => l_adr_transaction_coa_id
146497          , x_accounting_coa_id        => l_adr_accounting_coa_id
146498          , x_value_type_code          => l_adr_value_type_code
146499          , p_side                     => 'NA'
146500    );
146501 
146502    xla_ae_lines_pkg.set_ccid(
146503     p_code_combination_id          => l_ccid
146504   , p_value_type_code              => l_adr_value_type_code
146505   , p_transaction_coa_id           => l_adr_transaction_coa_id
146506   , p_accounting_coa_id            => l_adr_accounting_coa_id
146507   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
146508   , p_adr_type_code                => 'S'
146509   , p_component_type               => l_component_type
146510   , p_component_code               => l_component_code
146511   , p_component_type_code          => l_component_type_code
146512   , p_component_appl_id            => l_component_appl_id
146513   , p_amb_context_code             => l_amb_context_code
146514   , p_side                         => 'NA'
146515   );
146516 
146517 
146518    l_segment := AcctDerRule_50(
146519            p_application_id           => p_application_id
146520          , p_ae_header_id             => l_ae_header_id 
146521 , p_source_49 => p_source_49
146522 , p_source_50 => p_source_50
146523 , p_source_51 => p_source_51
146524          , x_transaction_coa_id       => l_adr_transaction_coa_id
146525          , x_accounting_coa_id        => l_adr_accounting_coa_id
146526          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
146527          , x_flex_value_set_id        => l_adr_flex_value_set_id
146528          , x_value_type_code          => l_adr_value_type_code
146529          , x_value_combination_id     => l_adr_value_combination_id
146530          , x_value_segment_code       => l_adr_value_segment_code
146531          , p_side                     => 'NA'
146532          , p_override_seg_flag        => 'Y'
146533    );
146534 
146535    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
146536 
146537       xla_ae_lines_pkg.set_segment(
146538           p_to_segment_code         => 'GL_ACCOUNT'
146539         , p_segment_value           => l_segment
146540         , p_from_segment_code       => l_adr_value_segment_code
146541         , p_from_combination_id     => l_adr_value_combination_id
146542         , p_value_type_code         => l_adr_value_type_code
146543         , p_transaction_coa_id      => l_adr_transaction_coa_id
146544         , p_accounting_coa_id       => l_adr_accounting_coa_id
146545         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
146546         , p_flex_value_set_id       => l_adr_flex_value_set_id
146547         , p_adr_code                => 'FV_46X002_ALLOTMENT_RES_ACCT'
146548         , p_adr_type_code           => 'S'
146549         , p_component_type          => l_component_type
146550         , p_component_code          => l_component_code
146551         , p_component_type_code     => l_component_type_code
146552         , p_component_appl_id       => l_component_appl_id
146553         , p_amb_context_code        => l_amb_context_code
146557         );
146554         , p_entity_code             => 'AP_PAYMENTS'
146555         , p_event_class_code        => 'PAYMENTS'
146556         , p_side                    => 'NA'
146558 
146559   END IF;
146560 
146561    l_segment := AcctDerRule_27(
146562            p_application_id           => p_application_id
146563          , p_ae_header_id             => l_ae_header_id 
146564 , p_source_10 => p_source_10
146565 , p_source_10_meaning => p_source_10_meaning
146566 , p_source_25 => p_source_25
146567 , p_source_29 => p_source_29
146568          , x_transaction_coa_id       => l_adr_transaction_coa_id
146569          , x_accounting_coa_id        => l_adr_accounting_coa_id
146570          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
146571          , x_flex_value_set_id        => l_adr_flex_value_set_id
146572          , x_value_type_code          => l_adr_value_type_code
146573          , x_value_combination_id     => l_adr_value_combination_id
146574          , x_value_segment_code       => l_adr_value_segment_code
146575          , p_side                     => 'NA'
146576          , p_override_seg_flag        => 'Y'
146577    );
146578 
146579    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
146580 
146581       xla_ae_lines_pkg.set_segment(
146582           p_to_segment_code         => 'GL_BALANCING'
146583         , p_segment_value           => l_segment
146584         , p_from_segment_code       => l_adr_value_segment_code
146585         , p_from_combination_id     => l_adr_value_combination_id
146586         , p_value_type_code         => l_adr_value_type_code
146587         , p_transaction_coa_id      => l_adr_transaction_coa_id
146588         , p_accounting_coa_id       => l_adr_accounting_coa_id
146589         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
146590         , p_flex_value_set_id       => l_adr_flex_value_set_id
146591         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
146592         , p_adr_type_code           => 'S'
146593         , p_component_type          => l_component_type
146594         , p_component_code          => l_component_code
146595         , p_component_type_code     => l_component_type_code
146596         , p_component_appl_id       => l_component_appl_id
146597         , p_amb_context_code        => l_amb_context_code
146598         , p_entity_code             => 'AP_PAYMENTS'
146599         , p_event_class_code        => 'PAYMENTS'
146600         , p_side                    => 'NA'
146601         );
146602 
146603   END IF;
146604 
146605    --
146606    --
146607    END IF;
146608 
146609        --
146610        -- Update the line information that should be overwritten
146611        --
146612        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
146613                                          p_header_num   => 1);
146614        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
146615 
146616        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
146617 
146618        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
146619           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
146620        END IF;
146621 
146622       --
146623       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
146624       --
146625       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
146626           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
146627       ELSE
146628           ---------------------------------------------------------------------------------------------------
146629           -- 4262811a Switch Sign
146630           ---------------------------------------------------------------------------------------------------
146631           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
146632           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
146633                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
146634           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
146635                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
146636           -- 5132302
146637           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
146638                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
146639 
146640       END IF;
146641 
146642       -- 4955764
146643       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
146644       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
146645 
146646 
146647       XLA_AE_LINES_PKG.ValidateCurrentLine;
146648       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
146649 
146650       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
146651                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
146652                ,p_balance_type_code => l_balance_type_code);
146653 
146654    END IF;
146655 
146656    -----------------------------------------------------------------------------------------
146657    -- 4262811 Multiperiod Accounting
146658    -----------------------------------------------------------------------------------------
146659      -- No MPA option is assigned.
146660 
146661 
146662 END IF;
146663 END IF;
146664 --
146665 
146666 --
146667 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
146668    trace
146669       (p_msg      => 'END of AcctLineType_240'
146670       ,p_level    => C_LEVEL_PROCEDURE
146671       ,p_module   => l_log_module);
146672 END IF;
146673 --
146674 EXCEPTION
146675   WHEN xla_exceptions_pkg.application_exception THEN
146679            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_240');
146676       RAISE;
146677   WHEN OTHERS THEN
146678        xla_exceptions_pkg.raise_message
146680 END AcctLineType_240;
146681 --
146682 
146683 ---------------------------------------
146684 --
146685 -- PRIVATE FUNCTION
146686 --         AcctLineType_241
146687 --
146688 ---------------------------------------
146689 PROCEDURE AcctLineType_241 (
146690   p_application_id        IN NUMBER
146691  ,p_event_id              IN NUMBER
146692  ,p_calculate_acctd_flag  IN VARCHAR2
146693  ,p_calculate_g_l_flag    IN VARCHAR2
146694  ,p_actual_flag           IN OUT VARCHAR2
146695  ,p_balance_type_code     OUT VARCHAR2
146696  ,p_gain_or_loss_ref      OUT VARCHAR2
146697  
146698 --Document Sequence Name
146699  , p_source_3            IN VARCHAR2
146700 --Payment Document Voucher Number
146701  , p_source_4            IN NUMBER
146702 --Payment Transaction Number
146703  , p_source_5            IN NUMBER
146704 --Payment Document Date
146705  , p_source_6            IN DATE
146706 --Bank Account Name
146707  , p_source_7            IN VARCHAR2
146708 --Payment Currency Code
146709  , p_source_8            IN VARCHAR2
146710 --Automatic Offsets Value
146711  , p_source_10            IN VARCHAR2
146712  , p_source_10_meaning    IN VARCHAR2
146713 --Bank Cash Account
146714  , p_source_12            IN NUMBER
146715 --Invoice Distribution Account
146716  , p_source_25            IN NUMBER
146717 --Invoice Liability Account
146718  , p_source_29            IN NUMBER
146719 --Bank Cash Clearing Account
146720  , p_source_30            IN NUMBER
146721 --Federal Fund Category
146722  , p_source_49            IN VARCHAR2
146723 --Federal Fund Expired Status
146724  , p_source_50            IN VARCHAR2
146725 --Federal Fund Category Description
146726  , p_source_51            IN VARCHAR2
146727 --When to Account for Payment Option
146728  , p_source_57            IN VARCHAR2
146729 --Accounting Reversal Indicator
146730  , p_source_58            IN VARCHAR2
146731 --Distribution Link Type
146732  , p_source_60            IN VARCHAR2
146733 --Override Accounted Amount Indicator
146734  , p_source_85            IN VARCHAR2
146735  , p_source_85_meaning    IN VARCHAR2
146736 --Third Party Type
146737  , p_source_88            IN VARCHAR2
146738 --Invoice Distribution Tax Line Identifier
146739  , p_source_91            IN NUMBER
146740 --Invoice Distribution Tax Distribution Identifier from Tax
146741  , p_source_92            IN NUMBER
146742 --Invoice Distribution Summary Tax Line Identifier
146743  , p_source_93            IN NUMBER
146744 --Business Flow Accounts Payable Application Identifier
146745  , p_source_96            IN NUMBER
146746 --Business Flow Invoice Distribution Type
146747  , p_source_97            IN VARCHAR2
146748 --Business Flow Invoice Entity Code
146749  , p_source_98            IN VARCHAR2
146750 --Business Flow Invoice Distribution Identifier
146751  , p_source_99            IN NUMBER
146752 --Business Flow Invoice Identifier
146753  , p_source_100            IN NUMBER
146754 --Payment Distribution Type
146755  , p_source_101            IN VARCHAR2
146756  , p_source_101_meaning    IN VARCHAR2
146757 --Payment Distribution Amount
146758  , p_source_102            IN NUMBER
146759 --Payment Distribution Identifier
146760  , p_source_107            IN NUMBER
146761 --Payment Supplier Identifier
146762  , p_source_113            IN NUMBER
146763 --Payment Supplier Site Identifier
146764  , p_source_114            IN NUMBER
146765 --Payment Distribution Reversed Identifier
146766  , p_source_115            IN NUMBER
146767 --Payment Distribution (Payment Rate) Ledger Amount
146768  , p_source_118            IN NUMBER
146769 --Payment Exchange Date
146770  , p_source_120            IN DATE
146771 --Payment Exchange Rate
146772  , p_source_121            IN NUMBER
146773 --Payment Exchange Rate Type
146774  , p_source_122            IN VARCHAR2
146775 --Invoice Distribution Amount of the Payment Distribution
146776  , p_source_127            IN NUMBER
146777 )
146778 IS
146779 
146780 l_component_type              VARCHAR2(80);
146781 l_component_code              VARCHAR2(30);
146782 l_component_type_code         VARCHAR2(1);
146783 l_component_appl_id           INTEGER;
146784 l_amb_context_code            VARCHAR2(30);
146785 l_entity_code                 VARCHAR2(30);
146786 l_event_class_code            VARCHAR2(30);
146787 l_ae_header_id                NUMBER;
146788 l_event_type_code             VARCHAR2(30);
146789 l_line_definition_code        VARCHAR2(30);
146790 l_line_definition_owner_code  VARCHAR2(1);
146791 --
146792 -- adr variables
146793 l_segment                     VARCHAR2(30);
146794 l_ccid                        NUMBER;
146795 l_adr_transaction_coa_id      NUMBER;
146796 l_adr_accounting_coa_id       NUMBER;
146797 l_adr_flexfield_segment_code  VARCHAR2(30);
146798 l_adr_flex_value_set_id       NUMBER;
146799 l_adr_value_type_code         VARCHAR2(30);
146800 l_adr_value_combination_id    NUMBER;
146801 l_adr_value_segment_code      VARCHAR2(30);
146802 
146803 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
146804 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
146805 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
146806 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
146807 
146808 -- 4262811 Variables ------------------------------------------------------------------------------------------
146809 l_entered_amt_idx             NUMBER;
146810 l_accted_amt_idx              NUMBER;
146811 l_acc_rev_flag                VARCHAR2(1);
146812 l_accrual_line_num            NUMBER;
146813 l_tmp_amt                     NUMBER;
146814 l_acc_rev_natural_side_code   VARCHAR2(1);
146815 
146816 l_num_entries                 NUMBER;
146817 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
146821 l_recog_line_1                NUMBER;
146818 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
146819 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
146820 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
146822 l_recog_line_2                NUMBER;
146823 
146824 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
146825 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
146826 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
146827 
146828 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
146829 
146830 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
146831 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
146832 
146833 ---------------------------------------------------------------------------------------------------------------
146834 
146835 
146836 --
146837 -- bulk performance
146838 --
146839 l_balance_type_code           VARCHAR2(1);
146840 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
146841 l_log_module                  VARCHAR2(240);
146842 
146843 --
146844 -- Upgrade strategy
146845 --
146846 l_actual_upg_option           VARCHAR2(1);
146847 l_enc_upg_option           VARCHAR2(1);
146848 
146849 --
146850 BEGIN
146851 --
146852 IF g_log_enabled THEN
146853       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_241';
146854 END IF;
146855 --
146856 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
146857 
146858       trace
146859          (p_msg      => 'BEGIN of AcctLineType_241'
146860          ,p_level    => C_LEVEL_PROCEDURE
146861          ,p_module   => l_log_module);
146862 
146863 END IF;
146864 --
146865 l_component_type             := 'AMB_JLT';
146866 l_component_code             := 'FV_AP_DISCOUNT_CR';
146867 l_component_type_code        := 'S';
146868 l_component_appl_id          :=  200;
146869 l_amb_context_code           := 'DEFAULT';
146870 l_entity_code                := 'AP_PAYMENTS';
146871 l_event_class_code           := 'PAYMENTS';
146872 l_event_type_code            := 'PAYMENTS_ALL';
146873 l_line_definition_owner_code := 'S';
146874 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
146875 --
146876 l_balance_type_code          := 'A';
146877 l_segment                     := NULL;
146878 l_ccid                        := NULL;
146879 l_adr_transaction_coa_id      := NULL;
146880 l_adr_accounting_coa_id       := NULL;
146881 l_adr_flexfield_segment_code  := NULL;
146882 l_adr_flex_value_set_id       := NULL;
146883 l_adr_value_type_code         := NULL;
146884 l_adr_value_combination_id    := NULL;
146885 l_adr_value_segment_code      := NULL;
146886 
146887 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
146888 l_bflow_class_code           := '';    -- 4219869 Business Flow
146889 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
146890 l_budgetary_control_flag     := 'N';
146891 
146892 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
146893 l_bflow_applied_to_amt       := NULL; -- 5132302
146894 l_entered_amt_idx            := NULL;          -- 4262811
146895 l_accted_amt_idx             := NULL;          -- 4262811
146896 l_acc_rev_flag               := NULL;          -- 4262811
146897 l_accrual_line_num           := NULL;          -- 4262811
146898 l_tmp_amt                    := NULL;          -- 4262811
146899 --
146900  
146901 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
146902     l_balance_type_code <> 'B' THEN
146903 IF NVL(p_source_101,'
146904 ') =  'DISCOUNT'
146905  THEN 
146906 
146907    --
146908    XLA_AE_LINES_PKG.SetNewLine;
146909 
146910    p_balance_type_code          := l_balance_type_code;
146911    -- set the flag so later we will know whether the gain loss line needs to be created
146912    
146913    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
146914      p_actual_flag :='A';
146915    END IF;
146916 
146917    --
146918    -- bulk performance
146919    --
146920    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
146921                                       p_header_num   => 0); -- 4262811
146922    --
146923    -- set accounting line options
146924    --
146925    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
146926            p_natural_side_code          => 'C'
146927          , p_gain_or_loss_flag          => 'N'
146928          , p_gl_transfer_mode_code      => 'S'
146929          , p_acct_entry_type_code       => 'A'
146930          , p_switch_side_flag           => 'N'
146931          , p_merge_duplicate_code       => 'N'
146932          );
146933    --
146934    l_acc_rev_natural_side_code := 'D';  -- 4262811
146935    -- 
146936    --
146937    -- set accounting line type info
146938    --
146939    xla_ae_lines_pkg.SetAcctLineType
146940       (p_component_type             => l_component_type
146941       ,p_event_type_code            => l_event_type_code
146942       ,p_line_definition_owner_code => l_line_definition_owner_code
146943       ,p_line_definition_code       => l_line_definition_code
146944       ,p_accounting_line_code       => l_component_code
146945       ,p_accounting_line_type_code  => l_component_type_code
146946       ,p_accounting_line_appl_id    => l_component_appl_id
146947       ,p_amb_context_code           => l_amb_context_code
146948       ,p_entity_code                => l_entity_code
146949       ,p_event_class_code           => l_event_class_code);
146950    --
146951    -- set accounting class
146952    --
146953    xla_ae_lines_pkg.SetAcctClass(
146954            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
146955          , p_ae_header_id           => l_ae_header_id
146956          );
146957 
146958    --
146959    -- set rounding class
146963 
146960    --
146961    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
146962                       'ACCOUNTSPAYABLE';
146964    --
146965    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
146966    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
146967    --
146968    -- bulk performance
146969    --
146970    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
146971 
146972    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
146973       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
146974 
146975    -- 4955764
146976    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
146977       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
146978 
146979    -- 4458381 Public Sector Enh
146980    
146981    --
146982    -- set accounting attributes for the line type
146983    --
146984    l_entered_amt_idx := 10;
146985    l_accted_amt_idx  := 15;
146986    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
146987    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
146988    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
146989    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
146990    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
146991    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
146992    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
146993    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
146994    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
146995    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
146996    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
146997    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
146998    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
146999    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
147000    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
147001    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
147002    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
147003    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
147004    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
147005    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
147006    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
147007    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
147008    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
147009    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
147010    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
147011    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
147012    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
147013    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
147014    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
147015    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
147016    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
147017    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
147018    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
147019    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
147020    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
147021    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
147022    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
147023    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
147024    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
147025    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
147026    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
147027    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
147028    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
147029    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
147030    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
147031    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
147032    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
147033    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
147034    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
147035 
147036    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
147037    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
147038 
147039    ---------------------------------------------------------------------------------------------------------------
147040    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
147041    ---------------------------------------------------------------------------------------------------------------
147042    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
147043 
147044    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
147045    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
147046 
147047    IF xla_accounting_cache_pkg.GetValueChar
147048          (p_source_code         => 'LEDGER_CATEGORY_CODE'
147049          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
147050    AND l_bflow_method_code = 'PRIOR_ENTRY'
147051 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
147052    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
147053          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
147054        )
147055    THEN
147056          xla_ae_lines_pkg.BflowUpgEntry
147057            (p_business_method_code    => l_bflow_method_code
147058            ,p_business_class_code     => l_bflow_class_code
147062 -- No business flow processing for business flow method of NONE.
147059            ,p_balance_type            => l_balance_type_code);
147060    ELSE
147061       NULL;
147063    END IF;
147064 
147065    --
147066    -- call analytical criteria
147067    --
147068    
147069    --
147070    -- call description
147071    --
147072    
147073 xla_ae_lines_pkg.SetLineDescription(
147074    p_ae_header_id => l_ae_header_id
147075   ,p_description  => Description_3 (
147076      p_application_id         => p_application_id
147077    , p_ae_header_id           => l_ae_header_id 
147078 , p_source_3 => p_source_3
147079 , p_source_4 => p_source_4
147080 , p_source_5 => p_source_5
147081 , p_source_6 => p_source_6
147082 , p_source_7 => p_source_7
147083 , p_source_8 => p_source_8
147084    )
147085 );
147086 
147087 
147088    --
147089    -- call ADRs
147090    -- Bug 4922099
147091    --
147092    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
147093         (NVL(l_actual_upg_option, 'N') = 'O') OR
147094         (NVL(l_enc_upg_option, 'N') = 'O')
147095       )
147096    THEN
147097    NULL;
147098    --
147099    --
147100    
147101   l_ccid := AcctDerRule_55(
147102            p_application_id           => p_application_id
147103          , p_ae_header_id             => l_ae_header_id 
147104 , p_source_12 => p_source_12
147105 , p_source_30 => p_source_30
147106 , p_source_57 => p_source_57
147107          , x_transaction_coa_id       => l_adr_transaction_coa_id
147108          , x_accounting_coa_id        => l_adr_accounting_coa_id
147109          , x_value_type_code          => l_adr_value_type_code
147110          , p_side                     => 'NA'
147111    );
147112 
147113    xla_ae_lines_pkg.set_ccid(
147114     p_code_combination_id          => l_ccid
147115   , p_value_type_code              => l_adr_value_type_code
147116   , p_transaction_coa_id           => l_adr_transaction_coa_id
147117   , p_accounting_coa_id            => l_adr_accounting_coa_id
147118   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
147119   , p_adr_type_code                => 'S'
147120   , p_component_type               => l_component_type
147121   , p_component_code               => l_component_code
147122   , p_component_type_code          => l_component_type_code
147123   , p_component_appl_id            => l_component_appl_id
147124   , p_amb_context_code             => l_amb_context_code
147125   , p_side                         => 'NA'
147126   );
147127 
147128 
147129    l_segment := AcctDerRule_50(
147130            p_application_id           => p_application_id
147131          , p_ae_header_id             => l_ae_header_id 
147132 , p_source_49 => p_source_49
147133 , p_source_50 => p_source_50
147134 , p_source_51 => p_source_51
147135          , x_transaction_coa_id       => l_adr_transaction_coa_id
147136          , x_accounting_coa_id        => l_adr_accounting_coa_id
147137          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
147138          , x_flex_value_set_id        => l_adr_flex_value_set_id
147139          , x_value_type_code          => l_adr_value_type_code
147140          , x_value_combination_id     => l_adr_value_combination_id
147141          , x_value_segment_code       => l_adr_value_segment_code
147142          , p_side                     => 'NA'
147143          , p_override_seg_flag        => 'Y'
147144    );
147145 
147146    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
147147 
147148       xla_ae_lines_pkg.set_segment(
147149           p_to_segment_code         => 'GL_ACCOUNT'
147150         , p_segment_value           => l_segment
147151         , p_from_segment_code       => l_adr_value_segment_code
147152         , p_from_combination_id     => l_adr_value_combination_id
147153         , p_value_type_code         => l_adr_value_type_code
147154         , p_transaction_coa_id      => l_adr_transaction_coa_id
147155         , p_accounting_coa_id       => l_adr_accounting_coa_id
147156         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
147157         , p_flex_value_set_id       => l_adr_flex_value_set_id
147158         , p_adr_code                => 'FV_46X002_ALLOTMENT_RES_ACCT'
147159         , p_adr_type_code           => 'S'
147160         , p_component_type          => l_component_type
147161         , p_component_code          => l_component_code
147162         , p_component_type_code     => l_component_type_code
147163         , p_component_appl_id       => l_component_appl_id
147164         , p_amb_context_code        => l_amb_context_code
147165         , p_entity_code             => 'AP_PAYMENTS'
147166         , p_event_class_code        => 'PAYMENTS'
147167         , p_side                    => 'NA'
147168         );
147169 
147170   END IF;
147171 
147172    l_segment := AcctDerRule_27(
147173            p_application_id           => p_application_id
147174          , p_ae_header_id             => l_ae_header_id 
147175 , p_source_10 => p_source_10
147176 , p_source_10_meaning => p_source_10_meaning
147177 , p_source_25 => p_source_25
147178 , p_source_29 => p_source_29
147179          , x_transaction_coa_id       => l_adr_transaction_coa_id
147180          , x_accounting_coa_id        => l_adr_accounting_coa_id
147181          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
147182          , x_flex_value_set_id        => l_adr_flex_value_set_id
147183          , x_value_type_code          => l_adr_value_type_code
147184          , x_value_combination_id     => l_adr_value_combination_id
147185          , x_value_segment_code       => l_adr_value_segment_code
147186          , p_side                     => 'NA'
147187          , p_override_seg_flag        => 'Y'
147188    );
147189 
147190    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
147191 
147192       xla_ae_lines_pkg.set_segment(
147193           p_to_segment_code         => 'GL_BALANCING'
147194         , p_segment_value           => l_segment
147198         , p_transaction_coa_id      => l_adr_transaction_coa_id
147195         , p_from_segment_code       => l_adr_value_segment_code
147196         , p_from_combination_id     => l_adr_value_combination_id
147197         , p_value_type_code         => l_adr_value_type_code
147199         , p_accounting_coa_id       => l_adr_accounting_coa_id
147200         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
147201         , p_flex_value_set_id       => l_adr_flex_value_set_id
147202         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
147203         , p_adr_type_code           => 'S'
147204         , p_component_type          => l_component_type
147205         , p_component_code          => l_component_code
147206         , p_component_type_code     => l_component_type_code
147207         , p_component_appl_id       => l_component_appl_id
147208         , p_amb_context_code        => l_amb_context_code
147209         , p_entity_code             => 'AP_PAYMENTS'
147210         , p_event_class_code        => 'PAYMENTS'
147211         , p_side                    => 'NA'
147212         );
147213 
147214   END IF;
147215 
147216    --
147217    --
147218    END IF;
147219    --
147220    -- Bug 4922099
147221    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
147222           (NVL(l_enc_upg_option, 'N') = 'O')
147223         ) AND
147224         (l_bflow_method_code = 'PRIOR_ENTRY')
147225       )
147226    THEN
147227       IF
147228       --
147229       1 = 2
147230       --
147231       THEN
147232       xla_accounting_err_pkg.build_message
147233                                     (p_appli_s_name            => 'XLA'
147234                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
147235                                     ,p_token_1                 => 'LINE_NUMBER'
147236                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
147237                                     ,p_token_2                 => 'LINE_TYPE_NAME'
147238                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
147239                                                                              l_component_type
147240                                                                             ,l_component_code
147241                                                                             ,l_component_type_code
147242                                                                             ,l_component_appl_id
147243                                                                             ,l_amb_context_code
147244                                                                             ,l_entity_code
147245                                                                             ,l_event_class_code
147246                                                                            )
147247                                     ,p_token_3                 => 'OWNER'
147248                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
147249                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
147250                                                                           ,p_lookup_code    => l_component_type_code
147251                                                                          )
147252                                     ,p_token_4                 => 'PRODUCT_NAME'
147253                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
147254                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
147255                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
147256                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
147257                                     ,p_ae_header_id            =>  NULL
147258                                        );
147259 
147260         IF (C_LEVEL_ERROR>= g_log_level) THEN
147261                  trace
147262                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
147263                       ,p_level    => C_LEVEL_ERROR
147264                       ,p_module   => l_log_module);
147265         END IF;
147266       END IF;
147267    END IF;
147268    --
147269    --
147270    ------------------------------------------------------------------------------------------------
147271    -- 4219869 Business Flow
147272    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
147273    -- Prior Entry.  Currently, the following code is always generated.
147274    ------------------------------------------------------------------------------------------------
147275    XLA_AE_LINES_PKG.ValidateCurrentLine;
147276 
147277    ------------------------------------------------------------------------------------
147278    -- 4219869 Business Flow
147279    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
147280    ------------------------------------------------------------------------------------
147281    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
147282 
147283    ----------------------------------------------------------------------------------
147284    -- 4219869 Business Flow
147285    -- Update journal entry status -- Need to generate this within IF <condition>
147286    ----------------------------------------------------------------------------------
147287    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
147288          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
147289          ,p_balance_type_code => l_balance_type_code
147290          );
147291 
147292    -------------------------------------------------------------------------------------------
147293    -- 4262811 - Generate the Accrual Reversal lines
147294    -------------------------------------------------------------------------------------------
147295    BEGIN
147296       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
147300       END IF;
147297                               (g_array_event(p_event_id).array_value_num('header_index'));
147298       IF l_acc_rev_flag IS NULL THEN
147299          l_acc_rev_flag := 'N';
147301    EXCEPTION
147302       WHEN OTHERS THEN
147303          l_acc_rev_flag := 'N';
147304    END;
147305    --
147306    IF (l_acc_rev_flag = 'Y') THEN
147307 
147308        -- 4645092  ------------------------------------------------------------------------------
147309        -- To allow MPA report to determine if it should generate report process
147310        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
147311        ------------------------------------------------------------------------------------------
147312 
147313        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
147314        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
147315    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
147316    -- call ADRs
147317    -- Bug 4922099
147318    --
147319    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
147320         (NVL(l_actual_upg_option, 'N') = 'O') OR
147321         (NVL(l_enc_upg_option, 'N') = 'O')
147322       )
147323    THEN
147324    NULL;
147325    --
147326    --
147327    
147328   l_ccid := AcctDerRule_55(
147329            p_application_id           => p_application_id
147330          , p_ae_header_id             => l_ae_header_id 
147331 , p_source_12 => p_source_12
147332 , p_source_30 => p_source_30
147333 , p_source_57 => p_source_57
147334          , x_transaction_coa_id       => l_adr_transaction_coa_id
147335          , x_accounting_coa_id        => l_adr_accounting_coa_id
147336          , x_value_type_code          => l_adr_value_type_code
147337          , p_side                     => 'NA'
147338    );
147339 
147340    xla_ae_lines_pkg.set_ccid(
147341     p_code_combination_id          => l_ccid
147342   , p_value_type_code              => l_adr_value_type_code
147343   , p_transaction_coa_id           => l_adr_transaction_coa_id
147344   , p_accounting_coa_id            => l_adr_accounting_coa_id
147345   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
147346   , p_adr_type_code                => 'S'
147347   , p_component_type               => l_component_type
147348   , p_component_code               => l_component_code
147349   , p_component_type_code          => l_component_type_code
147350   , p_component_appl_id            => l_component_appl_id
147351   , p_amb_context_code             => l_amb_context_code
147352   , p_side                         => 'NA'
147353   );
147354 
147355 
147356    l_segment := AcctDerRule_50(
147357            p_application_id           => p_application_id
147358          , p_ae_header_id             => l_ae_header_id 
147359 , p_source_49 => p_source_49
147360 , p_source_50 => p_source_50
147361 , p_source_51 => p_source_51
147362          , x_transaction_coa_id       => l_adr_transaction_coa_id
147363          , x_accounting_coa_id        => l_adr_accounting_coa_id
147364          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
147365          , x_flex_value_set_id        => l_adr_flex_value_set_id
147366          , x_value_type_code          => l_adr_value_type_code
147367          , x_value_combination_id     => l_adr_value_combination_id
147368          , x_value_segment_code       => l_adr_value_segment_code
147369          , p_side                     => 'NA'
147370          , p_override_seg_flag        => 'Y'
147371    );
147372 
147373    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
147374 
147375       xla_ae_lines_pkg.set_segment(
147376           p_to_segment_code         => 'GL_ACCOUNT'
147377         , p_segment_value           => l_segment
147378         , p_from_segment_code       => l_adr_value_segment_code
147379         , p_from_combination_id     => l_adr_value_combination_id
147380         , p_value_type_code         => l_adr_value_type_code
147381         , p_transaction_coa_id      => l_adr_transaction_coa_id
147382         , p_accounting_coa_id       => l_adr_accounting_coa_id
147383         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
147384         , p_flex_value_set_id       => l_adr_flex_value_set_id
147385         , p_adr_code                => 'FV_46X002_ALLOTMENT_RES_ACCT'
147386         , p_adr_type_code           => 'S'
147387         , p_component_type          => l_component_type
147388         , p_component_code          => l_component_code
147389         , p_component_type_code     => l_component_type_code
147390         , p_component_appl_id       => l_component_appl_id
147391         , p_amb_context_code        => l_amb_context_code
147392         , p_entity_code             => 'AP_PAYMENTS'
147393         , p_event_class_code        => 'PAYMENTS'
147394         , p_side                    => 'NA'
147395         );
147396 
147397   END IF;
147398 
147399    l_segment := AcctDerRule_27(
147400            p_application_id           => p_application_id
147401          , p_ae_header_id             => l_ae_header_id 
147402 , p_source_10 => p_source_10
147403 , p_source_10_meaning => p_source_10_meaning
147404 , p_source_25 => p_source_25
147405 , p_source_29 => p_source_29
147406          , x_transaction_coa_id       => l_adr_transaction_coa_id
147407          , x_accounting_coa_id        => l_adr_accounting_coa_id
147408          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
147409          , x_flex_value_set_id        => l_adr_flex_value_set_id
147410          , x_value_type_code          => l_adr_value_type_code
147411          , x_value_combination_id     => l_adr_value_combination_id
147412          , x_value_segment_code       => l_adr_value_segment_code
147413          , p_side                     => 'NA'
147414          , p_override_seg_flag        => 'Y'
147415    );
147416 
147417    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
147418 
147419       xla_ae_lines_pkg.set_segment(
147420           p_to_segment_code         => 'GL_BALANCING'
147424         , p_value_type_code         => l_adr_value_type_code
147421         , p_segment_value           => l_segment
147422         , p_from_segment_code       => l_adr_value_segment_code
147423         , p_from_combination_id     => l_adr_value_combination_id
147425         , p_transaction_coa_id      => l_adr_transaction_coa_id
147426         , p_accounting_coa_id       => l_adr_accounting_coa_id
147427         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
147428         , p_flex_value_set_id       => l_adr_flex_value_set_id
147429         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
147430         , p_adr_type_code           => 'S'
147431         , p_component_type          => l_component_type
147432         , p_component_code          => l_component_code
147433         , p_component_type_code     => l_component_type_code
147434         , p_component_appl_id       => l_component_appl_id
147435         , p_amb_context_code        => l_amb_context_code
147436         , p_entity_code             => 'AP_PAYMENTS'
147437         , p_event_class_code        => 'PAYMENTS'
147438         , p_side                    => 'NA'
147439         );
147440 
147441   END IF;
147442 
147443    --
147444    --
147445    END IF;
147446 
147447        --
147448        -- Update the line information that should be overwritten
147449        --
147450        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
147451                                          p_header_num   => 1);
147452        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
147453 
147454        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
147455 
147456        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
147457           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
147458        END IF;
147459 
147460       --
147461       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
147462       --
147463       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
147464           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
147465       ELSE
147466           ---------------------------------------------------------------------------------------------------
147467           -- 4262811a Switch Sign
147468           ---------------------------------------------------------------------------------------------------
147469           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
147470           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
147471                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147472           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
147473                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147474           -- 5132302
147475           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
147476                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
147477 
147478       END IF;
147479 
147480       -- 4955764
147481       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
147482       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
147483 
147484 
147485       XLA_AE_LINES_PKG.ValidateCurrentLine;
147486       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
147487 
147488       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
147489                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
147490                ,p_balance_type_code => l_balance_type_code);
147491 
147492    END IF;
147493 
147494    -----------------------------------------------------------------------------------------
147495    -- 4262811 Multiperiod Accounting
147496    -----------------------------------------------------------------------------------------
147497      -- No MPA option is assigned.
147498 
147499 
147500 END IF;
147501 END IF;
147502 --
147503 
147504 --
147505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147506    trace
147507       (p_msg      => 'END of AcctLineType_241'
147508       ,p_level    => C_LEVEL_PROCEDURE
147509       ,p_module   => l_log_module);
147510 END IF;
147511 --
147512 EXCEPTION
147513   WHEN xla_exceptions_pkg.application_exception THEN
147514       RAISE;
147515   WHEN OTHERS THEN
147516        xla_exceptions_pkg.raise_message
147517            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_241');
147518 END AcctLineType_241;
147519 --
147520 
147521 ---------------------------------------
147522 --
147523 -- PRIVATE FUNCTION
147524 --         AcctLineType_242
147525 --
147526 ---------------------------------------
147527 PROCEDURE AcctLineType_242 (
147528   p_application_id        IN NUMBER
147529  ,p_event_id              IN NUMBER
147530  ,p_calculate_acctd_flag  IN VARCHAR2
147531  ,p_calculate_g_l_flag    IN VARCHAR2
147532  ,p_actual_flag           IN OUT VARCHAR2
147533  ,p_balance_type_code     OUT VARCHAR2
147534  ,p_gain_or_loss_ref      OUT VARCHAR2
147535  
147536 --Document Sequence Name
147537  , p_source_3            IN VARCHAR2
147538 --Payment Document Voucher Number
147539  , p_source_4            IN NUMBER
147540 --Payment Transaction Number
147541  , p_source_5            IN NUMBER
147542 --Payment Document Date
147543  , p_source_6            IN DATE
147544 --Bank Account Name
147545  , p_source_7            IN VARCHAR2
147546 --Payment Currency Code
147547  , p_source_8            IN VARCHAR2
147548 --Automatic Offsets Value
147549  , p_source_10            IN VARCHAR2
147553 --Invoice Distribution Account
147550  , p_source_10_meaning    IN VARCHAR2
147551 --Bank Cash Account
147552  , p_source_12            IN NUMBER
147554  , p_source_25            IN NUMBER
147555 --Invoice Liability Account
147556  , p_source_29            IN NUMBER
147557 --Bank Cash Clearing Account
147558  , p_source_30            IN NUMBER
147559 --Federal Fund Category Description
147560  , p_source_51            IN VARCHAR2
147561 --Invoice Type Paid
147562  , p_source_56            IN VARCHAR2
147563  , p_source_56_meaning    IN VARCHAR2
147564 --When to Account for Payment Option
147565  , p_source_57            IN VARCHAR2
147566 --Accounting Reversal Indicator
147567  , p_source_58            IN VARCHAR2
147568 --Distribution Link Type
147569  , p_source_60            IN VARCHAR2
147570 --Override Accounted Amount Indicator
147571  , p_source_85            IN VARCHAR2
147572  , p_source_85_meaning    IN VARCHAR2
147573 --Third Party Type
147574  , p_source_88            IN VARCHAR2
147575 --Invoice Distribution Tax Line Identifier
147576  , p_source_91            IN NUMBER
147577 --Invoice Distribution Tax Distribution Identifier from Tax
147578  , p_source_92            IN NUMBER
147579 --Invoice Distribution Summary Tax Line Identifier
147580  , p_source_93            IN NUMBER
147581 --Business Flow Accounts Payable Application Identifier
147582  , p_source_96            IN NUMBER
147583 --Business Flow Invoice Distribution Type
147584  , p_source_97            IN VARCHAR2
147585 --Business Flow Invoice Entity Code
147586  , p_source_98            IN VARCHAR2
147587 --Business Flow Invoice Distribution Identifier
147588  , p_source_99            IN NUMBER
147589 --Business Flow Invoice Identifier
147590  , p_source_100            IN NUMBER
147591 --Payment Distribution Type
147592  , p_source_101            IN VARCHAR2
147593  , p_source_101_meaning    IN VARCHAR2
147594 --Payment Distribution Amount
147595  , p_source_102            IN NUMBER
147596 --Payment Distribution Identifier
147597  , p_source_107            IN NUMBER
147598 --Payment Supplier Identifier
147599  , p_source_113            IN NUMBER
147600 --Payment Supplier Site Identifier
147601  , p_source_114            IN NUMBER
147602 --Payment Distribution Reversed Identifier
147603  , p_source_115            IN NUMBER
147604 --Payment Distribution (Payment Rate) Ledger Amount
147605  , p_source_118            IN NUMBER
147606 --Payment Exchange Date
147607  , p_source_120            IN DATE
147608 --Payment Exchange Rate
147609  , p_source_121            IN NUMBER
147610 --Payment Exchange Rate Type
147611  , p_source_122            IN VARCHAR2
147612 --Invoice Distribution Amount of the Payment Distribution
147613  , p_source_127            IN NUMBER
147614 )
147615 IS
147616 
147617 l_component_type              VARCHAR2(80);
147618 l_component_code              VARCHAR2(30);
147619 l_component_type_code         VARCHAR2(1);
147620 l_component_appl_id           INTEGER;
147621 l_amb_context_code            VARCHAR2(30);
147622 l_entity_code                 VARCHAR2(30);
147623 l_event_class_code            VARCHAR2(30);
147624 l_ae_header_id                NUMBER;
147625 l_event_type_code             VARCHAR2(30);
147626 l_line_definition_code        VARCHAR2(30);
147627 l_line_definition_owner_code  VARCHAR2(1);
147628 --
147629 -- adr variables
147630 l_segment                     VARCHAR2(30);
147631 l_ccid                        NUMBER;
147632 l_adr_transaction_coa_id      NUMBER;
147633 l_adr_accounting_coa_id       NUMBER;
147634 l_adr_flexfield_segment_code  VARCHAR2(30);
147635 l_adr_flex_value_set_id       NUMBER;
147636 l_adr_value_type_code         VARCHAR2(30);
147637 l_adr_value_combination_id    NUMBER;
147638 l_adr_value_segment_code      VARCHAR2(30);
147639 
147640 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
147641 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
147642 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
147643 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
147644 
147645 -- 4262811 Variables ------------------------------------------------------------------------------------------
147646 l_entered_amt_idx             NUMBER;
147647 l_accted_amt_idx              NUMBER;
147648 l_acc_rev_flag                VARCHAR2(1);
147649 l_accrual_line_num            NUMBER;
147650 l_tmp_amt                     NUMBER;
147651 l_acc_rev_natural_side_code   VARCHAR2(1);
147652 
147653 l_num_entries                 NUMBER;
147654 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
147655 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
147656 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
147657 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
147658 l_recog_line_1                NUMBER;
147659 l_recog_line_2                NUMBER;
147660 
147661 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
147662 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
147663 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
147664 
147665 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
147666 
147667 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
147668 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
147669 
147670 ---------------------------------------------------------------------------------------------------------------
147671 
147672 
147673 --
147674 -- bulk performance
147675 --
147676 l_balance_type_code           VARCHAR2(1);
147677 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
147678 l_log_module                  VARCHAR2(240);
147679 
147680 --
147681 -- Upgrade strategy
147682 --
147683 l_actual_upg_option           VARCHAR2(1);
147687 BEGIN
147684 l_enc_upg_option           VARCHAR2(1);
147685 
147686 --
147688 --
147689 IF g_log_enabled THEN
147690       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_242';
147691 END IF;
147692 --
147693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147694 
147695       trace
147696          (p_msg      => 'BEGIN of AcctLineType_242'
147697          ,p_level    => C_LEVEL_PROCEDURE
147698          ,p_module   => l_log_module);
147699 
147700 END IF;
147701 --
147702 l_component_type             := 'AMB_JLT';
147703 l_component_code             := 'FV_AP_PAY_DIRECT_FUND_CR';
147704 l_component_type_code        := 'S';
147705 l_component_appl_id          :=  200;
147706 l_amb_context_code           := 'DEFAULT';
147707 l_entity_code                := 'AP_PAYMENTS';
147708 l_event_class_code           := 'PAYMENTS';
147709 l_event_type_code            := 'PAYMENTS_ALL';
147710 l_line_definition_owner_code := 'S';
147711 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
147712 --
147713 l_balance_type_code          := 'A';
147714 l_segment                     := NULL;
147715 l_ccid                        := NULL;
147716 l_adr_transaction_coa_id      := NULL;
147717 l_adr_accounting_coa_id       := NULL;
147718 l_adr_flexfield_segment_code  := NULL;
147719 l_adr_flex_value_set_id       := NULL;
147720 l_adr_value_type_code         := NULL;
147721 l_adr_value_combination_id    := NULL;
147722 l_adr_value_segment_code      := NULL;
147723 
147724 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
147725 l_bflow_class_code           := '';    -- 4219869 Business Flow
147726 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
147727 l_budgetary_control_flag     := 'N';
147728 
147729 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
147730 l_bflow_applied_to_amt       := NULL; -- 5132302
147731 l_entered_amt_idx            := NULL;          -- 4262811
147732 l_accted_amt_idx             := NULL;          -- 4262811
147733 l_acc_rev_flag               := NULL;          -- 4262811
147734 l_accrual_line_num           := NULL;          -- 4262811
147735 l_tmp_amt                    := NULL;          -- 4262811
147736 --
147737  
147738 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
147739     l_balance_type_code <> 'B' THEN
147740 IF (NVL(p_source_56,'
147741 ') =  'INTEREST' OR 
147742 NVL(p_source_101,'
147743 ') =  'DISCOUNT') AND 
147744 NVL(p_source_51,'
147745 ') =  'Direct'
147746  THEN 
147747 
147748    --
147749    XLA_AE_LINES_PKG.SetNewLine;
147750 
147751    p_balance_type_code          := l_balance_type_code;
147752    -- set the flag so later we will know whether the gain loss line needs to be created
147753    
147754    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
147755      p_actual_flag :='A';
147756    END IF;
147757 
147758    --
147759    -- bulk performance
147760    --
147761    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
147762                                       p_header_num   => 0); -- 4262811
147763    --
147764    -- set accounting line options
147765    --
147766    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
147767            p_natural_side_code          => 'C'
147768          , p_gain_or_loss_flag          => 'N'
147769          , p_gl_transfer_mode_code      => 'S'
147770          , p_acct_entry_type_code       => 'A'
147771          , p_switch_side_flag           => 'N'
147772          , p_merge_duplicate_code       => 'N'
147773          );
147774    --
147775    l_acc_rev_natural_side_code := 'D';  -- 4262811
147776    -- 
147777    --
147778    -- set accounting line type info
147779    --
147780    xla_ae_lines_pkg.SetAcctLineType
147781       (p_component_type             => l_component_type
147782       ,p_event_type_code            => l_event_type_code
147783       ,p_line_definition_owner_code => l_line_definition_owner_code
147784       ,p_line_definition_code       => l_line_definition_code
147785       ,p_accounting_line_code       => l_component_code
147786       ,p_accounting_line_type_code  => l_component_type_code
147787       ,p_accounting_line_appl_id    => l_component_appl_id
147788       ,p_amb_context_code           => l_amb_context_code
147789       ,p_entity_code                => l_entity_code
147790       ,p_event_class_code           => l_event_class_code);
147791    --
147792    -- set accounting class
147793    --
147794    xla_ae_lines_pkg.SetAcctClass(
147795            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
147796          , p_ae_header_id           => l_ae_header_id
147797          );
147798 
147799    --
147800    -- set rounding class
147801    --
147802    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
147803                       'ACCOUNTSPAYABLE';
147804 
147805    --
147806    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
147807    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
147808    --
147809    -- bulk performance
147810    --
147811    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
147812 
147813    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
147814       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
147815 
147816    -- 4955764
147817    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
147818       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
147819 
147820    -- 4458381 Public Sector Enh
147821    
147822    --
147823    -- set accounting attributes for the line type
147824    --
147825    l_entered_amt_idx := 10;
147826    l_accted_amt_idx  := 15;
147830    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
147827    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
147828    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
147829    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
147831    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
147832    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
147833    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
147834    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
147835    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
147836    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
147837    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
147838    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
147839    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
147840    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
147841    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
147842    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
147843    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
147844    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
147845    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
147846    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
147847    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
147848    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
147849    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
147850    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
147851    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
147852    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
147853    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
147854    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
147855    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
147856    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
147857    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
147858    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
147859    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
147860    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
147861    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
147862    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
147863    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
147864    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
147865    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
147866    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
147867    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
147868    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
147869    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
147870    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
147871    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
147872    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
147873    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
147874    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
147875    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
147876 
147877    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
147878    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
147879 
147880    ---------------------------------------------------------------------------------------------------------------
147881    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
147882    ---------------------------------------------------------------------------------------------------------------
147883    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
147884 
147885    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
147886    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
147887 
147888    IF xla_accounting_cache_pkg.GetValueChar
147889          (p_source_code         => 'LEDGER_CATEGORY_CODE'
147890          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
147891    AND l_bflow_method_code = 'PRIOR_ENTRY'
147892 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
147893    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
147894          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
147895        )
147896    THEN
147897          xla_ae_lines_pkg.BflowUpgEntry
147898            (p_business_method_code    => l_bflow_method_code
147899            ,p_business_class_code     => l_bflow_class_code
147900            ,p_balance_type            => l_balance_type_code);
147901    ELSE
147902       NULL;
147903 -- No business flow processing for business flow method of NONE.
147904    END IF;
147905 
147906    --
147907    -- call analytical criteria
147908    --
147909    
147910    --
147911    -- call description
147912    --
147913    
147914 xla_ae_lines_pkg.SetLineDescription(
147915    p_ae_header_id => l_ae_header_id
147916   ,p_description  => Description_3 (
147917      p_application_id         => p_application_id
147918    , p_ae_header_id           => l_ae_header_id 
147919 , p_source_3 => p_source_3
147920 , p_source_4 => p_source_4
147921 , p_source_5 => p_source_5
147922 , p_source_6 => p_source_6
147923 , p_source_7 => p_source_7
147924 , p_source_8 => p_source_8
147925    )
147926 );
147927 
147928 
147929    --
147930    -- call ADRs
147931    -- Bug 4922099
147932    --
147933    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
147934         (NVL(l_actual_upg_option, 'N') = 'O') OR
147935         (NVL(l_enc_upg_option, 'N') = 'O')
147936       )
147937    THEN
147938    NULL;
147942   l_ccid := AcctDerRule_55(
147939    --
147940    --
147941    
147943            p_application_id           => p_application_id
147944          , p_ae_header_id             => l_ae_header_id 
147945 , p_source_12 => p_source_12
147946 , p_source_30 => p_source_30
147947 , p_source_57 => p_source_57
147948          , x_transaction_coa_id       => l_adr_transaction_coa_id
147949          , x_accounting_coa_id        => l_adr_accounting_coa_id
147950          , x_value_type_code          => l_adr_value_type_code
147951          , p_side                     => 'NA'
147952    );
147953 
147954    xla_ae_lines_pkg.set_ccid(
147955     p_code_combination_id          => l_ccid
147956   , p_value_type_code              => l_adr_value_type_code
147957   , p_transaction_coa_id           => l_adr_transaction_coa_id
147958   , p_accounting_coa_id            => l_adr_accounting_coa_id
147959   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
147960   , p_adr_type_code                => 'S'
147961   , p_component_type               => l_component_type
147962   , p_component_code               => l_component_code
147963   , p_component_type_code          => l_component_type_code
147964   , p_component_appl_id            => l_component_appl_id
147965   , p_amb_context_code             => l_amb_context_code
147966   , p_side                         => 'NA'
147967   );
147968 
147969 
147970    l_segment := AcctDerRule_54(
147971            p_application_id           => p_application_id
147972          , p_ae_header_id             => l_ae_header_id 
147973          , x_transaction_coa_id       => l_adr_transaction_coa_id
147974          , x_accounting_coa_id        => l_adr_accounting_coa_id
147975          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
147976          , x_flex_value_set_id        => l_adr_flex_value_set_id
147977          , x_value_type_code          => l_adr_value_type_code
147978          , x_value_combination_id     => l_adr_value_combination_id
147979          , x_value_segment_code       => l_adr_value_segment_code
147980          , p_side                     => 'NA'
147981          , p_override_seg_flag        => 'Y'
147982    );
147983 
147984    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
147985 
147986       xla_ae_lines_pkg.set_segment(
147987           p_to_segment_code         => 'GL_ACCOUNT'
147988         , p_segment_value           => l_segment
147989         , p_from_segment_code       => l_adr_value_segment_code
147990         , p_from_combination_id     => l_adr_value_combination_id
147991         , p_value_type_code         => l_adr_value_type_code
147992         , p_transaction_coa_id      => l_adr_transaction_coa_id
147993         , p_accounting_coa_id       => l_adr_accounting_coa_id
147994         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
147995         , p_flex_value_set_id       => l_adr_flex_value_set_id
147996         , p_adr_code                => 'FV_570001_UNEXP_APPR_ACCT'
147997         , p_adr_type_code           => 'S'
147998         , p_component_type          => l_component_type
147999         , p_component_code          => l_component_code
148000         , p_component_type_code     => l_component_type_code
148001         , p_component_appl_id       => l_component_appl_id
148002         , p_amb_context_code        => l_amb_context_code
148003         , p_entity_code             => 'AP_PAYMENTS'
148004         , p_event_class_code        => 'PAYMENTS'
148005         , p_side                    => 'NA'
148006         );
148007 
148008   END IF;
148009 
148010    l_segment := AcctDerRule_27(
148011            p_application_id           => p_application_id
148012          , p_ae_header_id             => l_ae_header_id 
148013 , p_source_10 => p_source_10
148014 , p_source_10_meaning => p_source_10_meaning
148015 , p_source_25 => p_source_25
148016 , p_source_29 => p_source_29
148017          , x_transaction_coa_id       => l_adr_transaction_coa_id
148018          , x_accounting_coa_id        => l_adr_accounting_coa_id
148019          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
148020          , x_flex_value_set_id        => l_adr_flex_value_set_id
148021          , x_value_type_code          => l_adr_value_type_code
148022          , x_value_combination_id     => l_adr_value_combination_id
148023          , x_value_segment_code       => l_adr_value_segment_code
148024          , p_side                     => 'NA'
148025          , p_override_seg_flag        => 'Y'
148026    );
148027 
148028    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
148029 
148030       xla_ae_lines_pkg.set_segment(
148031           p_to_segment_code         => 'GL_BALANCING'
148032         , p_segment_value           => l_segment
148033         , p_from_segment_code       => l_adr_value_segment_code
148034         , p_from_combination_id     => l_adr_value_combination_id
148035         , p_value_type_code         => l_adr_value_type_code
148036         , p_transaction_coa_id      => l_adr_transaction_coa_id
148037         , p_accounting_coa_id       => l_adr_accounting_coa_id
148038         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
148039         , p_flex_value_set_id       => l_adr_flex_value_set_id
148040         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
148041         , p_adr_type_code           => 'S'
148042         , p_component_type          => l_component_type
148043         , p_component_code          => l_component_code
148044         , p_component_type_code     => l_component_type_code
148045         , p_component_appl_id       => l_component_appl_id
148046         , p_amb_context_code        => l_amb_context_code
148047         , p_entity_code             => 'AP_PAYMENTS'
148048         , p_event_class_code        => 'PAYMENTS'
148049         , p_side                    => 'NA'
148050         );
148051 
148052   END IF;
148053 
148054    --
148055    --
148056    END IF;
148057    --
148058    -- Bug 4922099
148059    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
148060           (NVL(l_enc_upg_option, 'N') = 'O')
148064    THEN
148061         ) AND
148062         (l_bflow_method_code = 'PRIOR_ENTRY')
148063       )
148065       IF
148066       --
148067       1 = 2
148068       --
148069       THEN
148070       xla_accounting_err_pkg.build_message
148071                                     (p_appli_s_name            => 'XLA'
148072                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
148073                                     ,p_token_1                 => 'LINE_NUMBER'
148074                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
148075                                     ,p_token_2                 => 'LINE_TYPE_NAME'
148076                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
148077                                                                              l_component_type
148078                                                                             ,l_component_code
148079                                                                             ,l_component_type_code
148080                                                                             ,l_component_appl_id
148081                                                                             ,l_amb_context_code
148082                                                                             ,l_entity_code
148083                                                                             ,l_event_class_code
148084                                                                            )
148085                                     ,p_token_3                 => 'OWNER'
148086                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
148087                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
148088                                                                           ,p_lookup_code    => l_component_type_code
148089                                                                          )
148090                                     ,p_token_4                 => 'PRODUCT_NAME'
148091                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
148092                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
148093                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
148094                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
148095                                     ,p_ae_header_id            =>  NULL
148096                                        );
148097 
148098         IF (C_LEVEL_ERROR>= g_log_level) THEN
148099                  trace
148100                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
148101                       ,p_level    => C_LEVEL_ERROR
148102                       ,p_module   => l_log_module);
148103         END IF;
148104       END IF;
148105    END IF;
148106    --
148107    --
148108    ------------------------------------------------------------------------------------------------
148109    -- 4219869 Business Flow
148110    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
148111    -- Prior Entry.  Currently, the following code is always generated.
148112    ------------------------------------------------------------------------------------------------
148113    XLA_AE_LINES_PKG.ValidateCurrentLine;
148114 
148115    ------------------------------------------------------------------------------------
148116    -- 4219869 Business Flow
148117    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
148118    ------------------------------------------------------------------------------------
148119    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
148120 
148121    ----------------------------------------------------------------------------------
148122    -- 4219869 Business Flow
148123    -- Update journal entry status -- Need to generate this within IF <condition>
148124    ----------------------------------------------------------------------------------
148125    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
148126          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
148127          ,p_balance_type_code => l_balance_type_code
148128          );
148129 
148130    -------------------------------------------------------------------------------------------
148131    -- 4262811 - Generate the Accrual Reversal lines
148132    -------------------------------------------------------------------------------------------
148133    BEGIN
148134       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
148135                               (g_array_event(p_event_id).array_value_num('header_index'));
148136       IF l_acc_rev_flag IS NULL THEN
148137          l_acc_rev_flag := 'N';
148138       END IF;
148139    EXCEPTION
148140       WHEN OTHERS THEN
148141          l_acc_rev_flag := 'N';
148142    END;
148143    --
148144    IF (l_acc_rev_flag = 'Y') THEN
148145 
148146        -- 4645092  ------------------------------------------------------------------------------
148147        -- To allow MPA report to determine if it should generate report process
148148        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
148149        ------------------------------------------------------------------------------------------
148150 
148151        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
148152        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
148153    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
148154    -- call ADRs
148155    -- Bug 4922099
148156    --
148157    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
148158         (NVL(l_actual_upg_option, 'N') = 'O') OR
148159         (NVL(l_enc_upg_option, 'N') = 'O')
148160       )
148161    THEN
148162    NULL;
148163    --
148164    --
148165    
148166   l_ccid := AcctDerRule_55(
148170 , p_source_30 => p_source_30
148167            p_application_id           => p_application_id
148168          , p_ae_header_id             => l_ae_header_id 
148169 , p_source_12 => p_source_12
148171 , p_source_57 => p_source_57
148172          , x_transaction_coa_id       => l_adr_transaction_coa_id
148173          , x_accounting_coa_id        => l_adr_accounting_coa_id
148174          , x_value_type_code          => l_adr_value_type_code
148175          , p_side                     => 'NA'
148176    );
148177 
148178    xla_ae_lines_pkg.set_ccid(
148179     p_code_combination_id          => l_ccid
148180   , p_value_type_code              => l_adr_value_type_code
148181   , p_transaction_coa_id           => l_adr_transaction_coa_id
148182   , p_accounting_coa_id            => l_adr_accounting_coa_id
148183   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
148184   , p_adr_type_code                => 'S'
148185   , p_component_type               => l_component_type
148186   , p_component_code               => l_component_code
148187   , p_component_type_code          => l_component_type_code
148188   , p_component_appl_id            => l_component_appl_id
148189   , p_amb_context_code             => l_amb_context_code
148190   , p_side                         => 'NA'
148191   );
148192 
148193 
148194    l_segment := AcctDerRule_54(
148195            p_application_id           => p_application_id
148196          , p_ae_header_id             => l_ae_header_id 
148197          , x_transaction_coa_id       => l_adr_transaction_coa_id
148198          , x_accounting_coa_id        => l_adr_accounting_coa_id
148199          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
148200          , x_flex_value_set_id        => l_adr_flex_value_set_id
148201          , x_value_type_code          => l_adr_value_type_code
148202          , x_value_combination_id     => l_adr_value_combination_id
148203          , x_value_segment_code       => l_adr_value_segment_code
148204          , p_side                     => 'NA'
148205          , p_override_seg_flag        => 'Y'
148206    );
148207 
148208    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
148209 
148210       xla_ae_lines_pkg.set_segment(
148211           p_to_segment_code         => 'GL_ACCOUNT'
148212         , p_segment_value           => l_segment
148213         , p_from_segment_code       => l_adr_value_segment_code
148214         , p_from_combination_id     => l_adr_value_combination_id
148215         , p_value_type_code         => l_adr_value_type_code
148216         , p_transaction_coa_id      => l_adr_transaction_coa_id
148217         , p_accounting_coa_id       => l_adr_accounting_coa_id
148218         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
148219         , p_flex_value_set_id       => l_adr_flex_value_set_id
148220         , p_adr_code                => 'FV_570001_UNEXP_APPR_ACCT'
148221         , p_adr_type_code           => 'S'
148222         , p_component_type          => l_component_type
148223         , p_component_code          => l_component_code
148224         , p_component_type_code     => l_component_type_code
148225         , p_component_appl_id       => l_component_appl_id
148226         , p_amb_context_code        => l_amb_context_code
148227         , p_entity_code             => 'AP_PAYMENTS'
148228         , p_event_class_code        => 'PAYMENTS'
148229         , p_side                    => 'NA'
148230         );
148231 
148232   END IF;
148233 
148234    l_segment := AcctDerRule_27(
148235            p_application_id           => p_application_id
148236          , p_ae_header_id             => l_ae_header_id 
148237 , p_source_10 => p_source_10
148238 , p_source_10_meaning => p_source_10_meaning
148239 , p_source_25 => p_source_25
148240 , p_source_29 => p_source_29
148241          , x_transaction_coa_id       => l_adr_transaction_coa_id
148242          , x_accounting_coa_id        => l_adr_accounting_coa_id
148243          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
148244          , x_flex_value_set_id        => l_adr_flex_value_set_id
148245          , x_value_type_code          => l_adr_value_type_code
148246          , x_value_combination_id     => l_adr_value_combination_id
148247          , x_value_segment_code       => l_adr_value_segment_code
148248          , p_side                     => 'NA'
148249          , p_override_seg_flag        => 'Y'
148250    );
148251 
148252    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
148253 
148254       xla_ae_lines_pkg.set_segment(
148255           p_to_segment_code         => 'GL_BALANCING'
148256         , p_segment_value           => l_segment
148257         , p_from_segment_code       => l_adr_value_segment_code
148258         , p_from_combination_id     => l_adr_value_combination_id
148259         , p_value_type_code         => l_adr_value_type_code
148260         , p_transaction_coa_id      => l_adr_transaction_coa_id
148261         , p_accounting_coa_id       => l_adr_accounting_coa_id
148262         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
148263         , p_flex_value_set_id       => l_adr_flex_value_set_id
148264         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
148265         , p_adr_type_code           => 'S'
148266         , p_component_type          => l_component_type
148267         , p_component_code          => l_component_code
148268         , p_component_type_code     => l_component_type_code
148269         , p_component_appl_id       => l_component_appl_id
148270         , p_amb_context_code        => l_amb_context_code
148271         , p_entity_code             => 'AP_PAYMENTS'
148272         , p_event_class_code        => 'PAYMENTS'
148273         , p_side                    => 'NA'
148274         );
148275 
148276   END IF;
148277 
148278    --
148279    --
148280    END IF;
148281 
148282        --
148283        -- Update the line information that should be overwritten
148284        --
148285        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
148289        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
148286                                          p_header_num   => 1);
148287        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
148288 
148290 
148291        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
148292           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
148293        END IF;
148294 
148295       --
148296       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
148297       --
148298       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
148299           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
148300       ELSE
148301           ---------------------------------------------------------------------------------------------------
148302           -- 4262811a Switch Sign
148303           ---------------------------------------------------------------------------------------------------
148304           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
148305           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
148306                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
148307           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
148308                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
148309           -- 5132302
148310           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
148311                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
148312 
148313       END IF;
148314 
148315       -- 4955764
148316       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
148317       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
148318 
148319 
148320       XLA_AE_LINES_PKG.ValidateCurrentLine;
148321       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
148322 
148323       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
148324                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
148325                ,p_balance_type_code => l_balance_type_code);
148326 
148327    END IF;
148328 
148329    -----------------------------------------------------------------------------------------
148330    -- 4262811 Multiperiod Accounting
148331    -----------------------------------------------------------------------------------------
148332      -- No MPA option is assigned.
148333 
148334 
148335 END IF;
148336 END IF;
148337 --
148338 
148339 --
148340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148341    trace
148342       (p_msg      => 'END of AcctLineType_242'
148343       ,p_level    => C_LEVEL_PROCEDURE
148344       ,p_module   => l_log_module);
148345 END IF;
148346 --
148347 EXCEPTION
148348   WHEN xla_exceptions_pkg.application_exception THEN
148349       RAISE;
148350   WHEN OTHERS THEN
148351        xla_exceptions_pkg.raise_message
148352            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_242');
148353 END AcctLineType_242;
148354 --
148355 
148356 ---------------------------------------
148357 --
148358 -- PRIVATE FUNCTION
148359 --         AcctLineType_243
148360 --
148361 ---------------------------------------
148362 PROCEDURE AcctLineType_243 (
148363   p_application_id        IN NUMBER
148364  ,p_event_id              IN NUMBER
148365  ,p_calculate_acctd_flag  IN VARCHAR2
148366  ,p_calculate_g_l_flag    IN VARCHAR2
148367  ,p_actual_flag           IN OUT VARCHAR2
148368  ,p_balance_type_code     OUT VARCHAR2
148369  ,p_gain_or_loss_ref      OUT VARCHAR2
148370  
148371 --Document Sequence Name
148372  , p_source_3            IN VARCHAR2
148373 --Payment Document Voucher Number
148374  , p_source_4            IN NUMBER
148375 --Payment Transaction Number
148376  , p_source_5            IN NUMBER
148377 --Payment Document Date
148378  , p_source_6            IN DATE
148379 --Bank Account Name
148380  , p_source_7            IN VARCHAR2
148381 --Payment Currency Code
148382  , p_source_8            IN VARCHAR2
148383 --Automatic Offsets Value
148384  , p_source_10            IN VARCHAR2
148385  , p_source_10_meaning    IN VARCHAR2
148386 --Bank Cash Account
148387  , p_source_12            IN NUMBER
148388 --Invoice Distribution Account
148389  , p_source_25            IN NUMBER
148390 --Invoice Liability Account
148391  , p_source_29            IN NUMBER
148392 --Bank Cash Clearing Account
148393  , p_source_30            IN NUMBER
148394 --Federal Fund Category Description
148395  , p_source_51            IN VARCHAR2
148396 --Invoice Type Paid
148397  , p_source_56            IN VARCHAR2
148398  , p_source_56_meaning    IN VARCHAR2
148399 --When to Account for Payment Option
148400  , p_source_57            IN VARCHAR2
148401 --Accounting Reversal Indicator
148402  , p_source_58            IN VARCHAR2
148403 --Distribution Link Type
148404  , p_source_60            IN VARCHAR2
148405 --Override Accounted Amount Indicator
148406  , p_source_85            IN VARCHAR2
148407  , p_source_85_meaning    IN VARCHAR2
148408 --Third Party Type
148409  , p_source_88            IN VARCHAR2
148410 --Invoice Distribution Tax Line Identifier
148411  , p_source_91            IN NUMBER
148412 --Invoice Distribution Tax Distribution Identifier from Tax
148413  , p_source_92            IN NUMBER
148414 --Invoice Distribution Summary Tax Line Identifier
148415  , p_source_93            IN NUMBER
148416 --Business Flow Accounts Payable Application Identifier
148417  , p_source_96            IN NUMBER
148421  , p_source_98            IN VARCHAR2
148418 --Business Flow Invoice Distribution Type
148419  , p_source_97            IN VARCHAR2
148420 --Business Flow Invoice Entity Code
148422 --Business Flow Invoice Distribution Identifier
148423  , p_source_99            IN NUMBER
148424 --Business Flow Invoice Identifier
148425  , p_source_100            IN NUMBER
148426 --Payment Distribution Type
148427  , p_source_101            IN VARCHAR2
148428  , p_source_101_meaning    IN VARCHAR2
148429 --Payment Distribution Amount
148430  , p_source_102            IN NUMBER
148431 --Payment Distribution Identifier
148432  , p_source_107            IN NUMBER
148433 --Payment Supplier Identifier
148434  , p_source_113            IN NUMBER
148435 --Payment Supplier Site Identifier
148436  , p_source_114            IN NUMBER
148437 --Payment Distribution Reversed Identifier
148438  , p_source_115            IN NUMBER
148439 --Payment Distribution (Payment Rate) Ledger Amount
148440  , p_source_118            IN NUMBER
148441 --Payment Exchange Date
148442  , p_source_120            IN DATE
148443 --Payment Exchange Rate
148444  , p_source_121            IN NUMBER
148445 --Payment Exchange Rate Type
148446  , p_source_122            IN VARCHAR2
148447 --Invoice Distribution Amount of the Payment Distribution
148448  , p_source_127            IN NUMBER
148449 )
148450 IS
148451 
148452 l_component_type              VARCHAR2(80);
148453 l_component_code              VARCHAR2(30);
148454 l_component_type_code         VARCHAR2(1);
148455 l_component_appl_id           INTEGER;
148456 l_amb_context_code            VARCHAR2(30);
148457 l_entity_code                 VARCHAR2(30);
148458 l_event_class_code            VARCHAR2(30);
148459 l_ae_header_id                NUMBER;
148460 l_event_type_code             VARCHAR2(30);
148461 l_line_definition_code        VARCHAR2(30);
148462 l_line_definition_owner_code  VARCHAR2(1);
148463 --
148464 -- adr variables
148465 l_segment                     VARCHAR2(30);
148466 l_ccid                        NUMBER;
148467 l_adr_transaction_coa_id      NUMBER;
148468 l_adr_accounting_coa_id       NUMBER;
148469 l_adr_flexfield_segment_code  VARCHAR2(30);
148470 l_adr_flex_value_set_id       NUMBER;
148471 l_adr_value_type_code         VARCHAR2(30);
148472 l_adr_value_combination_id    NUMBER;
148473 l_adr_value_segment_code      VARCHAR2(30);
148474 
148475 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
148476 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
148477 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
148478 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
148479 
148480 -- 4262811 Variables ------------------------------------------------------------------------------------------
148481 l_entered_amt_idx             NUMBER;
148482 l_accted_amt_idx              NUMBER;
148483 l_acc_rev_flag                VARCHAR2(1);
148484 l_accrual_line_num            NUMBER;
148485 l_tmp_amt                     NUMBER;
148486 l_acc_rev_natural_side_code   VARCHAR2(1);
148487 
148488 l_num_entries                 NUMBER;
148489 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
148490 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
148491 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
148492 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
148493 l_recog_line_1                NUMBER;
148494 l_recog_line_2                NUMBER;
148495 
148496 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
148497 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
148498 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
148499 
148500 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
148501 
148502 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
148503 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
148504 
148505 ---------------------------------------------------------------------------------------------------------------
148506 
148507 
148508 --
148509 -- bulk performance
148510 --
148511 l_balance_type_code           VARCHAR2(1);
148512 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
148513 l_log_module                  VARCHAR2(240);
148514 
148515 --
148516 -- Upgrade strategy
148517 --
148518 l_actual_upg_option           VARCHAR2(1);
148519 l_enc_upg_option           VARCHAR2(1);
148520 
148521 --
148522 BEGIN
148523 --
148524 IF g_log_enabled THEN
148525       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_243';
148526 END IF;
148527 --
148528 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148529 
148530       trace
148531          (p_msg      => 'BEGIN of AcctLineType_243'
148532          ,p_level    => C_LEVEL_PROCEDURE
148533          ,p_module   => l_log_module);
148534 
148535 END IF;
148536 --
148537 l_component_type             := 'AMB_JLT';
148538 l_component_code             := 'FV_AP_PAY_DIRECT_FUND_DR';
148539 l_component_type_code        := 'S';
148540 l_component_appl_id          :=  200;
148541 l_amb_context_code           := 'DEFAULT';
148542 l_entity_code                := 'AP_PAYMENTS';
148543 l_event_class_code           := 'PAYMENTS';
148544 l_event_type_code            := 'PAYMENTS_ALL';
148545 l_line_definition_owner_code := 'S';
148546 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
148547 --
148548 l_balance_type_code          := 'A';
148549 l_segment                     := NULL;
148550 l_ccid                        := NULL;
148551 l_adr_transaction_coa_id      := NULL;
148552 l_adr_accounting_coa_id       := NULL;
148553 l_adr_flexfield_segment_code  := NULL;
148554 l_adr_flex_value_set_id       := NULL;
148555 l_adr_value_type_code         := NULL;
148559 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
148556 l_adr_value_combination_id    := NULL;
148557 l_adr_value_segment_code      := NULL;
148558 
148560 l_bflow_class_code           := '';    -- 4219869 Business Flow
148561 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
148562 l_budgetary_control_flag     := 'N';
148563 
148564 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
148565 l_bflow_applied_to_amt       := NULL; -- 5132302
148566 l_entered_amt_idx            := NULL;          -- 4262811
148567 l_accted_amt_idx             := NULL;          -- 4262811
148568 l_acc_rev_flag               := NULL;          -- 4262811
148569 l_accrual_line_num           := NULL;          -- 4262811
148570 l_tmp_amt                    := NULL;          -- 4262811
148571 --
148572  
148573 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
148574     l_balance_type_code <> 'B' THEN
148575 IF (NVL(p_source_56,'
148576 ') =  'INTEREST' OR 
148577 NVL(p_source_101,'
148578 ') =  'DISCOUNT') AND 
148579 NVL(p_source_51,'
148580 ') =  'Direct'
148581  THEN 
148582 
148583    --
148584    XLA_AE_LINES_PKG.SetNewLine;
148585 
148586    p_balance_type_code          := l_balance_type_code;
148587    -- set the flag so later we will know whether the gain loss line needs to be created
148588    
148589    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
148590      p_actual_flag :='A';
148591    END IF;
148592 
148593    --
148594    -- bulk performance
148595    --
148596    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
148597                                       p_header_num   => 0); -- 4262811
148598    --
148599    -- set accounting line options
148600    --
148601    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
148602            p_natural_side_code          => 'D'
148603          , p_gain_or_loss_flag          => 'N'
148604          , p_gl_transfer_mode_code      => 'S'
148605          , p_acct_entry_type_code       => 'A'
148606          , p_switch_side_flag           => 'N'
148607          , p_merge_duplicate_code       => 'N'
148608          );
148609    --
148610    l_acc_rev_natural_side_code := 'C';  -- 4262811
148611    -- 
148612    --
148613    -- set accounting line type info
148614    --
148615    xla_ae_lines_pkg.SetAcctLineType
148616       (p_component_type             => l_component_type
148617       ,p_event_type_code            => l_event_type_code
148618       ,p_line_definition_owner_code => l_line_definition_owner_code
148619       ,p_line_definition_code       => l_line_definition_code
148620       ,p_accounting_line_code       => l_component_code
148621       ,p_accounting_line_type_code  => l_component_type_code
148622       ,p_accounting_line_appl_id    => l_component_appl_id
148623       ,p_amb_context_code           => l_amb_context_code
148624       ,p_entity_code                => l_entity_code
148625       ,p_event_class_code           => l_event_class_code);
148626    --
148627    -- set accounting class
148628    --
148629    xla_ae_lines_pkg.SetAcctClass(
148630            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
148631          , p_ae_header_id           => l_ae_header_id
148632          );
148633 
148634    --
148635    -- set rounding class
148636    --
148637    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
148638                       'ACCOUNTSPAYABLE';
148639 
148640    --
148641    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
148642    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
148643    --
148644    -- bulk performance
148645    --
148646    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
148647 
148648    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
148649       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
148650 
148651    -- 4955764
148652    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
148653       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
148654 
148655    -- 4458381 Public Sector Enh
148656    
148657    --
148658    -- set accounting attributes for the line type
148659    --
148660    l_entered_amt_idx := 10;
148661    l_accted_amt_idx  := 15;
148662    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
148663    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
148664    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
148665    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
148666    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
148667    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
148668    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
148669    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
148670    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
148671    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
148672    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
148673    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
148674    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
148675    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
148676    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
148677    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
148678    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
148679    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
148680    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
148681    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
148682    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
148686    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
148683    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
148684    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
148685    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
148687    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
148688    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
148689    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
148690    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
148691    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
148692    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
148693    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
148694    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
148695    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
148696    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
148697    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
148698    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
148699    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
148700    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
148701    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
148702    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
148703    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
148704    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
148705    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
148706    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
148707    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
148708    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
148709    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
148710    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
148711 
148712    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
148713    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
148714 
148715    ---------------------------------------------------------------------------------------------------------------
148716    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
148717    ---------------------------------------------------------------------------------------------------------------
148718    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
148719 
148720    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
148721    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
148722 
148723    IF xla_accounting_cache_pkg.GetValueChar
148724          (p_source_code         => 'LEDGER_CATEGORY_CODE'
148725          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
148726    AND l_bflow_method_code = 'PRIOR_ENTRY'
148727 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
148728    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
148729          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
148730        )
148731    THEN
148732          xla_ae_lines_pkg.BflowUpgEntry
148733            (p_business_method_code    => l_bflow_method_code
148734            ,p_business_class_code     => l_bflow_class_code
148735            ,p_balance_type            => l_balance_type_code);
148736    ELSE
148737       NULL;
148738 -- No business flow processing for business flow method of NONE.
148739    END IF;
148740 
148741    --
148742    -- call analytical criteria
148743    --
148744    
148745    --
148746    -- call description
148747    --
148748    
148749 xla_ae_lines_pkg.SetLineDescription(
148750    p_ae_header_id => l_ae_header_id
148751   ,p_description  => Description_3 (
148752      p_application_id         => p_application_id
148753    , p_ae_header_id           => l_ae_header_id 
148754 , p_source_3 => p_source_3
148755 , p_source_4 => p_source_4
148756 , p_source_5 => p_source_5
148757 , p_source_6 => p_source_6
148758 , p_source_7 => p_source_7
148759 , p_source_8 => p_source_8
148760    )
148761 );
148762 
148763 
148764    --
148765    -- call ADRs
148766    -- Bug 4922099
148767    --
148768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
148769         (NVL(l_actual_upg_option, 'N') = 'O') OR
148770         (NVL(l_enc_upg_option, 'N') = 'O')
148771       )
148772    THEN
148773    NULL;
148774    --
148775    --
148776    
148777   l_ccid := AcctDerRule_55(
148778            p_application_id           => p_application_id
148779          , p_ae_header_id             => l_ae_header_id 
148780 , p_source_12 => p_source_12
148781 , p_source_30 => p_source_30
148782 , p_source_57 => p_source_57
148783          , x_transaction_coa_id       => l_adr_transaction_coa_id
148784          , x_accounting_coa_id        => l_adr_accounting_coa_id
148785          , x_value_type_code          => l_adr_value_type_code
148786          , p_side                     => 'NA'
148787    );
148788 
148789    xla_ae_lines_pkg.set_ccid(
148790     p_code_combination_id          => l_ccid
148791   , p_value_type_code              => l_adr_value_type_code
148792   , p_transaction_coa_id           => l_adr_transaction_coa_id
148793   , p_accounting_coa_id            => l_adr_accounting_coa_id
148794   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
148795   , p_adr_type_code                => 'S'
148796   , p_component_type               => l_component_type
148797   , p_component_code               => l_component_code
148798   , p_component_type_code          => l_component_type_code
148799   , p_component_appl_id            => l_component_appl_id
148800   , p_amb_context_code             => l_amb_context_code
148801   , p_side                         => 'NA'
148802   );
148803 
148804 
148805    l_segment := AcctDerRule_49(
148809          , x_accounting_coa_id        => l_adr_accounting_coa_id
148806            p_application_id           => p_application_id
148807          , p_ae_header_id             => l_ae_header_id 
148808          , x_transaction_coa_id       => l_adr_transaction_coa_id
148810          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
148811          , x_flex_value_set_id        => l_adr_flex_value_set_id
148812          , x_value_type_code          => l_adr_value_type_code
148813          , x_value_combination_id     => l_adr_value_combination_id
148814          , x_value_segment_code       => l_adr_value_segment_code
148815          , p_side                     => 'NA'
148816          , p_override_seg_flag        => 'Y'
148817    );
148818 
148819    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
148820 
148821       xla_ae_lines_pkg.set_segment(
148822           p_to_segment_code         => 'GL_ACCOUNT'
148823         , p_segment_value           => l_segment
148824         , p_from_segment_code       => l_adr_value_segment_code
148825         , p_from_combination_id     => l_adr_value_combination_id
148826         , p_value_type_code         => l_adr_value_type_code
148827         , p_transaction_coa_id      => l_adr_transaction_coa_id
148828         , p_accounting_coa_id       => l_adr_accounting_coa_id
148829         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
148830         , p_flex_value_set_id       => l_adr_flex_value_set_id
148831         , p_adr_code                => 'FV_310701_UNEXP_APPR_ACCT'
148832         , p_adr_type_code           => 'S'
148833         , p_component_type          => l_component_type
148834         , p_component_code          => l_component_code
148835         , p_component_type_code     => l_component_type_code
148836         , p_component_appl_id       => l_component_appl_id
148837         , p_amb_context_code        => l_amb_context_code
148838         , p_entity_code             => 'AP_PAYMENTS'
148839         , p_event_class_code        => 'PAYMENTS'
148840         , p_side                    => 'NA'
148841         );
148842 
148843   END IF;
148844 
148845    l_segment := AcctDerRule_27(
148846            p_application_id           => p_application_id
148847          , p_ae_header_id             => l_ae_header_id 
148848 , p_source_10 => p_source_10
148849 , p_source_10_meaning => p_source_10_meaning
148850 , p_source_25 => p_source_25
148851 , p_source_29 => p_source_29
148852          , x_transaction_coa_id       => l_adr_transaction_coa_id
148853          , x_accounting_coa_id        => l_adr_accounting_coa_id
148854          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
148855          , x_flex_value_set_id        => l_adr_flex_value_set_id
148856          , x_value_type_code          => l_adr_value_type_code
148857          , x_value_combination_id     => l_adr_value_combination_id
148858          , x_value_segment_code       => l_adr_value_segment_code
148859          , p_side                     => 'NA'
148860          , p_override_seg_flag        => 'Y'
148861    );
148862 
148863    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
148864 
148865       xla_ae_lines_pkg.set_segment(
148866           p_to_segment_code         => 'GL_BALANCING'
148867         , p_segment_value           => l_segment
148868         , p_from_segment_code       => l_adr_value_segment_code
148869         , p_from_combination_id     => l_adr_value_combination_id
148870         , p_value_type_code         => l_adr_value_type_code
148871         , p_transaction_coa_id      => l_adr_transaction_coa_id
148872         , p_accounting_coa_id       => l_adr_accounting_coa_id
148873         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
148874         , p_flex_value_set_id       => l_adr_flex_value_set_id
148875         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
148876         , p_adr_type_code           => 'S'
148877         , p_component_type          => l_component_type
148878         , p_component_code          => l_component_code
148879         , p_component_type_code     => l_component_type_code
148880         , p_component_appl_id       => l_component_appl_id
148881         , p_amb_context_code        => l_amb_context_code
148882         , p_entity_code             => 'AP_PAYMENTS'
148883         , p_event_class_code        => 'PAYMENTS'
148884         , p_side                    => 'NA'
148885         );
148886 
148887   END IF;
148888 
148889    --
148890    --
148891    END IF;
148892    --
148893    -- Bug 4922099
148894    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
148895           (NVL(l_enc_upg_option, 'N') = 'O')
148896         ) AND
148897         (l_bflow_method_code = 'PRIOR_ENTRY')
148898       )
148899    THEN
148900       IF
148901       --
148902       1 = 2
148903       --
148904       THEN
148905       xla_accounting_err_pkg.build_message
148906                                     (p_appli_s_name            => 'XLA'
148907                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
148908                                     ,p_token_1                 => 'LINE_NUMBER'
148909                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
148910                                     ,p_token_2                 => 'LINE_TYPE_NAME'
148911                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
148912                                                                              l_component_type
148913                                                                             ,l_component_code
148914                                                                             ,l_component_type_code
148915                                                                             ,l_component_appl_id
148916                                                                             ,l_amb_context_code
148917                                                                             ,l_entity_code
148918                                                                             ,l_event_class_code
148922                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
148919                                                                            )
148920                                     ,p_token_3                 => 'OWNER'
148921                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
148923                                                                           ,p_lookup_code    => l_component_type_code
148924                                                                          )
148925                                     ,p_token_4                 => 'PRODUCT_NAME'
148926                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
148927                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
148928                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
148929                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
148930                                     ,p_ae_header_id            =>  NULL
148931                                        );
148932 
148933         IF (C_LEVEL_ERROR>= g_log_level) THEN
148934                  trace
148935                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
148936                       ,p_level    => C_LEVEL_ERROR
148937                       ,p_module   => l_log_module);
148938         END IF;
148939       END IF;
148940    END IF;
148941    --
148942    --
148943    ------------------------------------------------------------------------------------------------
148944    -- 4219869 Business Flow
148945    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
148946    -- Prior Entry.  Currently, the following code is always generated.
148947    ------------------------------------------------------------------------------------------------
148948    XLA_AE_LINES_PKG.ValidateCurrentLine;
148949 
148950    ------------------------------------------------------------------------------------
148951    -- 4219869 Business Flow
148952    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
148953    ------------------------------------------------------------------------------------
148954    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
148955 
148956    ----------------------------------------------------------------------------------
148957    -- 4219869 Business Flow
148958    -- Update journal entry status -- Need to generate this within IF <condition>
148959    ----------------------------------------------------------------------------------
148960    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
148961          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
148962          ,p_balance_type_code => l_balance_type_code
148963          );
148964 
148965    -------------------------------------------------------------------------------------------
148966    -- 4262811 - Generate the Accrual Reversal lines
148967    -------------------------------------------------------------------------------------------
148968    BEGIN
148969       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
148970                               (g_array_event(p_event_id).array_value_num('header_index'));
148971       IF l_acc_rev_flag IS NULL THEN
148972          l_acc_rev_flag := 'N';
148973       END IF;
148974    EXCEPTION
148975       WHEN OTHERS THEN
148976          l_acc_rev_flag := 'N';
148977    END;
148978    --
148979    IF (l_acc_rev_flag = 'Y') THEN
148980 
148981        -- 4645092  ------------------------------------------------------------------------------
148982        -- To allow MPA report to determine if it should generate report process
148983        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
148984        ------------------------------------------------------------------------------------------
148985 
148986        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
148987        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
148988    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
148989    -- call ADRs
148990    -- Bug 4922099
148991    --
148992    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
148993         (NVL(l_actual_upg_option, 'N') = 'O') OR
148994         (NVL(l_enc_upg_option, 'N') = 'O')
148995       )
148996    THEN
148997    NULL;
148998    --
148999    --
149000    
149001   l_ccid := AcctDerRule_55(
149002            p_application_id           => p_application_id
149003          , p_ae_header_id             => l_ae_header_id 
149004 , p_source_12 => p_source_12
149005 , p_source_30 => p_source_30
149006 , p_source_57 => p_source_57
149007          , x_transaction_coa_id       => l_adr_transaction_coa_id
149008          , x_accounting_coa_id        => l_adr_accounting_coa_id
149009          , x_value_type_code          => l_adr_value_type_code
149010          , p_side                     => 'NA'
149011    );
149012 
149013    xla_ae_lines_pkg.set_ccid(
149014     p_code_combination_id          => l_ccid
149015   , p_value_type_code              => l_adr_value_type_code
149016   , p_transaction_coa_id           => l_adr_transaction_coa_id
149017   , p_accounting_coa_id            => l_adr_accounting_coa_id
149018   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
149019   , p_adr_type_code                => 'S'
149020   , p_component_type               => l_component_type
149021   , p_component_code               => l_component_code
149022   , p_component_type_code          => l_component_type_code
149023   , p_component_appl_id            => l_component_appl_id
149024   , p_amb_context_code             => l_amb_context_code
149025   , p_side                         => 'NA'
149026   );
149027 
149028 
149029    l_segment := AcctDerRule_49(
149030            p_application_id           => p_application_id
149034          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
149031          , p_ae_header_id             => l_ae_header_id 
149032          , x_transaction_coa_id       => l_adr_transaction_coa_id
149033          , x_accounting_coa_id        => l_adr_accounting_coa_id
149035          , x_flex_value_set_id        => l_adr_flex_value_set_id
149036          , x_value_type_code          => l_adr_value_type_code
149037          , x_value_combination_id     => l_adr_value_combination_id
149038          , x_value_segment_code       => l_adr_value_segment_code
149039          , p_side                     => 'NA'
149040          , p_override_seg_flag        => 'Y'
149041    );
149042 
149043    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
149044 
149045       xla_ae_lines_pkg.set_segment(
149046           p_to_segment_code         => 'GL_ACCOUNT'
149047         , p_segment_value           => l_segment
149048         , p_from_segment_code       => l_adr_value_segment_code
149049         , p_from_combination_id     => l_adr_value_combination_id
149050         , p_value_type_code         => l_adr_value_type_code
149051         , p_transaction_coa_id      => l_adr_transaction_coa_id
149052         , p_accounting_coa_id       => l_adr_accounting_coa_id
149053         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
149054         , p_flex_value_set_id       => l_adr_flex_value_set_id
149055         , p_adr_code                => 'FV_310701_UNEXP_APPR_ACCT'
149056         , p_adr_type_code           => 'S'
149057         , p_component_type          => l_component_type
149058         , p_component_code          => l_component_code
149059         , p_component_type_code     => l_component_type_code
149060         , p_component_appl_id       => l_component_appl_id
149061         , p_amb_context_code        => l_amb_context_code
149062         , p_entity_code             => 'AP_PAYMENTS'
149063         , p_event_class_code        => 'PAYMENTS'
149064         , p_side                    => 'NA'
149065         );
149066 
149067   END IF;
149068 
149069    l_segment := AcctDerRule_27(
149070            p_application_id           => p_application_id
149071          , p_ae_header_id             => l_ae_header_id 
149072 , p_source_10 => p_source_10
149073 , p_source_10_meaning => p_source_10_meaning
149074 , p_source_25 => p_source_25
149075 , p_source_29 => p_source_29
149076          , x_transaction_coa_id       => l_adr_transaction_coa_id
149077          , x_accounting_coa_id        => l_adr_accounting_coa_id
149078          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
149079          , x_flex_value_set_id        => l_adr_flex_value_set_id
149080          , x_value_type_code          => l_adr_value_type_code
149081          , x_value_combination_id     => l_adr_value_combination_id
149082          , x_value_segment_code       => l_adr_value_segment_code
149083          , p_side                     => 'NA'
149084          , p_override_seg_flag        => 'Y'
149085    );
149086 
149087    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
149088 
149089       xla_ae_lines_pkg.set_segment(
149090           p_to_segment_code         => 'GL_BALANCING'
149091         , p_segment_value           => l_segment
149092         , p_from_segment_code       => l_adr_value_segment_code
149093         , p_from_combination_id     => l_adr_value_combination_id
149094         , p_value_type_code         => l_adr_value_type_code
149095         , p_transaction_coa_id      => l_adr_transaction_coa_id
149096         , p_accounting_coa_id       => l_adr_accounting_coa_id
149097         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
149098         , p_flex_value_set_id       => l_adr_flex_value_set_id
149099         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
149100         , p_adr_type_code           => 'S'
149101         , p_component_type          => l_component_type
149102         , p_component_code          => l_component_code
149103         , p_component_type_code     => l_component_type_code
149104         , p_component_appl_id       => l_component_appl_id
149105         , p_amb_context_code        => l_amb_context_code
149106         , p_entity_code             => 'AP_PAYMENTS'
149107         , p_event_class_code        => 'PAYMENTS'
149108         , p_side                    => 'NA'
149109         );
149110 
149111   END IF;
149112 
149113    --
149114    --
149115    END IF;
149116 
149117        --
149118        -- Update the line information that should be overwritten
149119        --
149120        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
149121                                          p_header_num   => 1);
149122        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
149123 
149124        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
149125 
149126        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
149127           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
149128        END IF;
149129 
149130       --
149131       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
149132       --
149133       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
149134           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
149135       ELSE
149136           ---------------------------------------------------------------------------------------------------
149137           -- 4262811a Switch Sign
149138           ---------------------------------------------------------------------------------------------------
149139           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
149140           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149141                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149145           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
149142           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149143                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149144           -- 5132302
149146                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149147 
149148       END IF;
149149 
149150       -- 4955764
149151       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
149152       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
149153 
149154 
149155       XLA_AE_LINES_PKG.ValidateCurrentLine;
149156       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149157 
149158       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149159                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
149160                ,p_balance_type_code => l_balance_type_code);
149161 
149162    END IF;
149163 
149164    -----------------------------------------------------------------------------------------
149165    -- 4262811 Multiperiod Accounting
149166    -----------------------------------------------------------------------------------------
149167      -- No MPA option is assigned.
149168 
149169 
149170 END IF;
149171 END IF;
149172 --
149173 
149174 --
149175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
149176    trace
149177       (p_msg      => 'END of AcctLineType_243'
149178       ,p_level    => C_LEVEL_PROCEDURE
149179       ,p_module   => l_log_module);
149180 END IF;
149181 --
149182 EXCEPTION
149183   WHEN xla_exceptions_pkg.application_exception THEN
149184       RAISE;
149185   WHEN OTHERS THEN
149186        xla_exceptions_pkg.raise_message
149187            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_243');
149188 END AcctLineType_243;
149189 --
149190 
149191 ---------------------------------------
149192 --
149193 -- PRIVATE FUNCTION
149194 --         AcctLineType_244
149195 --
149196 ---------------------------------------
149197 PROCEDURE AcctLineType_244 (
149198   p_application_id        IN NUMBER
149199  ,p_event_id              IN NUMBER
149200  ,p_calculate_acctd_flag  IN VARCHAR2
149201  ,p_calculate_g_l_flag    IN VARCHAR2
149202  ,p_actual_flag           IN OUT VARCHAR2
149203  ,p_balance_type_code     OUT VARCHAR2
149204  ,p_gain_or_loss_ref      OUT VARCHAR2
149205  
149206 --Document Sequence Name
149207  , p_source_3            IN VARCHAR2
149208 --Payment Document Voucher Number
149209  , p_source_4            IN NUMBER
149210 --Payment Transaction Number
149211  , p_source_5            IN NUMBER
149212 --Payment Document Date
149213  , p_source_6            IN DATE
149214 --Bank Account Name
149215  , p_source_7            IN VARCHAR2
149216 --Payment Currency Code
149217  , p_source_8            IN VARCHAR2
149218 --Automatic Offsets Value
149219  , p_source_10            IN VARCHAR2
149220  , p_source_10_meaning    IN VARCHAR2
149221 --Bank Cash Account
149222  , p_source_12            IN NUMBER
149223 --Invoice Distribution Account
149224  , p_source_25            IN NUMBER
149225 --Invoice Liability Account
149226  , p_source_29            IN NUMBER
149227 --Bank Cash Clearing Account
149228  , p_source_30            IN NUMBER
149229 --When to Account for Payment Option
149230  , p_source_57            IN VARCHAR2
149231 --Accounting Reversal Indicator
149232  , p_source_58            IN VARCHAR2
149233 --Distribution Link Type
149234  , p_source_60            IN VARCHAR2
149235 --Override Accounted Amount Indicator
149236  , p_source_85            IN VARCHAR2
149237  , p_source_85_meaning    IN VARCHAR2
149238 --Third Party Type
149239  , p_source_88            IN VARCHAR2
149240 --Invoice Distribution Tax Line Identifier
149241  , p_source_91            IN NUMBER
149242 --Invoice Distribution Tax Distribution Identifier from Tax
149243  , p_source_92            IN NUMBER
149244 --Invoice Distribution Summary Tax Line Identifier
149245  , p_source_93            IN NUMBER
149246 --Business Flow Accounts Payable Application Identifier
149247  , p_source_96            IN NUMBER
149248 --Business Flow Invoice Distribution Type
149249  , p_source_97            IN VARCHAR2
149250 --Business Flow Invoice Entity Code
149251  , p_source_98            IN VARCHAR2
149252 --Business Flow Invoice Distribution Identifier
149253  , p_source_99            IN NUMBER
149254 --Business Flow Invoice Identifier
149255  , p_source_100            IN NUMBER
149256 --Payment Distribution Type
149257  , p_source_101            IN VARCHAR2
149258  , p_source_101_meaning    IN VARCHAR2
149259 --Payment Distribution Amount
149260  , p_source_102            IN NUMBER
149261 --Payment Distribution Identifier
149262  , p_source_107            IN NUMBER
149263 --Payment Supplier Identifier
149264  , p_source_113            IN NUMBER
149265 --Payment Supplier Site Identifier
149266  , p_source_114            IN NUMBER
149267 --Payment Distribution Reversed Identifier
149268  , p_source_115            IN NUMBER
149269 --Payment Distribution (Payment Rate) Ledger Amount
149270  , p_source_118            IN NUMBER
149271 --Payment Exchange Date
149272  , p_source_120            IN DATE
149273 --Payment Exchange Rate
149274  , p_source_121            IN NUMBER
149275 --Payment Exchange Rate Type
149276  , p_source_122            IN VARCHAR2
149277 --Payment Type
149278  , p_source_125            IN VARCHAR2
149279  , p_source_125_meaning    IN VARCHAR2
149280 --Invoice Distribution Amount of the Payment Distribution
149281  , p_source_127            IN NUMBER
149282 --Federal DIT Flag
149283  , p_source_170            IN VARCHAR2
149284 )
149285 IS
149286 
149287 l_component_type              VARCHAR2(80);
149291 l_amb_context_code            VARCHAR2(30);
149288 l_component_code              VARCHAR2(30);
149289 l_component_type_code         VARCHAR2(1);
149290 l_component_appl_id           INTEGER;
149292 l_entity_code                 VARCHAR2(30);
149293 l_event_class_code            VARCHAR2(30);
149294 l_ae_header_id                NUMBER;
149295 l_event_type_code             VARCHAR2(30);
149296 l_line_definition_code        VARCHAR2(30);
149297 l_line_definition_owner_code  VARCHAR2(1);
149298 --
149299 -- adr variables
149300 l_segment                     VARCHAR2(30);
149301 l_ccid                        NUMBER;
149302 l_adr_transaction_coa_id      NUMBER;
149303 l_adr_accounting_coa_id       NUMBER;
149304 l_adr_flexfield_segment_code  VARCHAR2(30);
149305 l_adr_flex_value_set_id       NUMBER;
149306 l_adr_value_type_code         VARCHAR2(30);
149307 l_adr_value_combination_id    NUMBER;
149308 l_adr_value_segment_code      VARCHAR2(30);
149309 
149310 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
149311 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
149312 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
149313 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
149314 
149315 -- 4262811 Variables ------------------------------------------------------------------------------------------
149316 l_entered_amt_idx             NUMBER;
149317 l_accted_amt_idx              NUMBER;
149318 l_acc_rev_flag                VARCHAR2(1);
149319 l_accrual_line_num            NUMBER;
149320 l_tmp_amt                     NUMBER;
149321 l_acc_rev_natural_side_code   VARCHAR2(1);
149322 
149323 l_num_entries                 NUMBER;
149324 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
149325 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
149326 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
149327 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
149328 l_recog_line_1                NUMBER;
149329 l_recog_line_2                NUMBER;
149330 
149331 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
149332 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
149333 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
149334 
149335 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
149336 
149337 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
149338 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
149339 
149340 ---------------------------------------------------------------------------------------------------------------
149341 
149342 
149343 --
149344 -- bulk performance
149345 --
149346 l_balance_type_code           VARCHAR2(1);
149347 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
149348 l_log_module                  VARCHAR2(240);
149349 
149350 --
149351 -- Upgrade strategy
149352 --
149353 l_actual_upg_option           VARCHAR2(1);
149354 l_enc_upg_option           VARCHAR2(1);
149355 
149356 --
149357 BEGIN
149358 --
149359 IF g_log_enabled THEN
149360       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_244';
149361 END IF;
149362 --
149363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
149364 
149365       trace
149366          (p_msg      => 'BEGIN of AcctLineType_244'
149367          ,p_level    => C_LEVEL_PROCEDURE
149368          ,p_module   => l_log_module);
149369 
149370 END IF;
149371 --
149372 l_component_type             := 'AMB_JLT';
149373 l_component_code             := 'FV_TC_CASH_ACCT_DR';
149374 l_component_type_code        := 'S';
149375 l_component_appl_id          :=  200;
149376 l_amb_context_code           := 'DEFAULT';
149377 l_entity_code                := 'AP_PAYMENTS';
149378 l_event_class_code           := 'PAYMENTS';
149379 l_event_type_code            := 'PAYMENTS_ALL';
149380 l_line_definition_owner_code := 'S';
149381 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
149382 --
149383 l_balance_type_code          := 'A';
149384 l_segment                     := NULL;
149385 l_ccid                        := NULL;
149386 l_adr_transaction_coa_id      := NULL;
149387 l_adr_accounting_coa_id       := NULL;
149388 l_adr_flexfield_segment_code  := NULL;
149389 l_adr_flex_value_set_id       := NULL;
149390 l_adr_value_type_code         := NULL;
149391 l_adr_value_combination_id    := NULL;
149392 l_adr_value_segment_code      := NULL;
149393 
149394 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
149395 l_bflow_class_code           := '';    -- 4219869 Business Flow
149396 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
149397 l_budgetary_control_flag     := 'N';
149398 
149399 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
149400 l_bflow_applied_to_amt       := NULL; -- 5132302
149401 l_entered_amt_idx            := NULL;          -- 4262811
149402 l_accted_amt_idx             := NULL;          -- 4262811
149403 l_acc_rev_flag               := NULL;          -- 4262811
149404 l_accrual_line_num           := NULL;          -- 4262811
149405 l_tmp_amt                    := NULL;          -- 4262811
149406 --
149407  
149408 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
149409     l_balance_type_code <> 'B' THEN
149410 IF NVL(p_source_170,'
149411 ') =  'Y' AND 
149412 (NVL(p_source_125,'
149413 ') =  'M' OR 
149414 NVL(p_source_125,'
149415 ') =  'Q' OR 
149416 NVL(p_source_125,'
149417 ') =  'R') AND 
149418 NVL(p_source_101,'
149419 ') <>  'DISCOUNT'
149420  THEN 
149421 
149422    --
149423    XLA_AE_LINES_PKG.SetNewLine;
149424 
149425    p_balance_type_code          := l_balance_type_code;
149426    -- set the flag so later we will know whether the gain loss line needs to be created
149430    END IF;
149427    
149428    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
149429      p_actual_flag :='A';
149431 
149432    --
149433    -- bulk performance
149434    --
149435    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
149436                                       p_header_num   => 0); -- 4262811
149437    --
149438    -- set accounting line options
149439    --
149440    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
149441            p_natural_side_code          => 'D'
149442          , p_gain_or_loss_flag          => 'N'
149443          , p_gl_transfer_mode_code      => 'S'
149444          , p_acct_entry_type_code       => 'A'
149445          , p_switch_side_flag           => 'N'
149446          , p_merge_duplicate_code       => 'N'
149447          );
149448    --
149449    l_acc_rev_natural_side_code := 'C';  -- 4262811
149450    -- 
149451    --
149452    -- set accounting line type info
149453    --
149454    xla_ae_lines_pkg.SetAcctLineType
149455       (p_component_type             => l_component_type
149456       ,p_event_type_code            => l_event_type_code
149457       ,p_line_definition_owner_code => l_line_definition_owner_code
149458       ,p_line_definition_code       => l_line_definition_code
149459       ,p_accounting_line_code       => l_component_code
149460       ,p_accounting_line_type_code  => l_component_type_code
149461       ,p_accounting_line_appl_id    => l_component_appl_id
149462       ,p_amb_context_code           => l_amb_context_code
149463       ,p_entity_code                => l_entity_code
149464       ,p_event_class_code           => l_event_class_code);
149465    --
149466    -- set accounting class
149467    --
149468    xla_ae_lines_pkg.SetAcctClass(
149469            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
149470          , p_ae_header_id           => l_ae_header_id
149471          );
149472 
149473    --
149474    -- set rounding class
149475    --
149476    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
149477                       'ACCOUNTSPAYABLE';
149478 
149479    --
149480    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
149481    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
149482    --
149483    -- bulk performance
149484    --
149485    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
149486 
149487    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
149488       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
149489 
149490    -- 4955764
149491    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
149492       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
149493 
149494    -- 4458381 Public Sector Enh
149495    
149496    --
149497    -- set accounting attributes for the line type
149498    --
149499    l_entered_amt_idx := 10;
149500    l_accted_amt_idx  := 15;
149501    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
149502    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
149503    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
149504    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
149505    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
149506    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
149507    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
149508    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
149509    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
149510    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
149511    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
149512    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
149513    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
149514    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
149515    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
149516    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
149517    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
149518    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
149519    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
149520    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
149521    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
149522    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
149523    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
149524    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
149525    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
149526    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
149527    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
149528    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
149529    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
149530    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
149531    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
149532    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
149533    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
149534    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
149535    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
149536    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
149537    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
149538    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
149539    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
149540    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
149541    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
149542    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
149546    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
149543    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
149544    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
149545    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
149547    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
149548    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
149549    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
149550 
149551    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
149552    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
149553 
149554    ---------------------------------------------------------------------------------------------------------------
149555    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
149556    ---------------------------------------------------------------------------------------------------------------
149557    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
149558 
149559    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
149560    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
149561 
149562    IF xla_accounting_cache_pkg.GetValueChar
149563          (p_source_code         => 'LEDGER_CATEGORY_CODE'
149564          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
149565    AND l_bflow_method_code = 'PRIOR_ENTRY'
149566 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
149567    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
149568          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
149569        )
149570    THEN
149571          xla_ae_lines_pkg.BflowUpgEntry
149572            (p_business_method_code    => l_bflow_method_code
149573            ,p_business_class_code     => l_bflow_class_code
149574            ,p_balance_type            => l_balance_type_code);
149575    ELSE
149576       NULL;
149577 -- No business flow processing for business flow method of NONE.
149578    END IF;
149579 
149580    --
149581    -- call analytical criteria
149582    --
149583    
149584    --
149585    -- call description
149586    --
149587    
149588 xla_ae_lines_pkg.SetLineDescription(
149589    p_ae_header_id => l_ae_header_id
149590   ,p_description  => Description_3 (
149591      p_application_id         => p_application_id
149592    , p_ae_header_id           => l_ae_header_id 
149593 , p_source_3 => p_source_3
149594 , p_source_4 => p_source_4
149595 , p_source_5 => p_source_5
149596 , p_source_6 => p_source_6
149597 , p_source_7 => p_source_7
149598 , p_source_8 => p_source_8
149599    )
149600 );
149601 
149602 
149603    --
149604    -- call ADRs
149605    -- Bug 4922099
149606    --
149607    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
149608         (NVL(l_actual_upg_option, 'N') = 'O') OR
149609         (NVL(l_enc_upg_option, 'N') = 'O')
149610       )
149611    THEN
149612    NULL;
149613    --
149614    --
149615    
149616   l_ccid := AcctDerRule_55(
149617            p_application_id           => p_application_id
149618          , p_ae_header_id             => l_ae_header_id 
149619 , p_source_12 => p_source_12
149620 , p_source_30 => p_source_30
149621 , p_source_57 => p_source_57
149622          , x_transaction_coa_id       => l_adr_transaction_coa_id
149623          , x_accounting_coa_id        => l_adr_accounting_coa_id
149624          , x_value_type_code          => l_adr_value_type_code
149625          , p_side                     => 'NA'
149626    );
149627 
149628    xla_ae_lines_pkg.set_ccid(
149629     p_code_combination_id          => l_ccid
149630   , p_value_type_code              => l_adr_value_type_code
149631   , p_transaction_coa_id           => l_adr_transaction_coa_id
149632   , p_accounting_coa_id            => l_adr_accounting_coa_id
149633   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
149634   , p_adr_type_code                => 'S'
149635   , p_component_type               => l_component_type
149636   , p_component_code               => l_component_code
149637   , p_component_type_code          => l_component_type_code
149638   , p_component_appl_id            => l_component_appl_id
149639   , p_amb_context_code             => l_amb_context_code
149640   , p_side                         => 'NA'
149641   );
149642 
149643 
149644    l_segment := AcctDerRule_27(
149645            p_application_id           => p_application_id
149646          , p_ae_header_id             => l_ae_header_id 
149647 , p_source_10 => p_source_10
149648 , p_source_10_meaning => p_source_10_meaning
149649 , p_source_25 => p_source_25
149650 , p_source_29 => p_source_29
149651          , x_transaction_coa_id       => l_adr_transaction_coa_id
149652          , x_accounting_coa_id        => l_adr_accounting_coa_id
149653          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
149654          , x_flex_value_set_id        => l_adr_flex_value_set_id
149655          , x_value_type_code          => l_adr_value_type_code
149656          , x_value_combination_id     => l_adr_value_combination_id
149657          , x_value_segment_code       => l_adr_value_segment_code
149658          , p_side                     => 'NA'
149659          , p_override_seg_flag        => 'Y'
149660    );
149661 
149662    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
149663 
149664       xla_ae_lines_pkg.set_segment(
149665           p_to_segment_code         => 'GL_BALANCING'
149666         , p_segment_value           => l_segment
149667         , p_from_segment_code       => l_adr_value_segment_code
149668         , p_from_combination_id     => l_adr_value_combination_id
149669         , p_value_type_code         => l_adr_value_type_code
149670         , p_transaction_coa_id      => l_adr_transaction_coa_id
149674         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
149671         , p_accounting_coa_id       => l_adr_accounting_coa_id
149672         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
149673         , p_flex_value_set_id       => l_adr_flex_value_set_id
149675         , p_adr_type_code           => 'S'
149676         , p_component_type          => l_component_type
149677         , p_component_code          => l_component_code
149678         , p_component_type_code     => l_component_type_code
149679         , p_component_appl_id       => l_component_appl_id
149680         , p_amb_context_code        => l_amb_context_code
149681         , p_entity_code             => 'AP_PAYMENTS'
149682         , p_event_class_code        => 'PAYMENTS'
149683         , p_side                    => 'NA'
149684         );
149685 
149686   END IF;
149687 
149688    --
149689    --
149690    END IF;
149691    --
149692    -- Bug 4922099
149693    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
149694           (NVL(l_enc_upg_option, 'N') = 'O')
149695         ) AND
149696         (l_bflow_method_code = 'PRIOR_ENTRY')
149697       )
149698    THEN
149699       IF
149700       --
149701       1 = 2
149702       --
149703       THEN
149704       xla_accounting_err_pkg.build_message
149705                                     (p_appli_s_name            => 'XLA'
149706                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
149707                                     ,p_token_1                 => 'LINE_NUMBER'
149708                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
149709                                     ,p_token_2                 => 'LINE_TYPE_NAME'
149710                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
149711                                                                              l_component_type
149712                                                                             ,l_component_code
149713                                                                             ,l_component_type_code
149714                                                                             ,l_component_appl_id
149715                                                                             ,l_amb_context_code
149716                                                                             ,l_entity_code
149717                                                                             ,l_event_class_code
149718                                                                            )
149719                                     ,p_token_3                 => 'OWNER'
149720                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
149721                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
149722                                                                           ,p_lookup_code    => l_component_type_code
149723                                                                          )
149724                                     ,p_token_4                 => 'PRODUCT_NAME'
149725                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
149726                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
149727                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
149728                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
149729                                     ,p_ae_header_id            =>  NULL
149730                                        );
149731 
149732         IF (C_LEVEL_ERROR>= g_log_level) THEN
149733                  trace
149734                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
149735                       ,p_level    => C_LEVEL_ERROR
149736                       ,p_module   => l_log_module);
149737         END IF;
149738       END IF;
149739    END IF;
149740    --
149741    --
149742    ------------------------------------------------------------------------------------------------
149743    -- 4219869 Business Flow
149744    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
149745    -- Prior Entry.  Currently, the following code is always generated.
149746    ------------------------------------------------------------------------------------------------
149747    XLA_AE_LINES_PKG.ValidateCurrentLine;
149748 
149749    ------------------------------------------------------------------------------------
149750    -- 4219869 Business Flow
149751    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
149752    ------------------------------------------------------------------------------------
149753    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149754 
149755    ----------------------------------------------------------------------------------
149756    -- 4219869 Business Flow
149757    -- Update journal entry status -- Need to generate this within IF <condition>
149758    ----------------------------------------------------------------------------------
149759    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149760          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
149761          ,p_balance_type_code => l_balance_type_code
149762          );
149763 
149764    -------------------------------------------------------------------------------------------
149765    -- 4262811 - Generate the Accrual Reversal lines
149766    -------------------------------------------------------------------------------------------
149767    BEGIN
149768       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
149769                               (g_array_event(p_event_id).array_value_num('header_index'));
149770       IF l_acc_rev_flag IS NULL THEN
149771          l_acc_rev_flag := 'N';
149772       END IF;
149773    EXCEPTION
149774       WHEN OTHERS THEN
149778    IF (l_acc_rev_flag = 'Y') THEN
149775          l_acc_rev_flag := 'N';
149776    END;
149777    --
149779 
149780        -- 4645092  ------------------------------------------------------------------------------
149781        -- To allow MPA report to determine if it should generate report process
149782        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
149783        ------------------------------------------------------------------------------------------
149784 
149785        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
149786        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
149787    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
149788    -- call ADRs
149789    -- Bug 4922099
149790    --
149791    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
149792         (NVL(l_actual_upg_option, 'N') = 'O') OR
149793         (NVL(l_enc_upg_option, 'N') = 'O')
149794       )
149795    THEN
149796    NULL;
149797    --
149798    --
149799    
149800   l_ccid := AcctDerRule_55(
149801            p_application_id           => p_application_id
149802          , p_ae_header_id             => l_ae_header_id 
149803 , p_source_12 => p_source_12
149804 , p_source_30 => p_source_30
149805 , p_source_57 => p_source_57
149806          , x_transaction_coa_id       => l_adr_transaction_coa_id
149807          , x_accounting_coa_id        => l_adr_accounting_coa_id
149808          , x_value_type_code          => l_adr_value_type_code
149809          , p_side                     => 'NA'
149810    );
149811 
149812    xla_ae_lines_pkg.set_ccid(
149813     p_code_combination_id          => l_ccid
149814   , p_value_type_code              => l_adr_value_type_code
149815   , p_transaction_coa_id           => l_adr_transaction_coa_id
149816   , p_accounting_coa_id            => l_adr_accounting_coa_id
149817   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
149818   , p_adr_type_code                => 'S'
149819   , p_component_type               => l_component_type
149820   , p_component_code               => l_component_code
149821   , p_component_type_code          => l_component_type_code
149822   , p_component_appl_id            => l_component_appl_id
149823   , p_amb_context_code             => l_amb_context_code
149824   , p_side                         => 'NA'
149825   );
149826 
149827 
149828    l_segment := AcctDerRule_27(
149829            p_application_id           => p_application_id
149830          , p_ae_header_id             => l_ae_header_id 
149831 , p_source_10 => p_source_10
149832 , p_source_10_meaning => p_source_10_meaning
149833 , p_source_25 => p_source_25
149834 , p_source_29 => p_source_29
149835          , x_transaction_coa_id       => l_adr_transaction_coa_id
149836          , x_accounting_coa_id        => l_adr_accounting_coa_id
149837          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
149838          , x_flex_value_set_id        => l_adr_flex_value_set_id
149839          , x_value_type_code          => l_adr_value_type_code
149840          , x_value_combination_id     => l_adr_value_combination_id
149841          , x_value_segment_code       => l_adr_value_segment_code
149842          , p_side                     => 'NA'
149843          , p_override_seg_flag        => 'Y'
149844    );
149845 
149846    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
149847 
149848       xla_ae_lines_pkg.set_segment(
149849           p_to_segment_code         => 'GL_BALANCING'
149850         , p_segment_value           => l_segment
149851         , p_from_segment_code       => l_adr_value_segment_code
149852         , p_from_combination_id     => l_adr_value_combination_id
149853         , p_value_type_code         => l_adr_value_type_code
149854         , p_transaction_coa_id      => l_adr_transaction_coa_id
149855         , p_accounting_coa_id       => l_adr_accounting_coa_id
149856         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
149857         , p_flex_value_set_id       => l_adr_flex_value_set_id
149858         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
149859         , p_adr_type_code           => 'S'
149860         , p_component_type          => l_component_type
149861         , p_component_code          => l_component_code
149862         , p_component_type_code     => l_component_type_code
149863         , p_component_appl_id       => l_component_appl_id
149864         , p_amb_context_code        => l_amb_context_code
149865         , p_entity_code             => 'AP_PAYMENTS'
149866         , p_event_class_code        => 'PAYMENTS'
149867         , p_side                    => 'NA'
149868         );
149869 
149870   END IF;
149871 
149872    --
149873    --
149874    END IF;
149875 
149876        --
149877        -- Update the line information that should be overwritten
149878        --
149879        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
149880                                          p_header_num   => 1);
149881        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
149882 
149883        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
149884 
149885        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
149886           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
149887        END IF;
149888 
149889       --
149890       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
149891       --
149892       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
149893           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
149894       ELSE
149895           ---------------------------------------------------------------------------------------------------
149896           -- 4262811a Switch Sign
149900                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149897           ---------------------------------------------------------------------------------------------------
149898           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
149899           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149901           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
149902                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149903           -- 5132302
149904           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
149905                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
149906 
149907       END IF;
149908 
149909       -- 4955764
149910       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
149911       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
149912 
149913 
149914       XLA_AE_LINES_PKG.ValidateCurrentLine;
149915       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
149916 
149917       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
149918                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
149919                ,p_balance_type_code => l_balance_type_code);
149920 
149921    END IF;
149922 
149923    -----------------------------------------------------------------------------------------
149924    -- 4262811 Multiperiod Accounting
149925    -----------------------------------------------------------------------------------------
149926      -- No MPA option is assigned.
149927 
149928 
149929 END IF;
149930 END IF;
149931 --
149932 
149933 --
149934 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
149935    trace
149936       (p_msg      => 'END of AcctLineType_244'
149937       ,p_level    => C_LEVEL_PROCEDURE
149938       ,p_module   => l_log_module);
149939 END IF;
149940 --
149941 EXCEPTION
149942   WHEN xla_exceptions_pkg.application_exception THEN
149943       RAISE;
149944   WHEN OTHERS THEN
149945        xla_exceptions_pkg.raise_message
149946            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_244');
149947 END AcctLineType_244;
149948 --
149949 
149950 ---------------------------------------
149951 --
149952 -- PRIVATE FUNCTION
149953 --         AcctLineType_245
149954 --
149955 ---------------------------------------
149956 PROCEDURE AcctLineType_245 (
149957   p_application_id        IN NUMBER
149958  ,p_event_id              IN NUMBER
149959  ,p_calculate_acctd_flag  IN VARCHAR2
149960  ,p_calculate_g_l_flag    IN VARCHAR2
149961  ,p_actual_flag           IN OUT VARCHAR2
149962  ,p_balance_type_code     OUT VARCHAR2
149963  ,p_gain_or_loss_ref      OUT VARCHAR2
149964  
149965 --Document Sequence Name
149966  , p_source_3            IN VARCHAR2
149967 --Payment Document Voucher Number
149968  , p_source_4            IN NUMBER
149969 --Payment Transaction Number
149970  , p_source_5            IN NUMBER
149971 --Payment Document Date
149972  , p_source_6            IN DATE
149973 --Bank Account Name
149974  , p_source_7            IN VARCHAR2
149975 --Payment Currency Code
149976  , p_source_8            IN VARCHAR2
149977 --Automatic Offsets Value
149978  , p_source_10            IN VARCHAR2
149979  , p_source_10_meaning    IN VARCHAR2
149980 --Bank Cash Account
149981  , p_source_12            IN NUMBER
149982 --Invoice Distribution Account
149983  , p_source_25            IN NUMBER
149984 --Invoice Liability Account
149985  , p_source_29            IN NUMBER
149986 --Bank Cash Clearing Account
149987  , p_source_30            IN NUMBER
149988 --Federal DIT Confirm Account
149989  , p_source_37            IN VARCHAR2
149990 --When to Account for Payment Option
149991  , p_source_57            IN VARCHAR2
149992 --Accounting Reversal Indicator
149993  , p_source_58            IN VARCHAR2
149994 --Distribution Link Type
149995  , p_source_60            IN VARCHAR2
149996 --Override Accounted Amount Indicator
149997  , p_source_85            IN VARCHAR2
149998  , p_source_85_meaning    IN VARCHAR2
149999 --Third Party Type
150000  , p_source_88            IN VARCHAR2
150001 --Invoice Distribution Tax Line Identifier
150002  , p_source_91            IN NUMBER
150003 --Invoice Distribution Tax Distribution Identifier from Tax
150004  , p_source_92            IN NUMBER
150005 --Invoice Distribution Summary Tax Line Identifier
150006  , p_source_93            IN NUMBER
150007 --Business Flow Accounts Payable Application Identifier
150008  , p_source_96            IN NUMBER
150009 --Business Flow Invoice Distribution Type
150010  , p_source_97            IN VARCHAR2
150011 --Business Flow Invoice Entity Code
150012  , p_source_98            IN VARCHAR2
150013 --Business Flow Invoice Distribution Identifier
150014  , p_source_99            IN NUMBER
150015 --Business Flow Invoice Identifier
150016  , p_source_100            IN NUMBER
150017 --Payment Distribution Type
150018  , p_source_101            IN VARCHAR2
150019  , p_source_101_meaning    IN VARCHAR2
150020 --Payment Distribution Amount
150021  , p_source_102            IN NUMBER
150022 --Payment Distribution Identifier
150023  , p_source_107            IN NUMBER
150024 --Payment Supplier Identifier
150025  , p_source_113            IN NUMBER
150026 --Payment Supplier Site Identifier
150027  , p_source_114            IN NUMBER
150028 --Payment Distribution Reversed Identifier
150029  , p_source_115            IN NUMBER
150030 --Payment Distribution (Payment Rate) Ledger Amount
150031  , p_source_118            IN NUMBER
150032 --Payment Exchange Date
150033  , p_source_120            IN DATE
150034 --Payment Exchange Rate
150038 --Payment Type
150035  , p_source_121            IN NUMBER
150036 --Payment Exchange Rate Type
150037  , p_source_122            IN VARCHAR2
150039  , p_source_125            IN VARCHAR2
150040  , p_source_125_meaning    IN VARCHAR2
150041 --Invoice Distribution Amount of the Payment Distribution
150042  , p_source_127            IN NUMBER
150043 --Federal DIT Flag
150044  , p_source_170            IN VARCHAR2
150045 )
150046 IS
150047 
150048 l_component_type              VARCHAR2(80);
150049 l_component_code              VARCHAR2(30);
150050 l_component_type_code         VARCHAR2(1);
150051 l_component_appl_id           INTEGER;
150052 l_amb_context_code            VARCHAR2(30);
150053 l_entity_code                 VARCHAR2(30);
150054 l_event_class_code            VARCHAR2(30);
150055 l_ae_header_id                NUMBER;
150056 l_event_type_code             VARCHAR2(30);
150057 l_line_definition_code        VARCHAR2(30);
150058 l_line_definition_owner_code  VARCHAR2(1);
150059 --
150060 -- adr variables
150061 l_segment                     VARCHAR2(30);
150062 l_ccid                        NUMBER;
150063 l_adr_transaction_coa_id      NUMBER;
150064 l_adr_accounting_coa_id       NUMBER;
150065 l_adr_flexfield_segment_code  VARCHAR2(30);
150066 l_adr_flex_value_set_id       NUMBER;
150067 l_adr_value_type_code         VARCHAR2(30);
150068 l_adr_value_combination_id    NUMBER;
150069 l_adr_value_segment_code      VARCHAR2(30);
150070 
150071 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
150072 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
150073 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
150074 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
150075 
150076 -- 4262811 Variables ------------------------------------------------------------------------------------------
150077 l_entered_amt_idx             NUMBER;
150078 l_accted_amt_idx              NUMBER;
150079 l_acc_rev_flag                VARCHAR2(1);
150080 l_accrual_line_num            NUMBER;
150081 l_tmp_amt                     NUMBER;
150082 l_acc_rev_natural_side_code   VARCHAR2(1);
150083 
150084 l_num_entries                 NUMBER;
150085 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
150086 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
150087 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
150088 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
150089 l_recog_line_1                NUMBER;
150090 l_recog_line_2                NUMBER;
150091 
150092 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
150093 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
150094 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
150095 
150096 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
150097 
150098 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
150099 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
150100 
150101 ---------------------------------------------------------------------------------------------------------------
150102 
150103 
150104 --
150105 -- bulk performance
150106 --
150107 l_balance_type_code           VARCHAR2(1);
150108 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
150109 l_log_module                  VARCHAR2(240);
150110 
150111 --
150112 -- Upgrade strategy
150113 --
150114 l_actual_upg_option           VARCHAR2(1);
150115 l_enc_upg_option           VARCHAR2(1);
150116 
150117 --
150118 BEGIN
150119 --
150120 IF g_log_enabled THEN
150121       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_245';
150122 END IF;
150123 --
150124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150125 
150126       trace
150127          (p_msg      => 'BEGIN of AcctLineType_245'
150128          ,p_level    => C_LEVEL_PROCEDURE
150129          ,p_module   => l_log_module);
150130 
150131 END IF;
150132 --
150133 l_component_type             := 'AMB_JLT';
150134 l_component_code             := 'FV_TC_DISB_TRANSIT_CR';
150135 l_component_type_code        := 'S';
150136 l_component_appl_id          :=  200;
150137 l_amb_context_code           := 'DEFAULT';
150138 l_entity_code                := 'AP_PAYMENTS';
150139 l_event_class_code           := 'PAYMENTS';
150140 l_event_type_code            := 'PAYMENTS_ALL';
150141 l_line_definition_owner_code := 'S';
150142 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
150143 --
150144 l_balance_type_code          := 'A';
150145 l_segment                     := NULL;
150146 l_ccid                        := NULL;
150147 l_adr_transaction_coa_id      := NULL;
150148 l_adr_accounting_coa_id       := NULL;
150149 l_adr_flexfield_segment_code  := NULL;
150150 l_adr_flex_value_set_id       := NULL;
150151 l_adr_value_type_code         := NULL;
150152 l_adr_value_combination_id    := NULL;
150153 l_adr_value_segment_code      := NULL;
150154 
150155 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
150156 l_bflow_class_code           := '';    -- 4219869 Business Flow
150157 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
150158 l_budgetary_control_flag     := 'N';
150159 
150160 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
150161 l_bflow_applied_to_amt       := NULL; -- 5132302
150162 l_entered_amt_idx            := NULL;          -- 4262811
150163 l_accted_amt_idx             := NULL;          -- 4262811
150164 l_acc_rev_flag               := NULL;          -- 4262811
150165 l_accrual_line_num           := NULL;          -- 4262811
150166 l_tmp_amt                    := NULL;          -- 4262811
150167 --
150168  
150169 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
150170     l_balance_type_code <> 'B' THEN
150174 ') =  'M' OR 
150171 IF NVL(p_source_170,'
150172 ') =  'Y' AND 
150173 (NVL(p_source_125,'
150175 NVL(p_source_125,'
150176 ') =  'Q' OR 
150177 NVL(p_source_125,'
150178 ') =  'R') AND 
150179 NVL(p_source_101,'
150180 ') <>  'DISCOUNT'
150181  THEN 
150182 
150183    --
150184    XLA_AE_LINES_PKG.SetNewLine;
150185 
150186    p_balance_type_code          := l_balance_type_code;
150187    -- set the flag so later we will know whether the gain loss line needs to be created
150188    
150189    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
150190      p_actual_flag :='A';
150191    END IF;
150192 
150193    --
150194    -- bulk performance
150195    --
150196    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
150197                                       p_header_num   => 0); -- 4262811
150198    --
150199    -- set accounting line options
150200    --
150201    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
150202            p_natural_side_code          => 'C'
150203          , p_gain_or_loss_flag          => 'N'
150204          , p_gl_transfer_mode_code      => 'S'
150205          , p_acct_entry_type_code       => 'A'
150206          , p_switch_side_flag           => 'N'
150207          , p_merge_duplicate_code       => 'N'
150208          );
150209    --
150210    l_acc_rev_natural_side_code := 'D';  -- 4262811
150211    -- 
150212    --
150213    -- set accounting line type info
150214    --
150215    xla_ae_lines_pkg.SetAcctLineType
150216       (p_component_type             => l_component_type
150217       ,p_event_type_code            => l_event_type_code
150218       ,p_line_definition_owner_code => l_line_definition_owner_code
150219       ,p_line_definition_code       => l_line_definition_code
150220       ,p_accounting_line_code       => l_component_code
150221       ,p_accounting_line_type_code  => l_component_type_code
150222       ,p_accounting_line_appl_id    => l_component_appl_id
150223       ,p_amb_context_code           => l_amb_context_code
150224       ,p_entity_code                => l_entity_code
150225       ,p_event_class_code           => l_event_class_code);
150226    --
150227    -- set accounting class
150228    --
150229    xla_ae_lines_pkg.SetAcctClass(
150230            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
150231          , p_ae_header_id           => l_ae_header_id
150232          );
150233 
150234    --
150235    -- set rounding class
150236    --
150237    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
150238                       'ACCOUNTSPAYABLE';
150239 
150240    --
150241    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
150242    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
150243    --
150244    -- bulk performance
150245    --
150246    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
150247 
150248    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
150249       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
150250 
150251    -- 4955764
150252    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
150253       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
150254 
150255    -- 4458381 Public Sector Enh
150256    
150257    --
150258    -- set accounting attributes for the line type
150259    --
150260    l_entered_amt_idx := 10;
150261    l_accted_amt_idx  := 15;
150262    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
150263    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
150264    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
150265    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
150266    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
150267    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
150268    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
150269    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
150270    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
150271    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
150272    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
150273    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
150274    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
150275    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
150276    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
150277    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
150278    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
150279    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
150280    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
150281    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
150282    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
150283    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
150284    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
150285    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
150286    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
150287    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
150288    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
150289    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
150290    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
150291    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
150292    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
150293    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
150294    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
150295    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
150299    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
150296    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
150297    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
150298    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
150300    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
150301    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
150302    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
150303    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
150304    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
150305    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
150306    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
150307    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
150308    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
150309    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
150310    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
150311 
150312    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
150313    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
150314 
150315    ---------------------------------------------------------------------------------------------------------------
150316    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
150317    ---------------------------------------------------------------------------------------------------------------
150318    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
150319 
150320    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
150321    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
150322 
150323    IF xla_accounting_cache_pkg.GetValueChar
150324          (p_source_code         => 'LEDGER_CATEGORY_CODE'
150325          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
150326    AND l_bflow_method_code = 'PRIOR_ENTRY'
150327 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
150328    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
150329          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
150330        )
150331    THEN
150332          xla_ae_lines_pkg.BflowUpgEntry
150333            (p_business_method_code    => l_bflow_method_code
150334            ,p_business_class_code     => l_bflow_class_code
150335            ,p_balance_type            => l_balance_type_code);
150336    ELSE
150337       NULL;
150338 -- No business flow processing for business flow method of NONE.
150339    END IF;
150340 
150341    --
150342    -- call analytical criteria
150343    --
150344    
150345    --
150346    -- call description
150347    --
150348    
150349 xla_ae_lines_pkg.SetLineDescription(
150350    p_ae_header_id => l_ae_header_id
150351   ,p_description  => Description_3 (
150352      p_application_id         => p_application_id
150353    , p_ae_header_id           => l_ae_header_id 
150354 , p_source_3 => p_source_3
150355 , p_source_4 => p_source_4
150356 , p_source_5 => p_source_5
150357 , p_source_6 => p_source_6
150358 , p_source_7 => p_source_7
150359 , p_source_8 => p_source_8
150360    )
150361 );
150362 
150363 
150364    --
150365    -- call ADRs
150366    -- Bug 4922099
150367    --
150368    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
150369         (NVL(l_actual_upg_option, 'N') = 'O') OR
150370         (NVL(l_enc_upg_option, 'N') = 'O')
150371       )
150372    THEN
150373    NULL;
150374    --
150375    --
150376    
150377   l_ccid := AcctDerRule_55(
150378            p_application_id           => p_application_id
150379          , p_ae_header_id             => l_ae_header_id 
150380 , p_source_12 => p_source_12
150381 , p_source_30 => p_source_30
150382 , p_source_57 => p_source_57
150383          , x_transaction_coa_id       => l_adr_transaction_coa_id
150384          , x_accounting_coa_id        => l_adr_accounting_coa_id
150385          , x_value_type_code          => l_adr_value_type_code
150386          , p_side                     => 'NA'
150387    );
150388 
150389    xla_ae_lines_pkg.set_ccid(
150390     p_code_combination_id          => l_ccid
150391   , p_value_type_code              => l_adr_value_type_code
150392   , p_transaction_coa_id           => l_adr_transaction_coa_id
150393   , p_accounting_coa_id            => l_adr_accounting_coa_id
150394   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
150395   , p_adr_type_code                => 'S'
150396   , p_component_type               => l_component_type
150397   , p_component_code               => l_component_code
150398   , p_component_type_code          => l_component_type_code
150399   , p_component_appl_id            => l_component_appl_id
150400   , p_amb_context_code             => l_amb_context_code
150401   , p_side                         => 'NA'
150402   );
150403 
150404 
150405    l_segment := AcctDerRule_27(
150406            p_application_id           => p_application_id
150407          , p_ae_header_id             => l_ae_header_id 
150408 , p_source_10 => p_source_10
150409 , p_source_10_meaning => p_source_10_meaning
150410 , p_source_25 => p_source_25
150411 , p_source_29 => p_source_29
150412          , x_transaction_coa_id       => l_adr_transaction_coa_id
150413          , x_accounting_coa_id        => l_adr_accounting_coa_id
150414          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
150415          , x_flex_value_set_id        => l_adr_flex_value_set_id
150416          , x_value_type_code          => l_adr_value_type_code
150417          , x_value_combination_id     => l_adr_value_combination_id
150418          , x_value_segment_code       => l_adr_value_segment_code
150419          , p_side                     => 'NA'
150420          , p_override_seg_flag        => 'Y'
150424 
150421    );
150422 
150423    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
150425       xla_ae_lines_pkg.set_segment(
150426           p_to_segment_code         => 'GL_BALANCING'
150427         , p_segment_value           => l_segment
150428         , p_from_segment_code       => l_adr_value_segment_code
150429         , p_from_combination_id     => l_adr_value_combination_id
150430         , p_value_type_code         => l_adr_value_type_code
150431         , p_transaction_coa_id      => l_adr_transaction_coa_id
150432         , p_accounting_coa_id       => l_adr_accounting_coa_id
150433         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
150434         , p_flex_value_set_id       => l_adr_flex_value_set_id
150435         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
150436         , p_adr_type_code           => 'S'
150437         , p_component_type          => l_component_type
150438         , p_component_code          => l_component_code
150439         , p_component_type_code     => l_component_type_code
150440         , p_component_appl_id       => l_component_appl_id
150441         , p_amb_context_code        => l_amb_context_code
150442         , p_entity_code             => 'AP_PAYMENTS'
150443         , p_event_class_code        => 'PAYMENTS'
150444         , p_side                    => 'NA'
150445         );
150446 
150447   END IF;
150448 
150449    l_segment := AcctDerRule_21(
150450            p_application_id           => p_application_id
150451          , p_ae_header_id             => l_ae_header_id 
150452 , p_source_37 => p_source_37
150453          , x_transaction_coa_id       => l_adr_transaction_coa_id
150454          , x_accounting_coa_id        => l_adr_accounting_coa_id
150455          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
150456          , x_flex_value_set_id        => l_adr_flex_value_set_id
150457          , x_value_type_code          => l_adr_value_type_code
150458          , x_value_combination_id     => l_adr_value_combination_id
150459          , x_value_segment_code       => l_adr_value_segment_code
150460          , p_side                     => 'NA'
150461          , p_override_seg_flag        => 'Y'
150462    );
150463 
150464    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
150465 
150466       xla_ae_lines_pkg.set_segment(
150467           p_to_segment_code         => 'GL_ACCOUNT'
150468         , p_segment_value           => l_segment
150469         , p_from_segment_code       => l_adr_value_segment_code
150470         , p_from_combination_id     => l_adr_value_combination_id
150471         , p_value_type_code         => l_adr_value_type_code
150472         , p_transaction_coa_id      => l_adr_transaction_coa_id
150473         , p_accounting_coa_id       => l_adr_accounting_coa_id
150474         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
150475         , p_flex_value_set_id       => l_adr_flex_value_set_id
150476         , p_adr_code                => 'FV_TREASURY_CONFIRM_CASH_ACCT'
150477         , p_adr_type_code           => 'S'
150478         , p_component_type          => l_component_type
150479         , p_component_code          => l_component_code
150480         , p_component_type_code     => l_component_type_code
150481         , p_component_appl_id       => l_component_appl_id
150482         , p_amb_context_code        => l_amb_context_code
150483         , p_entity_code             => 'AP_PAYMENTS'
150484         , p_event_class_code        => 'PAYMENTS'
150485         , p_side                    => 'NA'
150486         );
150487 
150488   END IF;
150489 
150490    --
150491    --
150492    END IF;
150493    --
150494    -- Bug 4922099
150495    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
150496           (NVL(l_enc_upg_option, 'N') = 'O')
150497         ) AND
150498         (l_bflow_method_code = 'PRIOR_ENTRY')
150499       )
150500    THEN
150501       IF
150502       --
150503       1 = 2
150504       --
150505       THEN
150506       xla_accounting_err_pkg.build_message
150507                                     (p_appli_s_name            => 'XLA'
150508                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
150509                                     ,p_token_1                 => 'LINE_NUMBER'
150510                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
150511                                     ,p_token_2                 => 'LINE_TYPE_NAME'
150512                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
150513                                                                              l_component_type
150514                                                                             ,l_component_code
150515                                                                             ,l_component_type_code
150516                                                                             ,l_component_appl_id
150517                                                                             ,l_amb_context_code
150518                                                                             ,l_entity_code
150519                                                                             ,l_event_class_code
150520                                                                            )
150521                                     ,p_token_3                 => 'OWNER'
150522                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
150523                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
150524                                                                           ,p_lookup_code    => l_component_type_code
150525                                                                          )
150526                                     ,p_token_4                 => 'PRODUCT_NAME'
150527                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
150531                                     ,p_ae_header_id            =>  NULL
150528                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
150529                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
150530                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
150532                                        );
150533 
150534         IF (C_LEVEL_ERROR>= g_log_level) THEN
150535                  trace
150536                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
150537                       ,p_level    => C_LEVEL_ERROR
150538                       ,p_module   => l_log_module);
150539         END IF;
150540       END IF;
150541    END IF;
150542    --
150543    --
150544    ------------------------------------------------------------------------------------------------
150545    -- 4219869 Business Flow
150546    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
150547    -- Prior Entry.  Currently, the following code is always generated.
150548    ------------------------------------------------------------------------------------------------
150549    XLA_AE_LINES_PKG.ValidateCurrentLine;
150550 
150551    ------------------------------------------------------------------------------------
150552    -- 4219869 Business Flow
150553    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
150554    ------------------------------------------------------------------------------------
150555    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
150556 
150557    ----------------------------------------------------------------------------------
150558    -- 4219869 Business Flow
150559    -- Update journal entry status -- Need to generate this within IF <condition>
150560    ----------------------------------------------------------------------------------
150561    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
150562          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
150563          ,p_balance_type_code => l_balance_type_code
150564          );
150565 
150566    -------------------------------------------------------------------------------------------
150567    -- 4262811 - Generate the Accrual Reversal lines
150568    -------------------------------------------------------------------------------------------
150569    BEGIN
150570       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
150571                               (g_array_event(p_event_id).array_value_num('header_index'));
150572       IF l_acc_rev_flag IS NULL THEN
150573          l_acc_rev_flag := 'N';
150574       END IF;
150575    EXCEPTION
150576       WHEN OTHERS THEN
150577          l_acc_rev_flag := 'N';
150578    END;
150579    --
150580    IF (l_acc_rev_flag = 'Y') THEN
150581 
150582        -- 4645092  ------------------------------------------------------------------------------
150583        -- To allow MPA report to determine if it should generate report process
150584        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
150585        ------------------------------------------------------------------------------------------
150586 
150587        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
150588        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
150589    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
150590    -- call ADRs
150591    -- Bug 4922099
150592    --
150593    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
150594         (NVL(l_actual_upg_option, 'N') = 'O') OR
150595         (NVL(l_enc_upg_option, 'N') = 'O')
150596       )
150597    THEN
150598    NULL;
150599    --
150600    --
150601    
150602   l_ccid := AcctDerRule_55(
150603            p_application_id           => p_application_id
150604          , p_ae_header_id             => l_ae_header_id 
150605 , p_source_12 => p_source_12
150606 , p_source_30 => p_source_30
150607 , p_source_57 => p_source_57
150608          , x_transaction_coa_id       => l_adr_transaction_coa_id
150609          , x_accounting_coa_id        => l_adr_accounting_coa_id
150610          , x_value_type_code          => l_adr_value_type_code
150611          , p_side                     => 'NA'
150612    );
150613 
150614    xla_ae_lines_pkg.set_ccid(
150615     p_code_combination_id          => l_ccid
150616   , p_value_type_code              => l_adr_value_type_code
150617   , p_transaction_coa_id           => l_adr_transaction_coa_id
150618   , p_accounting_coa_id            => l_adr_accounting_coa_id
150619   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
150620   , p_adr_type_code                => 'S'
150621   , p_component_type               => l_component_type
150622   , p_component_code               => l_component_code
150623   , p_component_type_code          => l_component_type_code
150624   , p_component_appl_id            => l_component_appl_id
150625   , p_amb_context_code             => l_amb_context_code
150626   , p_side                         => 'NA'
150627   );
150628 
150629 
150630    l_segment := AcctDerRule_27(
150631            p_application_id           => p_application_id
150632          , p_ae_header_id             => l_ae_header_id 
150633 , p_source_10 => p_source_10
150634 , p_source_10_meaning => p_source_10_meaning
150635 , p_source_25 => p_source_25
150636 , p_source_29 => p_source_29
150637          , x_transaction_coa_id       => l_adr_transaction_coa_id
150638          , x_accounting_coa_id        => l_adr_accounting_coa_id
150639          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
150640          , x_flex_value_set_id        => l_adr_flex_value_set_id
150641          , x_value_type_code          => l_adr_value_type_code
150642          , x_value_combination_id     => l_adr_value_combination_id
150643          , x_value_segment_code       => l_adr_value_segment_code
150644          , p_side                     => 'NA'
150648    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
150645          , p_override_seg_flag        => 'Y'
150646    );
150647 
150649 
150650       xla_ae_lines_pkg.set_segment(
150651           p_to_segment_code         => 'GL_BALANCING'
150652         , p_segment_value           => l_segment
150653         , p_from_segment_code       => l_adr_value_segment_code
150654         , p_from_combination_id     => l_adr_value_combination_id
150655         , p_value_type_code         => l_adr_value_type_code
150656         , p_transaction_coa_id      => l_adr_transaction_coa_id
150657         , p_accounting_coa_id       => l_adr_accounting_coa_id
150658         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
150659         , p_flex_value_set_id       => l_adr_flex_value_set_id
150660         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
150661         , p_adr_type_code           => 'S'
150662         , p_component_type          => l_component_type
150663         , p_component_code          => l_component_code
150664         , p_component_type_code     => l_component_type_code
150665         , p_component_appl_id       => l_component_appl_id
150666         , p_amb_context_code        => l_amb_context_code
150667         , p_entity_code             => 'AP_PAYMENTS'
150668         , p_event_class_code        => 'PAYMENTS'
150669         , p_side                    => 'NA'
150670         );
150671 
150672   END IF;
150673 
150674    l_segment := AcctDerRule_21(
150675            p_application_id           => p_application_id
150676          , p_ae_header_id             => l_ae_header_id 
150677 , p_source_37 => p_source_37
150678          , x_transaction_coa_id       => l_adr_transaction_coa_id
150679          , x_accounting_coa_id        => l_adr_accounting_coa_id
150680          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
150681          , x_flex_value_set_id        => l_adr_flex_value_set_id
150682          , x_value_type_code          => l_adr_value_type_code
150683          , x_value_combination_id     => l_adr_value_combination_id
150684          , x_value_segment_code       => l_adr_value_segment_code
150685          , p_side                     => 'NA'
150686          , p_override_seg_flag        => 'Y'
150687    );
150688 
150689    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
150690 
150691       xla_ae_lines_pkg.set_segment(
150692           p_to_segment_code         => 'GL_ACCOUNT'
150693         , p_segment_value           => l_segment
150694         , p_from_segment_code       => l_adr_value_segment_code
150695         , p_from_combination_id     => l_adr_value_combination_id
150696         , p_value_type_code         => l_adr_value_type_code
150697         , p_transaction_coa_id      => l_adr_transaction_coa_id
150698         , p_accounting_coa_id       => l_adr_accounting_coa_id
150699         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
150700         , p_flex_value_set_id       => l_adr_flex_value_set_id
150701         , p_adr_code                => 'FV_TREASURY_CONFIRM_CASH_ACCT'
150702         , p_adr_type_code           => 'S'
150703         , p_component_type          => l_component_type
150704         , p_component_code          => l_component_code
150705         , p_component_type_code     => l_component_type_code
150706         , p_component_appl_id       => l_component_appl_id
150707         , p_amb_context_code        => l_amb_context_code
150708         , p_entity_code             => 'AP_PAYMENTS'
150709         , p_event_class_code        => 'PAYMENTS'
150710         , p_side                    => 'NA'
150711         );
150712 
150713   END IF;
150714 
150715    --
150716    --
150717    END IF;
150718 
150719        --
150720        -- Update the line information that should be overwritten
150721        --
150722        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
150723                                          p_header_num   => 1);
150724        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
150725 
150726        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
150727 
150728        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
150729           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
150730        END IF;
150731 
150732       --
150733       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
150734       --
150735       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
150736           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
150737       ELSE
150738           ---------------------------------------------------------------------------------------------------
150739           -- 4262811a Switch Sign
150740           ---------------------------------------------------------------------------------------------------
150741           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
150742           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
150743                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
150744           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
150745                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
150746           -- 5132302
150747           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
150748                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
150749 
150750       END IF;
150751 
150752       -- 4955764
150753       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
150754       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
150755 
150756 
150760       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
150757       XLA_AE_LINES_PKG.ValidateCurrentLine;
150758       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
150759 
150761                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
150762                ,p_balance_type_code => l_balance_type_code);
150763 
150764    END IF;
150765 
150766    -----------------------------------------------------------------------------------------
150767    -- 4262811 Multiperiod Accounting
150768    -----------------------------------------------------------------------------------------
150769      -- No MPA option is assigned.
150770 
150771 
150772 END IF;
150773 END IF;
150774 --
150775 
150776 --
150777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150778    trace
150779       (p_msg      => 'END of AcctLineType_245'
150780       ,p_level    => C_LEVEL_PROCEDURE
150781       ,p_module   => l_log_module);
150782 END IF;
150783 --
150784 EXCEPTION
150785   WHEN xla_exceptions_pkg.application_exception THEN
150786       RAISE;
150787   WHEN OTHERS THEN
150788        xla_exceptions_pkg.raise_message
150789            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_245');
150790 END AcctLineType_245;
150791 --
150792 
150793 ---------------------------------------
150794 --
150795 -- PRIVATE FUNCTION
150796 --         AcctLineType_246
150797 --
150798 ---------------------------------------
150799 PROCEDURE AcctLineType_246 (
150800   p_application_id        IN NUMBER
150801  ,p_event_id              IN NUMBER
150802  ,p_calculate_acctd_flag  IN VARCHAR2
150803  ,p_calculate_g_l_flag    IN VARCHAR2
150804  ,p_actual_flag           IN OUT VARCHAR2
150805  ,p_balance_type_code     OUT VARCHAR2
150806  ,p_gain_or_loss_ref      OUT VARCHAR2
150807  
150808 --Document Sequence Name
150809  , p_source_3            IN VARCHAR2
150810 --Payment Document Voucher Number
150811  , p_source_4            IN NUMBER
150812 --Payment Transaction Number
150813  , p_source_5            IN NUMBER
150814 --Payment Document Date
150815  , p_source_6            IN DATE
150816 --Bank Account Name
150817  , p_source_7            IN VARCHAR2
150818 --Payment Currency Code
150819  , p_source_8            IN VARCHAR2
150820 --Automatic Offsets Value
150821  , p_source_10            IN VARCHAR2
150822  , p_source_10_meaning    IN VARCHAR2
150823 --Bank Cash Account
150824  , p_source_12            IN NUMBER
150825 --Invoice Distribution Account
150826  , p_source_25            IN NUMBER
150827 --Invoice Liability Account
150828  , p_source_29            IN NUMBER
150829 --Bank Cash Clearing Account
150830  , p_source_30            IN NUMBER
150831 --Invoice Type Paid
150832  , p_source_56            IN VARCHAR2
150833  , p_source_56_meaning    IN VARCHAR2
150834 --When to Account for Payment Option
150835  , p_source_57            IN VARCHAR2
150836 --Accounting Reversal Indicator
150837  , p_source_58            IN VARCHAR2
150838 --Distribution Link Type
150839  , p_source_60            IN VARCHAR2
150840 --Override Accounted Amount Indicator
150841  , p_source_85            IN VARCHAR2
150842  , p_source_85_meaning    IN VARCHAR2
150843 --Third Party Type
150844  , p_source_88            IN VARCHAR2
150845 --Invoice Distribution Tax Line Identifier
150846  , p_source_91            IN NUMBER
150847 --Invoice Distribution Tax Distribution Identifier from Tax
150848  , p_source_92            IN NUMBER
150849 --Invoice Distribution Summary Tax Line Identifier
150850  , p_source_93            IN NUMBER
150851 --Business Flow Accounts Payable Application Identifier
150852  , p_source_96            IN NUMBER
150853 --Business Flow Invoice Distribution Type
150854  , p_source_97            IN VARCHAR2
150855 --Business Flow Invoice Entity Code
150856  , p_source_98            IN VARCHAR2
150857 --Business Flow Invoice Distribution Identifier
150858  , p_source_99            IN NUMBER
150859 --Business Flow Invoice Identifier
150860  , p_source_100            IN NUMBER
150861 --Payment Distribution Type
150862  , p_source_101            IN VARCHAR2
150863  , p_source_101_meaning    IN VARCHAR2
150864 --Payment Distribution Amount
150865  , p_source_102            IN NUMBER
150866 --Payment Distribution Identifier
150867  , p_source_107            IN NUMBER
150868 --Payment Supplier Identifier
150869  , p_source_113            IN NUMBER
150870 --Payment Supplier Site Identifier
150871  , p_source_114            IN NUMBER
150872 --Payment Distribution Reversed Identifier
150873  , p_source_115            IN NUMBER
150874 --Payment Distribution (Payment Rate) Ledger Amount
150875  , p_source_118            IN NUMBER
150876 --Payment Exchange Date
150877  , p_source_120            IN DATE
150878 --Payment Exchange Rate
150879  , p_source_121            IN NUMBER
150880 --Payment Exchange Rate Type
150881  , p_source_122            IN VARCHAR2
150882 --Payment Type
150883  , p_source_125            IN VARCHAR2
150884  , p_source_125_meaning    IN VARCHAR2
150885 --Invoice Distribution Amount of the Payment Distribution
150886  , p_source_127            IN NUMBER
150887 --Federal DIT Flag
150888  , p_source_170            IN VARCHAR2
150889 )
150890 IS
150891 
150892 l_component_type              VARCHAR2(80);
150893 l_component_code              VARCHAR2(30);
150894 l_component_type_code         VARCHAR2(1);
150895 l_component_appl_id           INTEGER;
150896 l_amb_context_code            VARCHAR2(30);
150897 l_entity_code                 VARCHAR2(30);
150898 l_event_class_code            VARCHAR2(30);
150899 l_ae_header_id                NUMBER;
150900 l_event_type_code             VARCHAR2(30);
150901 l_line_definition_code        VARCHAR2(30);
150902 l_line_definition_owner_code  VARCHAR2(1);
150903 --
150904 -- adr variables
150905 l_segment                     VARCHAR2(30);
150906 l_ccid                        NUMBER;
150910 l_adr_flex_value_set_id       NUMBER;
150907 l_adr_transaction_coa_id      NUMBER;
150908 l_adr_accounting_coa_id       NUMBER;
150909 l_adr_flexfield_segment_code  VARCHAR2(30);
150911 l_adr_value_type_code         VARCHAR2(30);
150912 l_adr_value_combination_id    NUMBER;
150913 l_adr_value_segment_code      VARCHAR2(30);
150914 
150915 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
150916 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
150917 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
150918 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
150919 
150920 -- 4262811 Variables ------------------------------------------------------------------------------------------
150921 l_entered_amt_idx             NUMBER;
150922 l_accted_amt_idx              NUMBER;
150923 l_acc_rev_flag                VARCHAR2(1);
150924 l_accrual_line_num            NUMBER;
150925 l_tmp_amt                     NUMBER;
150926 l_acc_rev_natural_side_code   VARCHAR2(1);
150927 
150928 l_num_entries                 NUMBER;
150929 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
150930 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
150931 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
150932 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
150933 l_recog_line_1                NUMBER;
150934 l_recog_line_2                NUMBER;
150935 
150936 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
150937 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
150938 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
150939 
150940 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
150941 
150942 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
150943 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
150944 
150945 ---------------------------------------------------------------------------------------------------------------
150946 
150947 
150948 --
150949 -- bulk performance
150950 --
150951 l_balance_type_code           VARCHAR2(1);
150952 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
150953 l_log_module                  VARCHAR2(240);
150954 
150955 --
150956 -- Upgrade strategy
150957 --
150958 l_actual_upg_option           VARCHAR2(1);
150959 l_enc_upg_option           VARCHAR2(1);
150960 
150961 --
150962 BEGIN
150963 --
150964 IF g_log_enabled THEN
150965       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_246';
150966 END IF;
150967 --
150968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150969 
150970       trace
150971          (p_msg      => 'BEGIN of AcctLineType_246'
150972          ,p_level    => C_LEVEL_PROCEDURE
150973          ,p_module   => l_log_module);
150974 
150975 END IF;
150976 --
150977 l_component_type             := 'AMB_JLT';
150978 l_component_code             := 'FV_TC_PAID_ACCT_CR';
150979 l_component_type_code        := 'S';
150980 l_component_appl_id          :=  200;
150981 l_amb_context_code           := 'DEFAULT';
150982 l_entity_code                := 'AP_PAYMENTS';
150983 l_event_class_code           := 'PAYMENTS';
150984 l_event_type_code            := 'PAYMENTS_ALL';
150985 l_line_definition_owner_code := 'S';
150986 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
150987 --
150988 l_balance_type_code          := 'A';
150989 l_segment                     := NULL;
150990 l_ccid                        := NULL;
150991 l_adr_transaction_coa_id      := NULL;
150992 l_adr_accounting_coa_id       := NULL;
150993 l_adr_flexfield_segment_code  := NULL;
150994 l_adr_flex_value_set_id       := NULL;
150995 l_adr_value_type_code         := NULL;
150996 l_adr_value_combination_id    := NULL;
150997 l_adr_value_segment_code      := NULL;
150998 
150999 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
151000 l_bflow_class_code           := '';    -- 4219869 Business Flow
151001 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
151002 l_budgetary_control_flag     := 'N';
151003 
151004 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
151005 l_bflow_applied_to_amt       := NULL; -- 5132302
151006 l_entered_amt_idx            := NULL;          -- 4262811
151007 l_accted_amt_idx             := NULL;          -- 4262811
151008 l_acc_rev_flag               := NULL;          -- 4262811
151009 l_accrual_line_num           := NULL;          -- 4262811
151010 l_tmp_amt                    := NULL;          -- 4262811
151011 --
151012  
151013 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
151014     l_balance_type_code <> 'B' THEN
151015 IF NVL(p_source_170,'
151016 ') =  'Y' AND 
151017 (NVL(p_source_125,'
151018 ') =  'M' OR 
151019 NVL(p_source_125,'
151020 ') =  'Q' OR 
151021 NVL(p_source_125,'
151022 ') =  'R') AND 
151023 NVL(p_source_101,'
151024 ') <>  'DISCOUNT'
151025  THEN 
151026 
151027    --
151028    XLA_AE_LINES_PKG.SetNewLine;
151029 
151030    p_balance_type_code          := l_balance_type_code;
151031    -- set the flag so later we will know whether the gain loss line needs to be created
151032    
151033    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
151034      p_actual_flag :='A';
151035    END IF;
151036 
151037    --
151038    -- bulk performance
151039    --
151040    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
151041                                       p_header_num   => 0); -- 4262811
151042    --
151043    -- set accounting line options
151044    --
151045    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
151046            p_natural_side_code          => 'C'
151047          , p_gain_or_loss_flag          => 'N'
151051          , p_merge_duplicate_code       => 'N'
151048          , p_gl_transfer_mode_code      => 'S'
151049          , p_acct_entry_type_code       => 'A'
151050          , p_switch_side_flag           => 'N'
151052          );
151053    --
151054    l_acc_rev_natural_side_code := 'D';  -- 4262811
151055    -- 
151056    --
151057    -- set accounting line type info
151058    --
151059    xla_ae_lines_pkg.SetAcctLineType
151060       (p_component_type             => l_component_type
151061       ,p_event_type_code            => l_event_type_code
151062       ,p_line_definition_owner_code => l_line_definition_owner_code
151063       ,p_line_definition_code       => l_line_definition_code
151064       ,p_accounting_line_code       => l_component_code
151065       ,p_accounting_line_type_code  => l_component_type_code
151066       ,p_accounting_line_appl_id    => l_component_appl_id
151067       ,p_amb_context_code           => l_amb_context_code
151068       ,p_entity_code                => l_entity_code
151069       ,p_event_class_code           => l_event_class_code);
151070    --
151071    -- set accounting class
151072    --
151073    xla_ae_lines_pkg.SetAcctClass(
151074            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
151075          , p_ae_header_id           => l_ae_header_id
151076          );
151077 
151078    --
151079    -- set rounding class
151080    --
151081    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
151082                       'ACCOUNTSPAYABLE';
151083 
151084    --
151085    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
151086    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
151087    --
151088    -- bulk performance
151089    --
151090    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
151091 
151092    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
151093       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
151094 
151095    -- 4955764
151096    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
151097       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
151098 
151099    -- 4458381 Public Sector Enh
151100    
151101    --
151102    -- set accounting attributes for the line type
151103    --
151104    l_entered_amt_idx := 10;
151105    l_accted_amt_idx  := 15;
151106    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
151107    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
151108    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
151109    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
151110    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
151111    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
151112    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
151113    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
151114    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
151115    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
151116    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
151117    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
151118    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
151119    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
151120    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
151121    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
151122    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
151123    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
151124    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
151125    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
151126    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
151127    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
151128    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
151129    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
151130    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
151131    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
151132    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
151133    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
151134    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
151135    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
151136    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
151137    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
151138    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
151139    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
151140    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
151141    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
151142    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
151143    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
151144    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
151145    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
151146    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
151147    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
151148    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
151149    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
151150    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
151151    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
151152    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
151153    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
151154    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
151155 
151156    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
151160    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
151157    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
151158 
151159    ---------------------------------------------------------------------------------------------------------------
151161    ---------------------------------------------------------------------------------------------------------------
151162    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
151163 
151164    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
151165    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
151166 
151167    IF xla_accounting_cache_pkg.GetValueChar
151168          (p_source_code         => 'LEDGER_CATEGORY_CODE'
151169          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
151170    AND l_bflow_method_code = 'PRIOR_ENTRY'
151171 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
151172    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
151173          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
151174        )
151175    THEN
151176          xla_ae_lines_pkg.BflowUpgEntry
151177            (p_business_method_code    => l_bflow_method_code
151178            ,p_business_class_code     => l_bflow_class_code
151179            ,p_balance_type            => l_balance_type_code);
151180    ELSE
151181       NULL;
151182 -- No business flow processing for business flow method of NONE.
151183    END IF;
151184 
151185    --
151186    -- call analytical criteria
151187    --
151188    
151189    --
151190    -- call description
151191    --
151192    
151193 xla_ae_lines_pkg.SetLineDescription(
151194    p_ae_header_id => l_ae_header_id
151195   ,p_description  => Description_3 (
151196      p_application_id         => p_application_id
151197    , p_ae_header_id           => l_ae_header_id 
151198 , p_source_3 => p_source_3
151199 , p_source_4 => p_source_4
151200 , p_source_5 => p_source_5
151201 , p_source_6 => p_source_6
151202 , p_source_7 => p_source_7
151203 , p_source_8 => p_source_8
151204    )
151205 );
151206 
151207 
151208    --
151209    -- call ADRs
151210    -- Bug 4922099
151211    --
151212    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
151213         (NVL(l_actual_upg_option, 'N') = 'O') OR
151214         (NVL(l_enc_upg_option, 'N') = 'O')
151215       )
151216    THEN
151217    NULL;
151218    --
151219    --
151220    
151221   l_ccid := AcctDerRule_55(
151222            p_application_id           => p_application_id
151223          , p_ae_header_id             => l_ae_header_id 
151224 , p_source_12 => p_source_12
151225 , p_source_30 => p_source_30
151226 , p_source_57 => p_source_57
151227          , x_transaction_coa_id       => l_adr_transaction_coa_id
151228          , x_accounting_coa_id        => l_adr_accounting_coa_id
151229          , x_value_type_code          => l_adr_value_type_code
151230          , p_side                     => 'NA'
151231    );
151232 
151233    xla_ae_lines_pkg.set_ccid(
151234     p_code_combination_id          => l_ccid
151235   , p_value_type_code              => l_adr_value_type_code
151236   , p_transaction_coa_id           => l_adr_transaction_coa_id
151237   , p_accounting_coa_id            => l_adr_accounting_coa_id
151238   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
151239   , p_adr_type_code                => 'S'
151240   , p_component_type               => l_component_type
151241   , p_component_code               => l_component_code
151242   , p_component_type_code          => l_component_type_code
151243   , p_component_appl_id            => l_component_appl_id
151244   , p_amb_context_code             => l_amb_context_code
151245   , p_side                         => 'NA'
151246   );
151247 
151248 
151249    l_segment := AcctDerRule_53(
151250            p_application_id           => p_application_id
151251          , p_ae_header_id             => l_ae_header_id 
151252 , p_source_56 => p_source_56
151253 , p_source_56_meaning => p_source_56_meaning
151254          , x_transaction_coa_id       => l_adr_transaction_coa_id
151255          , x_accounting_coa_id        => l_adr_accounting_coa_id
151256          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
151257          , x_flex_value_set_id        => l_adr_flex_value_set_id
151258          , x_value_type_code          => l_adr_value_type_code
151259          , x_value_combination_id     => l_adr_value_combination_id
151260          , x_value_segment_code       => l_adr_value_segment_code
151261          , p_side                     => 'NA'
151262          , p_override_seg_flag        => 'Y'
151263    );
151264 
151265    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
151266 
151267       xla_ae_lines_pkg.set_segment(
151268           p_to_segment_code         => 'GL_ACCOUNT'
151269         , p_segment_value           => l_segment
151270         , p_from_segment_code       => l_adr_value_segment_code
151271         , p_from_combination_id     => l_adr_value_combination_id
151272         , p_value_type_code         => l_adr_value_type_code
151273         , p_transaction_coa_id      => l_adr_transaction_coa_id
151274         , p_accounting_coa_id       => l_adr_accounting_coa_id
151275         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
151276         , p_flex_value_set_id       => l_adr_flex_value_set_id
151277         , p_adr_code                => 'FV_4X0201_TREASURY_PAY_ACCT'
151278         , p_adr_type_code           => 'S'
151279         , p_component_type          => l_component_type
151280         , p_component_code          => l_component_code
151281         , p_component_type_code     => l_component_type_code
151282         , p_component_appl_id       => l_component_appl_id
151286         , p_side                    => 'NA'
151283         , p_amb_context_code        => l_amb_context_code
151284         , p_entity_code             => 'AP_PAYMENTS'
151285         , p_event_class_code        => 'PAYMENTS'
151287         );
151288 
151289   END IF;
151290 
151291    l_segment := AcctDerRule_27(
151292            p_application_id           => p_application_id
151293          , p_ae_header_id             => l_ae_header_id 
151294 , p_source_10 => p_source_10
151295 , p_source_10_meaning => p_source_10_meaning
151296 , p_source_25 => p_source_25
151297 , p_source_29 => p_source_29
151298          , x_transaction_coa_id       => l_adr_transaction_coa_id
151299          , x_accounting_coa_id        => l_adr_accounting_coa_id
151300          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
151301          , x_flex_value_set_id        => l_adr_flex_value_set_id
151302          , x_value_type_code          => l_adr_value_type_code
151303          , x_value_combination_id     => l_adr_value_combination_id
151304          , x_value_segment_code       => l_adr_value_segment_code
151305          , p_side                     => 'NA'
151306          , p_override_seg_flag        => 'Y'
151307    );
151308 
151309    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
151310 
151311       xla_ae_lines_pkg.set_segment(
151312           p_to_segment_code         => 'GL_BALANCING'
151313         , p_segment_value           => l_segment
151314         , p_from_segment_code       => l_adr_value_segment_code
151315         , p_from_combination_id     => l_adr_value_combination_id
151316         , p_value_type_code         => l_adr_value_type_code
151317         , p_transaction_coa_id      => l_adr_transaction_coa_id
151318         , p_accounting_coa_id       => l_adr_accounting_coa_id
151319         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
151320         , p_flex_value_set_id       => l_adr_flex_value_set_id
151321         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
151322         , p_adr_type_code           => 'S'
151323         , p_component_type          => l_component_type
151324         , p_component_code          => l_component_code
151325         , p_component_type_code     => l_component_type_code
151326         , p_component_appl_id       => l_component_appl_id
151327         , p_amb_context_code        => l_amb_context_code
151328         , p_entity_code             => 'AP_PAYMENTS'
151329         , p_event_class_code        => 'PAYMENTS'
151330         , p_side                    => 'NA'
151331         );
151332 
151333   END IF;
151334 
151335    --
151336    --
151337    END IF;
151338    --
151339    -- Bug 4922099
151340    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
151341           (NVL(l_enc_upg_option, 'N') = 'O')
151342         ) AND
151343         (l_bflow_method_code = 'PRIOR_ENTRY')
151344       )
151345    THEN
151346       IF
151347       --
151348       1 = 2
151349       --
151350       THEN
151351       xla_accounting_err_pkg.build_message
151352                                     (p_appli_s_name            => 'XLA'
151353                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
151354                                     ,p_token_1                 => 'LINE_NUMBER'
151355                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
151356                                     ,p_token_2                 => 'LINE_TYPE_NAME'
151357                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
151358                                                                              l_component_type
151359                                                                             ,l_component_code
151360                                                                             ,l_component_type_code
151361                                                                             ,l_component_appl_id
151362                                                                             ,l_amb_context_code
151363                                                                             ,l_entity_code
151364                                                                             ,l_event_class_code
151365                                                                            )
151366                                     ,p_token_3                 => 'OWNER'
151367                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
151368                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
151369                                                                           ,p_lookup_code    => l_component_type_code
151370                                                                          )
151371                                     ,p_token_4                 => 'PRODUCT_NAME'
151372                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
151373                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
151374                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
151375                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
151376                                     ,p_ae_header_id            =>  NULL
151377                                        );
151378 
151379         IF (C_LEVEL_ERROR>= g_log_level) THEN
151380                  trace
151381                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
151382                       ,p_level    => C_LEVEL_ERROR
151383                       ,p_module   => l_log_module);
151384         END IF;
151385       END IF;
151386    END IF;
151387    --
151388    --
151389    ------------------------------------------------------------------------------------------------
151390    -- 4219869 Business Flow
151391    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
151395 
151392    -- Prior Entry.  Currently, the following code is always generated.
151393    ------------------------------------------------------------------------------------------------
151394    XLA_AE_LINES_PKG.ValidateCurrentLine;
151396    ------------------------------------------------------------------------------------
151397    -- 4219869 Business Flow
151398    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
151399    ------------------------------------------------------------------------------------
151400    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
151401 
151402    ----------------------------------------------------------------------------------
151403    -- 4219869 Business Flow
151404    -- Update journal entry status -- Need to generate this within IF <condition>
151405    ----------------------------------------------------------------------------------
151406    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
151407          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
151408          ,p_balance_type_code => l_balance_type_code
151409          );
151410 
151411    -------------------------------------------------------------------------------------------
151412    -- 4262811 - Generate the Accrual Reversal lines
151413    -------------------------------------------------------------------------------------------
151414    BEGIN
151415       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
151416                               (g_array_event(p_event_id).array_value_num('header_index'));
151417       IF l_acc_rev_flag IS NULL THEN
151418          l_acc_rev_flag := 'N';
151419       END IF;
151420    EXCEPTION
151421       WHEN OTHERS THEN
151422          l_acc_rev_flag := 'N';
151423    END;
151424    --
151425    IF (l_acc_rev_flag = 'Y') THEN
151426 
151427        -- 4645092  ------------------------------------------------------------------------------
151428        -- To allow MPA report to determine if it should generate report process
151429        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
151430        ------------------------------------------------------------------------------------------
151431 
151432        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
151433        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
151434    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
151435    -- call ADRs
151436    -- Bug 4922099
151437    --
151438    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
151439         (NVL(l_actual_upg_option, 'N') = 'O') OR
151440         (NVL(l_enc_upg_option, 'N') = 'O')
151441       )
151442    THEN
151443    NULL;
151444    --
151445    --
151446    
151447   l_ccid := AcctDerRule_55(
151448            p_application_id           => p_application_id
151449          , p_ae_header_id             => l_ae_header_id 
151450 , p_source_12 => p_source_12
151451 , p_source_30 => p_source_30
151452 , p_source_57 => p_source_57
151453          , x_transaction_coa_id       => l_adr_transaction_coa_id
151454          , x_accounting_coa_id        => l_adr_accounting_coa_id
151455          , x_value_type_code          => l_adr_value_type_code
151456          , p_side                     => 'NA'
151457    );
151458 
151459    xla_ae_lines_pkg.set_ccid(
151460     p_code_combination_id          => l_ccid
151461   , p_value_type_code              => l_adr_value_type_code
151462   , p_transaction_coa_id           => l_adr_transaction_coa_id
151463   , p_accounting_coa_id            => l_adr_accounting_coa_id
151464   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
151465   , p_adr_type_code                => 'S'
151466   , p_component_type               => l_component_type
151467   , p_component_code               => l_component_code
151468   , p_component_type_code          => l_component_type_code
151469   , p_component_appl_id            => l_component_appl_id
151470   , p_amb_context_code             => l_amb_context_code
151471   , p_side                         => 'NA'
151472   );
151473 
151474 
151475    l_segment := AcctDerRule_53(
151476            p_application_id           => p_application_id
151477          , p_ae_header_id             => l_ae_header_id 
151478 , p_source_56 => p_source_56
151479 , p_source_56_meaning => p_source_56_meaning
151480          , x_transaction_coa_id       => l_adr_transaction_coa_id
151481          , x_accounting_coa_id        => l_adr_accounting_coa_id
151482          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
151483          , x_flex_value_set_id        => l_adr_flex_value_set_id
151484          , x_value_type_code          => l_adr_value_type_code
151485          , x_value_combination_id     => l_adr_value_combination_id
151486          , x_value_segment_code       => l_adr_value_segment_code
151487          , p_side                     => 'NA'
151488          , p_override_seg_flag        => 'Y'
151489    );
151490 
151491    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
151492 
151493       xla_ae_lines_pkg.set_segment(
151494           p_to_segment_code         => 'GL_ACCOUNT'
151495         , p_segment_value           => l_segment
151496         , p_from_segment_code       => l_adr_value_segment_code
151497         , p_from_combination_id     => l_adr_value_combination_id
151498         , p_value_type_code         => l_adr_value_type_code
151499         , p_transaction_coa_id      => l_adr_transaction_coa_id
151500         , p_accounting_coa_id       => l_adr_accounting_coa_id
151501         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
151502         , p_flex_value_set_id       => l_adr_flex_value_set_id
151503         , p_adr_code                => 'FV_4X0201_TREASURY_PAY_ACCT'
151504         , p_adr_type_code           => 'S'
151505         , p_component_type          => l_component_type
151506         , p_component_code          => l_component_code
151507         , p_component_type_code     => l_component_type_code
151508         , p_component_appl_id       => l_component_appl_id
151512         , p_side                    => 'NA'
151509         , p_amb_context_code        => l_amb_context_code
151510         , p_entity_code             => 'AP_PAYMENTS'
151511         , p_event_class_code        => 'PAYMENTS'
151513         );
151514 
151515   END IF;
151516 
151517    l_segment := AcctDerRule_27(
151518            p_application_id           => p_application_id
151519          , p_ae_header_id             => l_ae_header_id 
151520 , p_source_10 => p_source_10
151521 , p_source_10_meaning => p_source_10_meaning
151522 , p_source_25 => p_source_25
151523 , p_source_29 => p_source_29
151524          , x_transaction_coa_id       => l_adr_transaction_coa_id
151525          , x_accounting_coa_id        => l_adr_accounting_coa_id
151526          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
151527          , x_flex_value_set_id        => l_adr_flex_value_set_id
151528          , x_value_type_code          => l_adr_value_type_code
151529          , x_value_combination_id     => l_adr_value_combination_id
151530          , x_value_segment_code       => l_adr_value_segment_code
151531          , p_side                     => 'NA'
151532          , p_override_seg_flag        => 'Y'
151533    );
151534 
151535    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
151536 
151537       xla_ae_lines_pkg.set_segment(
151538           p_to_segment_code         => 'GL_BALANCING'
151539         , p_segment_value           => l_segment
151540         , p_from_segment_code       => l_adr_value_segment_code
151541         , p_from_combination_id     => l_adr_value_combination_id
151542         , p_value_type_code         => l_adr_value_type_code
151543         , p_transaction_coa_id      => l_adr_transaction_coa_id
151544         , p_accounting_coa_id       => l_adr_accounting_coa_id
151545         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
151546         , p_flex_value_set_id       => l_adr_flex_value_set_id
151547         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
151548         , p_adr_type_code           => 'S'
151549         , p_component_type          => l_component_type
151550         , p_component_code          => l_component_code
151551         , p_component_type_code     => l_component_type_code
151552         , p_component_appl_id       => l_component_appl_id
151553         , p_amb_context_code        => l_amb_context_code
151554         , p_entity_code             => 'AP_PAYMENTS'
151555         , p_event_class_code        => 'PAYMENTS'
151556         , p_side                    => 'NA'
151557         );
151558 
151559   END IF;
151560 
151561    --
151562    --
151563    END IF;
151564 
151565        --
151566        -- Update the line information that should be overwritten
151567        --
151568        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
151569                                          p_header_num   => 1);
151570        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
151571 
151572        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
151573 
151574        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
151575           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
151576        END IF;
151577 
151578       --
151579       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
151580       --
151581       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
151582           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
151583       ELSE
151584           ---------------------------------------------------------------------------------------------------
151585           -- 4262811a Switch Sign
151586           ---------------------------------------------------------------------------------------------------
151587           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
151588           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
151589                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
151590           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
151591                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
151592           -- 5132302
151593           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
151594                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
151595 
151596       END IF;
151597 
151598       -- 4955764
151599       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
151600       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
151601 
151602 
151603       XLA_AE_LINES_PKG.ValidateCurrentLine;
151604       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
151605 
151606       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
151607                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
151608                ,p_balance_type_code => l_balance_type_code);
151609 
151610    END IF;
151611 
151612    -----------------------------------------------------------------------------------------
151613    -- 4262811 Multiperiod Accounting
151614    -----------------------------------------------------------------------------------------
151615      -- No MPA option is assigned.
151616 
151617 
151618 END IF;
151619 END IF;
151620 --
151621 
151622 --
151623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
151624    trace
151625       (p_msg      => 'END of AcctLineType_246'
151626       ,p_level    => C_LEVEL_PROCEDURE
151627       ,p_module   => l_log_module);
151628 END IF;
151629 --
151630 EXCEPTION
151634        xla_exceptions_pkg.raise_message
151631   WHEN xla_exceptions_pkg.application_exception THEN
151632       RAISE;
151633   WHEN OTHERS THEN
151635            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_246');
151636 END AcctLineType_246;
151637 --
151638 
151639 ---------------------------------------
151640 --
151641 -- PRIVATE FUNCTION
151642 --         AcctLineType_247
151643 --
151644 ---------------------------------------
151645 PROCEDURE AcctLineType_247 (
151646   p_application_id        IN NUMBER
151647  ,p_event_id              IN NUMBER
151648  ,p_calculate_acctd_flag  IN VARCHAR2
151649  ,p_calculate_g_l_flag    IN VARCHAR2
151650  ,p_actual_flag           IN OUT VARCHAR2
151651  ,p_balance_type_code     OUT VARCHAR2
151652  ,p_gain_or_loss_ref      OUT VARCHAR2
151653  
151654 --Document Sequence Name
151655  , p_source_3            IN VARCHAR2
151656 --Payment Document Voucher Number
151657  , p_source_4            IN NUMBER
151658 --Payment Transaction Number
151659  , p_source_5            IN NUMBER
151660 --Payment Document Date
151661  , p_source_6            IN DATE
151662 --Bank Account Name
151663  , p_source_7            IN VARCHAR2
151664 --Payment Currency Code
151665  , p_source_8            IN VARCHAR2
151666 --Automatic Offsets Value
151667  , p_source_10            IN VARCHAR2
151668  , p_source_10_meaning    IN VARCHAR2
151669 --Bank Cash Account
151670  , p_source_12            IN NUMBER
151671 --Invoice Distribution Account
151672  , p_source_25            IN NUMBER
151673 --Invoice Liability Account
151674  , p_source_29            IN NUMBER
151675 --Bank Cash Clearing Account
151676  , p_source_30            IN NUMBER
151677 --Invoice Type Paid
151678  , p_source_56            IN VARCHAR2
151679  , p_source_56_meaning    IN VARCHAR2
151680 --When to Account for Payment Option
151681  , p_source_57            IN VARCHAR2
151682 --Accounting Reversal Indicator
151683  , p_source_58            IN VARCHAR2
151684 --Distribution Link Type
151685  , p_source_60            IN VARCHAR2
151686 --Override Accounted Amount Indicator
151687  , p_source_85            IN VARCHAR2
151688  , p_source_85_meaning    IN VARCHAR2
151689 --Third Party Type
151690  , p_source_88            IN VARCHAR2
151691 --Invoice Distribution Tax Line Identifier
151692  , p_source_91            IN NUMBER
151693 --Invoice Distribution Tax Distribution Identifier from Tax
151694  , p_source_92            IN NUMBER
151695 --Invoice Distribution Summary Tax Line Identifier
151696  , p_source_93            IN NUMBER
151697 --Business Flow Accounts Payable Application Identifier
151698  , p_source_96            IN NUMBER
151699 --Business Flow Invoice Distribution Type
151700  , p_source_97            IN VARCHAR2
151701 --Business Flow Invoice Entity Code
151702  , p_source_98            IN VARCHAR2
151703 --Business Flow Invoice Distribution Identifier
151704  , p_source_99            IN NUMBER
151705 --Business Flow Invoice Identifier
151706  , p_source_100            IN NUMBER
151707 --Payment Distribution Amount
151708  , p_source_102            IN NUMBER
151709 --Payment Distribution Identifier
151710  , p_source_107            IN NUMBER
151711 --Payment Supplier Identifier
151712  , p_source_113            IN NUMBER
151713 --Payment Supplier Site Identifier
151714  , p_source_114            IN NUMBER
151715 --Payment Distribution Reversed Identifier
151716  , p_source_115            IN NUMBER
151717 --Payment Distribution (Payment Rate) Ledger Amount
151718  , p_source_118            IN NUMBER
151719 --Payment Exchange Date
151720  , p_source_120            IN DATE
151721 --Payment Exchange Rate
151722  , p_source_121            IN NUMBER
151723 --Payment Exchange Rate Type
151724  , p_source_122            IN VARCHAR2
151725 --Payment Type
151726  , p_source_125            IN VARCHAR2
151727  , p_source_125_meaning    IN VARCHAR2
151728 --Invoice Distribution Amount of the Payment Distribution
151729  , p_source_127            IN NUMBER
151730 --Federal DIT Flag
151731  , p_source_170            IN VARCHAR2
151732 )
151733 IS
151734 
151735 l_component_type              VARCHAR2(80);
151736 l_component_code              VARCHAR2(30);
151737 l_component_type_code         VARCHAR2(1);
151738 l_component_appl_id           INTEGER;
151739 l_amb_context_code            VARCHAR2(30);
151740 l_entity_code                 VARCHAR2(30);
151741 l_event_class_code            VARCHAR2(30);
151742 l_ae_header_id                NUMBER;
151743 l_event_type_code             VARCHAR2(30);
151744 l_line_definition_code        VARCHAR2(30);
151745 l_line_definition_owner_code  VARCHAR2(1);
151746 --
151747 -- adr variables
151748 l_segment                     VARCHAR2(30);
151749 l_ccid                        NUMBER;
151750 l_adr_transaction_coa_id      NUMBER;
151751 l_adr_accounting_coa_id       NUMBER;
151752 l_adr_flexfield_segment_code  VARCHAR2(30);
151753 l_adr_flex_value_set_id       NUMBER;
151754 l_adr_value_type_code         VARCHAR2(30);
151755 l_adr_value_combination_id    NUMBER;
151756 l_adr_value_segment_code      VARCHAR2(30);
151757 
151758 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
151759 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
151760 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
151761 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
151762 
151763 -- 4262811 Variables ------------------------------------------------------------------------------------------
151764 l_entered_amt_idx             NUMBER;
151765 l_accted_amt_idx              NUMBER;
151766 l_acc_rev_flag                VARCHAR2(1);
151767 l_accrual_line_num            NUMBER;
151768 l_tmp_amt                     NUMBER;
151769 l_acc_rev_natural_side_code   VARCHAR2(1);
151770 
151771 l_num_entries                 NUMBER;
151772 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
151776 l_recog_line_1                NUMBER;
151773 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
151774 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
151775 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
151777 l_recog_line_2                NUMBER;
151778 
151779 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
151780 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
151781 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
151782 
151783 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
151784 
151785 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
151786 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
151787 
151788 ---------------------------------------------------------------------------------------------------------------
151789 
151790 
151791 --
151792 -- bulk performance
151793 --
151794 l_balance_type_code           VARCHAR2(1);
151795 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
151796 l_log_module                  VARCHAR2(240);
151797 
151798 --
151799 -- Upgrade strategy
151800 --
151801 l_actual_upg_option           VARCHAR2(1);
151802 l_enc_upg_option           VARCHAR2(1);
151803 
151804 --
151805 BEGIN
151806 --
151807 IF g_log_enabled THEN
151808       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_247';
151809 END IF;
151810 --
151811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
151812 
151813       trace
151814          (p_msg      => 'BEGIN of AcctLineType_247'
151815          ,p_level    => C_LEVEL_PROCEDURE
151816          ,p_module   => l_log_module);
151817 
151818 END IF;
151819 --
151820 l_component_type             := 'AMB_JLT';
151821 l_component_code             := 'FV_TC_UNPAID_ACCT_DR';
151822 l_component_type_code        := 'S';
151823 l_component_appl_id          :=  200;
151824 l_amb_context_code           := 'DEFAULT';
151825 l_entity_code                := 'AP_PAYMENTS';
151826 l_event_class_code           := 'PAYMENTS';
151827 l_event_type_code            := 'PAYMENTS_ALL';
151828 l_line_definition_owner_code := 'S';
151829 l_line_definition_code       := 'FV_AP_ACCRUAL_PAYMENTS_ALL';
151830 --
151831 l_balance_type_code          := 'A';
151832 l_segment                     := NULL;
151833 l_ccid                        := NULL;
151834 l_adr_transaction_coa_id      := NULL;
151835 l_adr_accounting_coa_id       := NULL;
151836 l_adr_flexfield_segment_code  := NULL;
151837 l_adr_flex_value_set_id       := NULL;
151838 l_adr_value_type_code         := NULL;
151839 l_adr_value_combination_id    := NULL;
151840 l_adr_value_segment_code      := NULL;
151841 
151842 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
151843 l_bflow_class_code           := '';    -- 4219869 Business Flow
151844 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
151845 l_budgetary_control_flag     := 'N';
151846 
151847 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
151848 l_bflow_applied_to_amt       := NULL; -- 5132302
151849 l_entered_amt_idx            := NULL;          -- 4262811
151850 l_accted_amt_idx             := NULL;          -- 4262811
151851 l_acc_rev_flag               := NULL;          -- 4262811
151852 l_accrual_line_num           := NULL;          -- 4262811
151853 l_tmp_amt                    := NULL;          -- 4262811
151854 --
151855  
151856 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
151857     l_balance_type_code <> 'B' THEN
151858 IF NVL(p_source_170,'
151859 ') =  'Y' AND 
151860 (NVL(p_source_125,'
151861 ') =  'M' OR 
151862 NVL(p_source_125,'
151863 ') =  'Q' OR 
151864 NVL(p_source_125,'
151865 ') =  'R')
151866  THEN 
151867 
151868    --
151869    XLA_AE_LINES_PKG.SetNewLine;
151870 
151871    p_balance_type_code          := l_balance_type_code;
151872    -- set the flag so later we will know whether the gain loss line needs to be created
151873    
151874    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
151875      p_actual_flag :='A';
151876    END IF;
151877 
151878    --
151879    -- bulk performance
151880    --
151881    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
151882                                       p_header_num   => 0); -- 4262811
151883    --
151884    -- set accounting line options
151885    --
151886    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
151887            p_natural_side_code          => 'D'
151888          , p_gain_or_loss_flag          => 'N'
151889          , p_gl_transfer_mode_code      => 'S'
151890          , p_acct_entry_type_code       => 'A'
151891          , p_switch_side_flag           => 'N'
151892          , p_merge_duplicate_code       => 'N'
151893          );
151894    --
151895    l_acc_rev_natural_side_code := 'C';  -- 4262811
151896    -- 
151897    --
151898    -- set accounting line type info
151899    --
151900    xla_ae_lines_pkg.SetAcctLineType
151901       (p_component_type             => l_component_type
151902       ,p_event_type_code            => l_event_type_code
151903       ,p_line_definition_owner_code => l_line_definition_owner_code
151904       ,p_line_definition_code       => l_line_definition_code
151905       ,p_accounting_line_code       => l_component_code
151906       ,p_accounting_line_type_code  => l_component_type_code
151907       ,p_accounting_line_appl_id    => l_component_appl_id
151908       ,p_amb_context_code           => l_amb_context_code
151909       ,p_entity_code                => l_entity_code
151910       ,p_event_class_code           => l_event_class_code);
151911    --
151912    -- set accounting class
151913    --
151914    xla_ae_lines_pkg.SetAcctClass(
151915            p_accounting_class_code  => 'ACCOUNTSPAYABLE'
151919    --
151916          , p_ae_header_id           => l_ae_header_id
151917          );
151918 
151920    -- set rounding class
151921    --
151922    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
151923                       'ACCOUNTSPAYABLE';
151924 
151925    --
151926    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
151927    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
151928    --
151929    -- bulk performance
151930    --
151931    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
151932 
151933    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
151934       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
151935 
151936    -- 4955764
151937    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
151938       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
151939 
151940    -- 4458381 Public Sector Enh
151941    
151942    --
151943    -- set accounting attributes for the line type
151944    --
151945    l_entered_amt_idx := 10;
151946    l_accted_amt_idx  := 15;
151947    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
151948    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
151949    l_rec_acct_attrs.array_char_value(1)  := p_source_58;
151950    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
151951    l_rec_acct_attrs.array_num_value(2)  := p_source_127;
151952    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
151953    l_rec_acct_attrs.array_num_value(3)  := p_source_96;
151954    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
151955    l_rec_acct_attrs.array_char_value(4)  := p_source_97;
151956    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
151957    l_rec_acct_attrs.array_char_value(5)  := p_source_98;
151958    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
151959    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_99);
151960    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
151961    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_100);
151962    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
151963    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_107);
151964    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
151965    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
151966    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
151967    l_rec_acct_attrs.array_num_value(10)  := p_source_102;
151968    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
151969    l_rec_acct_attrs.array_char_value(11)  := p_source_8;
151970    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
151971    l_rec_acct_attrs.array_date_value(12)  := p_source_120;
151972    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
151973    l_rec_acct_attrs.array_num_value(13)  := p_source_121;
151974    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
151975    l_rec_acct_attrs.array_char_value(14)  := p_source_122;
151976    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
151977    l_rec_acct_attrs.array_num_value(15)  := p_source_118;
151978    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
151979    l_rec_acct_attrs.array_char_value(16)  := p_source_85;
151980    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
151981    l_rec_acct_attrs.array_num_value(17)  := p_source_113;
151982    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
151983    l_rec_acct_attrs.array_num_value(18)  := p_source_114;
151984    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
151985    l_rec_acct_attrs.array_char_value(19)  := p_source_88;
151986    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
151987    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_115);
151988    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
151989    l_rec_acct_attrs.array_char_value(21)  := p_source_60;
151990    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
151991    l_rec_acct_attrs.array_num_value(22)  := p_source_91;
151992    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
151993    l_rec_acct_attrs.array_num_value(23)  := p_source_92;
151994    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
151995    l_rec_acct_attrs.array_num_value(24)  := p_source_93;
151996 
151997    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
151998    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
151999 
152000    ---------------------------------------------------------------------------------------------------------------
152001    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
152002    ---------------------------------------------------------------------------------------------------------------
152003    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
152004 
152005    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
152006    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
152007 
152008    IF xla_accounting_cache_pkg.GetValueChar
152009          (p_source_code         => 'LEDGER_CATEGORY_CODE'
152010          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
152011    AND l_bflow_method_code = 'PRIOR_ENTRY'
152012 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
152013    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
152014          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
152015        )
152016    THEN
152017          xla_ae_lines_pkg.BflowUpgEntry
152021    ELSE
152018            (p_business_method_code    => l_bflow_method_code
152019            ,p_business_class_code     => l_bflow_class_code
152020            ,p_balance_type            => l_balance_type_code);
152022       NULL;
152023 -- No business flow processing for business flow method of NONE.
152024    END IF;
152025 
152026    --
152027    -- call analytical criteria
152028    --
152029    
152030    --
152031    -- call description
152032    --
152033    
152034 xla_ae_lines_pkg.SetLineDescription(
152035    p_ae_header_id => l_ae_header_id
152036   ,p_description  => Description_3 (
152037      p_application_id         => p_application_id
152038    , p_ae_header_id           => l_ae_header_id 
152039 , p_source_3 => p_source_3
152040 , p_source_4 => p_source_4
152041 , p_source_5 => p_source_5
152042 , p_source_6 => p_source_6
152043 , p_source_7 => p_source_7
152044 , p_source_8 => p_source_8
152045    )
152046 );
152047 
152048 
152049    --
152050    -- call ADRs
152051    -- Bug 4922099
152052    --
152053    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
152054         (NVL(l_actual_upg_option, 'N') = 'O') OR
152055         (NVL(l_enc_upg_option, 'N') = 'O')
152056       )
152057    THEN
152058    NULL;
152059    --
152060    --
152061    
152062   l_ccid := AcctDerRule_55(
152063            p_application_id           => p_application_id
152064          , p_ae_header_id             => l_ae_header_id 
152065 , p_source_12 => p_source_12
152066 , p_source_30 => p_source_30
152067 , p_source_57 => p_source_57
152068          , x_transaction_coa_id       => l_adr_transaction_coa_id
152069          , x_accounting_coa_id        => l_adr_accounting_coa_id
152070          , x_value_type_code          => l_adr_value_type_code
152071          , p_side                     => 'NA'
152072    );
152073 
152074    xla_ae_lines_pkg.set_ccid(
152075     p_code_combination_id          => l_ccid
152076   , p_value_type_code              => l_adr_value_type_code
152077   , p_transaction_coa_id           => l_adr_transaction_coa_id
152078   , p_accounting_coa_id            => l_adr_accounting_coa_id
152079   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
152080   , p_adr_type_code                => 'S'
152081   , p_component_type               => l_component_type
152082   , p_component_code               => l_component_code
152083   , p_component_type_code          => l_component_type_code
152084   , p_component_appl_id            => l_component_appl_id
152085   , p_amb_context_code             => l_amb_context_code
152086   , p_side                         => 'NA'
152087   );
152088 
152089 
152090    l_segment := AcctDerRule_52(
152091            p_application_id           => p_application_id
152092          , p_ae_header_id             => l_ae_header_id 
152093 , p_source_56 => p_source_56
152094 , p_source_56_meaning => p_source_56_meaning
152095          , x_transaction_coa_id       => l_adr_transaction_coa_id
152096          , x_accounting_coa_id        => l_adr_accounting_coa_id
152097          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
152098          , x_flex_value_set_id        => l_adr_flex_value_set_id
152099          , x_value_type_code          => l_adr_value_type_code
152100          , x_value_combination_id     => l_adr_value_combination_id
152101          , x_value_segment_code       => l_adr_value_segment_code
152102          , p_side                     => 'NA'
152103          , p_override_seg_flag        => 'Y'
152104    );
152105 
152106    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
152107 
152108       xla_ae_lines_pkg.set_segment(
152109           p_to_segment_code         => 'GL_ACCOUNT'
152110         , p_segment_value           => l_segment
152111         , p_from_segment_code       => l_adr_value_segment_code
152112         , p_from_combination_id     => l_adr_value_combination_id
152113         , p_value_type_code         => l_adr_value_type_code
152114         , p_transaction_coa_id      => l_adr_transaction_coa_id
152115         , p_accounting_coa_id       => l_adr_accounting_coa_id
152116         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
152117         , p_flex_value_set_id       => l_adr_flex_value_set_id
152118         , p_adr_code                => 'FV_4X0101_TREASURY_PAY_ACCT'
152119         , p_adr_type_code           => 'S'
152120         , p_component_type          => l_component_type
152121         , p_component_code          => l_component_code
152122         , p_component_type_code     => l_component_type_code
152123         , p_component_appl_id       => l_component_appl_id
152124         , p_amb_context_code        => l_amb_context_code
152125         , p_entity_code             => 'AP_PAYMENTS'
152126         , p_event_class_code        => 'PAYMENTS'
152127         , p_side                    => 'NA'
152128         );
152129 
152130   END IF;
152131 
152132    l_segment := AcctDerRule_27(
152133            p_application_id           => p_application_id
152134          , p_ae_header_id             => l_ae_header_id 
152135 , p_source_10 => p_source_10
152136 , p_source_10_meaning => p_source_10_meaning
152137 , p_source_25 => p_source_25
152138 , p_source_29 => p_source_29
152139          , x_transaction_coa_id       => l_adr_transaction_coa_id
152140          , x_accounting_coa_id        => l_adr_accounting_coa_id
152141          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
152142          , x_flex_value_set_id        => l_adr_flex_value_set_id
152143          , x_value_type_code          => l_adr_value_type_code
152144          , x_value_combination_id     => l_adr_value_combination_id
152145          , x_value_segment_code       => l_adr_value_segment_code
152146          , p_side                     => 'NA'
152147          , p_override_seg_flag        => 'Y'
152148    );
152149 
152150    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
152151 
152152       xla_ae_lines_pkg.set_segment(
152156         , p_from_combination_id     => l_adr_value_combination_id
152153           p_to_segment_code         => 'GL_BALANCING'
152154         , p_segment_value           => l_segment
152155         , p_from_segment_code       => l_adr_value_segment_code
152157         , p_value_type_code         => l_adr_value_type_code
152158         , p_transaction_coa_id      => l_adr_transaction_coa_id
152159         , p_accounting_coa_id       => l_adr_accounting_coa_id
152160         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
152161         , p_flex_value_set_id       => l_adr_flex_value_set_id
152162         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
152163         , p_adr_type_code           => 'S'
152164         , p_component_type          => l_component_type
152165         , p_component_code          => l_component_code
152166         , p_component_type_code     => l_component_type_code
152167         , p_component_appl_id       => l_component_appl_id
152168         , p_amb_context_code        => l_amb_context_code
152169         , p_entity_code             => 'AP_PAYMENTS'
152170         , p_event_class_code        => 'PAYMENTS'
152171         , p_side                    => 'NA'
152172         );
152173 
152174   END IF;
152175 
152176    --
152177    --
152178    END IF;
152179    --
152180    -- Bug 4922099
152181    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
152182           (NVL(l_enc_upg_option, 'N') = 'O')
152183         ) AND
152184         (l_bflow_method_code = 'PRIOR_ENTRY')
152185       )
152186    THEN
152187       IF
152188       --
152189       1 = 2
152190       --
152191       THEN
152192       xla_accounting_err_pkg.build_message
152193                                     (p_appli_s_name            => 'XLA'
152194                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
152195                                     ,p_token_1                 => 'LINE_NUMBER'
152196                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
152197                                     ,p_token_2                 => 'LINE_TYPE_NAME'
152198                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
152199                                                                              l_component_type
152200                                                                             ,l_component_code
152201                                                                             ,l_component_type_code
152202                                                                             ,l_component_appl_id
152203                                                                             ,l_amb_context_code
152204                                                                             ,l_entity_code
152205                                                                             ,l_event_class_code
152206                                                                            )
152207                                     ,p_token_3                 => 'OWNER'
152208                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
152209                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
152210                                                                           ,p_lookup_code    => l_component_type_code
152211                                                                          )
152212                                     ,p_token_4                 => 'PRODUCT_NAME'
152213                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
152214                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
152215                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
152216                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
152217                                     ,p_ae_header_id            =>  NULL
152218                                        );
152219 
152220         IF (C_LEVEL_ERROR>= g_log_level) THEN
152221                  trace
152222                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
152223                       ,p_level    => C_LEVEL_ERROR
152224                       ,p_module   => l_log_module);
152225         END IF;
152226       END IF;
152227    END IF;
152228    --
152229    --
152230    ------------------------------------------------------------------------------------------------
152231    -- 4219869 Business Flow
152232    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
152233    -- Prior Entry.  Currently, the following code is always generated.
152234    ------------------------------------------------------------------------------------------------
152235    XLA_AE_LINES_PKG.ValidateCurrentLine;
152236 
152237    ------------------------------------------------------------------------------------
152238    -- 4219869 Business Flow
152239    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
152240    ------------------------------------------------------------------------------------
152241    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
152242 
152243    ----------------------------------------------------------------------------------
152244    -- 4219869 Business Flow
152245    -- Update journal entry status -- Need to generate this within IF <condition>
152246    ----------------------------------------------------------------------------------
152247    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
152248          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
152249          ,p_balance_type_code => l_balance_type_code
152250          );
152251 
152252    -------------------------------------------------------------------------------------------
152253    -- 4262811 - Generate the Accrual Reversal lines
152254    -------------------------------------------------------------------------------------------
152258       IF l_acc_rev_flag IS NULL THEN
152255    BEGIN
152256       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
152257                               (g_array_event(p_event_id).array_value_num('header_index'));
152259          l_acc_rev_flag := 'N';
152260       END IF;
152261    EXCEPTION
152262       WHEN OTHERS THEN
152263          l_acc_rev_flag := 'N';
152264    END;
152265    --
152266    IF (l_acc_rev_flag = 'Y') THEN
152267 
152268        -- 4645092  ------------------------------------------------------------------------------
152269        -- To allow MPA report to determine if it should generate report process
152270        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
152271        ------------------------------------------------------------------------------------------
152272 
152273        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
152274        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
152275    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
152276    -- call ADRs
152277    -- Bug 4922099
152278    --
152279    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
152280         (NVL(l_actual_upg_option, 'N') = 'O') OR
152281         (NVL(l_enc_upg_option, 'N') = 'O')
152282       )
152283    THEN
152284    NULL;
152285    --
152286    --
152287    
152288   l_ccid := AcctDerRule_55(
152289            p_application_id           => p_application_id
152290          , p_ae_header_id             => l_ae_header_id 
152291 , p_source_12 => p_source_12
152292 , p_source_30 => p_source_30
152293 , p_source_57 => p_source_57
152294          , x_transaction_coa_id       => l_adr_transaction_coa_id
152295          , x_accounting_coa_id        => l_adr_accounting_coa_id
152296          , x_value_type_code          => l_adr_value_type_code
152297          , p_side                     => 'NA'
152298    );
152299 
152300    xla_ae_lines_pkg.set_ccid(
152301     p_code_combination_id          => l_ccid
152302   , p_value_type_code              => l_adr_value_type_code
152303   , p_transaction_coa_id           => l_adr_transaction_coa_id
152304   , p_accounting_coa_id            => l_adr_accounting_coa_id
152305   , p_adr_code                     => 'FV_INV_PMT_ACCOUNT'
152306   , p_adr_type_code                => 'S'
152307   , p_component_type               => l_component_type
152308   , p_component_code               => l_component_code
152309   , p_component_type_code          => l_component_type_code
152310   , p_component_appl_id            => l_component_appl_id
152311   , p_amb_context_code             => l_amb_context_code
152312   , p_side                         => 'NA'
152313   );
152314 
152315 
152316    l_segment := AcctDerRule_52(
152317            p_application_id           => p_application_id
152318          , p_ae_header_id             => l_ae_header_id 
152319 , p_source_56 => p_source_56
152320 , p_source_56_meaning => p_source_56_meaning
152321          , x_transaction_coa_id       => l_adr_transaction_coa_id
152322          , x_accounting_coa_id        => l_adr_accounting_coa_id
152323          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
152324          , x_flex_value_set_id        => l_adr_flex_value_set_id
152325          , x_value_type_code          => l_adr_value_type_code
152326          , x_value_combination_id     => l_adr_value_combination_id
152327          , x_value_segment_code       => l_adr_value_segment_code
152328          , p_side                     => 'NA'
152329          , p_override_seg_flag        => 'Y'
152330    );
152331 
152332    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
152333 
152334       xla_ae_lines_pkg.set_segment(
152335           p_to_segment_code         => 'GL_ACCOUNT'
152336         , p_segment_value           => l_segment
152337         , p_from_segment_code       => l_adr_value_segment_code
152338         , p_from_combination_id     => l_adr_value_combination_id
152339         , p_value_type_code         => l_adr_value_type_code
152340         , p_transaction_coa_id      => l_adr_transaction_coa_id
152341         , p_accounting_coa_id       => l_adr_accounting_coa_id
152342         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
152343         , p_flex_value_set_id       => l_adr_flex_value_set_id
152344         , p_adr_code                => 'FV_4X0101_TREASURY_PAY_ACCT'
152345         , p_adr_type_code           => 'S'
152346         , p_component_type          => l_component_type
152347         , p_component_code          => l_component_code
152348         , p_component_type_code     => l_component_type_code
152349         , p_component_appl_id       => l_component_appl_id
152350         , p_amb_context_code        => l_amb_context_code
152351         , p_entity_code             => 'AP_PAYMENTS'
152352         , p_event_class_code        => 'PAYMENTS'
152353         , p_side                    => 'NA'
152354         );
152355 
152356   END IF;
152357 
152358    l_segment := AcctDerRule_27(
152359            p_application_id           => p_application_id
152360          , p_ae_header_id             => l_ae_header_id 
152361 , p_source_10 => p_source_10
152362 , p_source_10_meaning => p_source_10_meaning
152363 , p_source_25 => p_source_25
152364 , p_source_29 => p_source_29
152365          , x_transaction_coa_id       => l_adr_transaction_coa_id
152366          , x_accounting_coa_id        => l_adr_accounting_coa_id
152367          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
152368          , x_flex_value_set_id        => l_adr_flex_value_set_id
152369          , x_value_type_code          => l_adr_value_type_code
152370          , x_value_combination_id     => l_adr_value_combination_id
152371          , x_value_segment_code       => l_adr_value_segment_code
152372          , p_side                     => 'NA'
152373          , p_override_seg_flag        => 'Y'
152374    );
152375 
152376    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
152377 
152378       xla_ae_lines_pkg.set_segment(
152382         , p_from_combination_id     => l_adr_value_combination_id
152379           p_to_segment_code         => 'GL_BALANCING'
152380         , p_segment_value           => l_segment
152381         , p_from_segment_code       => l_adr_value_segment_code
152383         , p_value_type_code         => l_adr_value_type_code
152384         , p_transaction_coa_id      => l_adr_transaction_coa_id
152385         , p_accounting_coa_id       => l_adr_accounting_coa_id
152386         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
152387         , p_flex_value_set_id       => l_adr_flex_value_set_id
152388         , p_adr_code                => 'FV_INV_PMT_BAL_SEG'
152389         , p_adr_type_code           => 'S'
152390         , p_component_type          => l_component_type
152391         , p_component_code          => l_component_code
152392         , p_component_type_code     => l_component_type_code
152393         , p_component_appl_id       => l_component_appl_id
152394         , p_amb_context_code        => l_amb_context_code
152395         , p_entity_code             => 'AP_PAYMENTS'
152396         , p_event_class_code        => 'PAYMENTS'
152397         , p_side                    => 'NA'
152398         );
152399 
152400   END IF;
152401 
152402    --
152403    --
152404    END IF;
152405 
152406        --
152407        -- Update the line information that should be overwritten
152408        --
152409        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
152410                                          p_header_num   => 1);
152411        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
152412 
152413        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
152414 
152415        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
152416           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
152417        END IF;
152418 
152419       --
152420       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
152421       --
152422       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
152423           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
152424       ELSE
152425           ---------------------------------------------------------------------------------------------------
152426           -- 4262811a Switch Sign
152427           ---------------------------------------------------------------------------------------------------
152428           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
152429           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
152430                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152431           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
152432                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152433           -- 5132302
152434           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
152435                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
152436 
152437       END IF;
152438 
152439       -- 4955764
152440       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
152441       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
152442 
152443 
152444       XLA_AE_LINES_PKG.ValidateCurrentLine;
152445       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
152446 
152447       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
152448                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
152449                ,p_balance_type_code => l_balance_type_code);
152450 
152451    END IF;
152452 
152453    -----------------------------------------------------------------------------------------
152454    -- 4262811 Multiperiod Accounting
152455    -----------------------------------------------------------------------------------------
152456      -- No MPA option is assigned.
152457 
152458 
152459 END IF;
152460 END IF;
152461 --
152462 
152463 --
152464 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152465    trace
152466       (p_msg      => 'END of AcctLineType_247'
152467       ,p_level    => C_LEVEL_PROCEDURE
152468       ,p_module   => l_log_module);
152469 END IF;
152470 --
152471 EXCEPTION
152472   WHEN xla_exceptions_pkg.application_exception THEN
152473       RAISE;
152474   WHEN OTHERS THEN
152475        xla_exceptions_pkg.raise_message
152476            (p_location => 'XLA_00200_AAD_S_000012_PKG.AcctLineType_247');
152477 END AcctLineType_247;
152478 --
152479 
152480 ---------------------------------------
152481 --
152482 -- PRIVATE PROCEDURE
152483 --         insert_sources_248
152484 --
152485 ----------------------------------------
152486 --
152487 PROCEDURE insert_sources_248(
152488                                 p_target_ledger_id       IN NUMBER
152489                               , p_language               IN VARCHAR2
152490                               , p_sla_ledger_id          IN NUMBER
152491                               , p_pad_start_date         IN DATE
152492                               , p_pad_end_date           IN DATE
152493                          )
152494 IS
152495 
152496 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
152497 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
152498 p_apps_owner                   VARCHAR2(30);
152499 l_log_module                   VARCHAR2(240);
152500 BEGIN
152501 IF g_log_enabled THEN
152502       l_log_module := C_DEFAULT_MODULE||'.insert_sources_248';
152503 END IF;
152507          (p_msg      => 'BEGIN of insert_sources_248'
152504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152505 
152506       trace
152508          ,p_level    => C_LEVEL_PROCEDURE
152509          ,p_module   => l_log_module);
152510 
152511 END IF;
152512 
152513 -- select APPS owner
152514 SELECT oracle_username
152515   INTO p_apps_owner
152516   FROM fnd_oracle_userid
152517  WHERE read_only_flag = 'U'
152518 ;
152519 
152520 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152521       trace
152522          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
152523                         ' - p_language = '||p_language||
152524                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
152525                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
152526                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
152527                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
152528          ,p_level    => C_LEVEL_STATEMENT
152529          ,p_module   => l_log_module);
152530 END IF;
152531 
152532 
152533 --
152534 INSERT INTO xla_diag_sources --hdr2
152535 (
152536         event_id
152537       , ledger_id
152538       , sla_ledger_id
152539       , description_language
152540       , object_name
152541       , object_type_code
152542       , line_number
152543       , source_application_id
152544       , source_type_code
152545       , source_code
152546       , source_value
152547       , source_meaning
152548       , created_by
152549       , creation_date
152550       , last_update_date
152551       , last_updated_by
152552       , last_update_login
152553       , program_update_date
152554       , program_application_id
152555       , program_id
152556       , request_id
152557 )
152558 SELECT
152559         event_id
152560       , p_target_ledger_id
152561       , p_sla_ledger_id
152562       , p_language
152563       , object_name
152564       , object_type_code
152565       , line_number
152566       , source_application_id
152567       , source_type_code
152568       , source_code
152569       , SUBSTR(source_value ,1,1996)
152570       , SUBSTR(source_meaning ,1,200)
152571       , xla_environment_pkg.g_Usr_Id
152572       , TRUNC(SYSDATE)
152573       , TRUNC(SYSDATE)
152574       , xla_environment_pkg.g_Usr_Id
152575       , xla_environment_pkg.g_Login_Id
152576       , TRUNC(SYSDATE)
152577       , xla_environment_pkg.g_Prog_Appl_Id
152578       , xla_environment_pkg.g_Prog_Id
152579       , xla_environment_pkg.g_Req_Id
152580   FROM (
152581        SELECT xet.event_id                  event_id
152582             , 0                          line_number
152583             , CASE r
152584                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152585                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152586                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152587                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152588                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152589                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152590                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152591                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152592                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152593                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152594                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152595                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152596                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152597                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152598                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152599                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152600                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152601                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152602                 
152603                ELSE null
152604               END                           object_name
152605             , CASE r
152606                 WHEN 1 THEN 'HEADER' 
152607                 WHEN 2 THEN 'HEADER' 
152608                 WHEN 3 THEN 'HEADER' 
152609                 WHEN 4 THEN 'HEADER' 
152610                 WHEN 5 THEN 'HEADER' 
152611                 WHEN 6 THEN 'HEADER' 
152612                 WHEN 7 THEN 'HEADER' 
152613                 WHEN 8 THEN 'HEADER' 
152614                 WHEN 9 THEN 'HEADER' 
152615                 WHEN 10 THEN 'HEADER' 
152616                 WHEN 11 THEN 'HEADER' 
152617                 WHEN 12 THEN 'HEADER' 
152618                 WHEN 13 THEN 'HEADER' 
152619                 WHEN 14 THEN 'HEADER' 
152620                 WHEN 15 THEN 'HEADER' 
152621                 WHEN 16 THEN 'HEADER' 
152622                 WHEN 17 THEN 'HEADER' 
152623                 WHEN 18 THEN 'HEADER' 
152624                 
152625                 ELSE null
152626               END                           object_type_code
152627             , CASE r
152628                 WHEN 1 THEN '200' 
152629                 WHEN 2 THEN '200' 
152630                 WHEN 3 THEN '200' 
152631                 WHEN 4 THEN '200' 
152632                 WHEN 5 THEN '200' 
152633                 WHEN 6 THEN '200' 
152634                 WHEN 7 THEN '200' 
152635                 WHEN 8 THEN '200' 
152636                 WHEN 9 THEN '200' 
152637                 WHEN 10 THEN '200' 
152638                 WHEN 11 THEN '200' 
152639                 WHEN 12 THEN '200' 
152640                 WHEN 13 THEN '200' 
152641                 WHEN 14 THEN '200' 
152642                 WHEN 15 THEN '200' 
152643                 WHEN 16 THEN '200' 
152644                 WHEN 17 THEN '200' 
152645                 WHEN 18 THEN '200' 
152646                 
152647                 ELSE null
152648               END                           source_application_id
152652                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
152649             , 'S'             source_type_code
152650             , CASE r
152651                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
152653                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
152654                 WHEN 4 THEN 'AI_ACCTS_PAY_CCID' 
152655                 WHEN 5 THEN 'FSP_RETAINAGE_ACCOUNT' 
152656                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
152657                 WHEN 7 THEN 'AI_INVOICE_ID' 
152658                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
152659                 WHEN 9 THEN 'AI_VENDOR_ID' 
152660                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
152661                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
152662                 WHEN 12 THEN 'INV_EXCHANGE_DATE' 
152663                 WHEN 13 THEN 'INV_EXCHANGE_RATE' 
152664                 WHEN 14 THEN 'INV_EXCHANGE_RATE_TYPE' 
152665                 WHEN 15 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
152666                 WHEN 16 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
152667                 WHEN 17 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
152668                 WHEN 18 THEN 'INV_DOC_SEQUENCE_VALUE' 
152669                 
152670                 ELSE null
152671               END                           source_code
152672             , CASE r
152673                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
152674                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
152675                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
152676                 WHEN 4 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
152677                 WHEN 5 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
152678                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
152679                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
152680                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
152681                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
152682                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
152683                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
152684                 WHEN 12 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
152685                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
152686                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
152687                 WHEN 15 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
152688                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
152689                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
152690                 WHEN 18 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
152691                 
152692                 ELSE null
152693               END                           source_value
152694             , CASE r
152695                 WHEN 1 THEN fvl10.meaning
152696                 WHEN 6 THEN fvl43.meaning
152697                 WHEN 15 THEN fvl167.meaning
152698                 
152699                 ELSE null
152700               END               source_meaning
152701          FROM xla_events_gt     xet  
152702       , AP_INVOICE_EXTRACT_HEADER_V  h2
152703       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
152704   , fnd_lookup_values    fvl10
152705   , fnd_lookup_values    fvl43
152706   , fnd_lookup_values    fvl167
152707              ,(select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
152708          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
152709            AND xet.event_class_code = C_EVENT_CLASS_CODE
152710               AND h2.event_id = xet.event_id
152711  AND h4.asp_org_id = h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
152712   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
152713   AND fvl10.view_application_id(+) = 200
152714   AND fvl10.language(+)            = USERENV('LANG')
152715      AND fvl43.lookup_type(+)         = 'YES_NO'
152716   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
152717   AND fvl43.view_application_id(+) = 0
152718   AND fvl43.language(+)            = USERENV('LANG')
152719      AND fvl167.lookup_type(+)         = 'INVOICE TYPE'
152720   AND fvl167.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
152721   AND fvl167.view_application_id(+) = 200
152722   AND fvl167.language(+)            = USERENV('LANG')
152723   
152724 )
152725 ;
152726 --
152727 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152728 
152729       trace
152730          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
152731          ,p_level    => C_LEVEL_STATEMENT
152732          ,p_module   => l_log_module);
152733 
152734 END IF;
152735 --
152736 
152737 
152738 
152739 --
152740 INSERT INTO xla_diag_sources  --line2
152741 (
152742         event_id
152743       , ledger_id
152744       , sla_ledger_id
152745       , description_language
152746       , object_name
152747       , object_type_code
152748       , line_number
152749       , source_application_id
152750       , source_type_code
152751       , source_code
152752       , source_value
152753       , source_meaning
152754       , created_by
152755       , creation_date
152756       , last_update_date
152757       , last_updated_by
152758       , last_update_login
152759       , program_update_date
152760       , program_application_id
152761       , program_id
152762       , request_id
152763 )
152764 SELECT  event_id
152765       , p_target_ledger_id
152766       , p_sla_ledger_id
152767       , p_language
152768       , object_name
152769       , object_type_code
152770       , line_number
152771       , source_application_id
152772       , source_type_code
152773       , source_code
152774       , SUBSTR(source_value,1,1996)
152775       , SUBSTR(source_meaning ,1,200)
152776       , xla_environment_pkg.g_Usr_Id
152777       , TRUNC(SYSDATE)
152778       , TRUNC(SYSDATE)
152779       , xla_environment_pkg.g_Usr_Id
152780       , xla_environment_pkg.g_Login_Id
152781       , TRUNC(SYSDATE)
152782       , xla_environment_pkg.g_Prog_Appl_Id
152783       , xla_environment_pkg.g_Prog_Id
152787             , l1.line_number                 line_number
152784       , xla_environment_pkg.g_Req_Id
152785   FROM (
152786        SELECT xet.event_id                  event_id
152788             , CASE r
152789                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152790                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152791                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152792                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152793                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152794                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152795                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152796                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152797                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152798                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152799                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152800                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152801                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152802                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152803                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152804                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152805                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152806                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152807                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152808                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152809                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152810                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152811                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152812                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152813                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152814                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152815                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152816                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
152817                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
152818                 WHEN 30 THEN 'AP_PO_HEADERS_EXTRACT_V' 
152819                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152820                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152821                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152822                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152823                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152824                 WHEN 36 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152825                 WHEN 37 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
152826                 WHEN 38 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
152827                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152828                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152829                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152830                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152831                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152832                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152833                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152834                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152835                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
152836                 
152837                ELSE null
152838               END                           object_name
152839             , CASE r
152840                 WHEN 1 THEN 'LINE' 
152841                 WHEN 2 THEN 'LINE' 
152842                 WHEN 3 THEN 'LINE' 
152843                 WHEN 4 THEN 'LINE' 
152844                 WHEN 5 THEN 'LINE' 
152845                 WHEN 6 THEN 'LINE' 
152846                 WHEN 7 THEN 'LINE' 
152847                 WHEN 8 THEN 'LINE' 
152848                 WHEN 9 THEN 'LINE' 
152849                 WHEN 10 THEN 'LINE' 
152850                 WHEN 11 THEN 'LINE' 
152851                 WHEN 12 THEN 'LINE' 
152852                 WHEN 13 THEN 'LINE' 
152853                 WHEN 14 THEN 'LINE' 
152854                 WHEN 15 THEN 'LINE' 
152855                 WHEN 16 THEN 'LINE' 
152856                 WHEN 17 THEN 'LINE' 
152857                 WHEN 18 THEN 'LINE' 
152858                 WHEN 19 THEN 'LINE' 
152859                 WHEN 20 THEN 'LINE' 
152860                 WHEN 21 THEN 'LINE' 
152861                 WHEN 22 THEN 'LINE' 
152862                 WHEN 23 THEN 'LINE' 
152863                 WHEN 24 THEN 'LINE' 
152864                 WHEN 25 THEN 'LINE' 
152865                 WHEN 26 THEN 'LINE' 
152866                 WHEN 27 THEN 'LINE' 
152867                 WHEN 28 THEN 'LINE' 
152868                 WHEN 29 THEN 'LINE' 
152869                 WHEN 30 THEN 'LINE' 
152870                 WHEN 31 THEN 'LINE' 
152871                 WHEN 32 THEN 'LINE' 
152872                 WHEN 33 THEN 'LINE' 
152873                 WHEN 34 THEN 'LINE' 
152874                 WHEN 35 THEN 'LINE' 
152875                 WHEN 36 THEN 'LINE' 
152876                 WHEN 37 THEN 'LINE' 
152877                 WHEN 38 THEN 'LINE' 
152878                 WHEN 39 THEN 'LINE' 
152879                 WHEN 40 THEN 'LINE' 
152880                 WHEN 41 THEN 'LINE' 
152881                 WHEN 42 THEN 'LINE' 
152882                 WHEN 43 THEN 'LINE' 
152883                 WHEN 44 THEN 'LINE' 
152884                 WHEN 45 THEN 'LINE' 
152885                 WHEN 46 THEN 'LINE' 
152886                 WHEN 47 THEN 'LINE' 
152887                 
152888                 ELSE null
152889               END                           object_type_code
152890             , CASE r
152891                 WHEN 1 THEN '200' 
152892                 WHEN 2 THEN '200' 
152893                 WHEN 3 THEN '200' 
152894                 WHEN 4 THEN '200' 
152895                 WHEN 5 THEN '200' 
152896                 WHEN 6 THEN '200' 
152897                 WHEN 7 THEN '200' 
152898                 WHEN 8 THEN '200' 
152899                 WHEN 9 THEN '200' 
152900                 WHEN 10 THEN '200' 
152901                 WHEN 11 THEN '200' 
152905                 WHEN 15 THEN '200' 
152902                 WHEN 12 THEN '200' 
152903                 WHEN 13 THEN '200' 
152904                 WHEN 14 THEN '200' 
152906                 WHEN 16 THEN '200' 
152907                 WHEN 17 THEN '200' 
152908                 WHEN 18 THEN '200' 
152909                 WHEN 19 THEN '200' 
152910                 WHEN 20 THEN '200' 
152911                 WHEN 21 THEN '200' 
152912                 WHEN 22 THEN '200' 
152913                 WHEN 23 THEN '200' 
152914                 WHEN 24 THEN '200' 
152915                 WHEN 25 THEN '200' 
152916                 WHEN 26 THEN '200' 
152917                 WHEN 27 THEN '200' 
152918                 WHEN 28 THEN '200' 
152919                 WHEN 29 THEN '200' 
152920                 WHEN 30 THEN '200' 
152921                 WHEN 31 THEN '200' 
152922                 WHEN 32 THEN '200' 
152923                 WHEN 33 THEN '200' 
152924                 WHEN 34 THEN '200' 
152925                 WHEN 35 THEN '200' 
152926                 WHEN 36 THEN '200' 
152927                 WHEN 37 THEN '200' 
152928                 WHEN 38 THEN '200' 
152929                 WHEN 39 THEN '200' 
152930                 WHEN 40 THEN '200' 
152931                 WHEN 41 THEN '200' 
152932                 WHEN 42 THEN '200' 
152933                 WHEN 43 THEN '200' 
152934                 WHEN 44 THEN '200' 
152935                 WHEN 45 THEN '200' 
152936                 WHEN 46 THEN '200' 
152937                 WHEN 47 THEN '200' 
152938                 
152939                 ELSE null
152940               END                           source_application_id
152941             , 'S'             source_type_code
152942             , CASE r
152943                 WHEN 1 THEN 'AID_DESCRIPTION' 
152944                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
152945                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
152946                 WHEN 4 THEN 'AID_DIST_CCID' 
152947                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
152948                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
152949                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
152950                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
152951                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
152952                 WHEN 10 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
152953                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
152954                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
152955                 WHEN 13 THEN 'ALLOC_TO_MAIN_DIST_ID' 
152956                 WHEN 14 THEN 'BUS_FLOW_PO_APP_ID' 
152957                 WHEN 15 THEN 'BUS_FLOW_PO_DIST_TYPE' 
152958                 WHEN 16 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
152959                 WHEN 17 THEN 'BUS_FLOW_PO_DIST_ID' 
152960                 WHEN 18 THEN 'BUS_FLOW_PO_DOC_ID' 
152961                 WHEN 19 THEN 'AID_INVOICE_DIST_ID' 
152962                 WHEN 20 THEN 'UPG_ENC_CR_CCID' 
152963                 WHEN 21 THEN 'UPG_ENC_CR_AMT' 
152964                 WHEN 22 THEN 'UPG_ENC_CR_BASE_AMT' 
152965                 WHEN 23 THEN 'UPG_ENC_DR_CCID' 
152966                 WHEN 24 THEN 'UPG_ENC_DR_AMT' 
152967                 WHEN 25 THEN 'UPG_ENC_DR_BASE_AMT' 
152968                 WHEN 26 THEN 'UPG_AP_ENCUM_OPTION' 
152969                 WHEN 27 THEN 'AID_AMOUNT' 
152970                 WHEN 28 THEN 'POH_RATE_DATE' 
152971                 WHEN 29 THEN 'POH_RATE' 
152972                 WHEN 30 THEN 'POH_RATE_TYPE' 
152973                 WHEN 31 THEN 'DEFERRED_END_DATE' 
152974                 WHEN 32 THEN 'DEFERRED_OPTION' 
152975                 WHEN 33 THEN 'DEFERRED_START_DATE' 
152976                 WHEN 34 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
152977                 WHEN 35 THEN 'AID_PARENT_REVERSAL_ID' 
152978                 WHEN 36 THEN 'AID_STAT_AMOUNT' 
152979                 WHEN 37 THEN 'TAX_LINE_ID' 
152980                 WHEN 38 THEN 'REC_NREC_TAX_DIST_ID' 
152981                 WHEN 39 THEN 'SUMMARY_TAX_LINE_ID' 
152982                 WHEN 40 THEN 'UPG_CR_ENC_TYPE_ID' 
152983                 WHEN 41 THEN 'UPG_DR_ENC_TYPE_ID' 
152984                 WHEN 42 THEN 'BUS_FLOW_AP_APP_ID' 
152985                 WHEN 43 THEN 'BUS_FLOW_INV_DIST_TYPE' 
152986                 WHEN 44 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
152987                 WHEN 45 THEN 'BUS_FLOW_INV_DIST_ID' 
152988                 WHEN 46 THEN 'BUS_FLOW_INV_ID' 
152989                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
152990                 
152991                 ELSE null
152992               END                           source_code
152993             , CASE r
152994                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
152995                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
152996                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
152997                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
152998                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
152999                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
153000                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
153001                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
153002                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
153003                 WHEN 10 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
153004                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
153005                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
153006                 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
153007                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
153008                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
153009                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
153010                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
153011                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
153012                 WHEN 19 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
153013                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
153014                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
153015                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
153016                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
153020                 WHEN 27 THEN TO_CHAR(l1.AID_AMOUNT)
153017                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
153018                 WHEN 25 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
153019                 WHEN 26 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
153021                 WHEN 28 THEN TO_CHAR(l3.POH_RATE_DATE)
153022                 WHEN 29 THEN TO_CHAR(l3.POH_RATE)
153023                 WHEN 30 THEN TO_CHAR(l3.POH_RATE_TYPE)
153024                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_END_DATE)
153025                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_OPTION)
153026                 WHEN 33 THEN TO_CHAR(l1.DEFERRED_START_DATE)
153027                 WHEN 34 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
153028                 WHEN 35 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
153029                 WHEN 36 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
153030                 WHEN 37 THEN TO_CHAR(l5.TAX_LINE_ID)
153031                 WHEN 38 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
153032                 WHEN 39 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
153033                 WHEN 40 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
153034                 WHEN 41 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
153035                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
153036                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
153037                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
153038                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
153039                 WHEN 46 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
153040                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
153041                 
153042                 ELSE null
153043               END                           source_value
153044             , CASE r
153045                 WHEN 3 THEN fvl17.meaning
153046                 WHEN 5 THEN fvl28.meaning
153047                 WHEN 10 THEN fvl54.meaning
153048                 WHEN 34 THEN fvl85.meaning
153049                 WHEN 47 THEN fvl145.meaning
153050                 
153051                 ELSE null
153052               END               source_meaning
153053          FROM  xla_events_gt     xet  
153054         , AP_INVOICE_EXTRACT_DETAILS_V  l1
153055         , AP_PO_HEADERS_EXTRACT_V  l3
153056         , ZX_AP_DEF_TAX_EXTRACT_V  l5
153057         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
153058   , fnd_lookup_values    fvl17
153059   , fnd_lookup_values    fvl28
153060   , fnd_lookup_values    fvl54
153061   , fnd_lookup_values    fvl85
153062   , fnd_lookup_values    fvl145
153063             , (select rownum r from all_objects where rownum <= 47 and owner = p_apps_owner)
153064         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
153065           AND xet.event_class_code = C_EVENT_CLASS_CODE
153066             AND l1.event_id          = xet.event_id
153067  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
153068   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
153069   AND fvl17.view_application_id(+) = 201
153070   AND fvl17.language(+)            = USERENV('LANG')
153071      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
153072   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
153073   AND fvl28.view_application_id(+) = 200
153074   AND fvl28.language(+)            = USERENV('LANG')
153075      AND fvl54.lookup_type(+)         = 'YES_NO'
153076   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
153077   AND fvl54.view_application_id(+) = 0
153078   AND fvl54.language(+)            = USERENV('LANG')
153079      AND fvl85.lookup_type(+)         = 'YES_NO'
153080   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
153081   AND fvl85.view_application_id(+) = 0
153082   AND fvl85.language(+)            = USERENV('LANG')
153083      AND fvl145.lookup_type(+)         = 'YES_NO'
153084   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
153085   AND fvl145.view_application_id(+) = 0
153086   AND fvl145.language(+)            = USERENV('LANG')
153087   
153088 )
153089 ;
153090 --
153091 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153092 
153093       trace
153094          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
153095          ,p_level    => C_LEVEL_STATEMENT
153096          ,p_module   => l_log_module);
153097 
153098 END IF;
153099 
153100 
153101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153102       trace
153103          (p_msg      => 'END of insert_sources_248'
153104          ,p_level    => C_LEVEL_PROCEDURE
153105          ,p_module   => l_log_module);
153106 END IF;
153107 EXCEPTION
153108   WHEN xla_exceptions_pkg.application_exception THEN
153109       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
153110             trace
153111                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
153112                ,p_level    => C_LEVEL_EXCEPTION
153113                ,p_module   => l_log_module);
153114       END IF;
153115       RAISE;
153116   WHEN OTHERS THEN
153117       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
153118             trace
153119                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
153120                ,p_level    => C_LEVEL_EXCEPTION
153121                ,p_module   => l_log_module);
153122        END IF;
153123        xla_exceptions_pkg.raise_message
153124            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_248');
153125 END insert_sources_248;
153126 --
153127 
153128 ---------------------------------------
153129 --
153130 -- PRIVATE FUNCTION
153131 --         EventClass_248
153132 --
153133 ----------------------------------------
153134 --
153135 FUNCTION EventClass_248
153136        (p_application_id         IN NUMBER
153137        ,p_base_ledger_id         IN NUMBER
153138        ,p_target_ledger_id       IN NUMBER
153139        ,p_language               IN VARCHAR2
153140        ,p_currency_code          IN VARCHAR2
153141        ,p_sla_ledger_id          IN NUMBER
153145 RETURN BOOLEAN IS
153142        ,p_pad_start_date         IN DATE
153143        ,p_pad_end_date           IN DATE
153144        ,p_primary_ledger_id      IN NUMBER)
153146 --
153147 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
153148 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
153149 
153150 l_calculate_acctd_flag   VARCHAR2(1) :='N';
153151 l_calculate_g_l_flag     VARCHAR2(1) :='N';
153152 --
153153 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153154 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153155 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153156 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153157 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153158 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153159 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153160 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153161 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153162 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153163 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153164 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153165 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153166 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153167 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153168 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153169 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153170 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153171 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153172 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153173 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153174 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153175 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
153176 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153177 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
153178 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
153179 
153180 l_event_id                             NUMBER;
153181 l_previous_event_id                    NUMBER;
153182 l_first_event_id                       NUMBER;
153183 l_last_event_id                        NUMBER;
153184 
153185 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
153186 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
153187 --
153188 --
153189 l_result                    BOOLEAN := TRUE;
153190 l_rows                      NUMBER  := 1000;
153191 l_event_type_name           VARCHAR2(80) := 'All';
153192 l_event_class_name          VARCHAR2(80) := 'Credit Memos';
153193 l_description               VARCHAR2(4000);
153194 l_transaction_reversal      NUMBER;
153195 l_ae_header_id              NUMBER;
153196 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
153197 l_log_module                VARCHAR2(240);
153198 --
153199 l_acct_reversal_source      VARCHAR2(30);
153200 l_trx_reversal_source       VARCHAR2(30);
153201 
153202 l_continue_with_lines       BOOLEAN := TRUE;
153203 --
153204 l_acc_rev_gl_date_source    DATE;                      -- 4262811
153205 --
153206 type t_array_event_id is table of number index by binary_integer;
153207 
153208 l_rec_array_event                    t_rec_array_event;
153209 l_null_rec_array_event               t_rec_array_event;
153210 l_array_ae_header_id                 xla_number_array_type;
153211 l_actual_flag                        VARCHAR2(1) := NULL;
153212 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
153213 l_balance_type_code                  VARCHAR2(1) :=NULL;
153214 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
153215 
153216 --
153217 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
153218 --
153219 
153220 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
153221 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
153222 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
153223 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
153224 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153225 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
153226 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
153227 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
153228 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
153229 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
153230 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
153231 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
153232 TYPE t_array_source_147 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
153233 TYPE t_array_source_148 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
153234 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
153238 
153235 TYPE t_array_source_171 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
153236 TYPE t_array_source_172 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
153237 TYPE t_array_source_173 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
153239 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
153240 TYPE t_array_source_16 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153241 TYPE t_array_source_17 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153242 TYPE t_array_source_25 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
153243 TYPE t_array_source_28 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
153244 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
153245 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153246 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153247 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
153248 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
153249 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
153250 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
153251 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153252 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
153253 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153254 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
153255 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153256 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
153257 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153258 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
153259 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
153260 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
153261 TYPE t_array_source_74 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
153262 TYPE t_array_source_75 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
153263 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
153264 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
153265 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153266 TYPE t_array_source_79 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
153267 TYPE t_array_source_80 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
153268 TYPE t_array_source_81 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
153269 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
153270 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
153271 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
153272 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
153273 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
153274 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153275 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
153276 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153277 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
153278 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
153279 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
153280 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
153281 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153282 TYPE t_array_source_98 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
153283 TYPE t_array_source_99 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153284 TYPE t_array_source_100 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
153285 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
153286 
153287 l_array_source_10              t_array_source_10;
153288 l_array_source_10_meaning      t_array_lookup_meaning;
153289 l_array_source_15              t_array_source_15;
153290 l_array_source_18              t_array_source_18;
153291 l_array_source_29              t_array_source_29;
153292 l_array_source_35              t_array_source_35;
153293 l_array_source_43              t_array_source_43;
153294 l_array_source_43_meaning      t_array_lookup_meaning;
153295 l_array_source_63              t_array_source_63;
153296 l_array_source_72              t_array_source_72;
153297 l_array_source_86              t_array_source_86;
153301 l_array_source_147              t_array_source_147;
153298 l_array_source_87              t_array_source_87;
153299 l_array_source_88              t_array_source_88;
153300 l_array_source_146              t_array_source_146;
153302 l_array_source_148              t_array_source_148;
153303 l_array_source_167              t_array_source_167;
153304 l_array_source_167_meaning      t_array_lookup_meaning;
153305 l_array_source_171              t_array_source_171;
153306 l_array_source_172              t_array_source_172;
153307 l_array_source_173              t_array_source_173;
153308 
153309 l_array_source_1      t_array_source_1;
153310 l_array_source_16      t_array_source_16;
153311 l_array_source_17      t_array_source_17;
153312 l_array_source_17_meaning      t_array_lookup_meaning;
153313 l_array_source_25      t_array_source_25;
153314 l_array_source_28      t_array_source_28;
153315 l_array_source_28_meaning      t_array_lookup_meaning;
153316 l_array_source_38      t_array_source_38;
153317 l_array_source_39      t_array_source_39;
153318 l_array_source_46      t_array_source_46;
153319 l_array_source_47      t_array_source_47;
153320 l_array_source_54      t_array_source_54;
153321 l_array_source_54_meaning      t_array_lookup_meaning;
153322 l_array_source_58      t_array_source_58;
153323 l_array_source_60      t_array_source_60;
153324 l_array_source_62      t_array_source_62;
153325 l_array_source_64      t_array_source_64;
153326 l_array_source_65      t_array_source_65;
153327 l_array_source_66      t_array_source_66;
153328 l_array_source_67      t_array_source_67;
153329 l_array_source_68      t_array_source_68;
153330 l_array_source_69      t_array_source_69;
153331 l_array_source_70      t_array_source_70;
153332 l_array_source_71      t_array_source_71;
153333 l_array_source_73      t_array_source_73;
153334 l_array_source_74      t_array_source_74;
153335 l_array_source_75      t_array_source_75;
153336 l_array_source_76      t_array_source_76;
153337 l_array_source_77      t_array_source_77;
153338 l_array_source_78      t_array_source_78;
153339 l_array_source_79      t_array_source_79;
153340 l_array_source_80      t_array_source_80;
153341 l_array_source_81      t_array_source_81;
153342 l_array_source_82      t_array_source_82;
153343 l_array_source_83      t_array_source_83;
153344 l_array_source_84      t_array_source_84;
153345 l_array_source_85      t_array_source_85;
153346 l_array_source_85_meaning      t_array_lookup_meaning;
153347 l_array_source_89      t_array_source_89;
153348 l_array_source_90      t_array_source_90;
153349 l_array_source_91      t_array_source_91;
153350 l_array_source_92      t_array_source_92;
153351 l_array_source_93      t_array_source_93;
153352 l_array_source_94      t_array_source_94;
153353 l_array_source_95      t_array_source_95;
153354 l_array_source_96      t_array_source_96;
153355 l_array_source_97      t_array_source_97;
153356 l_array_source_98      t_array_source_98;
153357 l_array_source_99      t_array_source_99;
153358 l_array_source_100      t_array_source_100;
153359 l_array_source_145      t_array_source_145;
153360 l_array_source_145_meaning      t_array_lookup_meaning;
153361 
153362 --
153363 CURSOR header_cur
153364 IS
153365 SELECT /*+ leading(xet) cardinality(xet,1) */
153366 -- Event Class Code: CREDIT MEMOS
153367     xet.entity_id
153368    ,xet.legal_entity_id
153369    ,xet.entity_code
153370    ,xet.transaction_number
153371    ,xet.event_id
153372    ,xet.event_class_code
153373    ,xet.event_type_code
153374    ,xet.event_number
153375    ,xet.event_date
153376    ,xet.transaction_date
153377    ,xet.reference_num_1
153378    ,xet.reference_num_2
153379    ,xet.reference_num_3
153380    ,xet.reference_num_4
153381    ,xet.reference_char_1
153382    ,xet.reference_char_2
153383    ,xet.reference_char_3
153384    ,xet.reference_char_4
153385    ,xet.reference_date_1
153386    ,xet.reference_date_2
153387    ,xet.reference_date_3
153388    ,xet.reference_date_4
153389    ,xet.event_created_by
153390    ,xet.budgetary_control_flag 
153391   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
153392   , fvl10.meaning   source_10_meaning
153393   , h4.ASP_RATE_VAR_GAIN_CCID    source_15
153394   , h4.ASP_RATE_VAR_LOSS_CCID    source_18
153395   , h2.AI_ACCTS_PAY_CCID    source_29
153396   , h4.FSP_RETAINAGE_ACCOUNT    source_35
153397   , h4.ASP_AUTO_OFFSET_FLAG    source_43
153398   , fvl43.meaning   source_43_meaning
153399   , h2.AI_INVOICE_ID    source_63
153400   , h2.AI_INVOICE_CURRENCY_CODE    source_72
153401   , h2.AI_VENDOR_ID    source_86
153402   , h2.AI_VENDOR_SITE_ID    source_87
153403   , h2.THIRD_PARTY_TYPE    source_88
153404   , h2.INV_EXCHANGE_DATE    source_146
153405   , h2.INV_EXCHANGE_RATE    source_147
153406   , h2.INV_EXCHANGE_RATE_TYPE    source_148
153407   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_167
153408   , fvl167.meaning   source_167_meaning
153409   , h2.INV_DOC_SEQUENCE_CATEGORY    source_171
153410   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_172
153411   , h2.INV_DOC_SEQUENCE_VALUE    source_173
153412   FROM xla_events_gt     xet 
153413   , AP_INVOICE_EXTRACT_HEADER_V  h2
153414   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
153415   , fnd_lookup_values    fvl10
153416   , fnd_lookup_values    fvl43
153417   , fnd_lookup_values    fvl167
153418  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
153419    and xet.event_class_code = C_EVENT_CLASS_CODE
153420    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
153421  AND h4.asp_org_id = h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
153422   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
153423   AND fvl10.view_application_id(+) = 200
153424   AND fvl10.language(+)            = USERENV('LANG')
153425      AND fvl43.lookup_type(+)         = 'YES_NO'
153426   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
153427   AND fvl43.view_application_id(+) = 0
153428   AND fvl43.language(+)            = USERENV('LANG')
153432   AND fvl167.language(+)            = USERENV('LANG')
153429      AND fvl167.lookup_type(+)         = 'INVOICE TYPE'
153430   AND fvl167.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
153431   AND fvl167.view_application_id(+) = 200
153433   
153434  ORDER BY event_id
153435 ;
153436 
153437 
153438 --
153439 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
153440 IS
153441 SELECT  /*+ leading(xet) cardinality(xet,1) */
153442 -- Event Class Code: CREDIT MEMOS
153443     xet.entity_id
153444    ,xet.legal_entity_id
153445    ,xet.entity_code
153446    ,xet.transaction_number
153447    ,xet.event_id
153448    ,xet.event_class_code
153449    ,xet.event_type_code
153450    ,xet.event_number
153451    ,xet.event_date
153452    ,xet.transaction_date
153453    ,xet.reference_num_1
153454    ,xet.reference_num_2
153455    ,xet.reference_num_3
153456    ,xet.reference_num_4
153457    ,xet.reference_char_1
153458    ,xet.reference_char_2
153459    ,xet.reference_char_3
153460    ,xet.reference_char_4
153461    ,xet.reference_date_1
153462    ,xet.reference_date_2
153463    ,xet.reference_date_3
153464    ,xet.reference_date_4
153465    ,xet.event_created_by
153466    ,xet.budgetary_control_flag
153467  , l1.LINE_NUMBER  
153468   , l1.AID_DESCRIPTION    source_1
153469   , l1.INV_DIST_BASE_AMOUNT    source_16
153470   , l1.RELATED_INV_DIST_DEST_TYPE    source_17
153471   , fvl17.meaning   source_17_meaning
153472   , l1.AID_DIST_CCID    source_25
153473   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
153474   , fvl28.meaning   source_28_meaning
153475   , l1.AID_RET_RELATED_DIST_CCID    source_38
153476   , l1.AWT_RELATED_DIST_ACCOUNT    source_39
153477   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_46
153478   , l1.ASAT_LIAB_CCID    source_47
153479   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_54
153480   , fvl54.meaning   source_54_meaning
153481   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
153482   , l1.DISTRIBUTION_LINK_TYPE    source_60
153483   , l1.ALLOC_TO_MAIN_DIST_ID    source_62
153484   , l1.BUS_FLOW_PO_APP_ID    source_64
153485   , l1.BUS_FLOW_PO_DIST_TYPE    source_65
153486   , l1.BUS_FLOW_PO_ENTITY_CODE    source_66
153487   , l1.BUS_FLOW_PO_DIST_ID    source_67
153488   , l1.BUS_FLOW_PO_DOC_ID    source_68
153489   , l1.AID_INVOICE_DIST_ID    source_69
153490   , l1.UPG_ENC_CR_CCID    source_70
153491   , l1.UPG_ENC_CR_AMT    source_71
153492   , l1.UPG_ENC_CR_BASE_AMT    source_73
153493   , l1.UPG_ENC_DR_CCID    source_74
153494   , l1.UPG_ENC_DR_AMT    source_75
153495   , l1.UPG_ENC_DR_BASE_AMT    source_76
153496   , l1.UPG_AP_ENCUM_OPTION    source_77
153497   , l1.AID_AMOUNT    source_78
153498   , l3.POH_RATE_DATE    source_79
153499   , l3.POH_RATE    source_80
153500   , l3.POH_RATE_TYPE    source_81
153501   , l1.DEFERRED_END_DATE    source_82
153502   , l1.DEFERRED_OPTION    source_83
153503   , l1.DEFERRED_START_DATE    source_84
153504   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
153505   , fvl85.meaning   source_85_meaning
153506   , l1.AID_PARENT_REVERSAL_ID    source_89
153507   , l1.AID_STAT_AMOUNT    source_90
153508   , l5.TAX_LINE_ID    source_91
153509   , l6.REC_NREC_TAX_DIST_ID    source_92
153510   , l1.SUMMARY_TAX_LINE_ID    source_93
153511   , l1.UPG_CR_ENC_TYPE_ID    source_94
153512   , l1.UPG_DR_ENC_TYPE_ID    source_95
153513   , l1.BUS_FLOW_AP_APP_ID    source_96
153514   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
153515   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
153516   , l1.BUS_FLOW_INV_DIST_ID    source_99
153517   , l1.BUS_FLOW_INV_ID    source_100
153518   , l1.SELF_ASSESSED_TAX_FLAG    source_145
153519   , fvl145.meaning   source_145_meaning
153520   FROM xla_events_gt     xet 
153521   , AP_INVOICE_EXTRACT_DETAILS_V  l1
153522   , AP_PO_HEADERS_EXTRACT_V  l3
153523   , ZX_AP_DEF_TAX_EXTRACT_V  l5
153524   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
153525   , fnd_lookup_values    fvl17
153526   , fnd_lookup_values    fvl28
153527   , fnd_lookup_values    fvl54
153528   , fnd_lookup_values    fvl85
153529   , fnd_lookup_values    fvl145
153530  WHERE xet.event_id between x_first_event_id and x_last_event_id
153531    and xet.event_date between p_pad_start_date and p_pad_end_date
153532    and xet.event_class_code = C_EVENT_CLASS_CODE
153533    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
153534  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
153535   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
153536   AND fvl17.view_application_id(+) = 201
153537   AND fvl17.language(+)            = USERENV('LANG')
153538      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
153539   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
153540   AND fvl28.view_application_id(+) = 200
153541   AND fvl28.language(+)            = USERENV('LANG')
153542      AND fvl54.lookup_type(+)         = 'YES_NO'
153543   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
153544   AND fvl54.view_application_id(+) = 0
153545   AND fvl54.language(+)            = USERENV('LANG')
153546      AND fvl85.lookup_type(+)         = 'YES_NO'
153547   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
153548   AND fvl85.view_application_id(+) = 0
153549   AND fvl85.language(+)            = USERENV('LANG')
153550      AND fvl145.lookup_type(+)         = 'YES_NO'
153551   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
153552   AND fvl145.view_application_id(+) = 0
153553   AND fvl145.language(+)            = USERENV('LANG')
153554   ;
153555 
153556 --
153557 BEGIN
153558 IF g_log_enabled THEN
153559    l_log_module := C_DEFAULT_MODULE||'.EventClass_248';
153560 END IF;
153561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153562    trace
153563       (p_msg      => 'BEGIN of EventClass_248'
153564       ,p_level    => C_LEVEL_PROCEDURE
153568 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153565       ,p_module   => l_log_module);
153566 END IF;
153567 
153569    trace
153570       (p_msg      => 'p_application_id = '||p_application_id||
153571                      ' - p_base_ledger_id = '||p_base_ledger_id||
153572                      ' - p_target_ledger_id  = '||p_target_ledger_id||
153573                      ' - p_language = '||p_language||
153574                      ' - p_currency_code = '||p_currency_code||
153575                      ' - p_sla_ledger_id = '||p_sla_ledger_id
153576       ,p_level    => C_LEVEL_STATEMENT
153577       ,p_module   => l_log_module);
153578 END IF;
153579 --
153580 -- initialze arrays
153581 --
153582 g_array_event.DELETE;
153583 l_rec_array_event := l_null_rec_array_event;
153584 --
153585 --------------------------------------
153586 -- 4262811 Initialze MPA Line Number
153587 --------------------------------------
153588 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
153589 
153590 --
153591 
153592 --
153593 OPEN header_cur;
153594 --
153595 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153596    trace
153597    (p_msg      => 'SQL - FETCH header_cur'
153598    ,p_level    => C_LEVEL_STATEMENT
153599    ,p_module   => l_log_module);
153600 END IF;
153601 --
153602 LOOP
153603 FETCH header_cur BULK COLLECT INTO
153604         l_array_entity_id
153605       , l_array_legal_entity_id
153606       , l_array_entity_code
153607       , l_array_transaction_num
153608       , l_array_event_id
153609       , l_array_class_code
153610       , l_array_event_type
153611       , l_array_event_number
153612       , l_array_event_date
153613       , l_array_transaction_date
153614       , l_array_reference_num_1
153615       , l_array_reference_num_2
153616       , l_array_reference_num_3
153617       , l_array_reference_num_4
153618       , l_array_reference_char_1
153619       , l_array_reference_char_2
153620       , l_array_reference_char_3
153621       , l_array_reference_char_4
153622       , l_array_reference_date_1
153623       , l_array_reference_date_2
153624       , l_array_reference_date_3
153625       , l_array_reference_date_4
153626       , l_array_event_created_by
153627       , l_array_budgetary_control_flag 
153628       , l_array_source_10
153629       , l_array_source_10_meaning
153630       , l_array_source_15
153631       , l_array_source_18
153632       , l_array_source_29
153633       , l_array_source_35
153634       , l_array_source_43
153635       , l_array_source_43_meaning
153636       , l_array_source_63
153637       , l_array_source_72
153638       , l_array_source_86
153639       , l_array_source_87
153640       , l_array_source_88
153641       , l_array_source_146
153642       , l_array_source_147
153643       , l_array_source_148
153644       , l_array_source_167
153645       , l_array_source_167_meaning
153646       , l_array_source_171
153647       , l_array_source_172
153648       , l_array_source_173
153649       LIMIT l_rows;
153650 --
153651 IF (C_LEVEL_EVENT >= g_log_level) THEN
153652    trace
153653    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
153654    ,p_level    => C_LEVEL_EVENT
153655    ,p_module   => l_log_module);
153656 END IF;
153657 --
153658 EXIT WHEN l_array_entity_id.COUNT = 0;
153659 
153660 -- initialize arrays
153661 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
153662 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
153663 
153664 --
153665 -- Bug 4458708
153666 --
153667 XLA_AE_LINES_PKG.g_LineNumber := 0;
153668 
153669 
153670 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
153671 g_last_hdr_idx := l_array_event_id.LAST;
153672 --
153673 -- loop for the headers. Each iteration is for each header extract row
153674 -- fetched in header cursor
153675 --
153676 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
153677 
153678 --
153679 -- set event info as cache for other routines to refer event attributes
153680 --
153681 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
153682    (p_application_id           => p_application_id
153683    ,p_primary_ledger_id        => p_primary_ledger_id
153684    ,p_base_ledger_id           => p_base_ledger_id
153685    ,p_target_ledger_id         => p_target_ledger_id
153686    ,p_entity_id                => l_array_entity_id(hdr_idx)
153687    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
153688    ,p_entity_code              => l_array_entity_code(hdr_idx)
153689    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
153690    ,p_event_id                 => l_array_event_id(hdr_idx)
153691    ,p_event_class_code         => l_array_class_code(hdr_idx)
153692    ,p_event_type_code          => l_array_event_type(hdr_idx)
153693    ,p_event_number             => l_array_event_number(hdr_idx)
153694    ,p_event_date               => l_array_event_date(hdr_idx)
153695    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
153696    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
153697    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
153698    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
153699    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
153700    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
153701    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
153702    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
153703    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
153704    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
153705    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
153706    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
153707    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
153711 --
153708    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
153709    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
153710 
153712 -- set the status of entry to C_VALID (0)
153713 --
153714 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
153715 
153716 --
153717 -- initialize a row for ae header
153718 --
153719 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
153720 
153721 l_event_id := l_array_event_id(hdr_idx);
153722 
153723 --
153724 -- storing the hdr_idx for event. May be used by line cursor.
153725 --
153726 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
153727 
153728 --
153729 -- store sources from header extract. This can be improved to
153730 -- store only those sources from header extract that may be used in lines
153731 --
153732 
153733 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
153734 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
153735 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
153736 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
153737 g_array_event(l_event_id).array_value_num('source_29') := l_array_source_29(hdr_idx);
153738 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
153739 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
153740 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
153741 g_array_event(l_event_id).array_value_num('source_63') := l_array_source_63(hdr_idx);
153742 g_array_event(l_event_id).array_value_char('source_72') := l_array_source_72(hdr_idx);
153743 g_array_event(l_event_id).array_value_num('source_86') := l_array_source_86(hdr_idx);
153744 g_array_event(l_event_id).array_value_num('source_87') := l_array_source_87(hdr_idx);
153745 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
153746 g_array_event(l_event_id).array_value_date('source_146') := l_array_source_146(hdr_idx);
153747 g_array_event(l_event_id).array_value_num('source_147') := l_array_source_147(hdr_idx);
153748 g_array_event(l_event_id).array_value_char('source_148') := l_array_source_148(hdr_idx);
153749 g_array_event(l_event_id).array_value_char('source_167') := l_array_source_167(hdr_idx);
153750 g_array_event(l_event_id).array_value_char('source_167_meaning') := l_array_source_167_meaning(hdr_idx);
153751 g_array_event(l_event_id).array_value_char('source_171') := l_array_source_171(hdr_idx);
153752 g_array_event(l_event_id).array_value_num('source_172') := l_array_source_172(hdr_idx);
153753 g_array_event(l_event_id).array_value_num('source_173') := l_array_source_173(hdr_idx);
153754 
153755 --
153756 -- initilaize the status of ae headers for diffrent balance types
153757 -- the status is initialised to C_NOT_CREATED (2)
153758 --
153759 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
153760 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
153761 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
153762 
153763 --
153764 -- call api to validate and store accounting attributes for header
153765 --
153766 
153767 ------------------------------------------------------------
153768 -- Accrual Reversal : to get date for Standard Source (NONE)
153769 ------------------------------------------------------------
153770 l_acc_rev_gl_date_source := NULL;
153771 
153772      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
153773       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_171');
153774      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
153775       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_172');
153776      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
153777       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_173');
153778      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
153779       l_rec_acct_attrs.array_date_value(4) := 
153780 xla_ae_sources_pkg.GetSystemSourceDate(
153781    p_source_code           => 'XLA_EVENT_DATE'
153782  , p_source_type_code      => 'Y'
153783  , p_source_application_id =>  602
153784 );
153785 
153786 
153787 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
153788 
153789 XLA_AE_HEADER_PKG.SetJeCategoryName;
153790 
153791 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
153792 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
153793 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
153794 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
153795 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
153796 
153797 
153798 --
153799 xla_ae_header_pkg.SetHdrDescription(
153800    p_description => Description_1 (
153801    p_application_id => p_application_id 
153802    )
153803 );
153804 --
153805 
153806 -- No header level analytical criteria
153807 
153808 --
153809 --accounting attribute enhancement, bug 3612931
153810 --
153811 l_trx_reversal_source := SUBSTR(NULL, 1,30);
153812 
153813 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
153814    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
153815 
153816    xla_accounting_err_pkg.build_message
153817       (p_appli_s_name            => 'XLA'
153818       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
153819       ,p_token_1                 => 'ACCT_ATTR_NAME'
153820       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
153821       ,p_token_2                 => 'PRODUCT_NAME'
153825       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
153822       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
153823       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
153824       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
153826 
153827 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
153828    --
153829    -- following sets the accounting attributes needed to reverse
153830    -- accounting for a distributeion
153831    --
153832    xla_ae_lines_pkg.SetTrxReversalAttrs
153833       (p_event_id              => l_event_id
153834       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
153835       ,p_trx_reversal_source   => l_trx_reversal_source);
153836 
153837 END IF;
153838 
153839 
153840 ----------------------------------------------------------------
153841 -- 4262811 -  update the header statuses to invalid in need be
153842 ----------------------------------------------------------------
153843 --
153844 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
153845 
153846 
153847   -----------------------------------------------
153848   -- No accrual reversal for the event class/type
153849   -----------------------------------------------
153850 ----------------------------------------------------------------
153851 
153852 --
153853 -- this ends the header loop iteration for one bulk fetch
153854 --
153855 END LOOP;
153856 
153857 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
153858 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
153859 
153860 --
153861 -- insert dummy rows into lines gt table that were created due to
153862 -- transaction reversals
153863 --
153864 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
153865    l_result := XLA_AE_LINES_PKG.InsertLines;
153866 END IF;
153867 
153868 --
153869 -- reset the temp_line_num for each set of events fetched from header
153870 -- cursor rather than doing it for each new event in line cursor
153871 -- Bug 3939231
153872 --
153873 xla_ae_lines_pkg.g_temp_line_num := 0;
153874 
153875 
153876 
153877 --
153878 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
153879 --
153880 --
153881 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153882 
153883       trace
153884          (p_msg      => 'SQL - FETCH line_cur'
153885          ,p_level    => C_LEVEL_STATEMENT
153886          ,p_module   => l_log_module);
153887 
153888 END IF;
153889 --
153890 --
153891 LOOP
153892   --
153893   FETCH line_cur BULK COLLECT INTO
153894         l_array_entity_id
153895       , l_array_legal_entity_id
153896       , l_array_entity_code
153897       , l_array_transaction_num
153898       , l_array_event_id
153899       , l_array_class_code
153900       , l_array_event_type
153901       , l_array_event_number
153902       , l_array_event_date
153903       , l_array_transaction_date
153904       , l_array_reference_num_1
153905       , l_array_reference_num_2
153906       , l_array_reference_num_3
153907       , l_array_reference_num_4
153908       , l_array_reference_char_1
153909       , l_array_reference_char_2
153910       , l_array_reference_char_3
153911       , l_array_reference_char_4
153912       , l_array_reference_date_1
153913       , l_array_reference_date_2
153914       , l_array_reference_date_3
153915       , l_array_reference_date_4
153916       , l_array_event_created_by
153917       , l_array_budgetary_control_flag
153918       , l_array_extract_line_num 
153919       , l_array_source_1
153920       , l_array_source_16
153921       , l_array_source_17
153922       , l_array_source_17_meaning
153923       , l_array_source_25
153924       , l_array_source_28
153925       , l_array_source_28_meaning
153926       , l_array_source_38
153927       , l_array_source_39
153928       , l_array_source_46
153929       , l_array_source_47
153930       , l_array_source_54
153931       , l_array_source_54_meaning
153932       , l_array_source_58
153933       , l_array_source_60
153934       , l_array_source_62
153935       , l_array_source_64
153936       , l_array_source_65
153937       , l_array_source_66
153938       , l_array_source_67
153939       , l_array_source_68
153940       , l_array_source_69
153941       , l_array_source_70
153942       , l_array_source_71
153943       , l_array_source_73
153944       , l_array_source_74
153945       , l_array_source_75
153946       , l_array_source_76
153947       , l_array_source_77
153948       , l_array_source_78
153949       , l_array_source_79
153950       , l_array_source_80
153951       , l_array_source_81
153952       , l_array_source_82
153953       , l_array_source_83
153954       , l_array_source_84
153955       , l_array_source_85
153956       , l_array_source_85_meaning
153957       , l_array_source_89
153958       , l_array_source_90
153959       , l_array_source_91
153960       , l_array_source_92
153961       , l_array_source_93
153962       , l_array_source_94
153963       , l_array_source_95
153964       , l_array_source_96
153965       , l_array_source_97
153966       , l_array_source_98
153967       , l_array_source_99
153968       , l_array_source_100
153969       , l_array_source_145
153970       , l_array_source_145_meaning
153971       LIMIT l_rows;
153972 
153973   --
153974   IF (C_LEVEL_EVENT >= g_log_level) THEN
153975             trace
153976                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
153977                ,p_level    => C_LEVEL_EVENT
153978                ,p_module   => l_log_module);
153979   END IF;
153980   --
153981   EXIT WHEN l_array_entity_id.count = 0;
153985 --
153982 
153983   XLA_AE_LINES_PKG.g_rec_lines := null;
153984 
153986 -- Bug 4458708
153987 --
153988 XLA_AE_LINES_PKG.g_LineNumber := 0;
153989 --
153990 --
153991 
153992 FOR Idx IN 1..l_array_event_id.count LOOP
153993    --
153994    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
153995    --
153996    l_event_id := l_array_event_id(idx);  -- 5648433
153997 
153998    --
153999    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
154000    --
154001 
154002    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
154003              (g_array_event(l_event_id).array_value_num('header_index'))
154004          ,'N'
154005          ) <> 'Y'
154006    THEN
154007       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
154008          trace
154009             (p_msg      => 'Trancaction revesal option is not Y '
154010             ,p_level    => C_LEVEL_STATEMENT
154011             ,p_module   => l_log_module);
154012       END IF;
154013 
154014 --
154015 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
154016 --
154017 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
154018 --
154019 -- set event info as cache for other routines to refer event attributes
154020 --
154021 
154022 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
154023    l_previous_event_id := l_event_id;
154024 
154025    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
154026       (p_application_id           => p_application_id
154027       ,p_primary_ledger_id        => p_primary_ledger_id
154028       ,p_base_ledger_id           => p_base_ledger_id
154029       ,p_target_ledger_id         => p_target_ledger_id
154030       ,p_entity_id                => l_array_entity_id(Idx)
154031       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
154032       ,p_entity_code              => l_array_entity_code(Idx)
154033       ,p_transaction_num          => l_array_transaction_num(Idx)
154034       ,p_event_id                 => l_array_event_id(Idx)
154035       ,p_event_class_code         => l_array_class_code(Idx)
154036       ,p_event_type_code          => l_array_event_type(Idx)
154037       ,p_event_number             => l_array_event_number(Idx)
154038       ,p_event_date               => l_array_event_date(Idx)
154039       ,p_transaction_date         => l_array_transaction_date(Idx)
154040       ,p_reference_num_1          => l_array_reference_num_1(Idx)
154041       ,p_reference_num_2          => l_array_reference_num_2(Idx)
154042       ,p_reference_num_3          => l_array_reference_num_3(Idx)
154043       ,p_reference_num_4          => l_array_reference_num_4(Idx)
154044       ,p_reference_char_1         => l_array_reference_char_1(Idx)
154045       ,p_reference_char_2         => l_array_reference_char_2(Idx)
154046       ,p_reference_char_3         => l_array_reference_char_3(Idx)
154047       ,p_reference_char_4         => l_array_reference_char_4(Idx)
154048       ,p_reference_date_1         => l_array_reference_date_1(Idx)
154049       ,p_reference_date_2         => l_array_reference_date_2(Idx)
154050       ,p_reference_date_3         => l_array_reference_date_3(Idx)
154051       ,p_reference_date_4         => l_array_reference_date_4(Idx)
154052       ,p_event_created_by         => l_array_event_created_by(Idx)
154053       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
154054        --
154055 END IF;
154056 
154057 
154058 
154059 --
154060 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
154061 
154062 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
154063 
154064 IF l_continue_with_lines THEN
154065    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
154066       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
154067 
154068       xla_accounting_err_pkg.build_message
154069          (p_appli_s_name            => 'XLA'
154070          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
154071          ,p_token_1                 => 'LINE_NUMBER'
154072          ,p_value_1                 => l_array_extract_line_num(Idx)
154073          ,p_token_2                 => 'PRODUCT_NAME'
154074          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
154075          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
154076          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
154077          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
154078 
154079    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
154080       --
154081       -- following sets the accounting attributes needed to reverse
154082       -- accounting for a distributeion
154083       --
154084 
154085       --
154086       -- 5217187
154087       --
154088       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
154089       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
154090                                        g_array_event(l_event_id).array_value_num('header_index'));
154091       --
154092       --
154093 
154094       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
154095       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
154096       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
154097       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_69(Idx);
154098       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
154099       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
154100       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
154101       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_70(Idx);
154102       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
154103       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_71(Idx);
154107       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_73(Idx);
154104       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
154105       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_72');
154106       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
154108       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
154109       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_74(Idx);
154110       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
154111       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_75(Idx);
154112       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
154113       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_72');
154114       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
154115       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_76(Idx);
154116       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
154117       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_77(Idx);
154118       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
154119       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_88');
154120       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
154121       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_89(Idx);
154122       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
154123       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_60(Idx);
154124       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
154125       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_91(Idx);
154126       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
154127       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_92(Idx);
154128       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
154129       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_93(Idx);
154130       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
154131       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_94(Idx);
154132       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
154133       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_95(Idx);
154134 
154135 
154136       xla_ae_lines_pkg.SetAcctReversalAttrs
154137          (p_event_id             => l_event_id
154138          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
154139          ,p_calculate_acctd_flag => l_calculate_acctd_flag
154140          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
154141    END IF;
154142 
154143    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
154144        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
154145 
154146 --
154147 AcctLineType_56 (
154148  p_application_id  => p_application_id
154149  ,p_event_id     => l_event_id
154150  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154151  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154152  ,p_actual_flag => l_actual_flag
154153  ,p_balance_type_code => l_balance_type_code
154154  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154155  
154156  , p_source_1 => l_array_source_1(Idx)
154157  , p_source_16 => l_array_source_16(Idx)
154158  , p_source_25 => l_array_source_25(Idx)
154159  , p_source_28 => l_array_source_28(Idx)
154160  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154161  , p_source_58 => l_array_source_58(Idx)
154162  , p_source_60 => l_array_source_60(Idx)
154163  , p_source_62 => l_array_source_62(Idx)
154164  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154165  , p_source_64 => l_array_source_64(Idx)
154166  , p_source_65 => l_array_source_65(Idx)
154167  , p_source_66 => l_array_source_66(Idx)
154168  , p_source_67 => l_array_source_67(Idx)
154169  , p_source_68 => l_array_source_68(Idx)
154170  , p_source_69 => l_array_source_69(Idx)
154171  , p_source_70 => l_array_source_70(Idx)
154172  , p_source_71 => l_array_source_71(Idx)
154173  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154174  , p_source_73 => l_array_source_73(Idx)
154175  , p_source_74 => l_array_source_74(Idx)
154176  , p_source_75 => l_array_source_75(Idx)
154177  , p_source_76 => l_array_source_76(Idx)
154178  , p_source_77 => l_array_source_77(Idx)
154179  , p_source_78 => l_array_source_78(Idx)
154180  , p_source_79 => l_array_source_79(Idx)
154181  , p_source_80 => l_array_source_80(Idx)
154182  , p_source_81 => l_array_source_81(Idx)
154183  , p_source_82 => l_array_source_82(Idx)
154184  , p_source_83 => l_array_source_83(Idx)
154185  , p_source_84 => l_array_source_84(Idx)
154186  , p_source_85 => l_array_source_85(Idx)
154187  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154188  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154189  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154190  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154191  , p_source_89 => l_array_source_89(Idx)
154192  , p_source_90 => l_array_source_90(Idx)
154193  , p_source_91 => l_array_source_91(Idx)
154194  , p_source_92 => l_array_source_92(Idx)
154195  , p_source_93 => l_array_source_93(Idx)
154196  , p_source_94 => l_array_source_94(Idx)
154197  , p_source_95 => l_array_source_95(Idx)
154198  );
154199 If(l_balance_type_code = 'A') THEN
154200   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154201 END IF;
154202 
154203 --
154204 
154205 
154206 --
154207 AcctLineType_60 (
154208  p_application_id  => p_application_id
154209  ,p_event_id     => l_event_id
154210  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154211  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154212  ,p_actual_flag => l_actual_flag
154213  ,p_balance_type_code => l_balance_type_code
154214  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154215  
154219  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
154216  , p_source_1 => l_array_source_1(Idx)
154217  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
154218  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
154220  , p_source_16 => l_array_source_16(Idx)
154221  , p_source_17 => l_array_source_17(Idx)
154222  , p_source_17_meaning => l_array_source_17_meaning(Idx)
154223  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
154224  , p_source_25 => l_array_source_25(Idx)
154225  , p_source_28 => l_array_source_28(Idx)
154226  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154227  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
154228  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
154229  , p_source_58 => l_array_source_58(Idx)
154230  , p_source_60 => l_array_source_60(Idx)
154231  , p_source_62 => l_array_source_62(Idx)
154232  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154233  , p_source_69 => l_array_source_69(Idx)
154234  , p_source_70 => l_array_source_70(Idx)
154235  , p_source_71 => l_array_source_71(Idx)
154236  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154237  , p_source_73 => l_array_source_73(Idx)
154238  , p_source_74 => l_array_source_74(Idx)
154239  , p_source_75 => l_array_source_75(Idx)
154240  , p_source_76 => l_array_source_76(Idx)
154241  , p_source_77 => l_array_source_77(Idx)
154242  , p_source_82 => l_array_source_82(Idx)
154243  , p_source_83 => l_array_source_83(Idx)
154244  , p_source_84 => l_array_source_84(Idx)
154245  , p_source_85 => l_array_source_85(Idx)
154246  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154247  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154248  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154249  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154250  , p_source_89 => l_array_source_89(Idx)
154251  , p_source_90 => l_array_source_90(Idx)
154252  , p_source_91 => l_array_source_91(Idx)
154253  , p_source_92 => l_array_source_92(Idx)
154254  , p_source_93 => l_array_source_93(Idx)
154255  , p_source_94 => l_array_source_94(Idx)
154256  , p_source_95 => l_array_source_95(Idx)
154257  , p_source_96 => l_array_source_96(Idx)
154258  , p_source_97 => l_array_source_97(Idx)
154259  , p_source_98 => l_array_source_98(Idx)
154260  , p_source_99 => l_array_source_99(Idx)
154261  , p_source_100 => l_array_source_100(Idx)
154262  );
154263 If(l_balance_type_code = 'A') THEN
154264   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154265 END IF;
154266 
154267 --
154268 
154269 
154270 --
154271 AcctLineType_64 (
154272  p_application_id  => p_application_id
154273  ,p_event_id     => l_event_id
154274  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154275  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154276  ,p_actual_flag => l_actual_flag
154277  ,p_balance_type_code => l_balance_type_code
154278  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154279  
154280  , p_source_1 => l_array_source_1(Idx)
154281  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
154282  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
154283  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
154284  , p_source_16 => l_array_source_16(Idx)
154285  , p_source_17 => l_array_source_17(Idx)
154286  , p_source_17_meaning => l_array_source_17_meaning(Idx)
154287  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
154288  , p_source_25 => l_array_source_25(Idx)
154289  , p_source_28 => l_array_source_28(Idx)
154290  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154291  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
154292  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
154293  , p_source_54 => l_array_source_54(Idx)
154294  , p_source_54_meaning => l_array_source_54_meaning(Idx)
154295  , p_source_58 => l_array_source_58(Idx)
154296  , p_source_60 => l_array_source_60(Idx)
154297  , p_source_62 => l_array_source_62(Idx)
154298  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154299  , p_source_69 => l_array_source_69(Idx)
154300  , p_source_70 => l_array_source_70(Idx)
154301  , p_source_71 => l_array_source_71(Idx)
154302  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154303  , p_source_73 => l_array_source_73(Idx)
154304  , p_source_74 => l_array_source_74(Idx)
154305  , p_source_75 => l_array_source_75(Idx)
154306  , p_source_76 => l_array_source_76(Idx)
154307  , p_source_77 => l_array_source_77(Idx)
154308  , p_source_82 => l_array_source_82(Idx)
154309  , p_source_83 => l_array_source_83(Idx)
154310  , p_source_84 => l_array_source_84(Idx)
154311  , p_source_85 => l_array_source_85(Idx)
154312  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154313  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154314  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154315  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154316  , p_source_89 => l_array_source_89(Idx)
154317  , p_source_90 => l_array_source_90(Idx)
154318  , p_source_91 => l_array_source_91(Idx)
154319  , p_source_92 => l_array_source_92(Idx)
154320  , p_source_93 => l_array_source_93(Idx)
154321  , p_source_94 => l_array_source_94(Idx)
154322  , p_source_95 => l_array_source_95(Idx)
154323  , p_source_96 => l_array_source_96(Idx)
154324  , p_source_97 => l_array_source_97(Idx)
154325  , p_source_98 => l_array_source_98(Idx)
154326  , p_source_99 => l_array_source_99(Idx)
154327  , p_source_100 => l_array_source_100(Idx)
154328  );
154329 If(l_balance_type_code = 'A') THEN
154330   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154331 END IF;
154332 
154333 --
154334 
154335 
154336 --
154337 AcctLineType_116 (
154338  p_application_id  => p_application_id
154342  ,p_actual_flag => l_actual_flag
154339  ,p_event_id     => l_event_id
154340  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154341  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154343  ,p_balance_type_code => l_balance_type_code
154344  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154345  
154346  , p_source_1 => l_array_source_1(Idx)
154347  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
154348  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
154349  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
154350  , p_source_16 => l_array_source_16(Idx)
154351  , p_source_17 => l_array_source_17(Idx)
154352  , p_source_17_meaning => l_array_source_17_meaning(Idx)
154353  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
154354  , p_source_25 => l_array_source_25(Idx)
154355  , p_source_28 => l_array_source_28(Idx)
154356  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154357  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
154358  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
154359  , p_source_54 => l_array_source_54(Idx)
154360  , p_source_54_meaning => l_array_source_54_meaning(Idx)
154361  , p_source_58 => l_array_source_58(Idx)
154362  , p_source_60 => l_array_source_60(Idx)
154363  , p_source_62 => l_array_source_62(Idx)
154364  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154365  , p_source_69 => l_array_source_69(Idx)
154366  , p_source_70 => l_array_source_70(Idx)
154367  , p_source_71 => l_array_source_71(Idx)
154368  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154369  , p_source_73 => l_array_source_73(Idx)
154370  , p_source_74 => l_array_source_74(Idx)
154371  , p_source_75 => l_array_source_75(Idx)
154372  , p_source_76 => l_array_source_76(Idx)
154373  , p_source_77 => l_array_source_77(Idx)
154374  , p_source_78 => l_array_source_78(Idx)
154375  , p_source_82 => l_array_source_82(Idx)
154376  , p_source_83 => l_array_source_83(Idx)
154377  , p_source_84 => l_array_source_84(Idx)
154378  , p_source_85 => l_array_source_85(Idx)
154379  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154380  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154381  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154382  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154383  , p_source_89 => l_array_source_89(Idx)
154384  , p_source_90 => l_array_source_90(Idx)
154385  , p_source_91 => l_array_source_91(Idx)
154386  , p_source_92 => l_array_source_92(Idx)
154387  , p_source_93 => l_array_source_93(Idx)
154388  , p_source_94 => l_array_source_94(Idx)
154389  , p_source_95 => l_array_source_95(Idx)
154390  , p_source_96 => l_array_source_96(Idx)
154391  , p_source_97 => l_array_source_97(Idx)
154392  , p_source_98 => l_array_source_98(Idx)
154393  , p_source_99 => l_array_source_99(Idx)
154394  , p_source_100 => l_array_source_100(Idx)
154395  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154396  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154397  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154398  );
154399 If(l_balance_type_code = 'A') THEN
154400   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154401 END IF;
154402 
154403 --
154404 
154405 
154406 --
154407 AcctLineType_125 (
154408  p_application_id  => p_application_id
154409  ,p_event_id     => l_event_id
154410  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154411  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154412  ,p_actual_flag => l_actual_flag
154413  ,p_balance_type_code => l_balance_type_code
154414  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154415  
154416  , p_source_1 => l_array_source_1(Idx)
154417  , p_source_16 => l_array_source_16(Idx)
154418  , p_source_25 => l_array_source_25(Idx)
154419  , p_source_28 => l_array_source_28(Idx)
154420  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154421  , p_source_58 => l_array_source_58(Idx)
154422  , p_source_60 => l_array_source_60(Idx)
154423  , p_source_62 => l_array_source_62(Idx)
154424  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154425  , p_source_69 => l_array_source_69(Idx)
154426  , p_source_70 => l_array_source_70(Idx)
154427  , p_source_71 => l_array_source_71(Idx)
154428  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154429  , p_source_73 => l_array_source_73(Idx)
154430  , p_source_74 => l_array_source_74(Idx)
154431  , p_source_75 => l_array_source_75(Idx)
154432  , p_source_76 => l_array_source_76(Idx)
154433  , p_source_77 => l_array_source_77(Idx)
154434  , p_source_78 => l_array_source_78(Idx)
154435  , p_source_82 => l_array_source_82(Idx)
154436  , p_source_83 => l_array_source_83(Idx)
154437  , p_source_84 => l_array_source_84(Idx)
154438  , p_source_85 => l_array_source_85(Idx)
154439  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154440  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154441  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154442  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154443  , p_source_89 => l_array_source_89(Idx)
154444  , p_source_90 => l_array_source_90(Idx)
154445  , p_source_91 => l_array_source_91(Idx)
154446  , p_source_92 => l_array_source_92(Idx)
154447  , p_source_93 => l_array_source_93(Idx)
154448  , p_source_94 => l_array_source_94(Idx)
154449  , p_source_95 => l_array_source_95(Idx)
154450  , p_source_96 => l_array_source_96(Idx)
154451  , p_source_97 => l_array_source_97(Idx)
154452  , p_source_98 => l_array_source_98(Idx)
154453  , p_source_99 => l_array_source_99(Idx)
154454  , p_source_100 => l_array_source_100(Idx)
154455  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154456  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154457  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154461 END IF;
154458  );
154459 If(l_balance_type_code = 'A') THEN
154460   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154462 
154463 --
154464 
154465 
154466 --
154467 AcctLineType_147 (
154468  p_application_id  => p_application_id
154469  ,p_event_id     => l_event_id
154470  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154471  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154472  ,p_actual_flag => l_actual_flag
154473  ,p_balance_type_code => l_balance_type_code
154474  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154475  
154476  , p_source_1 => l_array_source_1(Idx)
154477  , p_source_16 => l_array_source_16(Idx)
154478  , p_source_25 => l_array_source_25(Idx)
154479  , p_source_28 => l_array_source_28(Idx)
154480  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154481  , p_source_54 => l_array_source_54(Idx)
154482  , p_source_54_meaning => l_array_source_54_meaning(Idx)
154483  , p_source_58 => l_array_source_58(Idx)
154484  , p_source_60 => l_array_source_60(Idx)
154485  , p_source_62 => l_array_source_62(Idx)
154486  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154487  , p_source_69 => l_array_source_69(Idx)
154488  , p_source_70 => l_array_source_70(Idx)
154489  , p_source_71 => l_array_source_71(Idx)
154490  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154491  , p_source_73 => l_array_source_73(Idx)
154492  , p_source_74 => l_array_source_74(Idx)
154493  , p_source_75 => l_array_source_75(Idx)
154494  , p_source_76 => l_array_source_76(Idx)
154495  , p_source_77 => l_array_source_77(Idx)
154496  , p_source_78 => l_array_source_78(Idx)
154497  , p_source_82 => l_array_source_82(Idx)
154498  , p_source_83 => l_array_source_83(Idx)
154499  , p_source_84 => l_array_source_84(Idx)
154500  , p_source_85 => l_array_source_85(Idx)
154501  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154502  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154503  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154504  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154505  , p_source_89 => l_array_source_89(Idx)
154506  , p_source_90 => l_array_source_90(Idx)
154507  , p_source_91 => l_array_source_91(Idx)
154508  , p_source_92 => l_array_source_92(Idx)
154509  , p_source_93 => l_array_source_93(Idx)
154510  , p_source_94 => l_array_source_94(Idx)
154511  , p_source_95 => l_array_source_95(Idx)
154512  , p_source_96 => l_array_source_96(Idx)
154513  , p_source_97 => l_array_source_97(Idx)
154514  , p_source_98 => l_array_source_98(Idx)
154515  , p_source_99 => l_array_source_99(Idx)
154516  , p_source_100 => l_array_source_100(Idx)
154517  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154518  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154519  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154520  );
154521 If(l_balance_type_code = 'A') THEN
154522   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154523 END IF;
154524 
154525 --
154526 
154527 
154528 --
154529 AcctLineType_151 (
154530  p_application_id  => p_application_id
154531  ,p_event_id     => l_event_id
154532  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154533  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154534  ,p_actual_flag => l_actual_flag
154535  ,p_balance_type_code => l_balance_type_code
154536  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154537  
154538  , p_source_1 => l_array_source_1(Idx)
154539  , p_source_16 => l_array_source_16(Idx)
154540  , p_source_25 => l_array_source_25(Idx)
154541  , p_source_28 => l_array_source_28(Idx)
154542  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154543  , p_source_54 => l_array_source_54(Idx)
154544  , p_source_54_meaning => l_array_source_54_meaning(Idx)
154545  , p_source_58 => l_array_source_58(Idx)
154546  , p_source_60 => l_array_source_60(Idx)
154547  , p_source_62 => l_array_source_62(Idx)
154548  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154549  , p_source_69 => l_array_source_69(Idx)
154550  , p_source_70 => l_array_source_70(Idx)
154551  , p_source_71 => l_array_source_71(Idx)
154552  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154553  , p_source_73 => l_array_source_73(Idx)
154554  , p_source_74 => l_array_source_74(Idx)
154555  , p_source_75 => l_array_source_75(Idx)
154556  , p_source_76 => l_array_source_76(Idx)
154557  , p_source_77 => l_array_source_77(Idx)
154558  , p_source_78 => l_array_source_78(Idx)
154559  , p_source_82 => l_array_source_82(Idx)
154560  , p_source_83 => l_array_source_83(Idx)
154561  , p_source_84 => l_array_source_84(Idx)
154562  , p_source_85 => l_array_source_85(Idx)
154563  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154564  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154565  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154566  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154567  , p_source_89 => l_array_source_89(Idx)
154568  , p_source_90 => l_array_source_90(Idx)
154569  , p_source_91 => l_array_source_91(Idx)
154570  , p_source_92 => l_array_source_92(Idx)
154571  , p_source_93 => l_array_source_93(Idx)
154572  , p_source_94 => l_array_source_94(Idx)
154573  , p_source_95 => l_array_source_95(Idx)
154574  , p_source_96 => l_array_source_96(Idx)
154575  , p_source_97 => l_array_source_97(Idx)
154576  , p_source_98 => l_array_source_98(Idx)
154577  , p_source_99 => l_array_source_99(Idx)
154578  , p_source_100 => l_array_source_100(Idx)
154579  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154580  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154581  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154582  );
154583 If(l_balance_type_code = 'A') THEN
154584   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154585 END IF;
154586 
154587 --
154588 
154589 
154593  ,p_event_id     => l_event_id
154590 --
154591 AcctLineType_157 (
154592  p_application_id  => p_application_id
154594  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154595  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154596  ,p_actual_flag => l_actual_flag
154597  ,p_balance_type_code => l_balance_type_code
154598  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154599  
154600  , p_source_1 => l_array_source_1(Idx)
154601  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
154602  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
154603  , p_source_16 => l_array_source_16(Idx)
154604  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
154605  , p_source_58 => l_array_source_58(Idx)
154606  , p_source_60 => l_array_source_60(Idx)
154607  , p_source_62 => l_array_source_62(Idx)
154608  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154609  , p_source_69 => l_array_source_69(Idx)
154610  , p_source_70 => l_array_source_70(Idx)
154611  , p_source_71 => l_array_source_71(Idx)
154612  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154613  , p_source_73 => l_array_source_73(Idx)
154614  , p_source_74 => l_array_source_74(Idx)
154615  , p_source_75 => l_array_source_75(Idx)
154616  , p_source_76 => l_array_source_76(Idx)
154617  , p_source_77 => l_array_source_77(Idx)
154618  , p_source_78 => l_array_source_78(Idx)
154619  , p_source_82 => l_array_source_82(Idx)
154620  , p_source_83 => l_array_source_83(Idx)
154621  , p_source_84 => l_array_source_84(Idx)
154622  , p_source_85 => l_array_source_85(Idx)
154623  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154624  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154625  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154626  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154627  , p_source_89 => l_array_source_89(Idx)
154628  , p_source_90 => l_array_source_90(Idx)
154629  , p_source_91 => l_array_source_91(Idx)
154630  , p_source_92 => l_array_source_92(Idx)
154631  , p_source_93 => l_array_source_93(Idx)
154632  , p_source_94 => l_array_source_94(Idx)
154633  , p_source_95 => l_array_source_95(Idx)
154634  , p_source_96 => l_array_source_96(Idx)
154635  , p_source_97 => l_array_source_97(Idx)
154636  , p_source_98 => l_array_source_98(Idx)
154637  , p_source_99 => l_array_source_99(Idx)
154638  , p_source_100 => l_array_source_100(Idx)
154639  , p_source_145 => l_array_source_145(Idx)
154640  , p_source_145_meaning => l_array_source_145_meaning(Idx)
154641  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154642  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154643  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154644  );
154645 If(l_balance_type_code = 'A') THEN
154646   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154647 END IF;
154648 
154649 --
154650 
154651 
154652 --
154653 AcctLineType_158 (
154654  p_application_id  => p_application_id
154655  ,p_event_id     => l_event_id
154656  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154657  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154658  ,p_actual_flag => l_actual_flag
154659  ,p_balance_type_code => l_balance_type_code
154660  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154661  
154662  , p_source_1 => l_array_source_1(Idx)
154663  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
154664  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
154665  , p_source_16 => l_array_source_16(Idx)
154666  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
154667  , p_source_58 => l_array_source_58(Idx)
154668  , p_source_60 => l_array_source_60(Idx)
154669  , p_source_62 => l_array_source_62(Idx)
154670  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154671  , p_source_69 => l_array_source_69(Idx)
154672  , p_source_70 => l_array_source_70(Idx)
154673  , p_source_71 => l_array_source_71(Idx)
154674  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154675  , p_source_73 => l_array_source_73(Idx)
154676  , p_source_74 => l_array_source_74(Idx)
154677  , p_source_75 => l_array_source_75(Idx)
154678  , p_source_76 => l_array_source_76(Idx)
154679  , p_source_77 => l_array_source_77(Idx)
154680  , p_source_78 => l_array_source_78(Idx)
154681  , p_source_82 => l_array_source_82(Idx)
154682  , p_source_83 => l_array_source_83(Idx)
154683  , p_source_84 => l_array_source_84(Idx)
154684  , p_source_85 => l_array_source_85(Idx)
154685  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154686  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154687  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154688  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154689  , p_source_89 => l_array_source_89(Idx)
154690  , p_source_90 => l_array_source_90(Idx)
154691  , p_source_91 => l_array_source_91(Idx)
154692  , p_source_92 => l_array_source_92(Idx)
154693  , p_source_93 => l_array_source_93(Idx)
154694  , p_source_94 => l_array_source_94(Idx)
154695  , p_source_95 => l_array_source_95(Idx)
154696  , p_source_96 => l_array_source_96(Idx)
154697  , p_source_97 => l_array_source_97(Idx)
154698  , p_source_98 => l_array_source_98(Idx)
154699  , p_source_99 => l_array_source_99(Idx)
154700  , p_source_100 => l_array_source_100(Idx)
154701  , p_source_145 => l_array_source_145(Idx)
154702  , p_source_145_meaning => l_array_source_145_meaning(Idx)
154703  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154704  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154705  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154706  );
154707 If(l_balance_type_code = 'A') THEN
154708   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154709 END IF;
154710 
154711 --
154712 
154713 
154714 --
154718  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154715 AcctLineType_159 (
154716  p_application_id  => p_application_id
154717  ,p_event_id     => l_event_id
154719  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154720  ,p_actual_flag => l_actual_flag
154721  ,p_balance_type_code => l_balance_type_code
154722  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154723  
154724  , p_source_1 => l_array_source_1(Idx)
154725  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
154726  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
154727  , p_source_16 => l_array_source_16(Idx)
154728  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
154729  , p_source_58 => l_array_source_58(Idx)
154730  , p_source_60 => l_array_source_60(Idx)
154731  , p_source_62 => l_array_source_62(Idx)
154732  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154733  , p_source_69 => l_array_source_69(Idx)
154734  , p_source_70 => l_array_source_70(Idx)
154735  , p_source_71 => l_array_source_71(Idx)
154736  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154737  , p_source_73 => l_array_source_73(Idx)
154738  , p_source_74 => l_array_source_74(Idx)
154739  , p_source_75 => l_array_source_75(Idx)
154740  , p_source_76 => l_array_source_76(Idx)
154741  , p_source_77 => l_array_source_77(Idx)
154742  , p_source_78 => l_array_source_78(Idx)
154743  , p_source_82 => l_array_source_82(Idx)
154744  , p_source_83 => l_array_source_83(Idx)
154745  , p_source_84 => l_array_source_84(Idx)
154746  , p_source_85 => l_array_source_85(Idx)
154747  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154748  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154749  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154750  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154751  , p_source_89 => l_array_source_89(Idx)
154752  , p_source_90 => l_array_source_90(Idx)
154753  , p_source_91 => l_array_source_91(Idx)
154754  , p_source_92 => l_array_source_92(Idx)
154755  , p_source_93 => l_array_source_93(Idx)
154756  , p_source_94 => l_array_source_94(Idx)
154757  , p_source_95 => l_array_source_95(Idx)
154758  , p_source_96 => l_array_source_96(Idx)
154759  , p_source_97 => l_array_source_97(Idx)
154760  , p_source_98 => l_array_source_98(Idx)
154761  , p_source_99 => l_array_source_99(Idx)
154762  , p_source_100 => l_array_source_100(Idx)
154763  , p_source_145 => l_array_source_145(Idx)
154764  , p_source_145_meaning => l_array_source_145_meaning(Idx)
154765  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154766  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154767  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154768  );
154769 If(l_balance_type_code = 'A') THEN
154770   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154771 END IF;
154772 
154773 --
154774 
154775 
154776 --
154777 AcctLineType_180 (
154778  p_application_id  => p_application_id
154779  ,p_event_id     => l_event_id
154780  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154781  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154782  ,p_actual_flag => l_actual_flag
154783  ,p_balance_type_code => l_balance_type_code
154784  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154785  
154786  , p_source_1 => l_array_source_1(Idx)
154787  , p_source_16 => l_array_source_16(Idx)
154788  , p_source_25 => l_array_source_25(Idx)
154789  , p_source_28 => l_array_source_28(Idx)
154790  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154791  , p_source_58 => l_array_source_58(Idx)
154792  , p_source_60 => l_array_source_60(Idx)
154793  , p_source_62 => l_array_source_62(Idx)
154794  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154795  , p_source_69 => l_array_source_69(Idx)
154796  , p_source_70 => l_array_source_70(Idx)
154797  , p_source_71 => l_array_source_71(Idx)
154798  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154799  , p_source_73 => l_array_source_73(Idx)
154800  , p_source_74 => l_array_source_74(Idx)
154801  , p_source_75 => l_array_source_75(Idx)
154802  , p_source_76 => l_array_source_76(Idx)
154803  , p_source_77 => l_array_source_77(Idx)
154804  , p_source_78 => l_array_source_78(Idx)
154805  , p_source_82 => l_array_source_82(Idx)
154806  , p_source_83 => l_array_source_83(Idx)
154807  , p_source_84 => l_array_source_84(Idx)
154808  , p_source_85 => l_array_source_85(Idx)
154809  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154810  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154811  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154812  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154813  , p_source_89 => l_array_source_89(Idx)
154814  , p_source_90 => l_array_source_90(Idx)
154815  , p_source_91 => l_array_source_91(Idx)
154816  , p_source_92 => l_array_source_92(Idx)
154817  , p_source_93 => l_array_source_93(Idx)
154818  , p_source_94 => l_array_source_94(Idx)
154819  , p_source_95 => l_array_source_95(Idx)
154820  , p_source_96 => l_array_source_96(Idx)
154821  , p_source_97 => l_array_source_97(Idx)
154822  , p_source_98 => l_array_source_98(Idx)
154823  , p_source_99 => l_array_source_99(Idx)
154824  , p_source_100 => l_array_source_100(Idx)
154825  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154826  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154827  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154828  );
154829 If(l_balance_type_code = 'A') THEN
154830   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154831 END IF;
154832 
154833 --
154834 
154835 
154836 --
154837 AcctLineType_184 (
154838  p_application_id  => p_application_id
154839  ,p_event_id     => l_event_id
154840  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154841  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154845  
154842  ,p_actual_flag => l_actual_flag
154843  ,p_balance_type_code => l_balance_type_code
154844  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154846  , p_source_1 => l_array_source_1(Idx)
154847  , p_source_16 => l_array_source_16(Idx)
154848  , p_source_25 => l_array_source_25(Idx)
154849  , p_source_28 => l_array_source_28(Idx)
154850  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154851  , p_source_54 => l_array_source_54(Idx)
154852  , p_source_54_meaning => l_array_source_54_meaning(Idx)
154853  , p_source_58 => l_array_source_58(Idx)
154854  , p_source_60 => l_array_source_60(Idx)
154855  , p_source_62 => l_array_source_62(Idx)
154856  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154857  , p_source_69 => l_array_source_69(Idx)
154858  , p_source_70 => l_array_source_70(Idx)
154859  , p_source_71 => l_array_source_71(Idx)
154860  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154861  , p_source_73 => l_array_source_73(Idx)
154862  , p_source_74 => l_array_source_74(Idx)
154863  , p_source_75 => l_array_source_75(Idx)
154864  , p_source_76 => l_array_source_76(Idx)
154865  , p_source_77 => l_array_source_77(Idx)
154866  , p_source_78 => l_array_source_78(Idx)
154867  , p_source_79 => l_array_source_79(Idx)
154868  , p_source_80 => l_array_source_80(Idx)
154869  , p_source_81 => l_array_source_81(Idx)
154870  , p_source_82 => l_array_source_82(Idx)
154871  , p_source_83 => l_array_source_83(Idx)
154872  , p_source_84 => l_array_source_84(Idx)
154873  , p_source_85 => l_array_source_85(Idx)
154874  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154875  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154876  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154877  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154878  , p_source_89 => l_array_source_89(Idx)
154879  , p_source_90 => l_array_source_90(Idx)
154880  , p_source_91 => l_array_source_91(Idx)
154881  , p_source_92 => l_array_source_92(Idx)
154882  , p_source_93 => l_array_source_93(Idx)
154883  , p_source_94 => l_array_source_94(Idx)
154884  , p_source_95 => l_array_source_95(Idx)
154885  , p_source_96 => l_array_source_96(Idx)
154886  , p_source_97 => l_array_source_97(Idx)
154887  , p_source_98 => l_array_source_98(Idx)
154888  , p_source_99 => l_array_source_99(Idx)
154889  , p_source_100 => l_array_source_100(Idx)
154890  , p_source_145 => l_array_source_145(Idx)
154891  , p_source_145_meaning => l_array_source_145_meaning(Idx)
154892  );
154893 If(l_balance_type_code = 'A') THEN
154894   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154895 END IF;
154896 
154897 --
154898 
154899 
154900 --
154901 AcctLineType_187 (
154902  p_application_id  => p_application_id
154903  ,p_event_id     => l_event_id
154904  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154905  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154906  ,p_actual_flag => l_actual_flag
154907  ,p_balance_type_code => l_balance_type_code
154908  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154909  
154910  , p_source_1 => l_array_source_1(Idx)
154911  , p_source_16 => l_array_source_16(Idx)
154912  , p_source_25 => l_array_source_25(Idx)
154913  , p_source_28 => l_array_source_28(Idx)
154914  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154915  , p_source_54 => l_array_source_54(Idx)
154916  , p_source_54_meaning => l_array_source_54_meaning(Idx)
154917  , p_source_58 => l_array_source_58(Idx)
154918  , p_source_60 => l_array_source_60(Idx)
154919  , p_source_62 => l_array_source_62(Idx)
154920  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154921  , p_source_69 => l_array_source_69(Idx)
154922  , p_source_70 => l_array_source_70(Idx)
154923  , p_source_71 => l_array_source_71(Idx)
154924  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154925  , p_source_73 => l_array_source_73(Idx)
154926  , p_source_74 => l_array_source_74(Idx)
154927  , p_source_75 => l_array_source_75(Idx)
154928  , p_source_76 => l_array_source_76(Idx)
154929  , p_source_77 => l_array_source_77(Idx)
154930  , p_source_78 => l_array_source_78(Idx)
154931  , p_source_82 => l_array_source_82(Idx)
154932  , p_source_83 => l_array_source_83(Idx)
154933  , p_source_84 => l_array_source_84(Idx)
154934  , p_source_85 => l_array_source_85(Idx)
154935  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154936  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154937  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
154938  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
154939  , p_source_89 => l_array_source_89(Idx)
154940  , p_source_90 => l_array_source_90(Idx)
154941  , p_source_91 => l_array_source_91(Idx)
154942  , p_source_92 => l_array_source_92(Idx)
154943  , p_source_93 => l_array_source_93(Idx)
154944  , p_source_94 => l_array_source_94(Idx)
154945  , p_source_95 => l_array_source_95(Idx)
154946  , p_source_96 => l_array_source_96(Idx)
154947  , p_source_97 => l_array_source_97(Idx)
154948  , p_source_98 => l_array_source_98(Idx)
154949  , p_source_99 => l_array_source_99(Idx)
154950  , p_source_100 => l_array_source_100(Idx)
154951  , p_source_145 => l_array_source_145(Idx)
154952  , p_source_145_meaning => l_array_source_145_meaning(Idx)
154953  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
154954  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
154955  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
154956  );
154957 If(l_balance_type_code = 'A') THEN
154958   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154959 END IF;
154960 
154961 --
154962 
154963 
154964 --
154965 AcctLineType_196 (
154966  p_application_id  => p_application_id
154967  ,p_event_id     => l_event_id
154968  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154969  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154970  ,p_actual_flag => l_actual_flag
154974  , p_source_1 => l_array_source_1(Idx)
154971  ,p_balance_type_code => l_balance_type_code
154972  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154973  
154975  , p_source_16 => l_array_source_16(Idx)
154976  , p_source_25 => l_array_source_25(Idx)
154977  , p_source_28 => l_array_source_28(Idx)
154978  , p_source_28_meaning => l_array_source_28_meaning(Idx)
154979  , p_source_58 => l_array_source_58(Idx)
154980  , p_source_60 => l_array_source_60(Idx)
154981  , p_source_62 => l_array_source_62(Idx)
154982  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
154983  , p_source_69 => l_array_source_69(Idx)
154984  , p_source_70 => l_array_source_70(Idx)
154985  , p_source_71 => l_array_source_71(Idx)
154986  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
154987  , p_source_73 => l_array_source_73(Idx)
154988  , p_source_74 => l_array_source_74(Idx)
154989  , p_source_75 => l_array_source_75(Idx)
154990  , p_source_76 => l_array_source_76(Idx)
154991  , p_source_77 => l_array_source_77(Idx)
154992  , p_source_78 => l_array_source_78(Idx)
154993  , p_source_82 => l_array_source_82(Idx)
154994  , p_source_83 => l_array_source_83(Idx)
154995  , p_source_84 => l_array_source_84(Idx)
154996  , p_source_85 => l_array_source_85(Idx)
154997  , p_source_85_meaning => l_array_source_85_meaning(Idx)
154998  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
154999  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155000  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155001  , p_source_89 => l_array_source_89(Idx)
155002  , p_source_90 => l_array_source_90(Idx)
155003  , p_source_91 => l_array_source_91(Idx)
155004  , p_source_92 => l_array_source_92(Idx)
155005  , p_source_93 => l_array_source_93(Idx)
155006  , p_source_94 => l_array_source_94(Idx)
155007  , p_source_95 => l_array_source_95(Idx)
155008  , p_source_96 => l_array_source_96(Idx)
155009  , p_source_97 => l_array_source_97(Idx)
155010  , p_source_98 => l_array_source_98(Idx)
155011  , p_source_99 => l_array_source_99(Idx)
155012  , p_source_100 => l_array_source_100(Idx)
155013  , p_source_145 => l_array_source_145(Idx)
155014  , p_source_145_meaning => l_array_source_145_meaning(Idx)
155015  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155016  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155017  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155018  );
155019 If(l_balance_type_code = 'A') THEN
155020   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155021 END IF;
155022 
155023 --
155024 
155025 
155026 --
155027 AcctLineType_201 (
155028  p_application_id  => p_application_id
155029  ,p_event_id     => l_event_id
155030  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155031  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155032  ,p_actual_flag => l_actual_flag
155033  ,p_balance_type_code => l_balance_type_code
155034  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155035  
155036  , p_source_1 => l_array_source_1(Idx)
155037  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
155038  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
155039  , p_source_16 => l_array_source_16(Idx)
155040  , p_source_25 => l_array_source_25(Idx)
155041  , p_source_28 => l_array_source_28(Idx)
155042  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155043  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
155044  , p_source_38 => l_array_source_38(Idx)
155045  , p_source_58 => l_array_source_58(Idx)
155046  , p_source_60 => l_array_source_60(Idx)
155047  , p_source_62 => l_array_source_62(Idx)
155048  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155049  , p_source_69 => l_array_source_69(Idx)
155050  , p_source_70 => l_array_source_70(Idx)
155051  , p_source_71 => l_array_source_71(Idx)
155052  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155053  , p_source_73 => l_array_source_73(Idx)
155054  , p_source_74 => l_array_source_74(Idx)
155055  , p_source_75 => l_array_source_75(Idx)
155056  , p_source_76 => l_array_source_76(Idx)
155057  , p_source_77 => l_array_source_77(Idx)
155058  , p_source_78 => l_array_source_78(Idx)
155059  , p_source_82 => l_array_source_82(Idx)
155060  , p_source_83 => l_array_source_83(Idx)
155061  , p_source_84 => l_array_source_84(Idx)
155062  , p_source_85 => l_array_source_85(Idx)
155063  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155064  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155065  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155066  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155067  , p_source_89 => l_array_source_89(Idx)
155068  , p_source_90 => l_array_source_90(Idx)
155069  , p_source_91 => l_array_source_91(Idx)
155070  , p_source_92 => l_array_source_92(Idx)
155071  , p_source_93 => l_array_source_93(Idx)
155072  , p_source_94 => l_array_source_94(Idx)
155073  , p_source_95 => l_array_source_95(Idx)
155074  , p_source_96 => l_array_source_96(Idx)
155075  , p_source_97 => l_array_source_97(Idx)
155076  , p_source_98 => l_array_source_98(Idx)
155077  , p_source_99 => l_array_source_99(Idx)
155078  , p_source_100 => l_array_source_100(Idx)
155079  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155080  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155081  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155082  , p_source_167 => g_array_event(l_event_id).array_value_char('source_167')
155083  , p_source_167_meaning => g_array_event(l_event_id).array_value_char('source_167_meaning')
155084  );
155085 If(l_balance_type_code = 'A') THEN
155086   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155087 END IF;
155088 
155089 --
155090 
155091 
155092 --
155093 AcctLineType_205 (
155094  p_application_id  => p_application_id
155095  ,p_event_id     => l_event_id
155099  ,p_balance_type_code => l_balance_type_code
155096  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155097  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155098  ,p_actual_flag => l_actual_flag
155100  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155101  
155102  , p_source_1 => l_array_source_1(Idx)
155103  , p_source_16 => l_array_source_16(Idx)
155104  , p_source_28 => l_array_source_28(Idx)
155105  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155106  , p_source_46 => l_array_source_46(Idx)
155107  , p_source_54 => l_array_source_54(Idx)
155108  , p_source_54_meaning => l_array_source_54_meaning(Idx)
155109  , p_source_58 => l_array_source_58(Idx)
155110  , p_source_60 => l_array_source_60(Idx)
155111  , p_source_62 => l_array_source_62(Idx)
155112  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155113  , p_source_69 => l_array_source_69(Idx)
155114  , p_source_70 => l_array_source_70(Idx)
155115  , p_source_71 => l_array_source_71(Idx)
155116  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155117  , p_source_73 => l_array_source_73(Idx)
155118  , p_source_74 => l_array_source_74(Idx)
155119  , p_source_75 => l_array_source_75(Idx)
155120  , p_source_76 => l_array_source_76(Idx)
155121  , p_source_77 => l_array_source_77(Idx)
155122  , p_source_78 => l_array_source_78(Idx)
155123  , p_source_82 => l_array_source_82(Idx)
155124  , p_source_83 => l_array_source_83(Idx)
155125  , p_source_84 => l_array_source_84(Idx)
155126  , p_source_85 => l_array_source_85(Idx)
155127  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155128  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155129  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155130  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155131  , p_source_89 => l_array_source_89(Idx)
155132  , p_source_90 => l_array_source_90(Idx)
155133  , p_source_91 => l_array_source_91(Idx)
155134  , p_source_92 => l_array_source_92(Idx)
155135  , p_source_93 => l_array_source_93(Idx)
155136  , p_source_94 => l_array_source_94(Idx)
155137  , p_source_95 => l_array_source_95(Idx)
155138  , p_source_96 => l_array_source_96(Idx)
155139  , p_source_97 => l_array_source_97(Idx)
155140  , p_source_98 => l_array_source_98(Idx)
155141  , p_source_99 => l_array_source_99(Idx)
155142  , p_source_100 => l_array_source_100(Idx)
155143  , p_source_145 => l_array_source_145(Idx)
155144  , p_source_145_meaning => l_array_source_145_meaning(Idx)
155145  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155146  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155147  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155148  );
155149 If(l_balance_type_code = 'A') THEN
155150   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155151 END IF;
155152 
155153 --
155154 
155155 
155156 --
155157 AcctLineType_209 (
155158  p_application_id  => p_application_id
155159  ,p_event_id     => l_event_id
155160  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155161  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155162  ,p_actual_flag => l_actual_flag
155163  ,p_balance_type_code => l_balance_type_code
155164  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155165  
155166  , p_source_1 => l_array_source_1(Idx)
155167  , p_source_16 => l_array_source_16(Idx)
155168  , p_source_28 => l_array_source_28(Idx)
155169  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155170  , p_source_46 => l_array_source_46(Idx)
155171  , p_source_58 => l_array_source_58(Idx)
155172  , p_source_60 => l_array_source_60(Idx)
155173  , p_source_62 => l_array_source_62(Idx)
155174  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155175  , p_source_69 => l_array_source_69(Idx)
155176  , p_source_70 => l_array_source_70(Idx)
155177  , p_source_71 => l_array_source_71(Idx)
155178  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155179  , p_source_73 => l_array_source_73(Idx)
155180  , p_source_74 => l_array_source_74(Idx)
155181  , p_source_75 => l_array_source_75(Idx)
155182  , p_source_76 => l_array_source_76(Idx)
155183  , p_source_77 => l_array_source_77(Idx)
155184  , p_source_78 => l_array_source_78(Idx)
155185  , p_source_82 => l_array_source_82(Idx)
155186  , p_source_83 => l_array_source_83(Idx)
155187  , p_source_84 => l_array_source_84(Idx)
155188  , p_source_85 => l_array_source_85(Idx)
155189  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155190  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155191  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155192  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155193  , p_source_89 => l_array_source_89(Idx)
155194  , p_source_90 => l_array_source_90(Idx)
155195  , p_source_91 => l_array_source_91(Idx)
155196  , p_source_92 => l_array_source_92(Idx)
155197  , p_source_93 => l_array_source_93(Idx)
155198  , p_source_94 => l_array_source_94(Idx)
155199  , p_source_95 => l_array_source_95(Idx)
155200  , p_source_96 => l_array_source_96(Idx)
155201  , p_source_97 => l_array_source_97(Idx)
155202  , p_source_98 => l_array_source_98(Idx)
155203  , p_source_99 => l_array_source_99(Idx)
155204  , p_source_100 => l_array_source_100(Idx)
155205  , p_source_145 => l_array_source_145(Idx)
155206  , p_source_145_meaning => l_array_source_145_meaning(Idx)
155207  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155208  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155209  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155210  );
155211 If(l_balance_type_code = 'A') THEN
155212   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155213 END IF;
155214 
155215 --
155216 
155217 
155218 --
155219 AcctLineType_212 (
155220  p_application_id  => p_application_id
155221  ,p_event_id     => l_event_id
155222  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155226  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155223  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155224  ,p_actual_flag => l_actual_flag
155225  ,p_balance_type_code => l_balance_type_code
155227  
155228  , p_source_1 => l_array_source_1(Idx)
155229  , p_source_16 => l_array_source_16(Idx)
155230  , p_source_28 => l_array_source_28(Idx)
155231  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155232  , p_source_47 => l_array_source_47(Idx)
155233  , p_source_58 => l_array_source_58(Idx)
155234  , p_source_60 => l_array_source_60(Idx)
155235  , p_source_62 => l_array_source_62(Idx)
155236  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155237  , p_source_69 => l_array_source_69(Idx)
155238  , p_source_70 => l_array_source_70(Idx)
155239  , p_source_71 => l_array_source_71(Idx)
155240  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155241  , p_source_73 => l_array_source_73(Idx)
155242  , p_source_74 => l_array_source_74(Idx)
155243  , p_source_75 => l_array_source_75(Idx)
155244  , p_source_76 => l_array_source_76(Idx)
155245  , p_source_77 => l_array_source_77(Idx)
155246  , p_source_78 => l_array_source_78(Idx)
155247  , p_source_82 => l_array_source_82(Idx)
155248  , p_source_83 => l_array_source_83(Idx)
155249  , p_source_84 => l_array_source_84(Idx)
155250  , p_source_85 => l_array_source_85(Idx)
155251  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155252  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155253  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155254  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155255  , p_source_89 => l_array_source_89(Idx)
155256  , p_source_90 => l_array_source_90(Idx)
155257  , p_source_91 => l_array_source_91(Idx)
155258  , p_source_92 => l_array_source_92(Idx)
155259  , p_source_93 => l_array_source_93(Idx)
155260  , p_source_94 => l_array_source_94(Idx)
155261  , p_source_95 => l_array_source_95(Idx)
155262  , p_source_96 => l_array_source_96(Idx)
155263  , p_source_97 => l_array_source_97(Idx)
155264  , p_source_98 => l_array_source_98(Idx)
155265  , p_source_99 => l_array_source_99(Idx)
155266  , p_source_100 => l_array_source_100(Idx)
155267  , p_source_145 => l_array_source_145(Idx)
155268  , p_source_145_meaning => l_array_source_145_meaning(Idx)
155269  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155270  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155271  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155272  );
155273 If(l_balance_type_code = 'A') THEN
155274   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155275 END IF;
155276 
155277 --
155278 
155279 
155280 --
155281 AcctLineType_217 (
155282  p_application_id  => p_application_id
155283  ,p_event_id     => l_event_id
155284  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155285  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155286  ,p_actual_flag => l_actual_flag
155287  ,p_balance_type_code => l_balance_type_code
155288  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155289  
155290  , p_source_1 => l_array_source_1(Idx)
155291  , p_source_16 => l_array_source_16(Idx)
155292  , p_source_28 => l_array_source_28(Idx)
155293  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155294  , p_source_46 => l_array_source_46(Idx)
155295  , p_source_54 => l_array_source_54(Idx)
155296  , p_source_54_meaning => l_array_source_54_meaning(Idx)
155297  , p_source_58 => l_array_source_58(Idx)
155298  , p_source_60 => l_array_source_60(Idx)
155299  , p_source_62 => l_array_source_62(Idx)
155300  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155301  , p_source_69 => l_array_source_69(Idx)
155302  , p_source_70 => l_array_source_70(Idx)
155303  , p_source_71 => l_array_source_71(Idx)
155304  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155305  , p_source_73 => l_array_source_73(Idx)
155306  , p_source_74 => l_array_source_74(Idx)
155307  , p_source_75 => l_array_source_75(Idx)
155308  , p_source_76 => l_array_source_76(Idx)
155309  , p_source_77 => l_array_source_77(Idx)
155310  , p_source_78 => l_array_source_78(Idx)
155311  , p_source_79 => l_array_source_79(Idx)
155312  , p_source_80 => l_array_source_80(Idx)
155313  , p_source_81 => l_array_source_81(Idx)
155314  , p_source_82 => l_array_source_82(Idx)
155315  , p_source_83 => l_array_source_83(Idx)
155316  , p_source_84 => l_array_source_84(Idx)
155317  , p_source_85 => l_array_source_85(Idx)
155318  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155319  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155320  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155321  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155322  , p_source_89 => l_array_source_89(Idx)
155323  , p_source_90 => l_array_source_90(Idx)
155324  , p_source_91 => l_array_source_91(Idx)
155325  , p_source_92 => l_array_source_92(Idx)
155326  , p_source_93 => l_array_source_93(Idx)
155327  , p_source_94 => l_array_source_94(Idx)
155328  , p_source_95 => l_array_source_95(Idx)
155329  , p_source_96 => l_array_source_96(Idx)
155330  , p_source_97 => l_array_source_97(Idx)
155331  , p_source_98 => l_array_source_98(Idx)
155332  , p_source_99 => l_array_source_99(Idx)
155333  , p_source_100 => l_array_source_100(Idx)
155334  , p_source_145 => l_array_source_145(Idx)
155335  , p_source_145_meaning => l_array_source_145_meaning(Idx)
155336  );
155337 If(l_balance_type_code = 'A') THEN
155338   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155339 END IF;
155340 
155341 --
155342 
155343 
155344 --
155345 AcctLineType_221 (
155346  p_application_id  => p_application_id
155347  ,p_event_id     => l_event_id
155348  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155349  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155350  ,p_actual_flag => l_actual_flag
155351  ,p_balance_type_code => l_balance_type_code
155355  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
155352  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155353  
155354  , p_source_1 => l_array_source_1(Idx)
155356  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
155357  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
155358  , p_source_16 => l_array_source_16(Idx)
155359  , p_source_17 => l_array_source_17(Idx)
155360  , p_source_17_meaning => l_array_source_17_meaning(Idx)
155361  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
155362  , p_source_25 => l_array_source_25(Idx)
155363  , p_source_28 => l_array_source_28(Idx)
155364  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155365  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
155366  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
155367  , p_source_54 => l_array_source_54(Idx)
155368  , p_source_54_meaning => l_array_source_54_meaning(Idx)
155369  , p_source_58 => l_array_source_58(Idx)
155370  , p_source_60 => l_array_source_60(Idx)
155371  , p_source_62 => l_array_source_62(Idx)
155372  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155373  , p_source_69 => l_array_source_69(Idx)
155374  , p_source_70 => l_array_source_70(Idx)
155375  , p_source_71 => l_array_source_71(Idx)
155376  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155377  , p_source_73 => l_array_source_73(Idx)
155378  , p_source_74 => l_array_source_74(Idx)
155379  , p_source_75 => l_array_source_75(Idx)
155380  , p_source_76 => l_array_source_76(Idx)
155381  , p_source_77 => l_array_source_77(Idx)
155382  , p_source_78 => l_array_source_78(Idx)
155383  , p_source_82 => l_array_source_82(Idx)
155384  , p_source_83 => l_array_source_83(Idx)
155385  , p_source_84 => l_array_source_84(Idx)
155386  , p_source_85 => l_array_source_85(Idx)
155387  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155388  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155389  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155390  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155391  , p_source_89 => l_array_source_89(Idx)
155392  , p_source_90 => l_array_source_90(Idx)
155393  , p_source_91 => l_array_source_91(Idx)
155394  , p_source_92 => l_array_source_92(Idx)
155395  , p_source_93 => l_array_source_93(Idx)
155396  , p_source_94 => l_array_source_94(Idx)
155397  , p_source_95 => l_array_source_95(Idx)
155398  , p_source_96 => l_array_source_96(Idx)
155399  , p_source_97 => l_array_source_97(Idx)
155400  , p_source_98 => l_array_source_98(Idx)
155401  , p_source_99 => l_array_source_99(Idx)
155402  , p_source_100 => l_array_source_100(Idx)
155403  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155404  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155405  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155406  );
155407 If(l_balance_type_code = 'A') THEN
155408   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155409 END IF;
155410 
155411 --
155412 
155413 
155414 --
155415 AcctLineType_225 (
155416  p_application_id  => p_application_id
155417  ,p_event_id     => l_event_id
155418  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155419  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155420  ,p_actual_flag => l_actual_flag
155421  ,p_balance_type_code => l_balance_type_code
155422  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155423  
155424  , p_source_1 => l_array_source_1(Idx)
155425  , p_source_16 => l_array_source_16(Idx)
155426  , p_source_25 => l_array_source_25(Idx)
155427  , p_source_28 => l_array_source_28(Idx)
155428  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155429  , p_source_54 => l_array_source_54(Idx)
155430  , p_source_54_meaning => l_array_source_54_meaning(Idx)
155431  , p_source_58 => l_array_source_58(Idx)
155432  , p_source_60 => l_array_source_60(Idx)
155433  , p_source_62 => l_array_source_62(Idx)
155434  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155435  , p_source_69 => l_array_source_69(Idx)
155436  , p_source_70 => l_array_source_70(Idx)
155437  , p_source_71 => l_array_source_71(Idx)
155438  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155439  , p_source_73 => l_array_source_73(Idx)
155440  , p_source_74 => l_array_source_74(Idx)
155441  , p_source_75 => l_array_source_75(Idx)
155442  , p_source_76 => l_array_source_76(Idx)
155443  , p_source_77 => l_array_source_77(Idx)
155444  , p_source_78 => l_array_source_78(Idx)
155445  , p_source_82 => l_array_source_82(Idx)
155446  , p_source_83 => l_array_source_83(Idx)
155447  , p_source_84 => l_array_source_84(Idx)
155448  , p_source_85 => l_array_source_85(Idx)
155449  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155450  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155451  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155452  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155453  , p_source_89 => l_array_source_89(Idx)
155454  , p_source_90 => l_array_source_90(Idx)
155455  , p_source_91 => l_array_source_91(Idx)
155456  , p_source_92 => l_array_source_92(Idx)
155457  , p_source_93 => l_array_source_93(Idx)
155458  , p_source_94 => l_array_source_94(Idx)
155459  , p_source_95 => l_array_source_95(Idx)
155460  , p_source_96 => l_array_source_96(Idx)
155461  , p_source_97 => l_array_source_97(Idx)
155462  , p_source_98 => l_array_source_98(Idx)
155463  , p_source_99 => l_array_source_99(Idx)
155464  , p_source_100 => l_array_source_100(Idx)
155465  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155466  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155467  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155468  );
155469 If(l_balance_type_code = 'A') THEN
155470   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155471 END IF;
155475 
155472 
155473 --
155474 
155476 --
155477 AcctLineType_229 (
155478  p_application_id  => p_application_id
155479  ,p_event_id     => l_event_id
155480  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155481  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155482  ,p_actual_flag => l_actual_flag
155483  ,p_balance_type_code => l_balance_type_code
155484  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155485  
155486  , p_source_1 => l_array_source_1(Idx)
155487  , p_source_16 => l_array_source_16(Idx)
155488  , p_source_25 => l_array_source_25(Idx)
155489  , p_source_28 => l_array_source_28(Idx)
155490  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155491  , p_source_54 => l_array_source_54(Idx)
155492  , p_source_54_meaning => l_array_source_54_meaning(Idx)
155493  , p_source_58 => l_array_source_58(Idx)
155494  , p_source_60 => l_array_source_60(Idx)
155495  , p_source_62 => l_array_source_62(Idx)
155496  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155497  , p_source_69 => l_array_source_69(Idx)
155498  , p_source_70 => l_array_source_70(Idx)
155499  , p_source_71 => l_array_source_71(Idx)
155500  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155501  , p_source_73 => l_array_source_73(Idx)
155502  , p_source_74 => l_array_source_74(Idx)
155503  , p_source_75 => l_array_source_75(Idx)
155504  , p_source_76 => l_array_source_76(Idx)
155505  , p_source_77 => l_array_source_77(Idx)
155506  , p_source_78 => l_array_source_78(Idx)
155507  , p_source_82 => l_array_source_82(Idx)
155508  , p_source_83 => l_array_source_83(Idx)
155509  , p_source_84 => l_array_source_84(Idx)
155510  , p_source_85 => l_array_source_85(Idx)
155511  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155512  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155513  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155514  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155515  , p_source_89 => l_array_source_89(Idx)
155516  , p_source_90 => l_array_source_90(Idx)
155517  , p_source_91 => l_array_source_91(Idx)
155518  , p_source_92 => l_array_source_92(Idx)
155519  , p_source_93 => l_array_source_93(Idx)
155520  , p_source_94 => l_array_source_94(Idx)
155521  , p_source_95 => l_array_source_95(Idx)
155522  , p_source_96 => l_array_source_96(Idx)
155523  , p_source_97 => l_array_source_97(Idx)
155524  , p_source_98 => l_array_source_98(Idx)
155525  , p_source_99 => l_array_source_99(Idx)
155526  , p_source_100 => l_array_source_100(Idx)
155527  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155528  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155529  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155530  );
155531 If(l_balance_type_code = 'A') THEN
155532   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155533 END IF;
155534 
155535 --
155536 
155537 
155538 --
155539 AcctLineType_235 (
155540  p_application_id  => p_application_id
155541  ,p_event_id     => l_event_id
155542  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155543  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155544  ,p_actual_flag => l_actual_flag
155545  ,p_balance_type_code => l_balance_type_code
155546  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155547  
155548  , p_source_1 => l_array_source_1(Idx)
155549  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
155550  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
155551  , p_source_16 => l_array_source_16(Idx)
155552  , p_source_25 => l_array_source_25(Idx)
155553  , p_source_28 => l_array_source_28(Idx)
155554  , p_source_28_meaning => l_array_source_28_meaning(Idx)
155555  , p_source_39 => l_array_source_39(Idx)
155556  , p_source_58 => l_array_source_58(Idx)
155557  , p_source_60 => l_array_source_60(Idx)
155558  , p_source_62 => l_array_source_62(Idx)
155559  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
155560  , p_source_69 => l_array_source_69(Idx)
155561  , p_source_70 => l_array_source_70(Idx)
155562  , p_source_71 => l_array_source_71(Idx)
155563  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
155564  , p_source_73 => l_array_source_73(Idx)
155565  , p_source_74 => l_array_source_74(Idx)
155566  , p_source_75 => l_array_source_75(Idx)
155567  , p_source_76 => l_array_source_76(Idx)
155568  , p_source_77 => l_array_source_77(Idx)
155569  , p_source_78 => l_array_source_78(Idx)
155570  , p_source_82 => l_array_source_82(Idx)
155571  , p_source_83 => l_array_source_83(Idx)
155572  , p_source_84 => l_array_source_84(Idx)
155573  , p_source_85 => l_array_source_85(Idx)
155574  , p_source_85_meaning => l_array_source_85_meaning(Idx)
155575  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
155576  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
155577  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
155578  , p_source_89 => l_array_source_89(Idx)
155579  , p_source_90 => l_array_source_90(Idx)
155580  , p_source_91 => l_array_source_91(Idx)
155581  , p_source_92 => l_array_source_92(Idx)
155582  , p_source_93 => l_array_source_93(Idx)
155583  , p_source_94 => l_array_source_94(Idx)
155584  , p_source_95 => l_array_source_95(Idx)
155585  , p_source_96 => l_array_source_96(Idx)
155586  , p_source_97 => l_array_source_97(Idx)
155587  , p_source_98 => l_array_source_98(Idx)
155588  , p_source_99 => l_array_source_99(Idx)
155589  , p_source_100 => l_array_source_100(Idx)
155590  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
155591  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
155592  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
155593  );
155594 If(l_balance_type_code = 'A') THEN
155595   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155596 END IF;
155597 
155598 --
155599 
155603       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
155600       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
155601       -- or secondary ledger that has different currency with primary
155602       -- or alc that is calculated by sla
155604             (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'))
155605 
155606 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
155607 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
155608           AND (l_actual_flag = 'A')) THEN
155609         XLA_AE_LINES_PKG.CreateGainOrLossLines(
155610           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
155611          ,p_application_id   => p_application_id
155612          ,p_amb_context_code => 'DEFAULT'
155613          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
155614          ,p_event_class_code => C_EVENT_CLASS_CODE
155615          ,p_event_type_code  => C_EVENT_TYPE_CODE
155616          
155617          ,p_gain_ccid        => -1
155618          ,p_loss_ccid        => -1
155619 
155620          ,p_actual_flag      => l_actual_flag
155621          ,p_enc_flag         => null
155622          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
155623          ,p_enc_g_l_ref      => null
155624          );
155625       END IF;
155626    END IF;
155627 END IF;
155628 
155629    ELSE
155630       --
155631       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
155632       --
155633       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
155634          trace
155635             (p_msg      => 'Trancaction revesal option is Y'
155636             ,p_level    => C_LEVEL_STATEMENT
155637             ,p_module   => l_log_module);
155638       END IF;
155639    END IF;
155640 
155641 END LOOP;
155642 l_result := XLA_AE_LINES_PKG.InsertLines ;
155643 end loop;
155644 close line_cur;
155645 
155646 
155647 --
155648 -- insert headers into xla_ae_headers_gt table
155649 --
155650 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
155651 
155652 -- insert into errors table here.
155653 
155654 END LOOP;
155655 
155656 --
155657 -- 4865292
155658 --
155659 -- Compare g_hdr_extract_count with event count in
155660 -- CreateHeadersAndLines.
155661 --
155662 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
155663 
155664 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
155665    trace (p_msg     => '# rows extracted from header extract objects '
155666                     || ' (running total): '
155667                     || g_hdr_extract_count
155668          ,p_level   => C_LEVEL_STATEMENT
155669          ,p_module  => l_log_module);
155670 END IF;
155671 
155672 CLOSE header_cur;
155673 --
155674 
155675 --
155676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
155677    trace
155678       (p_msg      => 'END of EventClass_248'
155679       ,p_level    => C_LEVEL_PROCEDURE
155680       ,p_module   => l_log_module);
155681 END IF;
155682 --
155683 RETURN l_result;
155684 EXCEPTION
155685 WHEN xla_exceptions_pkg.application_exception THEN
155686    
155687 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
155688 
155689    
155690 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
155691 
155692    RAISE;
155693 
155694 WHEN NO_DATA_FOUND THEN
155695 
155696 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
155697 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
155698 
155699 FOR header_record IN header_cur
155700 LOOP
155701     l_array_header_events(header_record.event_id) := header_record.event_id;
155702 END LOOP;
155703 
155704 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
155705 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
155706 
155707 fnd_file.put_line(fnd_file.LOG, '                    ');
155708 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
155709 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
155710 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
155711 
155712 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
155713 LOOP
155714 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
155715 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
155716         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
155717 	END IF;
155718 END LOOP;
155719 
155720 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
155721 fnd_file.put_line(fnd_file.LOG, '                    ');
155722 
155723 
155724 xla_exceptions_pkg.raise_message
155725       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_248');
155726 
155727 
155728 WHEN OTHERS THEN
155729    xla_exceptions_pkg.raise_message
155730       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_248');
155731 END EventClass_248;
155732 --
155733 
155734 ---------------------------------------
155735 --
155736 -- PRIVATE PROCEDURE
155737 --         insert_sources_249
155738 --
155739 ----------------------------------------
155740 --
155741 PROCEDURE insert_sources_249(
155742                                 p_target_ledger_id       IN NUMBER
155743                               , p_language               IN VARCHAR2
155744                               , p_sla_ledger_id          IN NUMBER
155745                               , p_pad_start_date         IN DATE
155746                               , p_pad_end_date           IN DATE
155750 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
155747                          )
155748 IS
155749 
155751 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
155752 p_apps_owner                   VARCHAR2(30);
155753 l_log_module                   VARCHAR2(240);
155754 BEGIN
155755 IF g_log_enabled THEN
155756       l_log_module := C_DEFAULT_MODULE||'.insert_sources_249';
155757 END IF;
155758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
155759 
155760       trace
155761          (p_msg      => 'BEGIN of insert_sources_249'
155762          ,p_level    => C_LEVEL_PROCEDURE
155763          ,p_module   => l_log_module);
155764 
155765 END IF;
155766 
155767 -- select APPS owner
155768 SELECT oracle_username
155769   INTO p_apps_owner
155770   FROM fnd_oracle_userid
155771  WHERE read_only_flag = 'U'
155772 ;
155773 
155774 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
155775       trace
155776          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
155777                         ' - p_language = '||p_language||
155778                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
155779                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
155780                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
155781                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
155782          ,p_level    => C_LEVEL_STATEMENT
155783          ,p_module   => l_log_module);
155784 END IF;
155785 
155786 
155787 --
155788 INSERT INTO xla_diag_sources --hdr2
155789 (
155790         event_id
155791       , ledger_id
155792       , sla_ledger_id
155793       , description_language
155794       , object_name
155795       , object_type_code
155796       , line_number
155797       , source_application_id
155798       , source_type_code
155799       , source_code
155800       , source_value
155801       , source_meaning
155802       , created_by
155803       , creation_date
155804       , last_update_date
155805       , last_updated_by
155806       , last_update_login
155807       , program_update_date
155808       , program_application_id
155809       , program_id
155810       , request_id
155811 )
155812 SELECT
155813         event_id
155814       , p_target_ledger_id
155815       , p_sla_ledger_id
155816       , p_language
155817       , object_name
155818       , object_type_code
155819       , line_number
155820       , source_application_id
155821       , source_type_code
155822       , source_code
155823       , SUBSTR(source_value ,1,1996)
155824       , SUBSTR(source_meaning ,1,200)
155825       , xla_environment_pkg.g_Usr_Id
155826       , TRUNC(SYSDATE)
155827       , TRUNC(SYSDATE)
155828       , xla_environment_pkg.g_Usr_Id
155829       , xla_environment_pkg.g_Login_Id
155830       , TRUNC(SYSDATE)
155831       , xla_environment_pkg.g_Prog_Appl_Id
155832       , xla_environment_pkg.g_Prog_Id
155833       , xla_environment_pkg.g_Req_Id
155834   FROM (
155835        SELECT xet.event_id                  event_id
155836             , 0                          line_number
155837             , CASE r
155838                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
155839                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
155840                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
155841                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155842                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
155843                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
155844                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155845                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155846                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155847                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155848                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155849                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155850                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155851                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155852                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155853                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155854                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
155855                 
155856                ELSE null
155857               END                           object_name
155858             , CASE r
155859                 WHEN 1 THEN 'HEADER' 
155860                 WHEN 2 THEN 'HEADER' 
155861                 WHEN 3 THEN 'HEADER' 
155862                 WHEN 4 THEN 'HEADER' 
155863                 WHEN 5 THEN 'HEADER' 
155864                 WHEN 6 THEN 'HEADER' 
155865                 WHEN 7 THEN 'HEADER' 
155866                 WHEN 8 THEN 'HEADER' 
155867                 WHEN 9 THEN 'HEADER' 
155868                 WHEN 10 THEN 'HEADER' 
155869                 WHEN 11 THEN 'HEADER' 
155870                 WHEN 12 THEN 'HEADER' 
155871                 WHEN 13 THEN 'HEADER' 
155872                 WHEN 14 THEN 'HEADER' 
155873                 WHEN 15 THEN 'HEADER' 
155874                 WHEN 16 THEN 'HEADER' 
155875                 WHEN 17 THEN 'HEADER' 
155876                 
155877                 ELSE null
155878               END                           object_type_code
155879             , CASE r
155880                 WHEN 1 THEN '200' 
155881                 WHEN 2 THEN '200' 
155882                 WHEN 3 THEN '200' 
155883                 WHEN 4 THEN '200' 
155884                 WHEN 5 THEN '200' 
155885                 WHEN 6 THEN '200' 
155886                 WHEN 7 THEN '200' 
155887                 WHEN 8 THEN '200' 
155888                 WHEN 9 THEN '200' 
155889                 WHEN 10 THEN '200' 
155890                 WHEN 11 THEN '200' 
155891                 WHEN 12 THEN '200' 
155892                 WHEN 13 THEN '200' 
155893                 WHEN 14 THEN '200' 
155897                 
155894                 WHEN 15 THEN '200' 
155895                 WHEN 16 THEN '200' 
155896                 WHEN 17 THEN '200' 
155898                 ELSE null
155899               END                           source_application_id
155900             , 'S'             source_type_code
155901             , CASE r
155902                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
155903                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
155904                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
155905                 WHEN 4 THEN 'AI_ACCTS_PAY_CCID' 
155906                 WHEN 5 THEN 'FSP_RETAINAGE_ACCOUNT' 
155907                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
155908                 WHEN 7 THEN 'AI_INVOICE_ID' 
155909                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
155910                 WHEN 9 THEN 'AI_VENDOR_ID' 
155911                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
155912                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
155913                 WHEN 12 THEN 'INV_EXCHANGE_DATE' 
155914                 WHEN 13 THEN 'INV_EXCHANGE_RATE' 
155915                 WHEN 14 THEN 'INV_EXCHANGE_RATE_TYPE' 
155916                 WHEN 15 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
155917                 WHEN 16 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
155918                 WHEN 17 THEN 'INV_DOC_SEQUENCE_VALUE' 
155919                 
155920                 ELSE null
155921               END                           source_code
155922             , CASE r
155923                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
155924                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
155925                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
155926                 WHEN 4 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
155927                 WHEN 5 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
155928                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
155929                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
155930                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
155931                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
155932                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
155933                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
155934                 WHEN 12 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
155935                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
155936                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
155937                 WHEN 15 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
155938                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
155939                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
155940                 
155941                 ELSE null
155942               END                           source_value
155943             , CASE r
155944                 WHEN 1 THEN fvl10.meaning
155945                 WHEN 6 THEN fvl43.meaning
155946                 
155947                 ELSE null
155948               END               source_meaning
155949          FROM xla_events_gt     xet  
155950       , AP_INVOICE_EXTRACT_HEADER_V  h2
155951       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
155952   , fnd_lookup_values    fvl10
155953   , fnd_lookup_values    fvl43
155954              ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
155955          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
155956            AND xet.event_class_code = C_EVENT_CLASS_CODE
155957               AND h2.event_id = xet.event_id
155958  AND h4.asp_org_id= h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
155959   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
155960   AND fvl10.view_application_id(+) = 200
155961   AND fvl10.language(+)            = USERENV('LANG')
155962      AND fvl43.lookup_type(+)         = 'YES_NO'
155963   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
155964   AND fvl43.view_application_id(+) = 0
155965   AND fvl43.language(+)            = USERENV('LANG')
155966   
155967 )
155968 ;
155969 --
155970 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
155971 
155972       trace
155973          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
155974          ,p_level    => C_LEVEL_STATEMENT
155975          ,p_module   => l_log_module);
155976 
155977 END IF;
155978 --
155979 
155980 
155981 
155982 --
155983 INSERT INTO xla_diag_sources  --line2
155984 (
155985         event_id
155986       , ledger_id
155987       , sla_ledger_id
155988       , description_language
155989       , object_name
155990       , object_type_code
155991       , line_number
155992       , source_application_id
155993       , source_type_code
155994       , source_code
155995       , source_value
155996       , source_meaning
155997       , created_by
155998       , creation_date
155999       , last_update_date
156000       , last_updated_by
156001       , last_update_login
156002       , program_update_date
156003       , program_application_id
156004       , program_id
156005       , request_id
156006 )
156007 SELECT  event_id
156008       , p_target_ledger_id
156009       , p_sla_ledger_id
156010       , p_language
156011       , object_name
156012       , object_type_code
156013       , line_number
156014       , source_application_id
156015       , source_type_code
156016       , source_code
156017       , SUBSTR(source_value,1,1996)
156018       , SUBSTR(source_meaning ,1,200)
156019       , xla_environment_pkg.g_Usr_Id
156020       , TRUNC(SYSDATE)
156021       , TRUNC(SYSDATE)
156022       , xla_environment_pkg.g_Usr_Id
156023       , xla_environment_pkg.g_Login_Id
156024       , TRUNC(SYSDATE)
156025       , xla_environment_pkg.g_Prog_Appl_Id
156026       , xla_environment_pkg.g_Prog_Id
156027       , xla_environment_pkg.g_Req_Id
156028   FROM (
156029        SELECT xet.event_id                  event_id
156030             , l1.line_number                 line_number
156031             , CASE r
156035                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156032                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156033                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156034                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156036                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156037                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156038                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156039                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156040                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156041                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156042                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156043                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156044                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156045                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156046                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156047                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156048                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156049                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156050                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156051                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156052                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156053                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156054                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156055                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156056                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156057                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156058                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156059                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
156060                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
156061                 WHEN 30 THEN 'AP_PO_HEADERS_EXTRACT_V' 
156062                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156063                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156064                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156065                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156066                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156067                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156068                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
156069                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156070                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156071                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156072                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156073                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156074                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156075                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156076                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156077                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
156078                 
156079                ELSE null
156080               END                           object_name
156081             , CASE r
156082                 WHEN 1 THEN 'LINE' 
156083                 WHEN 2 THEN 'LINE' 
156084                 WHEN 3 THEN 'LINE' 
156085                 WHEN 4 THEN 'LINE' 
156086                 WHEN 5 THEN 'LINE' 
156087                 WHEN 6 THEN 'LINE' 
156088                 WHEN 7 THEN 'LINE' 
156089                 WHEN 8 THEN 'LINE' 
156090                 WHEN 9 THEN 'LINE' 
156091                 WHEN 10 THEN 'LINE' 
156092                 WHEN 11 THEN 'LINE' 
156093                 WHEN 12 THEN 'LINE' 
156094                 WHEN 13 THEN 'LINE' 
156095                 WHEN 14 THEN 'LINE' 
156096                 WHEN 15 THEN 'LINE' 
156097                 WHEN 16 THEN 'LINE' 
156098                 WHEN 17 THEN 'LINE' 
156099                 WHEN 18 THEN 'LINE' 
156100                 WHEN 19 THEN 'LINE' 
156101                 WHEN 20 THEN 'LINE' 
156102                 WHEN 21 THEN 'LINE' 
156103                 WHEN 22 THEN 'LINE' 
156104                 WHEN 23 THEN 'LINE' 
156105                 WHEN 24 THEN 'LINE' 
156106                 WHEN 25 THEN 'LINE' 
156107                 WHEN 26 THEN 'LINE' 
156108                 WHEN 27 THEN 'LINE' 
156109                 WHEN 28 THEN 'LINE' 
156110                 WHEN 29 THEN 'LINE' 
156111                 WHEN 30 THEN 'LINE' 
156112                 WHEN 31 THEN 'LINE' 
156113                 WHEN 32 THEN 'LINE' 
156114                 WHEN 33 THEN 'LINE' 
156115                 WHEN 34 THEN 'LINE' 
156116                 WHEN 35 THEN 'LINE' 
156117                 WHEN 36 THEN 'LINE' 
156118                 WHEN 37 THEN 'LINE' 
156119                 WHEN 38 THEN 'LINE' 
156120                 WHEN 39 THEN 'LINE' 
156121                 WHEN 40 THEN 'LINE' 
156122                 WHEN 41 THEN 'LINE' 
156123                 WHEN 42 THEN 'LINE' 
156124                 WHEN 43 THEN 'LINE' 
156125                 WHEN 44 THEN 'LINE' 
156126                 WHEN 45 THEN 'LINE' 
156127                 WHEN 46 THEN 'LINE' 
156128                 
156129                 ELSE null
156130               END                           object_type_code
156131             , CASE r
156132                 WHEN 1 THEN '200' 
156133                 WHEN 2 THEN '200' 
156134                 WHEN 3 THEN '200' 
156135                 WHEN 4 THEN '200' 
156136                 WHEN 5 THEN '200' 
156137                 WHEN 6 THEN '200' 
156138                 WHEN 7 THEN '200' 
156139                 WHEN 8 THEN '200' 
156140                 WHEN 9 THEN '200' 
156141                 WHEN 10 THEN '200' 
156142                 WHEN 11 THEN '200' 
156143                 WHEN 12 THEN '200' 
156144                 WHEN 13 THEN '200' 
156145                 WHEN 14 THEN '200' 
156146                 WHEN 15 THEN '200' 
156147                 WHEN 16 THEN '200' 
156148                 WHEN 17 THEN '200' 
156149                 WHEN 18 THEN '200' 
156150                 WHEN 19 THEN '200' 
156154                 WHEN 23 THEN '200' 
156151                 WHEN 20 THEN '200' 
156152                 WHEN 21 THEN '200' 
156153                 WHEN 22 THEN '200' 
156155                 WHEN 24 THEN '200' 
156156                 WHEN 25 THEN '200' 
156157                 WHEN 26 THEN '200' 
156158                 WHEN 27 THEN '200' 
156159                 WHEN 28 THEN '200' 
156160                 WHEN 29 THEN '200' 
156161                 WHEN 30 THEN '200' 
156162                 WHEN 31 THEN '200' 
156163                 WHEN 32 THEN '200' 
156164                 WHEN 33 THEN '200' 
156165                 WHEN 34 THEN '200' 
156166                 WHEN 35 THEN '200' 
156167                 WHEN 36 THEN '200' 
156168                 WHEN 37 THEN '200' 
156169                 WHEN 38 THEN '200' 
156170                 WHEN 39 THEN '200' 
156171                 WHEN 40 THEN '200' 
156172                 WHEN 41 THEN '200' 
156173                 WHEN 42 THEN '200' 
156174                 WHEN 43 THEN '200' 
156175                 WHEN 44 THEN '200' 
156176                 WHEN 45 THEN '200' 
156177                 WHEN 46 THEN '200' 
156178                 
156179                 ELSE null
156180               END                           source_application_id
156181             , 'S'             source_type_code
156182             , CASE r
156183                 WHEN 1 THEN 'AID_DESCRIPTION' 
156184                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
156185                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
156186                 WHEN 4 THEN 'AID_DIST_CCID' 
156187                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
156188                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
156189                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
156190                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
156191                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
156192                 WHEN 10 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
156193                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
156194                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
156195                 WHEN 13 THEN 'ALLOC_TO_MAIN_DIST_ID' 
156196                 WHEN 14 THEN 'BUS_FLOW_PO_APP_ID' 
156197                 WHEN 15 THEN 'BUS_FLOW_PO_DIST_TYPE' 
156198                 WHEN 16 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
156199                 WHEN 17 THEN 'BUS_FLOW_PO_DIST_ID' 
156200                 WHEN 18 THEN 'BUS_FLOW_PO_DOC_ID' 
156201                 WHEN 19 THEN 'AID_INVOICE_DIST_ID' 
156202                 WHEN 20 THEN 'UPG_ENC_CR_CCID' 
156203                 WHEN 21 THEN 'UPG_ENC_CR_AMT' 
156204                 WHEN 22 THEN 'UPG_ENC_CR_BASE_AMT' 
156205                 WHEN 23 THEN 'UPG_ENC_DR_CCID' 
156206                 WHEN 24 THEN 'UPG_ENC_DR_AMT' 
156207                 WHEN 25 THEN 'UPG_ENC_DR_BASE_AMT' 
156208                 WHEN 26 THEN 'UPG_AP_ENCUM_OPTION' 
156209                 WHEN 27 THEN 'AID_AMOUNT' 
156210                 WHEN 28 THEN 'POH_RATE_DATE' 
156211                 WHEN 29 THEN 'POH_RATE' 
156212                 WHEN 30 THEN 'POH_RATE_TYPE' 
156213                 WHEN 31 THEN 'DEFERRED_END_DATE' 
156214                 WHEN 32 THEN 'DEFERRED_OPTION' 
156215                 WHEN 33 THEN 'DEFERRED_START_DATE' 
156216                 WHEN 34 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
156217                 WHEN 35 THEN 'AID_PARENT_REVERSAL_ID' 
156218                 WHEN 36 THEN 'TAX_LINE_ID' 
156219                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
156220                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
156221                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
156222                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
156223                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
156224                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
156225                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
156226                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
156227                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
156228                 WHEN 46 THEN 'SELF_ASSESSED_TAX_FLAG' 
156229                 
156230                 ELSE null
156231               END                           source_code
156232             , CASE r
156233                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
156234                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
156235                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
156236                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
156237                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
156238                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
156239                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
156240                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
156241                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
156242                 WHEN 10 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
156243                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
156244                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
156245                 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
156246                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
156247                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
156248                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
156249                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
156250                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
156251                 WHEN 19 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
156252                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
156253                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
156254                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
156255                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
156256                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
156257                 WHEN 25 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
156258                 WHEN 26 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
156259                 WHEN 27 THEN TO_CHAR(l1.AID_AMOUNT)
156260                 WHEN 28 THEN TO_CHAR(l3.POH_RATE_DATE)
156261                 WHEN 29 THEN TO_CHAR(l3.POH_RATE)
156262                 WHEN 30 THEN TO_CHAR(l3.POH_RATE_TYPE)
156266                 WHEN 34 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
156263                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_END_DATE)
156264                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_OPTION)
156265                 WHEN 33 THEN TO_CHAR(l1.DEFERRED_START_DATE)
156267                 WHEN 35 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
156268                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
156269                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
156270                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
156271                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
156272                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
156273                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
156274                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
156275                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
156276                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
156277                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
156278                 WHEN 46 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
156279                 
156280                 ELSE null
156281               END                           source_value
156282             , CASE r
156283                 WHEN 3 THEN fvl17.meaning
156284                 WHEN 5 THEN fvl28.meaning
156285                 WHEN 10 THEN fvl54.meaning
156286                 WHEN 34 THEN fvl85.meaning
156287                 WHEN 46 THEN fvl145.meaning
156288                 
156289                 ELSE null
156290               END               source_meaning
156291          FROM  xla_events_gt     xet  
156292         , AP_INVOICE_EXTRACT_DETAILS_V  l1
156293         , AP_PO_HEADERS_EXTRACT_V  l3
156294         , ZX_AP_DEF_TAX_EXTRACT_V  l5
156295         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
156296   , fnd_lookup_values    fvl17
156297   , fnd_lookup_values    fvl28
156298   , fnd_lookup_values    fvl54
156299   , fnd_lookup_values    fvl85
156300   , fnd_lookup_values    fvl145
156301             , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
156302         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
156303           AND xet.event_class_code = C_EVENT_CLASS_CODE
156304             AND l1.event_id          = xet.event_id
156305  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
156306   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
156307   AND fvl17.view_application_id(+) = 201
156308   AND fvl17.language(+)            = USERENV('LANG')
156309      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
156310   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
156311   AND fvl28.view_application_id(+) = 200
156312   AND fvl28.language(+)            = USERENV('LANG')
156313      AND fvl54.lookup_type(+)         = 'YES_NO'
156314   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
156315   AND fvl54.view_application_id(+) = 0
156316   AND fvl54.language(+)            = USERENV('LANG')
156317      AND fvl85.lookup_type(+)         = 'YES_NO'
156318   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
156319   AND fvl85.view_application_id(+) = 0
156320   AND fvl85.language(+)            = USERENV('LANG')
156321      AND fvl145.lookup_type(+)         = 'YES_NO'
156322   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
156323   AND fvl145.view_application_id(+) = 0
156324   AND fvl145.language(+)            = USERENV('LANG')
156325   
156326 )
156327 ;
156328 --
156329 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156330 
156331       trace
156332          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
156333          ,p_level    => C_LEVEL_STATEMENT
156334          ,p_module   => l_log_module);
156335 
156336 END IF;
156337 
156338 
156339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156340       trace
156341          (p_msg      => 'END of insert_sources_249'
156342          ,p_level    => C_LEVEL_PROCEDURE
156343          ,p_module   => l_log_module);
156344 END IF;
156345 EXCEPTION
156346   WHEN xla_exceptions_pkg.application_exception THEN
156347       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
156348             trace
156349                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
156350                ,p_level    => C_LEVEL_EXCEPTION
156351                ,p_module   => l_log_module);
156352       END IF;
156353       RAISE;
156354   WHEN OTHERS THEN
156355       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
156356             trace
156357                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
156358                ,p_level    => C_LEVEL_EXCEPTION
156359                ,p_module   => l_log_module);
156360        END IF;
156361        xla_exceptions_pkg.raise_message
156362            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_249');
156363 END insert_sources_249;
156364 --
156365 
156366 ---------------------------------------
156367 --
156368 -- PRIVATE FUNCTION
156369 --         EventClass_249
156370 --
156371 ----------------------------------------
156372 --
156373 FUNCTION EventClass_249
156374        (p_application_id         IN NUMBER
156375        ,p_base_ledger_id         IN NUMBER
156376        ,p_target_ledger_id       IN NUMBER
156377        ,p_language               IN VARCHAR2
156378        ,p_currency_code          IN VARCHAR2
156379        ,p_sla_ledger_id          IN NUMBER
156380        ,p_pad_start_date         IN DATE
156381        ,p_pad_end_date           IN DATE
156382        ,p_primary_ledger_id      IN NUMBER)
156383 RETURN BOOLEAN IS
156384 --
156385 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
156386 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
156387 
156388 l_calculate_acctd_flag   VARCHAR2(1) :='N';
156389 l_calculate_g_l_flag     VARCHAR2(1) :='N';
156390 --
156394 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156391 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156392 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156393 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156395 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156396 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156397 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156398 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156399 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156400 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156401 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156402 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156403 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156404 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156405 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156406 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156407 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156408 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156409 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156410 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156411 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156412 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156413 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
156414 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156415 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
156416 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
156417 
156418 l_event_id                             NUMBER;
156419 l_previous_event_id                    NUMBER;
156420 l_first_event_id                       NUMBER;
156421 l_last_event_id                        NUMBER;
156422 
156423 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
156424 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
156425 --
156426 --
156427 l_result                    BOOLEAN := TRUE;
156428 l_rows                      NUMBER  := 1000;
156429 l_event_type_name           VARCHAR2(80) := 'All';
156430 l_event_class_name          VARCHAR2(80) := 'Debit Memos';
156431 l_description               VARCHAR2(4000);
156432 l_transaction_reversal      NUMBER;
156433 l_ae_header_id              NUMBER;
156434 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
156435 l_log_module                VARCHAR2(240);
156436 --
156437 l_acct_reversal_source      VARCHAR2(30);
156438 l_trx_reversal_source       VARCHAR2(30);
156439 
156440 l_continue_with_lines       BOOLEAN := TRUE;
156441 --
156442 l_acc_rev_gl_date_source    DATE;                      -- 4262811
156443 --
156444 type t_array_event_id is table of number index by binary_integer;
156445 
156446 l_rec_array_event                    t_rec_array_event;
156447 l_null_rec_array_event               t_rec_array_event;
156448 l_array_ae_header_id                 xla_number_array_type;
156449 l_actual_flag                        VARCHAR2(1) := NULL;
156450 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
156451 l_balance_type_code                  VARCHAR2(1) :=NULL;
156452 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
156453 
156454 --
156455 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
156456 --
156457 
156458 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
156459 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
156460 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
156461 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
156462 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
156463 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
156464 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
156465 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
156466 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
156467 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
156468 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
156469 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
156470 TYPE t_array_source_147 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
156471 TYPE t_array_source_148 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
156472 TYPE t_array_source_171 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
156473 TYPE t_array_source_172 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
156474 TYPE t_array_source_173 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
156475 
156476 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
156477 TYPE t_array_source_16 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
156481 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
156478 TYPE t_array_source_17 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
156479 TYPE t_array_source_25 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
156480 TYPE t_array_source_28 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
156482 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
156483 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
156484 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
156485 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
156486 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
156487 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
156488 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156489 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
156490 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
156491 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
156492 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156493 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
156494 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156495 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
156496 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
156497 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
156498 TYPE t_array_source_74 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
156499 TYPE t_array_source_75 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
156500 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
156501 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
156502 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
156503 TYPE t_array_source_79 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
156504 TYPE t_array_source_80 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
156505 TYPE t_array_source_81 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
156506 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
156507 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
156508 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
156509 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
156510 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
156511 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
156512 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156513 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
156514 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
156515 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
156516 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
156517 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
156518 TYPE t_array_source_98 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
156519 TYPE t_array_source_99 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156520 TYPE t_array_source_100 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
156521 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
156522 
156523 l_array_source_10              t_array_source_10;
156524 l_array_source_10_meaning      t_array_lookup_meaning;
156525 l_array_source_15              t_array_source_15;
156526 l_array_source_18              t_array_source_18;
156527 l_array_source_29              t_array_source_29;
156528 l_array_source_35              t_array_source_35;
156529 l_array_source_43              t_array_source_43;
156530 l_array_source_43_meaning      t_array_lookup_meaning;
156531 l_array_source_63              t_array_source_63;
156532 l_array_source_72              t_array_source_72;
156533 l_array_source_86              t_array_source_86;
156534 l_array_source_87              t_array_source_87;
156535 l_array_source_88              t_array_source_88;
156536 l_array_source_146              t_array_source_146;
156537 l_array_source_147              t_array_source_147;
156538 l_array_source_148              t_array_source_148;
156539 l_array_source_171              t_array_source_171;
156540 l_array_source_172              t_array_source_172;
156541 l_array_source_173              t_array_source_173;
156542 
156543 l_array_source_1      t_array_source_1;
156544 l_array_source_16      t_array_source_16;
156545 l_array_source_17      t_array_source_17;
156546 l_array_source_17_meaning      t_array_lookup_meaning;
156550 l_array_source_38      t_array_source_38;
156547 l_array_source_25      t_array_source_25;
156548 l_array_source_28      t_array_source_28;
156549 l_array_source_28_meaning      t_array_lookup_meaning;
156551 l_array_source_39      t_array_source_39;
156552 l_array_source_46      t_array_source_46;
156553 l_array_source_47      t_array_source_47;
156554 l_array_source_54      t_array_source_54;
156555 l_array_source_54_meaning      t_array_lookup_meaning;
156556 l_array_source_58      t_array_source_58;
156557 l_array_source_60      t_array_source_60;
156558 l_array_source_62      t_array_source_62;
156559 l_array_source_64      t_array_source_64;
156560 l_array_source_65      t_array_source_65;
156561 l_array_source_66      t_array_source_66;
156562 l_array_source_67      t_array_source_67;
156563 l_array_source_68      t_array_source_68;
156564 l_array_source_69      t_array_source_69;
156565 l_array_source_70      t_array_source_70;
156566 l_array_source_71      t_array_source_71;
156567 l_array_source_73      t_array_source_73;
156568 l_array_source_74      t_array_source_74;
156569 l_array_source_75      t_array_source_75;
156570 l_array_source_76      t_array_source_76;
156571 l_array_source_77      t_array_source_77;
156572 l_array_source_78      t_array_source_78;
156573 l_array_source_79      t_array_source_79;
156574 l_array_source_80      t_array_source_80;
156575 l_array_source_81      t_array_source_81;
156576 l_array_source_82      t_array_source_82;
156577 l_array_source_83      t_array_source_83;
156578 l_array_source_84      t_array_source_84;
156579 l_array_source_85      t_array_source_85;
156580 l_array_source_85_meaning      t_array_lookup_meaning;
156581 l_array_source_89      t_array_source_89;
156582 l_array_source_91      t_array_source_91;
156583 l_array_source_92      t_array_source_92;
156584 l_array_source_93      t_array_source_93;
156585 l_array_source_94      t_array_source_94;
156586 l_array_source_95      t_array_source_95;
156587 l_array_source_96      t_array_source_96;
156588 l_array_source_97      t_array_source_97;
156589 l_array_source_98      t_array_source_98;
156590 l_array_source_99      t_array_source_99;
156591 l_array_source_100      t_array_source_100;
156592 l_array_source_145      t_array_source_145;
156593 l_array_source_145_meaning      t_array_lookup_meaning;
156594 
156595 --
156596 CURSOR header_cur
156597 IS
156598 SELECT /*+ leading(xet) cardinality(xet,1) */
156599 -- Event Class Code: DEBIT MEMOS
156600     xet.entity_id
156601    ,xet.legal_entity_id
156602    ,xet.entity_code
156603    ,xet.transaction_number
156604    ,xet.event_id
156605    ,xet.event_class_code
156606    ,xet.event_type_code
156607    ,xet.event_number
156608    ,xet.event_date
156609    ,xet.transaction_date
156610    ,xet.reference_num_1
156611    ,xet.reference_num_2
156612    ,xet.reference_num_3
156613    ,xet.reference_num_4
156614    ,xet.reference_char_1
156615    ,xet.reference_char_2
156616    ,xet.reference_char_3
156617    ,xet.reference_char_4
156618    ,xet.reference_date_1
156619    ,xet.reference_date_2
156620    ,xet.reference_date_3
156621    ,xet.reference_date_4
156622    ,xet.event_created_by
156623    ,xet.budgetary_control_flag 
156624   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
156625   , fvl10.meaning   source_10_meaning
156626   , h4.ASP_RATE_VAR_GAIN_CCID    source_15
156627   , h4.ASP_RATE_VAR_LOSS_CCID    source_18
156628   , h2.AI_ACCTS_PAY_CCID    source_29
156629   , h4.FSP_RETAINAGE_ACCOUNT    source_35
156630   , h4.ASP_AUTO_OFFSET_FLAG    source_43
156631   , fvl43.meaning   source_43_meaning
156632   , h2.AI_INVOICE_ID    source_63
156633   , h2.AI_INVOICE_CURRENCY_CODE    source_72
156634   , h2.AI_VENDOR_ID    source_86
156635   , h2.AI_VENDOR_SITE_ID    source_87
156636   , h2.THIRD_PARTY_TYPE    source_88
156637   , h2.INV_EXCHANGE_DATE    source_146
156638   , h2.INV_EXCHANGE_RATE    source_147
156639   , h2.INV_EXCHANGE_RATE_TYPE    source_148
156640   , h2.INV_DOC_SEQUENCE_CATEGORY    source_171
156641   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_172
156642   , h2.INV_DOC_SEQUENCE_VALUE    source_173
156643   FROM xla_events_gt     xet 
156644   , AP_INVOICE_EXTRACT_HEADER_V  h2
156645   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
156646   , fnd_lookup_values    fvl10
156647   , fnd_lookup_values    fvl43
156648  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
156649    and xet.event_class_code = C_EVENT_CLASS_CODE
156650    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
156651  AND h4.asp_org_id= h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
156652   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
156653   AND fvl10.view_application_id(+) = 200
156654   AND fvl10.language(+)            = USERENV('LANG')
156655      AND fvl43.lookup_type(+)         = 'YES_NO'
156656   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
156657   AND fvl43.view_application_id(+) = 0
156658   AND fvl43.language(+)            = USERENV('LANG')
156659   
156660  ORDER BY event_id
156661 ;
156662 
156663 
156664 --
156665 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
156666 IS
156667 SELECT  /*+ leading(xet) cardinality(xet,1) */
156668 -- Event Class Code: DEBIT MEMOS
156669     xet.entity_id
156670    ,xet.legal_entity_id
156671    ,xet.entity_code
156672    ,xet.transaction_number
156673    ,xet.event_id
156674    ,xet.event_class_code
156675    ,xet.event_type_code
156676    ,xet.event_number
156677    ,xet.event_date
156678    ,xet.transaction_date
156679    ,xet.reference_num_1
156680    ,xet.reference_num_2
156681    ,xet.reference_num_3
156682    ,xet.reference_num_4
156683    ,xet.reference_char_1
156684    ,xet.reference_char_2
156685    ,xet.reference_char_3
156686    ,xet.reference_char_4
156687    ,xet.reference_date_1
156688    ,xet.reference_date_2
156689    ,xet.reference_date_3
156693  , l1.LINE_NUMBER  
156690    ,xet.reference_date_4
156691    ,xet.event_created_by
156692    ,xet.budgetary_control_flag
156694   , l1.AID_DESCRIPTION    source_1
156695   , l1.INV_DIST_BASE_AMOUNT    source_16
156696   , l1.RELATED_INV_DIST_DEST_TYPE    source_17
156697   , fvl17.meaning   source_17_meaning
156698   , l1.AID_DIST_CCID    source_25
156699   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
156700   , fvl28.meaning   source_28_meaning
156701   , l1.AID_RET_RELATED_DIST_CCID    source_38
156702   , l1.AWT_RELATED_DIST_ACCOUNT    source_39
156703   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_46
156704   , l1.ASAT_LIAB_CCID    source_47
156705   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_54
156706   , fvl54.meaning   source_54_meaning
156707   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
156708   , l1.DISTRIBUTION_LINK_TYPE    source_60
156709   , l1.ALLOC_TO_MAIN_DIST_ID    source_62
156710   , l1.BUS_FLOW_PO_APP_ID    source_64
156711   , l1.BUS_FLOW_PO_DIST_TYPE    source_65
156712   , l1.BUS_FLOW_PO_ENTITY_CODE    source_66
156713   , l1.BUS_FLOW_PO_DIST_ID    source_67
156714   , l1.BUS_FLOW_PO_DOC_ID    source_68
156715   , l1.AID_INVOICE_DIST_ID    source_69
156716   , l1.UPG_ENC_CR_CCID    source_70
156717   , l1.UPG_ENC_CR_AMT    source_71
156718   , l1.UPG_ENC_CR_BASE_AMT    source_73
156719   , l1.UPG_ENC_DR_CCID    source_74
156720   , l1.UPG_ENC_DR_AMT    source_75
156721   , l1.UPG_ENC_DR_BASE_AMT    source_76
156722   , l1.UPG_AP_ENCUM_OPTION    source_77
156723   , l1.AID_AMOUNT    source_78
156724   , l3.POH_RATE_DATE    source_79
156725   , l3.POH_RATE    source_80
156726   , l3.POH_RATE_TYPE    source_81
156727   , l1.DEFERRED_END_DATE    source_82
156728   , l1.DEFERRED_OPTION    source_83
156729   , l1.DEFERRED_START_DATE    source_84
156730   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
156731   , fvl85.meaning   source_85_meaning
156732   , l1.AID_PARENT_REVERSAL_ID    source_89
156733   , l5.TAX_LINE_ID    source_91
156734   , l6.REC_NREC_TAX_DIST_ID    source_92
156735   , l1.SUMMARY_TAX_LINE_ID    source_93
156736   , l1.UPG_CR_ENC_TYPE_ID    source_94
156737   , l1.UPG_DR_ENC_TYPE_ID    source_95
156738   , l1.BUS_FLOW_AP_APP_ID    source_96
156739   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
156740   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
156741   , l1.BUS_FLOW_INV_DIST_ID    source_99
156742   , l1.BUS_FLOW_INV_ID    source_100
156743   , l1.SELF_ASSESSED_TAX_FLAG    source_145
156744   , fvl145.meaning   source_145_meaning
156745   FROM xla_events_gt     xet 
156746   , AP_INVOICE_EXTRACT_DETAILS_V  l1
156747   , AP_PO_HEADERS_EXTRACT_V  l3
156748   , ZX_AP_DEF_TAX_EXTRACT_V  l5
156749   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
156750   , fnd_lookup_values    fvl17
156751   , fnd_lookup_values    fvl28
156752   , fnd_lookup_values    fvl54
156753   , fnd_lookup_values    fvl85
156754   , fnd_lookup_values    fvl145
156755  WHERE xet.event_id between x_first_event_id and x_last_event_id
156756    and xet.event_date between p_pad_start_date and p_pad_end_date
156757    and xet.event_class_code = C_EVENT_CLASS_CODE
156758    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
156759  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
156760   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
156761   AND fvl17.view_application_id(+) = 201
156762   AND fvl17.language(+)            = USERENV('LANG')
156763      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
156764   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
156765   AND fvl28.view_application_id(+) = 200
156766   AND fvl28.language(+)            = USERENV('LANG')
156767      AND fvl54.lookup_type(+)         = 'YES_NO'
156768   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
156769   AND fvl54.view_application_id(+) = 0
156770   AND fvl54.language(+)            = USERENV('LANG')
156771      AND fvl85.lookup_type(+)         = 'YES_NO'
156772   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
156773   AND fvl85.view_application_id(+) = 0
156774   AND fvl85.language(+)            = USERENV('LANG')
156775      AND fvl145.lookup_type(+)         = 'YES_NO'
156776   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
156777   AND fvl145.view_application_id(+) = 0
156778   AND fvl145.language(+)            = USERENV('LANG')
156779   ;
156780 
156781 --
156782 BEGIN
156783 IF g_log_enabled THEN
156784    l_log_module := C_DEFAULT_MODULE||'.EventClass_249';
156785 END IF;
156786 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156787    trace
156788       (p_msg      => 'BEGIN of EventClass_249'
156789       ,p_level    => C_LEVEL_PROCEDURE
156790       ,p_module   => l_log_module);
156791 END IF;
156792 
156793 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156794    trace
156795       (p_msg      => 'p_application_id = '||p_application_id||
156796                      ' - p_base_ledger_id = '||p_base_ledger_id||
156797                      ' - p_target_ledger_id  = '||p_target_ledger_id||
156798                      ' - p_language = '||p_language||
156799                      ' - p_currency_code = '||p_currency_code||
156800                      ' - p_sla_ledger_id = '||p_sla_ledger_id
156801       ,p_level    => C_LEVEL_STATEMENT
156802       ,p_module   => l_log_module);
156803 END IF;
156804 --
156805 -- initialze arrays
156806 --
156807 g_array_event.DELETE;
156808 l_rec_array_event := l_null_rec_array_event;
156809 --
156810 --------------------------------------
156811 -- 4262811 Initialze MPA Line Number
156812 --------------------------------------
156813 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
156814 
156815 --
156816 
156817 --
156818 OPEN header_cur;
156819 --
156820 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156821    trace
156822    (p_msg      => 'SQL - FETCH header_cur'
156823    ,p_level    => C_LEVEL_STATEMENT
156827 LOOP
156824    ,p_module   => l_log_module);
156825 END IF;
156826 --
156828 FETCH header_cur BULK COLLECT INTO
156829         l_array_entity_id
156830       , l_array_legal_entity_id
156831       , l_array_entity_code
156832       , l_array_transaction_num
156833       , l_array_event_id
156834       , l_array_class_code
156835       , l_array_event_type
156836       , l_array_event_number
156837       , l_array_event_date
156838       , l_array_transaction_date
156839       , l_array_reference_num_1
156840       , l_array_reference_num_2
156841       , l_array_reference_num_3
156842       , l_array_reference_num_4
156843       , l_array_reference_char_1
156844       , l_array_reference_char_2
156845       , l_array_reference_char_3
156846       , l_array_reference_char_4
156847       , l_array_reference_date_1
156848       , l_array_reference_date_2
156849       , l_array_reference_date_3
156850       , l_array_reference_date_4
156851       , l_array_event_created_by
156852       , l_array_budgetary_control_flag 
156853       , l_array_source_10
156854       , l_array_source_10_meaning
156855       , l_array_source_15
156856       , l_array_source_18
156857       , l_array_source_29
156858       , l_array_source_35
156859       , l_array_source_43
156860       , l_array_source_43_meaning
156861       , l_array_source_63
156862       , l_array_source_72
156863       , l_array_source_86
156864       , l_array_source_87
156865       , l_array_source_88
156866       , l_array_source_146
156867       , l_array_source_147
156868       , l_array_source_148
156869       , l_array_source_171
156870       , l_array_source_172
156871       , l_array_source_173
156872       LIMIT l_rows;
156873 --
156874 IF (C_LEVEL_EVENT >= g_log_level) THEN
156875    trace
156876    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
156877    ,p_level    => C_LEVEL_EVENT
156878    ,p_module   => l_log_module);
156879 END IF;
156880 --
156881 EXIT WHEN l_array_entity_id.COUNT = 0;
156882 
156883 -- initialize arrays
156884 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
156885 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
156886 
156887 --
156888 -- Bug 4458708
156889 --
156890 XLA_AE_LINES_PKG.g_LineNumber := 0;
156891 
156892 
156893 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
156894 g_last_hdr_idx := l_array_event_id.LAST;
156895 --
156896 -- loop for the headers. Each iteration is for each header extract row
156897 -- fetched in header cursor
156898 --
156899 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
156900 
156901 --
156902 -- set event info as cache for other routines to refer event attributes
156903 --
156904 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
156905    (p_application_id           => p_application_id
156906    ,p_primary_ledger_id        => p_primary_ledger_id
156907    ,p_base_ledger_id           => p_base_ledger_id
156908    ,p_target_ledger_id         => p_target_ledger_id
156909    ,p_entity_id                => l_array_entity_id(hdr_idx)
156910    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
156911    ,p_entity_code              => l_array_entity_code(hdr_idx)
156912    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
156913    ,p_event_id                 => l_array_event_id(hdr_idx)
156914    ,p_event_class_code         => l_array_class_code(hdr_idx)
156915    ,p_event_type_code          => l_array_event_type(hdr_idx)
156916    ,p_event_number             => l_array_event_number(hdr_idx)
156917    ,p_event_date               => l_array_event_date(hdr_idx)
156918    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
156919    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
156920    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
156921    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
156922    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
156923    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
156924    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
156925    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
156926    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
156927    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
156928    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
156929    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
156930    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
156931    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
156932    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
156933 
156934 --
156935 -- set the status of entry to C_VALID (0)
156936 --
156937 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
156938 
156939 --
156940 -- initialize a row for ae header
156941 --
156942 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
156943 
156944 l_event_id := l_array_event_id(hdr_idx);
156945 
156946 --
156947 -- storing the hdr_idx for event. May be used by line cursor.
156948 --
156949 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
156950 
156951 --
156952 -- store sources from header extract. This can be improved to
156953 -- store only those sources from header extract that may be used in lines
156954 --
156955 
156956 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
156957 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
156958 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
156959 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
156960 g_array_event(l_event_id).array_value_num('source_29') := l_array_source_29(hdr_idx);
156964 g_array_event(l_event_id).array_value_num('source_63') := l_array_source_63(hdr_idx);
156961 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
156962 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
156963 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
156965 g_array_event(l_event_id).array_value_char('source_72') := l_array_source_72(hdr_idx);
156966 g_array_event(l_event_id).array_value_num('source_86') := l_array_source_86(hdr_idx);
156967 g_array_event(l_event_id).array_value_num('source_87') := l_array_source_87(hdr_idx);
156968 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
156969 g_array_event(l_event_id).array_value_date('source_146') := l_array_source_146(hdr_idx);
156970 g_array_event(l_event_id).array_value_num('source_147') := l_array_source_147(hdr_idx);
156971 g_array_event(l_event_id).array_value_char('source_148') := l_array_source_148(hdr_idx);
156972 g_array_event(l_event_id).array_value_char('source_171') := l_array_source_171(hdr_idx);
156973 g_array_event(l_event_id).array_value_num('source_172') := l_array_source_172(hdr_idx);
156974 g_array_event(l_event_id).array_value_num('source_173') := l_array_source_173(hdr_idx);
156975 
156976 --
156977 -- initilaize the status of ae headers for diffrent balance types
156978 -- the status is initialised to C_NOT_CREATED (2)
156979 --
156980 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
156981 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
156982 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
156983 
156984 --
156985 -- call api to validate and store accounting attributes for header
156986 --
156987 
156988 ------------------------------------------------------------
156989 -- Accrual Reversal : to get date for Standard Source (NONE)
156990 ------------------------------------------------------------
156991 l_acc_rev_gl_date_source := NULL;
156992 
156993      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
156994       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_171');
156995      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
156996       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_172');
156997      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
156998       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_173');
156999      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
157000       l_rec_acct_attrs.array_date_value(4) := 
157001 xla_ae_sources_pkg.GetSystemSourceDate(
157002    p_source_code           => 'XLA_EVENT_DATE'
157003  , p_source_type_code      => 'Y'
157004  , p_source_application_id =>  602
157005 );
157006 
157007 
157008 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
157009 
157010 XLA_AE_HEADER_PKG.SetJeCategoryName;
157011 
157012 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
157013 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
157014 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
157015 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
157016 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
157017 
157018 
157019 --
157020 xla_ae_header_pkg.SetHdrDescription(
157021    p_description => Description_1 (
157022    p_application_id => p_application_id 
157023    )
157024 );
157025 --
157026 
157027 -- No header level analytical criteria
157028 
157029 --
157030 --accounting attribute enhancement, bug 3612931
157031 --
157032 l_trx_reversal_source := SUBSTR(NULL, 1,30);
157033 
157034 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
157035    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
157036 
157037    xla_accounting_err_pkg.build_message
157038       (p_appli_s_name            => 'XLA'
157039       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
157040       ,p_token_1                 => 'ACCT_ATTR_NAME'
157041       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
157042       ,p_token_2                 => 'PRODUCT_NAME'
157043       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
157044       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
157045       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
157046       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
157047 
157048 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
157049    --
157050    -- following sets the accounting attributes needed to reverse
157051    -- accounting for a distributeion
157052    --
157053    xla_ae_lines_pkg.SetTrxReversalAttrs
157054       (p_event_id              => l_event_id
157055       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
157056       ,p_trx_reversal_source   => l_trx_reversal_source);
157057 
157058 END IF;
157059 
157060 
157061 ----------------------------------------------------------------
157062 -- 4262811 -  update the header statuses to invalid in need be
157063 ----------------------------------------------------------------
157064 --
157065 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
157066 
157067 
157068   -----------------------------------------------
157069   -- No accrual reversal for the event class/type
157070   -----------------------------------------------
157071 ----------------------------------------------------------------
157072 
157073 --
157074 -- this ends the header loop iteration for one bulk fetch
157075 --
157079 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
157076 END LOOP;
157077 
157078 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
157080 
157081 --
157082 -- insert dummy rows into lines gt table that were created due to
157083 -- transaction reversals
157084 --
157085 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
157086    l_result := XLA_AE_LINES_PKG.InsertLines;
157087 END IF;
157088 
157089 --
157090 -- reset the temp_line_num for each set of events fetched from header
157091 -- cursor rather than doing it for each new event in line cursor
157092 -- Bug 3939231
157093 --
157094 xla_ae_lines_pkg.g_temp_line_num := 0;
157095 
157096 
157097 
157098 --
157099 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
157100 --
157101 --
157102 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157103 
157104       trace
157105          (p_msg      => 'SQL - FETCH line_cur'
157106          ,p_level    => C_LEVEL_STATEMENT
157107          ,p_module   => l_log_module);
157108 
157109 END IF;
157110 --
157111 --
157112 LOOP
157113   --
157114   FETCH line_cur BULK COLLECT INTO
157115         l_array_entity_id
157116       , l_array_legal_entity_id
157117       , l_array_entity_code
157118       , l_array_transaction_num
157119       , l_array_event_id
157120       , l_array_class_code
157121       , l_array_event_type
157122       , l_array_event_number
157123       , l_array_event_date
157124       , l_array_transaction_date
157125       , l_array_reference_num_1
157126       , l_array_reference_num_2
157127       , l_array_reference_num_3
157128       , l_array_reference_num_4
157129       , l_array_reference_char_1
157130       , l_array_reference_char_2
157131       , l_array_reference_char_3
157132       , l_array_reference_char_4
157133       , l_array_reference_date_1
157134       , l_array_reference_date_2
157135       , l_array_reference_date_3
157136       , l_array_reference_date_4
157137       , l_array_event_created_by
157138       , l_array_budgetary_control_flag
157139       , l_array_extract_line_num 
157140       , l_array_source_1
157141       , l_array_source_16
157142       , l_array_source_17
157143       , l_array_source_17_meaning
157144       , l_array_source_25
157145       , l_array_source_28
157146       , l_array_source_28_meaning
157147       , l_array_source_38
157148       , l_array_source_39
157149       , l_array_source_46
157150       , l_array_source_47
157151       , l_array_source_54
157152       , l_array_source_54_meaning
157153       , l_array_source_58
157154       , l_array_source_60
157155       , l_array_source_62
157156       , l_array_source_64
157157       , l_array_source_65
157158       , l_array_source_66
157159       , l_array_source_67
157160       , l_array_source_68
157161       , l_array_source_69
157162       , l_array_source_70
157163       , l_array_source_71
157164       , l_array_source_73
157165       , l_array_source_74
157166       , l_array_source_75
157167       , l_array_source_76
157168       , l_array_source_77
157169       , l_array_source_78
157170       , l_array_source_79
157171       , l_array_source_80
157172       , l_array_source_81
157173       , l_array_source_82
157174       , l_array_source_83
157175       , l_array_source_84
157176       , l_array_source_85
157177       , l_array_source_85_meaning
157178       , l_array_source_89
157179       , l_array_source_91
157180       , l_array_source_92
157181       , l_array_source_93
157182       , l_array_source_94
157183       , l_array_source_95
157184       , l_array_source_96
157185       , l_array_source_97
157186       , l_array_source_98
157187       , l_array_source_99
157188       , l_array_source_100
157189       , l_array_source_145
157190       , l_array_source_145_meaning
157191       LIMIT l_rows;
157192 
157193   --
157194   IF (C_LEVEL_EVENT >= g_log_level) THEN
157195             trace
157196                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
157197                ,p_level    => C_LEVEL_EVENT
157198                ,p_module   => l_log_module);
157199   END IF;
157200   --
157201   EXIT WHEN l_array_entity_id.count = 0;
157202 
157203   XLA_AE_LINES_PKG.g_rec_lines := null;
157204 
157205 --
157206 -- Bug 4458708
157207 --
157208 XLA_AE_LINES_PKG.g_LineNumber := 0;
157209 --
157210 --
157211 
157212 FOR Idx IN 1..l_array_event_id.count LOOP
157213    --
157214    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
157215    --
157216    l_event_id := l_array_event_id(idx);  -- 5648433
157217 
157218    --
157219    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
157220    --
157221 
157222    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
157223              (g_array_event(l_event_id).array_value_num('header_index'))
157224          ,'N'
157225          ) <> 'Y'
157226    THEN
157227       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157228          trace
157229             (p_msg      => 'Trancaction revesal option is not Y '
157230             ,p_level    => C_LEVEL_STATEMENT
157231             ,p_module   => l_log_module);
157232       END IF;
157233 
157234 --
157235 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
157236 --
157237 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
157238 --
157239 -- set event info as cache for other routines to refer event attributes
157240 --
157241 
157242 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
157243    l_previous_event_id := l_event_id;
157244 
157245    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
157249       ,p_target_ledger_id         => p_target_ledger_id
157246       (p_application_id           => p_application_id
157247       ,p_primary_ledger_id        => p_primary_ledger_id
157248       ,p_base_ledger_id           => p_base_ledger_id
157250       ,p_entity_id                => l_array_entity_id(Idx)
157251       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
157252       ,p_entity_code              => l_array_entity_code(Idx)
157253       ,p_transaction_num          => l_array_transaction_num(Idx)
157254       ,p_event_id                 => l_array_event_id(Idx)
157255       ,p_event_class_code         => l_array_class_code(Idx)
157256       ,p_event_type_code          => l_array_event_type(Idx)
157257       ,p_event_number             => l_array_event_number(Idx)
157258       ,p_event_date               => l_array_event_date(Idx)
157259       ,p_transaction_date         => l_array_transaction_date(Idx)
157260       ,p_reference_num_1          => l_array_reference_num_1(Idx)
157261       ,p_reference_num_2          => l_array_reference_num_2(Idx)
157262       ,p_reference_num_3          => l_array_reference_num_3(Idx)
157263       ,p_reference_num_4          => l_array_reference_num_4(Idx)
157264       ,p_reference_char_1         => l_array_reference_char_1(Idx)
157265       ,p_reference_char_2         => l_array_reference_char_2(Idx)
157266       ,p_reference_char_3         => l_array_reference_char_3(Idx)
157267       ,p_reference_char_4         => l_array_reference_char_4(Idx)
157268       ,p_reference_date_1         => l_array_reference_date_1(Idx)
157269       ,p_reference_date_2         => l_array_reference_date_2(Idx)
157270       ,p_reference_date_3         => l_array_reference_date_3(Idx)
157271       ,p_reference_date_4         => l_array_reference_date_4(Idx)
157272       ,p_event_created_by         => l_array_event_created_by(Idx)
157273       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
157274        --
157275 END IF;
157276 
157277 
157278 
157279 --
157280 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
157281 
157282 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
157283 
157284 IF l_continue_with_lines THEN
157285    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
157286       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
157287 
157288       xla_accounting_err_pkg.build_message
157289          (p_appli_s_name            => 'XLA'
157290          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
157291          ,p_token_1                 => 'LINE_NUMBER'
157292          ,p_value_1                 => l_array_extract_line_num(Idx)
157293          ,p_token_2                 => 'PRODUCT_NAME'
157294          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
157295          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
157296          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
157297          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
157298 
157299    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
157300       --
157301       -- following sets the accounting attributes needed to reverse
157302       -- accounting for a distributeion
157303       --
157304 
157305       --
157306       -- 5217187
157307       --
157308       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
157309       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
157310                                        g_array_event(l_event_id).array_value_num('header_index'));
157311       --
157312       --
157313 
157314       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
157315       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
157316       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
157317       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_69(Idx);
157318       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
157319       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
157320       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
157321       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_70(Idx);
157322       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
157323       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_71(Idx);
157324       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
157325       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_72');
157326       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
157327       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_73(Idx);
157328       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
157329       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_74(Idx);
157330       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
157331       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_75(Idx);
157332       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
157333       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_72');
157334       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
157335       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_76(Idx);
157336       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
157337       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_77(Idx);
157338       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
157339       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_88');
157340       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
157341       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_89(Idx);
157342       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
157346       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
157343       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_60(Idx);
157344       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
157345       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_91(Idx);
157347       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_92(Idx);
157348       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
157349       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_93(Idx);
157350       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
157351       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_94(Idx);
157352       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
157353       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_95(Idx);
157354 
157355 
157356       xla_ae_lines_pkg.SetAcctReversalAttrs
157357          (p_event_id             => l_event_id
157358          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
157359          ,p_calculate_acctd_flag => l_calculate_acctd_flag
157360          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
157361    END IF;
157362 
157363    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
157364        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
157365 
157366 --
157367 AcctLineType_57 (
157368  p_application_id  => p_application_id
157369  ,p_event_id     => l_event_id
157370  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157371  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157372  ,p_actual_flag => l_actual_flag
157373  ,p_balance_type_code => l_balance_type_code
157374  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157375  
157376  , p_source_1 => l_array_source_1(Idx)
157377  , p_source_16 => l_array_source_16(Idx)
157378  , p_source_25 => l_array_source_25(Idx)
157379  , p_source_28 => l_array_source_28(Idx)
157380  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157381  , p_source_58 => l_array_source_58(Idx)
157382  , p_source_60 => l_array_source_60(Idx)
157383  , p_source_62 => l_array_source_62(Idx)
157384  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157385  , p_source_64 => l_array_source_64(Idx)
157386  , p_source_65 => l_array_source_65(Idx)
157387  , p_source_66 => l_array_source_66(Idx)
157388  , p_source_67 => l_array_source_67(Idx)
157389  , p_source_68 => l_array_source_68(Idx)
157390  , p_source_69 => l_array_source_69(Idx)
157391  , p_source_70 => l_array_source_70(Idx)
157392  , p_source_71 => l_array_source_71(Idx)
157393  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157394  , p_source_73 => l_array_source_73(Idx)
157395  , p_source_74 => l_array_source_74(Idx)
157396  , p_source_75 => l_array_source_75(Idx)
157397  , p_source_76 => l_array_source_76(Idx)
157398  , p_source_77 => l_array_source_77(Idx)
157399  , p_source_78 => l_array_source_78(Idx)
157400  , p_source_79 => l_array_source_79(Idx)
157401  , p_source_80 => l_array_source_80(Idx)
157402  , p_source_81 => l_array_source_81(Idx)
157403  , p_source_82 => l_array_source_82(Idx)
157404  , p_source_83 => l_array_source_83(Idx)
157405  , p_source_84 => l_array_source_84(Idx)
157406  , p_source_85 => l_array_source_85(Idx)
157407  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157408  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157409  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157410  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157411  , p_source_89 => l_array_source_89(Idx)
157412  , p_source_91 => l_array_source_91(Idx)
157413  , p_source_92 => l_array_source_92(Idx)
157414  , p_source_93 => l_array_source_93(Idx)
157415  , p_source_94 => l_array_source_94(Idx)
157416  , p_source_95 => l_array_source_95(Idx)
157417  );
157418 If(l_balance_type_code = 'A') THEN
157419   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157420 END IF;
157421 
157422 --
157423 
157424 
157425 --
157426 AcctLineType_61 (
157427  p_application_id  => p_application_id
157428  ,p_event_id     => l_event_id
157429  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157430  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157431  ,p_actual_flag => l_actual_flag
157432  ,p_balance_type_code => l_balance_type_code
157433  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157434  
157435  , p_source_1 => l_array_source_1(Idx)
157436  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
157437  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
157438  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
157439  , p_source_16 => l_array_source_16(Idx)
157440  , p_source_17 => l_array_source_17(Idx)
157441  , p_source_17_meaning => l_array_source_17_meaning(Idx)
157442  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
157443  , p_source_25 => l_array_source_25(Idx)
157444  , p_source_28 => l_array_source_28(Idx)
157445  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157446  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
157447  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
157448  , p_source_58 => l_array_source_58(Idx)
157449  , p_source_60 => l_array_source_60(Idx)
157450  , p_source_62 => l_array_source_62(Idx)
157451  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157452  , p_source_69 => l_array_source_69(Idx)
157453  , p_source_70 => l_array_source_70(Idx)
157454  , p_source_71 => l_array_source_71(Idx)
157455  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157456  , p_source_73 => l_array_source_73(Idx)
157457  , p_source_74 => l_array_source_74(Idx)
157458  , p_source_75 => l_array_source_75(Idx)
157459  , p_source_76 => l_array_source_76(Idx)
157460  , p_source_77 => l_array_source_77(Idx)
157461  , p_source_82 => l_array_source_82(Idx)
157462  , p_source_83 => l_array_source_83(Idx)
157463  , p_source_84 => l_array_source_84(Idx)
157467  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157464  , p_source_85 => l_array_source_85(Idx)
157465  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157466  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157468  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157469  , p_source_89 => l_array_source_89(Idx)
157470  , p_source_91 => l_array_source_91(Idx)
157471  , p_source_92 => l_array_source_92(Idx)
157472  , p_source_93 => l_array_source_93(Idx)
157473  , p_source_94 => l_array_source_94(Idx)
157474  , p_source_95 => l_array_source_95(Idx)
157475  , p_source_96 => l_array_source_96(Idx)
157476  , p_source_97 => l_array_source_97(Idx)
157477  , p_source_98 => l_array_source_98(Idx)
157478  , p_source_99 => l_array_source_99(Idx)
157479  , p_source_100 => l_array_source_100(Idx)
157480  );
157481 If(l_balance_type_code = 'A') THEN
157482   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157483 END IF;
157484 
157485 --
157486 
157487 
157488 --
157489 AcctLineType_65 (
157490  p_application_id  => p_application_id
157491  ,p_event_id     => l_event_id
157492  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157493  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157494  ,p_actual_flag => l_actual_flag
157495  ,p_balance_type_code => l_balance_type_code
157496  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157497  
157498  , p_source_1 => l_array_source_1(Idx)
157499  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
157500  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
157501  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
157502  , p_source_16 => l_array_source_16(Idx)
157503  , p_source_17 => l_array_source_17(Idx)
157504  , p_source_17_meaning => l_array_source_17_meaning(Idx)
157505  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
157506  , p_source_25 => l_array_source_25(Idx)
157507  , p_source_28 => l_array_source_28(Idx)
157508  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157509  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
157510  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
157511  , p_source_54 => l_array_source_54(Idx)
157512  , p_source_54_meaning => l_array_source_54_meaning(Idx)
157513  , p_source_58 => l_array_source_58(Idx)
157514  , p_source_60 => l_array_source_60(Idx)
157515  , p_source_62 => l_array_source_62(Idx)
157516  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157517  , p_source_69 => l_array_source_69(Idx)
157518  , p_source_70 => l_array_source_70(Idx)
157519  , p_source_71 => l_array_source_71(Idx)
157520  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157521  , p_source_73 => l_array_source_73(Idx)
157522  , p_source_74 => l_array_source_74(Idx)
157523  , p_source_75 => l_array_source_75(Idx)
157524  , p_source_76 => l_array_source_76(Idx)
157525  , p_source_77 => l_array_source_77(Idx)
157526  , p_source_82 => l_array_source_82(Idx)
157527  , p_source_83 => l_array_source_83(Idx)
157528  , p_source_84 => l_array_source_84(Idx)
157529  , p_source_85 => l_array_source_85(Idx)
157530  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157531  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157532  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157533  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157534  , p_source_89 => l_array_source_89(Idx)
157535  , p_source_91 => l_array_source_91(Idx)
157536  , p_source_92 => l_array_source_92(Idx)
157537  , p_source_93 => l_array_source_93(Idx)
157538  , p_source_94 => l_array_source_94(Idx)
157539  , p_source_95 => l_array_source_95(Idx)
157540  , p_source_96 => l_array_source_96(Idx)
157541  , p_source_97 => l_array_source_97(Idx)
157542  , p_source_98 => l_array_source_98(Idx)
157543  , p_source_99 => l_array_source_99(Idx)
157544  , p_source_100 => l_array_source_100(Idx)
157545  );
157546 If(l_balance_type_code = 'A') THEN
157547   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157548 END IF;
157549 
157550 --
157551 
157552 
157553 --
157554 AcctLineType_117 (
157555  p_application_id  => p_application_id
157556  ,p_event_id     => l_event_id
157557  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157558  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157559  ,p_actual_flag => l_actual_flag
157560  ,p_balance_type_code => l_balance_type_code
157561  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157562  
157563  , p_source_1 => l_array_source_1(Idx)
157564  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
157565  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
157566  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
157567  , p_source_16 => l_array_source_16(Idx)
157568  , p_source_17 => l_array_source_17(Idx)
157569  , p_source_17_meaning => l_array_source_17_meaning(Idx)
157570  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
157571  , p_source_25 => l_array_source_25(Idx)
157572  , p_source_28 => l_array_source_28(Idx)
157573  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157574  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
157575  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
157576  , p_source_54 => l_array_source_54(Idx)
157577  , p_source_54_meaning => l_array_source_54_meaning(Idx)
157578  , p_source_58 => l_array_source_58(Idx)
157579  , p_source_60 => l_array_source_60(Idx)
157580  , p_source_62 => l_array_source_62(Idx)
157581  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157582  , p_source_69 => l_array_source_69(Idx)
157583  , p_source_70 => l_array_source_70(Idx)
157584  , p_source_71 => l_array_source_71(Idx)
157585  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157586  , p_source_73 => l_array_source_73(Idx)
157590  , p_source_77 => l_array_source_77(Idx)
157587  , p_source_74 => l_array_source_74(Idx)
157588  , p_source_75 => l_array_source_75(Idx)
157589  , p_source_76 => l_array_source_76(Idx)
157591  , p_source_78 => l_array_source_78(Idx)
157592  , p_source_82 => l_array_source_82(Idx)
157593  , p_source_83 => l_array_source_83(Idx)
157594  , p_source_84 => l_array_source_84(Idx)
157595  , p_source_85 => l_array_source_85(Idx)
157596  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157597  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157598  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157599  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157600  , p_source_89 => l_array_source_89(Idx)
157601  , p_source_91 => l_array_source_91(Idx)
157602  , p_source_92 => l_array_source_92(Idx)
157603  , p_source_93 => l_array_source_93(Idx)
157604  , p_source_94 => l_array_source_94(Idx)
157605  , p_source_95 => l_array_source_95(Idx)
157606  , p_source_96 => l_array_source_96(Idx)
157607  , p_source_97 => l_array_source_97(Idx)
157608  , p_source_98 => l_array_source_98(Idx)
157609  , p_source_99 => l_array_source_99(Idx)
157610  , p_source_100 => l_array_source_100(Idx)
157611  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157612  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157613  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157614  );
157615 If(l_balance_type_code = 'A') THEN
157616   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157617 END IF;
157618 
157619 --
157620 
157621 
157622 --
157623 AcctLineType_126 (
157624  p_application_id  => p_application_id
157625  ,p_event_id     => l_event_id
157626  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157627  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157628  ,p_actual_flag => l_actual_flag
157629  ,p_balance_type_code => l_balance_type_code
157630  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157631  
157632  , p_source_1 => l_array_source_1(Idx)
157633  , p_source_16 => l_array_source_16(Idx)
157634  , p_source_25 => l_array_source_25(Idx)
157635  , p_source_28 => l_array_source_28(Idx)
157636  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157637  , p_source_58 => l_array_source_58(Idx)
157638  , p_source_60 => l_array_source_60(Idx)
157639  , p_source_62 => l_array_source_62(Idx)
157640  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157641  , p_source_69 => l_array_source_69(Idx)
157642  , p_source_70 => l_array_source_70(Idx)
157643  , p_source_71 => l_array_source_71(Idx)
157644  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157645  , p_source_73 => l_array_source_73(Idx)
157646  , p_source_74 => l_array_source_74(Idx)
157647  , p_source_75 => l_array_source_75(Idx)
157648  , p_source_76 => l_array_source_76(Idx)
157649  , p_source_77 => l_array_source_77(Idx)
157650  , p_source_78 => l_array_source_78(Idx)
157651  , p_source_82 => l_array_source_82(Idx)
157652  , p_source_83 => l_array_source_83(Idx)
157653  , p_source_84 => l_array_source_84(Idx)
157654  , p_source_85 => l_array_source_85(Idx)
157655  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157656  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157657  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157658  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157659  , p_source_89 => l_array_source_89(Idx)
157660  , p_source_91 => l_array_source_91(Idx)
157661  , p_source_92 => l_array_source_92(Idx)
157662  , p_source_93 => l_array_source_93(Idx)
157663  , p_source_94 => l_array_source_94(Idx)
157664  , p_source_95 => l_array_source_95(Idx)
157665  , p_source_96 => l_array_source_96(Idx)
157666  , p_source_97 => l_array_source_97(Idx)
157667  , p_source_98 => l_array_source_98(Idx)
157668  , p_source_99 => l_array_source_99(Idx)
157669  , p_source_100 => l_array_source_100(Idx)
157670  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157671  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157672  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157673  );
157674 If(l_balance_type_code = 'A') THEN
157675   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157676 END IF;
157677 
157678 --
157679 
157680 
157681 --
157682 AcctLineType_148 (
157683  p_application_id  => p_application_id
157684  ,p_event_id     => l_event_id
157685  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157686  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157687  ,p_actual_flag => l_actual_flag
157688  ,p_balance_type_code => l_balance_type_code
157689  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157690  
157691  , p_source_1 => l_array_source_1(Idx)
157692  , p_source_16 => l_array_source_16(Idx)
157693  , p_source_25 => l_array_source_25(Idx)
157694  , p_source_28 => l_array_source_28(Idx)
157695  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157696  , p_source_54 => l_array_source_54(Idx)
157697  , p_source_54_meaning => l_array_source_54_meaning(Idx)
157698  , p_source_58 => l_array_source_58(Idx)
157699  , p_source_60 => l_array_source_60(Idx)
157700  , p_source_62 => l_array_source_62(Idx)
157701  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157702  , p_source_69 => l_array_source_69(Idx)
157703  , p_source_70 => l_array_source_70(Idx)
157704  , p_source_71 => l_array_source_71(Idx)
157705  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157706  , p_source_73 => l_array_source_73(Idx)
157707  , p_source_74 => l_array_source_74(Idx)
157708  , p_source_75 => l_array_source_75(Idx)
157709  , p_source_76 => l_array_source_76(Idx)
157710  , p_source_77 => l_array_source_77(Idx)
157711  , p_source_78 => l_array_source_78(Idx)
157712  , p_source_82 => l_array_source_82(Idx)
157713  , p_source_83 => l_array_source_83(Idx)
157714  , p_source_84 => l_array_source_84(Idx)
157718  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157715  , p_source_85 => l_array_source_85(Idx)
157716  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157717  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157719  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157720  , p_source_89 => l_array_source_89(Idx)
157721  , p_source_91 => l_array_source_91(Idx)
157722  , p_source_92 => l_array_source_92(Idx)
157723  , p_source_93 => l_array_source_93(Idx)
157724  , p_source_94 => l_array_source_94(Idx)
157725  , p_source_95 => l_array_source_95(Idx)
157726  , p_source_96 => l_array_source_96(Idx)
157727  , p_source_97 => l_array_source_97(Idx)
157728  , p_source_98 => l_array_source_98(Idx)
157729  , p_source_99 => l_array_source_99(Idx)
157730  , p_source_100 => l_array_source_100(Idx)
157731  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157732  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157733  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157734  );
157735 If(l_balance_type_code = 'A') THEN
157736   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157737 END IF;
157738 
157739 --
157740 
157741 
157742 --
157743 AcctLineType_152 (
157744  p_application_id  => p_application_id
157745  ,p_event_id     => l_event_id
157746  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157747  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157748  ,p_actual_flag => l_actual_flag
157749  ,p_balance_type_code => l_balance_type_code
157750  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157751  
157752  , p_source_1 => l_array_source_1(Idx)
157753  , p_source_16 => l_array_source_16(Idx)
157754  , p_source_25 => l_array_source_25(Idx)
157755  , p_source_28 => l_array_source_28(Idx)
157756  , p_source_28_meaning => l_array_source_28_meaning(Idx)
157757  , p_source_54 => l_array_source_54(Idx)
157758  , p_source_54_meaning => l_array_source_54_meaning(Idx)
157759  , p_source_58 => l_array_source_58(Idx)
157760  , p_source_60 => l_array_source_60(Idx)
157761  , p_source_62 => l_array_source_62(Idx)
157762  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157763  , p_source_69 => l_array_source_69(Idx)
157764  , p_source_70 => l_array_source_70(Idx)
157765  , p_source_71 => l_array_source_71(Idx)
157766  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157767  , p_source_73 => l_array_source_73(Idx)
157768  , p_source_74 => l_array_source_74(Idx)
157769  , p_source_75 => l_array_source_75(Idx)
157770  , p_source_76 => l_array_source_76(Idx)
157771  , p_source_77 => l_array_source_77(Idx)
157772  , p_source_78 => l_array_source_78(Idx)
157773  , p_source_82 => l_array_source_82(Idx)
157774  , p_source_83 => l_array_source_83(Idx)
157775  , p_source_84 => l_array_source_84(Idx)
157776  , p_source_85 => l_array_source_85(Idx)
157777  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157778  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157779  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157780  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157781  , p_source_89 => l_array_source_89(Idx)
157782  , p_source_91 => l_array_source_91(Idx)
157783  , p_source_92 => l_array_source_92(Idx)
157784  , p_source_93 => l_array_source_93(Idx)
157785  , p_source_94 => l_array_source_94(Idx)
157786  , p_source_95 => l_array_source_95(Idx)
157787  , p_source_96 => l_array_source_96(Idx)
157788  , p_source_97 => l_array_source_97(Idx)
157789  , p_source_98 => l_array_source_98(Idx)
157790  , p_source_99 => l_array_source_99(Idx)
157791  , p_source_100 => l_array_source_100(Idx)
157792  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157793  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157794  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157795  );
157796 If(l_balance_type_code = 'A') THEN
157797   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157798 END IF;
157799 
157800 --
157801 
157802 
157803 --
157804 AcctLineType_160 (
157805  p_application_id  => p_application_id
157806  ,p_event_id     => l_event_id
157807  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157808  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157809  ,p_actual_flag => l_actual_flag
157810  ,p_balance_type_code => l_balance_type_code
157811  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157812  
157813  , p_source_1 => l_array_source_1(Idx)
157814  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
157815  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
157816  , p_source_16 => l_array_source_16(Idx)
157817  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
157818  , p_source_58 => l_array_source_58(Idx)
157819  , p_source_60 => l_array_source_60(Idx)
157820  , p_source_62 => l_array_source_62(Idx)
157821  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157822  , p_source_69 => l_array_source_69(Idx)
157823  , p_source_70 => l_array_source_70(Idx)
157824  , p_source_71 => l_array_source_71(Idx)
157825  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157826  , p_source_73 => l_array_source_73(Idx)
157827  , p_source_74 => l_array_source_74(Idx)
157828  , p_source_75 => l_array_source_75(Idx)
157829  , p_source_76 => l_array_source_76(Idx)
157830  , p_source_77 => l_array_source_77(Idx)
157831  , p_source_78 => l_array_source_78(Idx)
157832  , p_source_82 => l_array_source_82(Idx)
157833  , p_source_83 => l_array_source_83(Idx)
157834  , p_source_84 => l_array_source_84(Idx)
157835  , p_source_85 => l_array_source_85(Idx)
157836  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157837  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157838  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157842  , p_source_92 => l_array_source_92(Idx)
157839  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157840  , p_source_89 => l_array_source_89(Idx)
157841  , p_source_91 => l_array_source_91(Idx)
157843  , p_source_93 => l_array_source_93(Idx)
157844  , p_source_94 => l_array_source_94(Idx)
157845  , p_source_95 => l_array_source_95(Idx)
157846  , p_source_96 => l_array_source_96(Idx)
157847  , p_source_97 => l_array_source_97(Idx)
157848  , p_source_98 => l_array_source_98(Idx)
157849  , p_source_99 => l_array_source_99(Idx)
157850  , p_source_100 => l_array_source_100(Idx)
157851  , p_source_145 => l_array_source_145(Idx)
157852  , p_source_145_meaning => l_array_source_145_meaning(Idx)
157853  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157854  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157855  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157856  );
157857 If(l_balance_type_code = 'A') THEN
157858   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157859 END IF;
157860 
157861 --
157862 
157863 
157864 --
157865 AcctLineType_161 (
157866  p_application_id  => p_application_id
157867  ,p_event_id     => l_event_id
157868  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157869  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157870  ,p_actual_flag => l_actual_flag
157871  ,p_balance_type_code => l_balance_type_code
157872  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157873  
157874  , p_source_1 => l_array_source_1(Idx)
157875  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
157876  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
157877  , p_source_16 => l_array_source_16(Idx)
157878  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
157879  , p_source_58 => l_array_source_58(Idx)
157880  , p_source_60 => l_array_source_60(Idx)
157881  , p_source_62 => l_array_source_62(Idx)
157882  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157883  , p_source_69 => l_array_source_69(Idx)
157884  , p_source_70 => l_array_source_70(Idx)
157885  , p_source_71 => l_array_source_71(Idx)
157886  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157887  , p_source_73 => l_array_source_73(Idx)
157888  , p_source_74 => l_array_source_74(Idx)
157889  , p_source_75 => l_array_source_75(Idx)
157890  , p_source_76 => l_array_source_76(Idx)
157891  , p_source_77 => l_array_source_77(Idx)
157892  , p_source_78 => l_array_source_78(Idx)
157893  , p_source_82 => l_array_source_82(Idx)
157894  , p_source_83 => l_array_source_83(Idx)
157895  , p_source_84 => l_array_source_84(Idx)
157896  , p_source_85 => l_array_source_85(Idx)
157897  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157898  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157899  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157900  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157901  , p_source_89 => l_array_source_89(Idx)
157902  , p_source_91 => l_array_source_91(Idx)
157903  , p_source_92 => l_array_source_92(Idx)
157904  , p_source_93 => l_array_source_93(Idx)
157905  , p_source_94 => l_array_source_94(Idx)
157906  , p_source_95 => l_array_source_95(Idx)
157907  , p_source_96 => l_array_source_96(Idx)
157908  , p_source_97 => l_array_source_97(Idx)
157909  , p_source_98 => l_array_source_98(Idx)
157910  , p_source_99 => l_array_source_99(Idx)
157911  , p_source_100 => l_array_source_100(Idx)
157912  , p_source_145 => l_array_source_145(Idx)
157913  , p_source_145_meaning => l_array_source_145_meaning(Idx)
157914  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157915  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157916  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157917  );
157918 If(l_balance_type_code = 'A') THEN
157919   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157920 END IF;
157921 
157922 --
157923 
157924 
157925 --
157926 AcctLineType_162 (
157927  p_application_id  => p_application_id
157928  ,p_event_id     => l_event_id
157929  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157930  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157931  ,p_actual_flag => l_actual_flag
157932  ,p_balance_type_code => l_balance_type_code
157933  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157934  
157935  , p_source_1 => l_array_source_1(Idx)
157936  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
157937  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
157938  , p_source_16 => l_array_source_16(Idx)
157939  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
157940  , p_source_58 => l_array_source_58(Idx)
157941  , p_source_60 => l_array_source_60(Idx)
157942  , p_source_62 => l_array_source_62(Idx)
157943  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
157944  , p_source_69 => l_array_source_69(Idx)
157945  , p_source_70 => l_array_source_70(Idx)
157946  , p_source_71 => l_array_source_71(Idx)
157947  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
157948  , p_source_73 => l_array_source_73(Idx)
157949  , p_source_74 => l_array_source_74(Idx)
157950  , p_source_75 => l_array_source_75(Idx)
157951  , p_source_76 => l_array_source_76(Idx)
157952  , p_source_77 => l_array_source_77(Idx)
157953  , p_source_78 => l_array_source_78(Idx)
157954  , p_source_82 => l_array_source_82(Idx)
157955  , p_source_83 => l_array_source_83(Idx)
157956  , p_source_84 => l_array_source_84(Idx)
157957  , p_source_85 => l_array_source_85(Idx)
157958  , p_source_85_meaning => l_array_source_85_meaning(Idx)
157959  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
157960  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
157961  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
157962  , p_source_89 => l_array_source_89(Idx)
157966  , p_source_94 => l_array_source_94(Idx)
157963  , p_source_91 => l_array_source_91(Idx)
157964  , p_source_92 => l_array_source_92(Idx)
157965  , p_source_93 => l_array_source_93(Idx)
157967  , p_source_95 => l_array_source_95(Idx)
157968  , p_source_96 => l_array_source_96(Idx)
157969  , p_source_97 => l_array_source_97(Idx)
157970  , p_source_98 => l_array_source_98(Idx)
157971  , p_source_99 => l_array_source_99(Idx)
157972  , p_source_100 => l_array_source_100(Idx)
157973  , p_source_145 => l_array_source_145(Idx)
157974  , p_source_145_meaning => l_array_source_145_meaning(Idx)
157975  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
157976  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
157977  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
157978  );
157979 If(l_balance_type_code = 'A') THEN
157980   l_actual_gain_loss_ref := l_gain_or_loss_ref;
157981 END IF;
157982 
157983 --
157984 
157985 
157986 --
157987 AcctLineType_181 (
157988  p_application_id  => p_application_id
157989  ,p_event_id     => l_event_id
157990  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157991  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157992  ,p_actual_flag => l_actual_flag
157993  ,p_balance_type_code => l_balance_type_code
157994  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157995  
157996  , p_source_1 => l_array_source_1(Idx)
157997  , p_source_16 => l_array_source_16(Idx)
157998  , p_source_25 => l_array_source_25(Idx)
157999  , p_source_28 => l_array_source_28(Idx)
158000  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158001  , p_source_58 => l_array_source_58(Idx)
158002  , p_source_60 => l_array_source_60(Idx)
158003  , p_source_62 => l_array_source_62(Idx)
158004  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158005  , p_source_69 => l_array_source_69(Idx)
158006  , p_source_70 => l_array_source_70(Idx)
158007  , p_source_71 => l_array_source_71(Idx)
158008  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158009  , p_source_73 => l_array_source_73(Idx)
158010  , p_source_74 => l_array_source_74(Idx)
158011  , p_source_75 => l_array_source_75(Idx)
158012  , p_source_76 => l_array_source_76(Idx)
158013  , p_source_77 => l_array_source_77(Idx)
158014  , p_source_78 => l_array_source_78(Idx)
158015  , p_source_82 => l_array_source_82(Idx)
158016  , p_source_83 => l_array_source_83(Idx)
158017  , p_source_84 => l_array_source_84(Idx)
158018  , p_source_85 => l_array_source_85(Idx)
158019  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158020  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158021  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158022  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158023  , p_source_89 => l_array_source_89(Idx)
158024  , p_source_91 => l_array_source_91(Idx)
158025  , p_source_92 => l_array_source_92(Idx)
158026  , p_source_93 => l_array_source_93(Idx)
158027  , p_source_94 => l_array_source_94(Idx)
158028  , p_source_95 => l_array_source_95(Idx)
158029  , p_source_96 => l_array_source_96(Idx)
158030  , p_source_97 => l_array_source_97(Idx)
158031  , p_source_98 => l_array_source_98(Idx)
158032  , p_source_99 => l_array_source_99(Idx)
158033  , p_source_100 => l_array_source_100(Idx)
158034  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158035  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158036  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158037  );
158038 If(l_balance_type_code = 'A') THEN
158039   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158040 END IF;
158041 
158042 --
158043 
158044 
158045 --
158046 AcctLineType_185 (
158047  p_application_id  => p_application_id
158048  ,p_event_id     => l_event_id
158049  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158050  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158051  ,p_actual_flag => l_actual_flag
158052  ,p_balance_type_code => l_balance_type_code
158053  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158054  
158055  , p_source_1 => l_array_source_1(Idx)
158056  , p_source_16 => l_array_source_16(Idx)
158057  , p_source_25 => l_array_source_25(Idx)
158058  , p_source_28 => l_array_source_28(Idx)
158059  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158060  , p_source_54 => l_array_source_54(Idx)
158061  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158062  , p_source_58 => l_array_source_58(Idx)
158063  , p_source_60 => l_array_source_60(Idx)
158064  , p_source_62 => l_array_source_62(Idx)
158065  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158066  , p_source_69 => l_array_source_69(Idx)
158067  , p_source_70 => l_array_source_70(Idx)
158068  , p_source_71 => l_array_source_71(Idx)
158069  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158070  , p_source_73 => l_array_source_73(Idx)
158071  , p_source_74 => l_array_source_74(Idx)
158072  , p_source_75 => l_array_source_75(Idx)
158073  , p_source_76 => l_array_source_76(Idx)
158074  , p_source_77 => l_array_source_77(Idx)
158075  , p_source_78 => l_array_source_78(Idx)
158076  , p_source_79 => l_array_source_79(Idx)
158077  , p_source_80 => l_array_source_80(Idx)
158078  , p_source_81 => l_array_source_81(Idx)
158079  , p_source_82 => l_array_source_82(Idx)
158080  , p_source_83 => l_array_source_83(Idx)
158081  , p_source_84 => l_array_source_84(Idx)
158082  , p_source_85 => l_array_source_85(Idx)
158083  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158084  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158085  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158086  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158087  , p_source_89 => l_array_source_89(Idx)
158088  , p_source_91 => l_array_source_91(Idx)
158089  , p_source_92 => l_array_source_92(Idx)
158090  , p_source_93 => l_array_source_93(Idx)
158094  , p_source_97 => l_array_source_97(Idx)
158091  , p_source_94 => l_array_source_94(Idx)
158092  , p_source_95 => l_array_source_95(Idx)
158093  , p_source_96 => l_array_source_96(Idx)
158095  , p_source_98 => l_array_source_98(Idx)
158096  , p_source_99 => l_array_source_99(Idx)
158097  , p_source_100 => l_array_source_100(Idx)
158098  , p_source_145 => l_array_source_145(Idx)
158099  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158100  );
158101 If(l_balance_type_code = 'A') THEN
158102   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158103 END IF;
158104 
158105 --
158106 
158107 
158108 --
158109 AcctLineType_188 (
158110  p_application_id  => p_application_id
158111  ,p_event_id     => l_event_id
158112  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158113  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158114  ,p_actual_flag => l_actual_flag
158115  ,p_balance_type_code => l_balance_type_code
158116  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158117  
158118  , p_source_1 => l_array_source_1(Idx)
158119  , p_source_16 => l_array_source_16(Idx)
158120  , p_source_25 => l_array_source_25(Idx)
158121  , p_source_28 => l_array_source_28(Idx)
158122  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158123  , p_source_54 => l_array_source_54(Idx)
158124  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158125  , p_source_58 => l_array_source_58(Idx)
158126  , p_source_60 => l_array_source_60(Idx)
158127  , p_source_62 => l_array_source_62(Idx)
158128  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158129  , p_source_69 => l_array_source_69(Idx)
158130  , p_source_70 => l_array_source_70(Idx)
158131  , p_source_71 => l_array_source_71(Idx)
158132  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158133  , p_source_73 => l_array_source_73(Idx)
158134  , p_source_74 => l_array_source_74(Idx)
158135  , p_source_75 => l_array_source_75(Idx)
158136  , p_source_76 => l_array_source_76(Idx)
158137  , p_source_77 => l_array_source_77(Idx)
158138  , p_source_78 => l_array_source_78(Idx)
158139  , p_source_82 => l_array_source_82(Idx)
158140  , p_source_83 => l_array_source_83(Idx)
158141  , p_source_84 => l_array_source_84(Idx)
158142  , p_source_85 => l_array_source_85(Idx)
158143  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158144  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158145  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158146  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158147  , p_source_89 => l_array_source_89(Idx)
158148  , p_source_91 => l_array_source_91(Idx)
158149  , p_source_92 => l_array_source_92(Idx)
158150  , p_source_93 => l_array_source_93(Idx)
158151  , p_source_94 => l_array_source_94(Idx)
158152  , p_source_95 => l_array_source_95(Idx)
158153  , p_source_96 => l_array_source_96(Idx)
158154  , p_source_97 => l_array_source_97(Idx)
158155  , p_source_98 => l_array_source_98(Idx)
158156  , p_source_99 => l_array_source_99(Idx)
158157  , p_source_100 => l_array_source_100(Idx)
158158  , p_source_145 => l_array_source_145(Idx)
158159  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158160  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158161  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158162  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158163  );
158164 If(l_balance_type_code = 'A') THEN
158165   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158166 END IF;
158167 
158168 --
158169 
158170 
158171 --
158172 AcctLineType_197 (
158173  p_application_id  => p_application_id
158174  ,p_event_id     => l_event_id
158175  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158176  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158177  ,p_actual_flag => l_actual_flag
158178  ,p_balance_type_code => l_balance_type_code
158179  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158180  
158181  , p_source_1 => l_array_source_1(Idx)
158182  , p_source_16 => l_array_source_16(Idx)
158183  , p_source_25 => l_array_source_25(Idx)
158184  , p_source_28 => l_array_source_28(Idx)
158185  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158186  , p_source_58 => l_array_source_58(Idx)
158187  , p_source_60 => l_array_source_60(Idx)
158188  , p_source_62 => l_array_source_62(Idx)
158189  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158190  , p_source_69 => l_array_source_69(Idx)
158191  , p_source_70 => l_array_source_70(Idx)
158192  , p_source_71 => l_array_source_71(Idx)
158193  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158194  , p_source_73 => l_array_source_73(Idx)
158195  , p_source_74 => l_array_source_74(Idx)
158196  , p_source_75 => l_array_source_75(Idx)
158197  , p_source_76 => l_array_source_76(Idx)
158198  , p_source_77 => l_array_source_77(Idx)
158199  , p_source_78 => l_array_source_78(Idx)
158200  , p_source_82 => l_array_source_82(Idx)
158201  , p_source_83 => l_array_source_83(Idx)
158202  , p_source_84 => l_array_source_84(Idx)
158203  , p_source_85 => l_array_source_85(Idx)
158204  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158205  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158206  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158207  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158208  , p_source_89 => l_array_source_89(Idx)
158209  , p_source_91 => l_array_source_91(Idx)
158210  , p_source_92 => l_array_source_92(Idx)
158211  , p_source_93 => l_array_source_93(Idx)
158212  , p_source_94 => l_array_source_94(Idx)
158213  , p_source_95 => l_array_source_95(Idx)
158214  , p_source_96 => l_array_source_96(Idx)
158215  , p_source_97 => l_array_source_97(Idx)
158216  , p_source_98 => l_array_source_98(Idx)
158217  , p_source_99 => l_array_source_99(Idx)
158218  , p_source_100 => l_array_source_100(Idx)
158219  , p_source_145 => l_array_source_145(Idx)
158223  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158220  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158221  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158222  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158224  );
158225 If(l_balance_type_code = 'A') THEN
158226   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158227 END IF;
158228 
158229 --
158230 
158231 
158232 --
158233 AcctLineType_202 (
158234  p_application_id  => p_application_id
158235  ,p_event_id     => l_event_id
158236  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158237  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158238  ,p_actual_flag => l_actual_flag
158239  ,p_balance_type_code => l_balance_type_code
158240  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158241  
158242  , p_source_1 => l_array_source_1(Idx)
158243  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
158244  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
158245  , p_source_16 => l_array_source_16(Idx)
158246  , p_source_25 => l_array_source_25(Idx)
158247  , p_source_28 => l_array_source_28(Idx)
158248  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158249  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158250  , p_source_38 => l_array_source_38(Idx)
158251  , p_source_58 => l_array_source_58(Idx)
158252  , p_source_60 => l_array_source_60(Idx)
158253  , p_source_62 => l_array_source_62(Idx)
158254  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158255  , p_source_69 => l_array_source_69(Idx)
158256  , p_source_70 => l_array_source_70(Idx)
158257  , p_source_71 => l_array_source_71(Idx)
158258  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158259  , p_source_73 => l_array_source_73(Idx)
158260  , p_source_74 => l_array_source_74(Idx)
158261  , p_source_75 => l_array_source_75(Idx)
158262  , p_source_76 => l_array_source_76(Idx)
158263  , p_source_77 => l_array_source_77(Idx)
158264  , p_source_78 => l_array_source_78(Idx)
158265  , p_source_82 => l_array_source_82(Idx)
158266  , p_source_83 => l_array_source_83(Idx)
158267  , p_source_84 => l_array_source_84(Idx)
158268  , p_source_85 => l_array_source_85(Idx)
158269  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158270  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158271  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158272  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158273  , p_source_89 => l_array_source_89(Idx)
158274  , p_source_91 => l_array_source_91(Idx)
158275  , p_source_92 => l_array_source_92(Idx)
158276  , p_source_93 => l_array_source_93(Idx)
158277  , p_source_94 => l_array_source_94(Idx)
158278  , p_source_95 => l_array_source_95(Idx)
158279  , p_source_96 => l_array_source_96(Idx)
158280  , p_source_97 => l_array_source_97(Idx)
158281  , p_source_98 => l_array_source_98(Idx)
158282  , p_source_99 => l_array_source_99(Idx)
158283  , p_source_100 => l_array_source_100(Idx)
158284  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158285  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158286  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158287  );
158288 If(l_balance_type_code = 'A') THEN
158289   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158290 END IF;
158291 
158292 --
158293 
158294 
158295 --
158296 AcctLineType_206 (
158297  p_application_id  => p_application_id
158298  ,p_event_id     => l_event_id
158299  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158300  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158301  ,p_actual_flag => l_actual_flag
158302  ,p_balance_type_code => l_balance_type_code
158303  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158304  
158305  , p_source_1 => l_array_source_1(Idx)
158306  , p_source_16 => l_array_source_16(Idx)
158307  , p_source_28 => l_array_source_28(Idx)
158308  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158309  , p_source_46 => l_array_source_46(Idx)
158310  , p_source_54 => l_array_source_54(Idx)
158311  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158312  , p_source_58 => l_array_source_58(Idx)
158313  , p_source_60 => l_array_source_60(Idx)
158314  , p_source_62 => l_array_source_62(Idx)
158315  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158316  , p_source_69 => l_array_source_69(Idx)
158317  , p_source_70 => l_array_source_70(Idx)
158318  , p_source_71 => l_array_source_71(Idx)
158319  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158320  , p_source_73 => l_array_source_73(Idx)
158321  , p_source_74 => l_array_source_74(Idx)
158322  , p_source_75 => l_array_source_75(Idx)
158323  , p_source_76 => l_array_source_76(Idx)
158324  , p_source_77 => l_array_source_77(Idx)
158325  , p_source_78 => l_array_source_78(Idx)
158326  , p_source_82 => l_array_source_82(Idx)
158327  , p_source_83 => l_array_source_83(Idx)
158328  , p_source_84 => l_array_source_84(Idx)
158329  , p_source_85 => l_array_source_85(Idx)
158330  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158331  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158332  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158333  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158334  , p_source_89 => l_array_source_89(Idx)
158335  , p_source_91 => l_array_source_91(Idx)
158336  , p_source_92 => l_array_source_92(Idx)
158337  , p_source_93 => l_array_source_93(Idx)
158338  , p_source_94 => l_array_source_94(Idx)
158339  , p_source_95 => l_array_source_95(Idx)
158340  , p_source_96 => l_array_source_96(Idx)
158341  , p_source_97 => l_array_source_97(Idx)
158342  , p_source_98 => l_array_source_98(Idx)
158343  , p_source_99 => l_array_source_99(Idx)
158344  , p_source_100 => l_array_source_100(Idx)
158345  , p_source_145 => l_array_source_145(Idx)
158349  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158346  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158347  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158348  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158350  );
158351 If(l_balance_type_code = 'A') THEN
158352   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158353 END IF;
158354 
158355 --
158356 
158357 
158358 --
158359 AcctLineType_210 (
158360  p_application_id  => p_application_id
158361  ,p_event_id     => l_event_id
158362  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158363  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158364  ,p_actual_flag => l_actual_flag
158365  ,p_balance_type_code => l_balance_type_code
158366  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158367  
158368  , p_source_1 => l_array_source_1(Idx)
158369  , p_source_16 => l_array_source_16(Idx)
158370  , p_source_28 => l_array_source_28(Idx)
158371  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158372  , p_source_46 => l_array_source_46(Idx)
158373  , p_source_58 => l_array_source_58(Idx)
158374  , p_source_60 => l_array_source_60(Idx)
158375  , p_source_62 => l_array_source_62(Idx)
158376  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158377  , p_source_69 => l_array_source_69(Idx)
158378  , p_source_70 => l_array_source_70(Idx)
158379  , p_source_71 => l_array_source_71(Idx)
158380  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158381  , p_source_73 => l_array_source_73(Idx)
158382  , p_source_74 => l_array_source_74(Idx)
158383  , p_source_75 => l_array_source_75(Idx)
158384  , p_source_76 => l_array_source_76(Idx)
158385  , p_source_77 => l_array_source_77(Idx)
158386  , p_source_78 => l_array_source_78(Idx)
158387  , p_source_82 => l_array_source_82(Idx)
158388  , p_source_83 => l_array_source_83(Idx)
158389  , p_source_84 => l_array_source_84(Idx)
158390  , p_source_85 => l_array_source_85(Idx)
158391  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158392  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158393  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158394  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158395  , p_source_89 => l_array_source_89(Idx)
158396  , p_source_91 => l_array_source_91(Idx)
158397  , p_source_92 => l_array_source_92(Idx)
158398  , p_source_93 => l_array_source_93(Idx)
158399  , p_source_94 => l_array_source_94(Idx)
158400  , p_source_95 => l_array_source_95(Idx)
158401  , p_source_96 => l_array_source_96(Idx)
158402  , p_source_97 => l_array_source_97(Idx)
158403  , p_source_98 => l_array_source_98(Idx)
158404  , p_source_99 => l_array_source_99(Idx)
158405  , p_source_100 => l_array_source_100(Idx)
158406  , p_source_145 => l_array_source_145(Idx)
158407  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158408  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158409  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158410  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158411  );
158412 If(l_balance_type_code = 'A') THEN
158413   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158414 END IF;
158415 
158416 --
158417 
158418 
158419 --
158420 AcctLineType_213 (
158421  p_application_id  => p_application_id
158422  ,p_event_id     => l_event_id
158423  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158424  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158425  ,p_actual_flag => l_actual_flag
158426  ,p_balance_type_code => l_balance_type_code
158427  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158428  
158429  , p_source_1 => l_array_source_1(Idx)
158430  , p_source_16 => l_array_source_16(Idx)
158431  , p_source_28 => l_array_source_28(Idx)
158432  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158433  , p_source_47 => l_array_source_47(Idx)
158434  , p_source_58 => l_array_source_58(Idx)
158435  , p_source_60 => l_array_source_60(Idx)
158436  , p_source_62 => l_array_source_62(Idx)
158437  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158438  , p_source_69 => l_array_source_69(Idx)
158439  , p_source_70 => l_array_source_70(Idx)
158440  , p_source_71 => l_array_source_71(Idx)
158441  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158442  , p_source_73 => l_array_source_73(Idx)
158443  , p_source_74 => l_array_source_74(Idx)
158444  , p_source_75 => l_array_source_75(Idx)
158445  , p_source_76 => l_array_source_76(Idx)
158446  , p_source_77 => l_array_source_77(Idx)
158447  , p_source_78 => l_array_source_78(Idx)
158448  , p_source_82 => l_array_source_82(Idx)
158449  , p_source_83 => l_array_source_83(Idx)
158450  , p_source_84 => l_array_source_84(Idx)
158451  , p_source_85 => l_array_source_85(Idx)
158452  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158453  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158454  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158455  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158456  , p_source_89 => l_array_source_89(Idx)
158457  , p_source_91 => l_array_source_91(Idx)
158458  , p_source_92 => l_array_source_92(Idx)
158459  , p_source_93 => l_array_source_93(Idx)
158460  , p_source_94 => l_array_source_94(Idx)
158461  , p_source_95 => l_array_source_95(Idx)
158462  , p_source_96 => l_array_source_96(Idx)
158463  , p_source_97 => l_array_source_97(Idx)
158464  , p_source_98 => l_array_source_98(Idx)
158465  , p_source_99 => l_array_source_99(Idx)
158466  , p_source_100 => l_array_source_100(Idx)
158467  , p_source_145 => l_array_source_145(Idx)
158468  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158469  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158470  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158471  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158475 END IF;
158472  );
158473 If(l_balance_type_code = 'A') THEN
158474   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158476 
158477 --
158478 
158479 
158480 --
158481 AcctLineType_218 (
158482  p_application_id  => p_application_id
158483  ,p_event_id     => l_event_id
158484  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158485  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158486  ,p_actual_flag => l_actual_flag
158487  ,p_balance_type_code => l_balance_type_code
158488  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158489  
158490  , p_source_1 => l_array_source_1(Idx)
158491  , p_source_16 => l_array_source_16(Idx)
158492  , p_source_28 => l_array_source_28(Idx)
158493  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158494  , p_source_46 => l_array_source_46(Idx)
158495  , p_source_54 => l_array_source_54(Idx)
158496  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158497  , p_source_58 => l_array_source_58(Idx)
158498  , p_source_60 => l_array_source_60(Idx)
158499  , p_source_62 => l_array_source_62(Idx)
158500  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158501  , p_source_69 => l_array_source_69(Idx)
158502  , p_source_70 => l_array_source_70(Idx)
158503  , p_source_71 => l_array_source_71(Idx)
158504  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158505  , p_source_73 => l_array_source_73(Idx)
158506  , p_source_74 => l_array_source_74(Idx)
158507  , p_source_75 => l_array_source_75(Idx)
158508  , p_source_76 => l_array_source_76(Idx)
158509  , p_source_77 => l_array_source_77(Idx)
158510  , p_source_78 => l_array_source_78(Idx)
158511  , p_source_79 => l_array_source_79(Idx)
158512  , p_source_80 => l_array_source_80(Idx)
158513  , p_source_81 => l_array_source_81(Idx)
158514  , p_source_82 => l_array_source_82(Idx)
158515  , p_source_83 => l_array_source_83(Idx)
158516  , p_source_84 => l_array_source_84(Idx)
158517  , p_source_85 => l_array_source_85(Idx)
158518  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158519  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158520  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158521  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158522  , p_source_89 => l_array_source_89(Idx)
158523  , p_source_91 => l_array_source_91(Idx)
158524  , p_source_92 => l_array_source_92(Idx)
158525  , p_source_93 => l_array_source_93(Idx)
158526  , p_source_94 => l_array_source_94(Idx)
158527  , p_source_95 => l_array_source_95(Idx)
158528  , p_source_96 => l_array_source_96(Idx)
158529  , p_source_97 => l_array_source_97(Idx)
158530  , p_source_98 => l_array_source_98(Idx)
158531  , p_source_99 => l_array_source_99(Idx)
158532  , p_source_100 => l_array_source_100(Idx)
158533  , p_source_145 => l_array_source_145(Idx)
158534  , p_source_145_meaning => l_array_source_145_meaning(Idx)
158535  );
158536 If(l_balance_type_code = 'A') THEN
158537   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158538 END IF;
158539 
158540 --
158541 
158542 
158543 --
158544 AcctLineType_222 (
158545  p_application_id  => p_application_id
158546  ,p_event_id     => l_event_id
158547  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158548  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158549  ,p_actual_flag => l_actual_flag
158550  ,p_balance_type_code => l_balance_type_code
158551  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158552  
158553  , p_source_1 => l_array_source_1(Idx)
158554  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
158555  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
158556  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
158557  , p_source_16 => l_array_source_16(Idx)
158558  , p_source_17 => l_array_source_17(Idx)
158559  , p_source_17_meaning => l_array_source_17_meaning(Idx)
158560  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
158561  , p_source_25 => l_array_source_25(Idx)
158562  , p_source_28 => l_array_source_28(Idx)
158563  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158564  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
158565  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
158566  , p_source_54 => l_array_source_54(Idx)
158567  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158568  , p_source_58 => l_array_source_58(Idx)
158569  , p_source_60 => l_array_source_60(Idx)
158570  , p_source_62 => l_array_source_62(Idx)
158571  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158572  , p_source_69 => l_array_source_69(Idx)
158573  , p_source_70 => l_array_source_70(Idx)
158574  , p_source_71 => l_array_source_71(Idx)
158575  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158576  , p_source_73 => l_array_source_73(Idx)
158577  , p_source_74 => l_array_source_74(Idx)
158578  , p_source_75 => l_array_source_75(Idx)
158579  , p_source_76 => l_array_source_76(Idx)
158580  , p_source_77 => l_array_source_77(Idx)
158581  , p_source_78 => l_array_source_78(Idx)
158582  , p_source_82 => l_array_source_82(Idx)
158583  , p_source_83 => l_array_source_83(Idx)
158584  , p_source_84 => l_array_source_84(Idx)
158585  , p_source_85 => l_array_source_85(Idx)
158586  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158587  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158588  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158589  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158590  , p_source_89 => l_array_source_89(Idx)
158591  , p_source_91 => l_array_source_91(Idx)
158592  , p_source_92 => l_array_source_92(Idx)
158593  , p_source_93 => l_array_source_93(Idx)
158594  , p_source_94 => l_array_source_94(Idx)
158595  , p_source_95 => l_array_source_95(Idx)
158596  , p_source_96 => l_array_source_96(Idx)
158597  , p_source_97 => l_array_source_97(Idx)
158598  , p_source_98 => l_array_source_98(Idx)
158602  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158599  , p_source_99 => l_array_source_99(Idx)
158600  , p_source_100 => l_array_source_100(Idx)
158601  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158603  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158604  );
158605 If(l_balance_type_code = 'A') THEN
158606   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158607 END IF;
158608 
158609 --
158610 
158611 
158612 --
158613 AcctLineType_226 (
158614  p_application_id  => p_application_id
158615  ,p_event_id     => l_event_id
158616  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158617  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158618  ,p_actual_flag => l_actual_flag
158619  ,p_balance_type_code => l_balance_type_code
158620  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158621  
158622  , p_source_1 => l_array_source_1(Idx)
158623  , p_source_16 => l_array_source_16(Idx)
158624  , p_source_25 => l_array_source_25(Idx)
158625  , p_source_28 => l_array_source_28(Idx)
158626  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158627  , p_source_54 => l_array_source_54(Idx)
158628  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158629  , p_source_58 => l_array_source_58(Idx)
158630  , p_source_60 => l_array_source_60(Idx)
158631  , p_source_62 => l_array_source_62(Idx)
158632  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158633  , p_source_69 => l_array_source_69(Idx)
158634  , p_source_70 => l_array_source_70(Idx)
158635  , p_source_71 => l_array_source_71(Idx)
158636  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158637  , p_source_73 => l_array_source_73(Idx)
158638  , p_source_74 => l_array_source_74(Idx)
158639  , p_source_75 => l_array_source_75(Idx)
158640  , p_source_76 => l_array_source_76(Idx)
158641  , p_source_77 => l_array_source_77(Idx)
158642  , p_source_78 => l_array_source_78(Idx)
158643  , p_source_82 => l_array_source_82(Idx)
158644  , p_source_83 => l_array_source_83(Idx)
158645  , p_source_84 => l_array_source_84(Idx)
158646  , p_source_85 => l_array_source_85(Idx)
158647  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158648  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158649  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158650  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158651  , p_source_89 => l_array_source_89(Idx)
158652  , p_source_91 => l_array_source_91(Idx)
158653  , p_source_92 => l_array_source_92(Idx)
158654  , p_source_93 => l_array_source_93(Idx)
158655  , p_source_94 => l_array_source_94(Idx)
158656  , p_source_95 => l_array_source_95(Idx)
158657  , p_source_96 => l_array_source_96(Idx)
158658  , p_source_97 => l_array_source_97(Idx)
158659  , p_source_98 => l_array_source_98(Idx)
158660  , p_source_99 => l_array_source_99(Idx)
158661  , p_source_100 => l_array_source_100(Idx)
158662  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158663  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158664  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158665  );
158666 If(l_balance_type_code = 'A') THEN
158667   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158668 END IF;
158669 
158670 --
158671 
158672 
158673 --
158674 AcctLineType_230 (
158675  p_application_id  => p_application_id
158676  ,p_event_id     => l_event_id
158677  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158678  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158679  ,p_actual_flag => l_actual_flag
158680  ,p_balance_type_code => l_balance_type_code
158681  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158682  
158683  , p_source_1 => l_array_source_1(Idx)
158684  , p_source_16 => l_array_source_16(Idx)
158685  , p_source_25 => l_array_source_25(Idx)
158686  , p_source_28 => l_array_source_28(Idx)
158687  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158688  , p_source_54 => l_array_source_54(Idx)
158689  , p_source_54_meaning => l_array_source_54_meaning(Idx)
158690  , p_source_58 => l_array_source_58(Idx)
158691  , p_source_60 => l_array_source_60(Idx)
158692  , p_source_62 => l_array_source_62(Idx)
158693  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158694  , p_source_69 => l_array_source_69(Idx)
158695  , p_source_70 => l_array_source_70(Idx)
158696  , p_source_71 => l_array_source_71(Idx)
158697  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158698  , p_source_73 => l_array_source_73(Idx)
158699  , p_source_74 => l_array_source_74(Idx)
158700  , p_source_75 => l_array_source_75(Idx)
158701  , p_source_76 => l_array_source_76(Idx)
158702  , p_source_77 => l_array_source_77(Idx)
158703  , p_source_78 => l_array_source_78(Idx)
158704  , p_source_82 => l_array_source_82(Idx)
158705  , p_source_83 => l_array_source_83(Idx)
158706  , p_source_84 => l_array_source_84(Idx)
158707  , p_source_85 => l_array_source_85(Idx)
158708  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158709  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158710  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158711  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158712  , p_source_89 => l_array_source_89(Idx)
158713  , p_source_91 => l_array_source_91(Idx)
158714  , p_source_92 => l_array_source_92(Idx)
158715  , p_source_93 => l_array_source_93(Idx)
158716  , p_source_94 => l_array_source_94(Idx)
158717  , p_source_95 => l_array_source_95(Idx)
158718  , p_source_96 => l_array_source_96(Idx)
158719  , p_source_97 => l_array_source_97(Idx)
158720  , p_source_98 => l_array_source_98(Idx)
158721  , p_source_99 => l_array_source_99(Idx)
158722  , p_source_100 => l_array_source_100(Idx)
158723  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158724  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158728   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158725  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158726  );
158727 If(l_balance_type_code = 'A') THEN
158729 END IF;
158730 
158731 --
158732 
158733 
158734 --
158735 AcctLineType_236 (
158736  p_application_id  => p_application_id
158737  ,p_event_id     => l_event_id
158738  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158739  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158740  ,p_actual_flag => l_actual_flag
158741  ,p_balance_type_code => l_balance_type_code
158742  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158743  
158744  , p_source_1 => l_array_source_1(Idx)
158745  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
158746  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
158747  , p_source_16 => l_array_source_16(Idx)
158748  , p_source_25 => l_array_source_25(Idx)
158749  , p_source_28 => l_array_source_28(Idx)
158750  , p_source_28_meaning => l_array_source_28_meaning(Idx)
158751  , p_source_39 => l_array_source_39(Idx)
158752  , p_source_58 => l_array_source_58(Idx)
158753  , p_source_60 => l_array_source_60(Idx)
158754  , p_source_62 => l_array_source_62(Idx)
158755  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
158756  , p_source_69 => l_array_source_69(Idx)
158757  , p_source_70 => l_array_source_70(Idx)
158758  , p_source_71 => l_array_source_71(Idx)
158759  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
158760  , p_source_73 => l_array_source_73(Idx)
158761  , p_source_74 => l_array_source_74(Idx)
158762  , p_source_75 => l_array_source_75(Idx)
158763  , p_source_76 => l_array_source_76(Idx)
158764  , p_source_77 => l_array_source_77(Idx)
158765  , p_source_78 => l_array_source_78(Idx)
158766  , p_source_82 => l_array_source_82(Idx)
158767  , p_source_83 => l_array_source_83(Idx)
158768  , p_source_84 => l_array_source_84(Idx)
158769  , p_source_85 => l_array_source_85(Idx)
158770  , p_source_85_meaning => l_array_source_85_meaning(Idx)
158771  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
158772  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
158773  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
158774  , p_source_89 => l_array_source_89(Idx)
158775  , p_source_91 => l_array_source_91(Idx)
158776  , p_source_92 => l_array_source_92(Idx)
158777  , p_source_93 => l_array_source_93(Idx)
158778  , p_source_94 => l_array_source_94(Idx)
158779  , p_source_95 => l_array_source_95(Idx)
158780  , p_source_96 => l_array_source_96(Idx)
158781  , p_source_97 => l_array_source_97(Idx)
158782  , p_source_98 => l_array_source_98(Idx)
158783  , p_source_99 => l_array_source_99(Idx)
158784  , p_source_100 => l_array_source_100(Idx)
158785  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
158786  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
158787  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
158788  );
158789 If(l_balance_type_code = 'A') THEN
158790   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158791 END IF;
158792 
158793 --
158794 
158795       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
158796       -- or secondary ledger that has different currency with primary
158797       -- or alc that is calculated by sla
158798       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
158799             (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'))
158800 
158801 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
158802 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
158803           AND (l_actual_flag = 'A')) THEN
158804         XLA_AE_LINES_PKG.CreateGainOrLossLines(
158805           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
158806          ,p_application_id   => p_application_id
158807          ,p_amb_context_code => 'DEFAULT'
158808          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
158809          ,p_event_class_code => C_EVENT_CLASS_CODE
158810          ,p_event_type_code  => C_EVENT_TYPE_CODE
158811          
158812          ,p_gain_ccid        => -1
158813          ,p_loss_ccid        => -1
158814 
158815          ,p_actual_flag      => l_actual_flag
158816          ,p_enc_flag         => null
158817          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
158818          ,p_enc_g_l_ref      => null
158819          );
158820       END IF;
158821    END IF;
158822 END IF;
158823 
158824    ELSE
158825       --
158826       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
158827       --
158828       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
158829          trace
158830             (p_msg      => 'Trancaction revesal option is Y'
158831             ,p_level    => C_LEVEL_STATEMENT
158832             ,p_module   => l_log_module);
158833       END IF;
158834    END IF;
158835 
158836 END LOOP;
158837 l_result := XLA_AE_LINES_PKG.InsertLines ;
158838 end loop;
158839 close line_cur;
158840 
158841 
158842 --
158843 -- insert headers into xla_ae_headers_gt table
158844 --
158845 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
158846 
158847 -- insert into errors table here.
158848 
158849 END LOOP;
158850 
158851 --
158852 -- 4865292
158853 --
158854 -- Compare g_hdr_extract_count with event count in
158855 -- CreateHeadersAndLines.
158856 --
158857 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
158858 
158859 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
158860    trace (p_msg     => '# rows extracted from header extract objects '
158861                     || ' (running total): '
158865 END IF;
158862                     || g_hdr_extract_count
158863          ,p_level   => C_LEVEL_STATEMENT
158864          ,p_module  => l_log_module);
158866 
158867 CLOSE header_cur;
158868 --
158869 
158870 --
158871 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
158872    trace
158873       (p_msg      => 'END of EventClass_249'
158874       ,p_level    => C_LEVEL_PROCEDURE
158875       ,p_module   => l_log_module);
158876 END IF;
158877 --
158878 RETURN l_result;
158879 EXCEPTION
158880 WHEN xla_exceptions_pkg.application_exception THEN
158881    
158882 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
158883 
158884    
158885 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
158886 
158887    RAISE;
158888 
158889 WHEN NO_DATA_FOUND THEN
158890 
158891 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
158892 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
158893 
158894 FOR header_record IN header_cur
158895 LOOP
158896     l_array_header_events(header_record.event_id) := header_record.event_id;
158897 END LOOP;
158898 
158899 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
158900 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
158901 
158902 fnd_file.put_line(fnd_file.LOG, '                    ');
158903 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
158904 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
158905 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
158906 
158907 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
158908 LOOP
158909 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
158910 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
158911         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
158912 	END IF;
158913 END LOOP;
158914 
158915 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
158916 fnd_file.put_line(fnd_file.LOG, '                    ');
158917 
158918 
158919 xla_exceptions_pkg.raise_message
158920       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_249');
158921 
158922 
158923 WHEN OTHERS THEN
158924    xla_exceptions_pkg.raise_message
158925       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_249');
158926 END EventClass_249;
158927 --
158928 
158929 ---------------------------------------
158930 --
158931 -- PRIVATE PROCEDURE
158932 --         insert_sources_250
158933 --
158934 ----------------------------------------
158935 --
158936 PROCEDURE insert_sources_250(
158937                                 p_target_ledger_id       IN NUMBER
158938                               , p_language               IN VARCHAR2
158939                               , p_sla_ledger_id          IN NUMBER
158940                               , p_pad_start_date         IN DATE
158941                               , p_pad_end_date           IN DATE
158942                          )
158943 IS
158944 
158945 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
158946 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
158947 p_apps_owner                   VARCHAR2(30);
158948 l_log_module                   VARCHAR2(240);
158949 BEGIN
158950 IF g_log_enabled THEN
158951       l_log_module := C_DEFAULT_MODULE||'.insert_sources_250';
158952 END IF;
158953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
158954 
158955       trace
158956          (p_msg      => 'BEGIN of insert_sources_250'
158957          ,p_level    => C_LEVEL_PROCEDURE
158958          ,p_module   => l_log_module);
158959 
158960 END IF;
158961 
158962 -- select APPS owner
158963 SELECT oracle_username
158964   INTO p_apps_owner
158965   FROM fnd_oracle_userid
158966  WHERE read_only_flag = 'U'
158967 ;
158968 
158969 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
158970       trace
158971          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
158972                         ' - p_language = '||p_language||
158973                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
158974                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
158975                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
158976                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
158977          ,p_level    => C_LEVEL_STATEMENT
158978          ,p_module   => l_log_module);
158979 END IF;
158980 
158981 
158982 --
158983 INSERT INTO xla_diag_sources --hdr2
158984 (
158985         event_id
158986       , ledger_id
158987       , sla_ledger_id
158988       , description_language
158989       , object_name
158990       , object_type_code
158991       , line_number
158992       , source_application_id
158993       , source_type_code
158994       , source_code
158995       , source_value
158996       , source_meaning
158997       , created_by
158998       , creation_date
158999       , last_update_date
159000       , last_updated_by
159001       , last_update_login
159002       , program_update_date
159003       , program_application_id
159004       , program_id
159005       , request_id
159006 )
159007 SELECT
159008         event_id
159009       , p_target_ledger_id
159010       , p_sla_ledger_id
159011       , p_language
159012       , object_name
159013       , object_type_code
159014       , line_number
159015       , source_application_id
159016       , source_type_code
159017       , source_code
159018       , SUBSTR(source_value ,1,1996)
159019       , SUBSTR(source_meaning ,1,200)
159020       , xla_environment_pkg.g_Usr_Id
159024       , xla_environment_pkg.g_Login_Id
159021       , TRUNC(SYSDATE)
159022       , TRUNC(SYSDATE)
159023       , xla_environment_pkg.g_Usr_Id
159025       , TRUNC(SYSDATE)
159026       , xla_environment_pkg.g_Prog_Appl_Id
159027       , xla_environment_pkg.g_Prog_Id
159028       , xla_environment_pkg.g_Req_Id
159029   FROM (
159030        SELECT xet.event_id                  event_id
159031             , 0                          line_number
159032             , CASE r
159033                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159034                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159035                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159036                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159037                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159038                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159039                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159040                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159041                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159042                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159043                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159044                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159045                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159046                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159047                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159048                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159049                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159050                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159051                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159052                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159053                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159054                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
159055                 
159056                ELSE null
159057               END                           object_name
159058             , CASE r
159059                 WHEN 1 THEN 'HEADER' 
159060                 WHEN 2 THEN 'HEADER' 
159061                 WHEN 3 THEN 'HEADER' 
159062                 WHEN 4 THEN 'HEADER' 
159063                 WHEN 5 THEN 'HEADER' 
159064                 WHEN 6 THEN 'HEADER' 
159065                 WHEN 7 THEN 'HEADER' 
159066                 WHEN 8 THEN 'HEADER' 
159067                 WHEN 9 THEN 'HEADER' 
159068                 WHEN 10 THEN 'HEADER' 
159069                 WHEN 11 THEN 'HEADER' 
159070                 WHEN 12 THEN 'HEADER' 
159071                 WHEN 13 THEN 'HEADER' 
159072                 WHEN 14 THEN 'HEADER' 
159073                 WHEN 15 THEN 'HEADER' 
159074                 WHEN 16 THEN 'HEADER' 
159075                 WHEN 17 THEN 'HEADER' 
159076                 WHEN 18 THEN 'HEADER' 
159077                 WHEN 19 THEN 'HEADER' 
159078                 WHEN 20 THEN 'HEADER' 
159079                 WHEN 21 THEN 'HEADER' 
159080                 WHEN 22 THEN 'HEADER' 
159081                 
159082                 ELSE null
159083               END                           object_type_code
159084             , CASE r
159085                 WHEN 1 THEN '200' 
159086                 WHEN 2 THEN '200' 
159087                 WHEN 3 THEN '200' 
159088                 WHEN 4 THEN '200' 
159089                 WHEN 5 THEN '200' 
159090                 WHEN 6 THEN '200' 
159091                 WHEN 7 THEN '200' 
159092                 WHEN 8 THEN '200' 
159093                 WHEN 9 THEN '200' 
159094                 WHEN 10 THEN '200' 
159095                 WHEN 11 THEN '200' 
159096                 WHEN 12 THEN '200' 
159097                 WHEN 13 THEN '200' 
159098                 WHEN 14 THEN '200' 
159099                 WHEN 15 THEN '200' 
159100                 WHEN 16 THEN '200' 
159101                 WHEN 17 THEN '200' 
159102                 WHEN 18 THEN '200' 
159103                 WHEN 19 THEN '200' 
159104                 WHEN 20 THEN '200' 
159105                 WHEN 21 THEN '200' 
159106                 WHEN 22 THEN '200' 
159107                 
159108                 ELSE null
159109               END                           source_application_id
159110             , 'S'             source_type_code
159111             , CASE r
159112                 WHEN 1 THEN 'AC_DOC_SEQUENCE_VALUE' 
159113                 WHEN 2 THEN 'AC_CURRENCY_CODE' 
159114                 WHEN 3 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
159115                 WHEN 4 THEN 'CGAC_AP_ASSET_CCID' 
159116                 WHEN 5 THEN 'CGAC_CASH_CLEARING_CCID' 
159117                 WHEN 6 THEN 'CGAC_GAIN_CCID' 
159118                 WHEN 7 THEN 'ASP_GAIN_CCID' 
159119                 WHEN 8 THEN 'CGAC_LOSS_CCID' 
159120                 WHEN 9 THEN 'ASP_LOSS_CCID' 
159121                 WHEN 10 THEN 'ASP_AUTO_OFFSET_FLAG' 
159122                 WHEN 11 THEN 'ASP_ROUNDING_ERROR_CCID' 
159123                 WHEN 12 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
159124                 WHEN 13 THEN 'THIRD_PARTY_TYPE' 
159125                 WHEN 14 THEN 'AC_VENDOR_ID' 
159126                 WHEN 15 THEN 'AC_VENDOR_SITE_ID' 
159127                 WHEN 16 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
159128                 WHEN 17 THEN 'AC_FUTURE_PAY_DUE_DATE' 
159129                 WHEN 18 THEN 'AC_EXCHANGE_DATE' 
159130                 WHEN 19 THEN 'AC_EXCHANGE_RATE' 
159131                 WHEN 20 THEN 'AC_EXCHANGE_RATE_TYPE' 
159132                 WHEN 21 THEN 'AC_DOC_CATEGORY_CODE' 
159133                 WHEN 22 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
159134                 
159135                 ELSE null
159136               END                           source_code
159137             , CASE r
159138                 WHEN 1 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
159139                 WHEN 2 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
159140                 WHEN 3 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
159141                 WHEN 4 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
159145                 WHEN 8 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
159142                 WHEN 5 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
159143                 WHEN 6 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
159144                 WHEN 7 THEN TO_CHAR(h3.ASP_GAIN_CCID)
159146                 WHEN 9 THEN TO_CHAR(h3.ASP_LOSS_CCID)
159147                 WHEN 10 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
159148                 WHEN 11 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
159149                 WHEN 12 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
159150                 WHEN 13 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
159151                 WHEN 14 THEN TO_CHAR(h2.AC_VENDOR_ID)
159152                 WHEN 15 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
159153                 WHEN 16 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
159154                 WHEN 17 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
159155                 WHEN 18 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
159156                 WHEN 19 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
159157                 WHEN 20 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
159158                 WHEN 21 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
159159                 WHEN 22 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
159160                 
159161                 ELSE null
159162               END                           source_value
159163             , CASE r
159164                 WHEN 3 THEN fvl10.meaning
159165                 WHEN 10 THEN fvl43.meaning
159166                 WHEN 16 THEN fvl116.meaning
159167                 
159168                 ELSE null
159169               END               source_meaning
159170          FROM xla_events_gt     xet  
159171       , AP_PAYMENT_EXTRACT_HEADER_V  h2
159172       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
159173   , fnd_lookup_values    fvl10
159174   , fnd_lookup_values    fvl43
159175   , fnd_lookup_values    fvl116
159176              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
159177          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
159178            AND xet.event_class_code = C_EVENT_CLASS_CODE
159179               AND h2.event_id = xet.event_id
159180  AND h3.asp_org_id = h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
159181   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
159182   AND fvl10.view_application_id(+) = 200
159183   AND fvl10.language(+)            = USERENV('LANG')
159184      AND fvl43.lookup_type(+)         = 'YES_NO'
159185   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
159186   AND fvl43.view_application_id(+) = 0
159187   AND fvl43.language(+)            = USERENV('LANG')
159188      AND fvl116.lookup_type(+)         = 'YES_NO'
159189   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
159190   AND fvl116.view_application_id(+) = 0
159191   AND fvl116.language(+)            = USERENV('LANG')
159192   
159193 )
159194 ;
159195 --
159196 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159197 
159198       trace
159199          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
159200          ,p_level    => C_LEVEL_STATEMENT
159201          ,p_module   => l_log_module);
159202 
159203 END IF;
159204 --
159205 
159206 
159207 
159208 --
159209 INSERT INTO xla_diag_sources  --line2
159210 (
159211         event_id
159212       , ledger_id
159213       , sla_ledger_id
159214       , description_language
159215       , object_name
159216       , object_type_code
159217       , line_number
159218       , source_application_id
159219       , source_type_code
159220       , source_code
159221       , source_value
159222       , source_meaning
159223       , created_by
159224       , creation_date
159225       , last_update_date
159226       , last_updated_by
159227       , last_update_login
159228       , program_update_date
159229       , program_application_id
159230       , program_id
159231       , request_id
159232 )
159233 SELECT  event_id
159234       , p_target_ledger_id
159235       , p_sla_ledger_id
159236       , p_language
159237       , object_name
159238       , object_type_code
159239       , line_number
159240       , source_application_id
159241       , source_type_code
159242       , source_code
159243       , SUBSTR(source_value,1,1996)
159244       , SUBSTR(source_meaning ,1,200)
159245       , xla_environment_pkg.g_Usr_Id
159246       , TRUNC(SYSDATE)
159247       , TRUNC(SYSDATE)
159248       , xla_environment_pkg.g_Usr_Id
159249       , xla_environment_pkg.g_Login_Id
159250       , TRUNC(SYSDATE)
159251       , xla_environment_pkg.g_Prog_Appl_Id
159252       , xla_environment_pkg.g_Prog_Id
159253       , xla_environment_pkg.g_Req_Id
159254   FROM (
159255        SELECT xet.event_id                  event_id
159256             , l1.line_number                 line_number
159257             , CASE r
159258                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159259                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159260                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159261                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159262                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159263                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159264                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159265                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159266                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159267                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159268                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159269                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159270                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159271                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159272                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159273                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159274                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159278                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159275                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159276                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159277                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159279                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159280                 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159281                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159282                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
159283                 
159284                ELSE null
159285               END                           object_name
159286             , CASE r
159287                 WHEN 1 THEN 'LINE' 
159288                 WHEN 2 THEN 'LINE' 
159289                 WHEN 3 THEN 'LINE' 
159290                 WHEN 4 THEN 'LINE' 
159291                 WHEN 5 THEN 'LINE' 
159292                 WHEN 6 THEN 'LINE' 
159293                 WHEN 7 THEN 'LINE' 
159294                 WHEN 8 THEN 'LINE' 
159295                 WHEN 9 THEN 'LINE' 
159296                 WHEN 10 THEN 'LINE' 
159297                 WHEN 11 THEN 'LINE' 
159298                 WHEN 12 THEN 'LINE' 
159299                 WHEN 13 THEN 'LINE' 
159300                 WHEN 14 THEN 'LINE' 
159301                 WHEN 15 THEN 'LINE' 
159302                 WHEN 16 THEN 'LINE' 
159303                 WHEN 17 THEN 'LINE' 
159304                 WHEN 18 THEN 'LINE' 
159305                 WHEN 19 THEN 'LINE' 
159306                 WHEN 20 THEN 'LINE' 
159307                 WHEN 21 THEN 'LINE' 
159308                 WHEN 22 THEN 'LINE' 
159309                 WHEN 23 THEN 'LINE' 
159310                 WHEN 24 THEN 'LINE' 
159311                 WHEN 25 THEN 'LINE' 
159312                 
159313                 ELSE null
159314               END                           object_type_code
159315             , CASE r
159316                 WHEN 1 THEN '200' 
159317                 WHEN 2 THEN '200' 
159318                 WHEN 3 THEN '200' 
159319                 WHEN 4 THEN '200' 
159320                 WHEN 5 THEN '200' 
159321                 WHEN 6 THEN '200' 
159322                 WHEN 7 THEN '200' 
159323                 WHEN 8 THEN '200' 
159324                 WHEN 9 THEN '200' 
159325                 WHEN 10 THEN '200' 
159326                 WHEN 11 THEN '200' 
159327                 WHEN 12 THEN '200' 
159328                 WHEN 13 THEN '200' 
159329                 WHEN 14 THEN '200' 
159330                 WHEN 15 THEN '200' 
159331                 WHEN 16 THEN '200' 
159332                 WHEN 17 THEN '200' 
159333                 WHEN 18 THEN '200' 
159334                 WHEN 19 THEN '200' 
159335                 WHEN 20 THEN '200' 
159336                 WHEN 21 THEN '200' 
159337                 WHEN 22 THEN '200' 
159338                 WHEN 23 THEN '200' 
159339                 WHEN 24 THEN '200' 
159340                 WHEN 25 THEN '200' 
159341                 
159342                 ELSE null
159343               END                           source_application_id
159344             , 'S'             source_type_code
159345             , CASE r
159346                 WHEN 1 THEN 'AID_DIST_CCID' 
159347                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
159348                 WHEN 3 THEN 'TAX_ACCOUNT_CCID' 
159349                 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
159350                 WHEN 5 THEN 'DISTRIBUTION_LINK_TYPE' 
159351                 WHEN 6 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
159352                 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID' 
159353                 WHEN 8 THEN 'BUS_FLOW_INV_DIST_TYPE' 
159354                 WHEN 9 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
159355                 WHEN 10 THEN 'BUS_FLOW_INV_DIST_ID' 
159356                 WHEN 11 THEN 'BUS_FLOW_INV_ID' 
159357                 WHEN 12 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
159358                 WHEN 13 THEN 'APHD_AMOUNT' 
159359                 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
159360                 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
159361                 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
159362                 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID' 
159363                 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
159364                 WHEN 19 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
159365                 WHEN 20 THEN 'APHD_PAYMENT_BASE_AMT' 
159366                 WHEN 21 THEN 'APHD_INVOICE_BASE_AMT' 
159367                 WHEN 22 THEN 'APHD_MATURED_BASE_AMOUNT' 
159368                 WHEN 23 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
159369                 WHEN 24 THEN 'PMT_MAT_BASE_AMT_DIFF' 
159370                 WHEN 25 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR' 
159371                 
159372                 ELSE null
159373               END                           source_code
159374             , CASE r
159375                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
159376                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
159377                 WHEN 3 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
159378                 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
159379                 WHEN 5 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
159380                 WHEN 6 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
159381                 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
159382                 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
159383                 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
159384                 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
159385                 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
159386                 WHEN 12 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
159387                 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
159388                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
159389                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
159390                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
159391                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
159392                 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
159396                 WHEN 22 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
159393                 WHEN 19 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
159394                 WHEN 20 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
159395                 WHEN 21 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
159397                 WHEN 23 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
159398                 WHEN 24 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
159399                 WHEN 25 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
159400                 
159401                 ELSE null
159402               END                           source_value
159403             , CASE r
159404                 WHEN 2 THEN fvl28.meaning
159405                 WHEN 6 THEN fvl85.meaning
159406                 WHEN 12 THEN fvl101.meaning
159407                 WHEN 23 THEN fvl140.meaning
159408                 
159409                 ELSE null
159410               END               source_meaning
159411          FROM  xla_events_gt     xet  
159412         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
159413         , ZX_AP_DEF_TAX_EXTRACT_V  l4
159414   , fnd_lookup_values    fvl28
159415   , fnd_lookup_values    fvl85
159416   , fnd_lookup_values    fvl101
159417   , fnd_lookup_values    fvl140
159418             , (select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
159419         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
159420           AND xet.event_class_code = C_EVENT_CLASS_CODE
159421             AND l1.event_id          = xet.event_id
159422  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
159423   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
159424   AND fvl28.view_application_id(+) = 200
159425   AND fvl28.language(+)            = USERENV('LANG')
159426      AND fvl85.lookup_type(+)         = 'YES_NO'
159427   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
159428   AND fvl85.view_application_id(+) = 0
159429   AND fvl85.language(+)            = USERENV('LANG')
159430      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
159431   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
159432   AND fvl101.view_application_id(+) = 200
159433   AND fvl101.language(+)            = USERENV('LANG')
159434      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
159435   AND fvl140.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
159436   AND fvl140.view_application_id(+) = 0
159437   AND fvl140.language(+)            = USERENV('LANG')
159438   
159439 )
159440 ;
159441 --
159442 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159443 
159444       trace
159445          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
159446          ,p_level    => C_LEVEL_STATEMENT
159447          ,p_module   => l_log_module);
159448 
159449 END IF;
159450 
159451 
159452 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159453       trace
159454          (p_msg      => 'END of insert_sources_250'
159455          ,p_level    => C_LEVEL_PROCEDURE
159456          ,p_module   => l_log_module);
159457 END IF;
159458 EXCEPTION
159459   WHEN xla_exceptions_pkg.application_exception THEN
159460       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
159461             trace
159462                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
159463                ,p_level    => C_LEVEL_EXCEPTION
159464                ,p_module   => l_log_module);
159465       END IF;
159466       RAISE;
159467   WHEN OTHERS THEN
159468       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
159469             trace
159470                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
159471                ,p_level    => C_LEVEL_EXCEPTION
159472                ,p_module   => l_log_module);
159473        END IF;
159474        xla_exceptions_pkg.raise_message
159475            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_250');
159476 END insert_sources_250;
159477 --
159478 
159479 ---------------------------------------
159480 --
159481 -- PRIVATE FUNCTION
159482 --         EventClass_250
159483 --
159484 ----------------------------------------
159485 --
159486 FUNCTION EventClass_250
159487        (p_application_id         IN NUMBER
159488        ,p_base_ledger_id         IN NUMBER
159489        ,p_target_ledger_id       IN NUMBER
159490        ,p_language               IN VARCHAR2
159491        ,p_currency_code          IN VARCHAR2
159492        ,p_sla_ledger_id          IN NUMBER
159493        ,p_pad_start_date         IN DATE
159494        ,p_pad_end_date           IN DATE
159495        ,p_primary_ledger_id      IN NUMBER)
159496 RETURN BOOLEAN IS
159497 --
159498 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
159499 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
159500 
159501 l_calculate_acctd_flag   VARCHAR2(1) :='N';
159502 l_calculate_g_l_flag     VARCHAR2(1) :='N';
159503 --
159504 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159505 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159506 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159507 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159508 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159509 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159510 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159511 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159512 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159513 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159514 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159515 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159516 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159520 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159517 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159518 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159519 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159521 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159522 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159523 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159524 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159525 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159526 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
159527 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159528 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
159529 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
159530 
159531 l_event_id                             NUMBER;
159532 l_previous_event_id                    NUMBER;
159533 l_first_event_id                       NUMBER;
159534 l_last_event_id                        NUMBER;
159535 
159536 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
159537 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
159538 --
159539 --
159540 l_result                    BOOLEAN := TRUE;
159541 l_rows                      NUMBER  := 1000;
159542 l_event_type_name           VARCHAR2(80) := 'All';
159543 l_event_class_name          VARCHAR2(80) := 'Future Dated Payments';
159544 l_description               VARCHAR2(4000);
159545 l_transaction_reversal      NUMBER;
159546 l_ae_header_id              NUMBER;
159547 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
159548 l_log_module                VARCHAR2(240);
159549 --
159550 l_acct_reversal_source      VARCHAR2(30);
159551 l_trx_reversal_source       VARCHAR2(30);
159552 
159553 l_continue_with_lines       BOOLEAN := TRUE;
159554 --
159555 l_acc_rev_gl_date_source    DATE;                      -- 4262811
159556 --
159557 type t_array_event_id is table of number index by binary_integer;
159558 
159559 l_rec_array_event                    t_rec_array_event;
159560 l_null_rec_array_event               t_rec_array_event;
159561 l_array_ae_header_id                 xla_number_array_type;
159562 l_actual_flag                        VARCHAR2(1) := NULL;
159563 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
159564 l_balance_type_code                  VARCHAR2(1) :=NULL;
159565 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
159566 
159567 --
159568 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
159569 --
159570 
159571 TYPE t_array_source_4 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
159572 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
159573 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
159574 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
159575 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
159576 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
159577 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
159578 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
159579 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
159580 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
159581 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
159582 TYPE t_array_source_57 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
159583 TYPE t_array_source_88 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
159584 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
159585 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
159586 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
159587 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
159588 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
159589 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
159590 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
159591 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
159592 TYPE t_array_source_176 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
159593 
159594 TYPE t_array_source_25 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
159595 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
159596 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
159597 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
159598 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
159599 TYPE t_array_source_85 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
159600 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
159604 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
159601 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
159602 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
159603 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
159605 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
159606 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
159607 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
159608 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
159609 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
159610 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
159611 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
159612 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
159613 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
159614 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
159615 TYPE t_array_source_124 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
159616 TYPE t_array_source_140 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
159617 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
159618 TYPE t_array_source_164 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
159619 
159620 l_array_source_4              t_array_source_4;
159621 l_array_source_8              t_array_source_8;
159622 l_array_source_10              t_array_source_10;
159623 l_array_source_10_meaning      t_array_lookup_meaning;
159624 l_array_source_12              t_array_source_12;
159625 l_array_source_30              t_array_source_30;
159626 l_array_source_31              t_array_source_31;
159627 l_array_source_32              t_array_source_32;
159628 l_array_source_33              t_array_source_33;
159629 l_array_source_34              t_array_source_34;
159630 l_array_source_43              t_array_source_43;
159631 l_array_source_43_meaning      t_array_lookup_meaning;
159632 l_array_source_45              t_array_source_45;
159633 l_array_source_57              t_array_source_57;
159634 l_array_source_88              t_array_source_88;
159635 l_array_source_113              t_array_source_113;
159636 l_array_source_114              t_array_source_114;
159637 l_array_source_116              t_array_source_116;
159638 l_array_source_116_meaning      t_array_lookup_meaning;
159639 l_array_source_117              t_array_source_117;
159640 l_array_source_120              t_array_source_120;
159641 l_array_source_121              t_array_source_121;
159642 l_array_source_122              t_array_source_122;
159643 l_array_source_175              t_array_source_175;
159644 l_array_source_176              t_array_source_176;
159645 
159646 l_array_source_25      t_array_source_25;
159647 l_array_source_28      t_array_source_28;
159648 l_array_source_28_meaning      t_array_lookup_meaning;
159649 l_array_source_48      t_array_source_48;
159650 l_array_source_58      t_array_source_58;
159651 l_array_source_60      t_array_source_60;
159652 l_array_source_85      t_array_source_85;
159653 l_array_source_85_meaning      t_array_lookup_meaning;
159654 l_array_source_96      t_array_source_96;
159655 l_array_source_97      t_array_source_97;
159656 l_array_source_98      t_array_source_98;
159657 l_array_source_99      t_array_source_99;
159658 l_array_source_100      t_array_source_100;
159659 l_array_source_101      t_array_source_101;
159660 l_array_source_101_meaning      t_array_lookup_meaning;
159661 l_array_source_102      t_array_source_102;
159662 l_array_source_103      t_array_source_103;
159663 l_array_source_104      t_array_source_104;
159664 l_array_source_105      t_array_source_105;
159665 l_array_source_106      t_array_source_106;
159666 l_array_source_107      t_array_source_107;
159667 l_array_source_115      t_array_source_115;
159668 l_array_source_118      t_array_source_118;
159669 l_array_source_119      t_array_source_119;
159670 l_array_source_124      t_array_source_124;
159671 l_array_source_140      t_array_source_140;
159672 l_array_source_140_meaning      t_array_lookup_meaning;
159673 l_array_source_157      t_array_source_157;
159674 l_array_source_164      t_array_source_164;
159675 
159676 --
159677 CURSOR header_cur
159678 IS
159679 SELECT /*+ leading(xet) cardinality(xet,1) */
159680 -- Event Class Code: FUTURE DATED PAYMENTS
159681     xet.entity_id
159682    ,xet.legal_entity_id
159683    ,xet.entity_code
159684    ,xet.transaction_number
159685    ,xet.event_id
159686    ,xet.event_class_code
159687    ,xet.event_type_code
159688    ,xet.event_number
159689    ,xet.event_date
159690    ,xet.transaction_date
159691    ,xet.reference_num_1
159692    ,xet.reference_num_2
159693    ,xet.reference_num_3
159694    ,xet.reference_num_4
159695    ,xet.reference_char_1
159696    ,xet.reference_char_2
159697    ,xet.reference_char_3
159698    ,xet.reference_char_4
159699    ,xet.reference_date_1
159700    ,xet.reference_date_2
159701    ,xet.reference_date_3
159702    ,xet.reference_date_4
159703    ,xet.event_created_by
159704    ,xet.budgetary_control_flag 
159705   , h2.AC_DOC_SEQUENCE_VALUE    source_4
159706   , h2.AC_CURRENCY_CODE    source_8
159707   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
159708   , fvl10.meaning   source_10_meaning
159712   , h3.ASP_GAIN_CCID    source_32
159709   , h2.CGAC_AP_ASSET_CCID    source_12
159710   , h2.CGAC_CASH_CLEARING_CCID    source_30
159711   , h2.CGAC_GAIN_CCID    source_31
159713   , h2.CGAC_LOSS_CCID    source_33
159714   , h3.ASP_LOSS_CCID    source_34
159715   , h3.ASP_AUTO_OFFSET_FLAG    source_43
159716   , fvl43.meaning   source_43_meaning
159717   , h3.ASP_ROUNDING_ERROR_CCID    source_45
159718   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_57
159719   , h2.THIRD_PARTY_TYPE    source_88
159720   , h2.AC_VENDOR_ID    source_113
159721   , h2.AC_VENDOR_SITE_ID    source_114
159722   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_116
159723   , fvl116.meaning   source_116_meaning
159724   , h2.AC_FUTURE_PAY_DUE_DATE    source_117
159725   , h2.AC_EXCHANGE_DATE    source_120
159726   , h2.AC_EXCHANGE_RATE    source_121
159727   , h2.AC_EXCHANGE_RATE_TYPE    source_122
159728   , h2.AC_DOC_CATEGORY_CODE    source_175
159729   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_176
159730   FROM xla_events_gt     xet 
159731   , AP_PAYMENT_EXTRACT_HEADER_V  h2
159732   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
159733   , fnd_lookup_values    fvl10
159734   , fnd_lookup_values    fvl43
159735   , fnd_lookup_values    fvl116
159736  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
159737    and xet.event_class_code = C_EVENT_CLASS_CODE
159738    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
159739  AND h3.asp_org_id = h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
159740   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
159741   AND fvl10.view_application_id(+) = 200
159742   AND fvl10.language(+)            = USERENV('LANG')
159743      AND fvl43.lookup_type(+)         = 'YES_NO'
159744   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
159745   AND fvl43.view_application_id(+) = 0
159746   AND fvl43.language(+)            = USERENV('LANG')
159747      AND fvl116.lookup_type(+)         = 'YES_NO'
159748   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
159749   AND fvl116.view_application_id(+) = 0
159750   AND fvl116.language(+)            = USERENV('LANG')
159751   
159752  ORDER BY event_id
159753 ;
159754 
159755 
159756 --
159757 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
159758 IS
159759 SELECT  /*+ leading(xet) cardinality(xet,1) */
159760 -- Event Class Code: FUTURE DATED PAYMENTS
159761     xet.entity_id
159762    ,xet.legal_entity_id
159763    ,xet.entity_code
159764    ,xet.transaction_number
159765    ,xet.event_id
159766    ,xet.event_class_code
159767    ,xet.event_type_code
159768    ,xet.event_number
159769    ,xet.event_date
159770    ,xet.transaction_date
159771    ,xet.reference_num_1
159772    ,xet.reference_num_2
159773    ,xet.reference_num_3
159774    ,xet.reference_num_4
159775    ,xet.reference_char_1
159776    ,xet.reference_char_2
159777    ,xet.reference_char_3
159778    ,xet.reference_char_4
159779    ,xet.reference_date_1
159780    ,xet.reference_date_2
159781    ,xet.reference_date_3
159782    ,xet.reference_date_4
159783    ,xet.event_created_by
159784    ,xet.budgetary_control_flag
159785  , l1.LINE_NUMBER  
159786   , l1.AID_DIST_CCID    source_25
159787   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
159788   , fvl28.meaning   source_28_meaning
159789   , l4.TAX_ACCOUNT_CCID    source_48
159790   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
159791   , l1.DISTRIBUTION_LINK_TYPE    source_60
159792   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
159793   , fvl85.meaning   source_85_meaning
159794   , l1.BUS_FLOW_AP_APP_ID    source_96
159795   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
159796   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
159797   , l1.BUS_FLOW_INV_DIST_ID    source_99
159798   , l1.BUS_FLOW_INV_ID    source_100
159799   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_101
159800   , fvl101.meaning   source_101_meaning
159801   , l1.APHD_AMOUNT    source_102
159802   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_103
159803   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_104
159804   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_105
159805   , l1.BUS_FLOW_PAYMENT_ID    source_106
159806   , l1.APHD_PAYMENT_HIST_DIST_ID    source_107
159807   , l1.APHD_REV_PAY_HIST_DIST_ID    source_115
159808   , l1.APHD_PAYMENT_BASE_AMT    source_118
159809   , l1.APHD_INVOICE_BASE_AMT    source_119
159810   , l1.APHD_MATURED_BASE_AMOUNT    source_124
159811   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_140
159812   , fvl140.meaning   source_140_meaning
159813   , l1.PMT_MAT_BASE_AMT_DIFF    source_157
159814   , l1.PMT_MAT_GAIN_LOSS_INDICATOR    source_164
159815   FROM xla_events_gt     xet 
159816   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
159817   , ZX_AP_DEF_TAX_EXTRACT_V  l4
159818   , fnd_lookup_values    fvl28
159819   , fnd_lookup_values    fvl85
159820   , fnd_lookup_values    fvl101
159821   , fnd_lookup_values    fvl140
159822  WHERE xet.event_id between x_first_event_id and x_last_event_id
159823    and xet.event_date between p_pad_start_date and p_pad_end_date
159824    and xet.event_class_code = C_EVENT_CLASS_CODE
159825    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
159826  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
159827   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
159828   AND fvl28.view_application_id(+) = 200
159829   AND fvl28.language(+)            = USERENV('LANG')
159830      AND fvl85.lookup_type(+)         = 'YES_NO'
159831   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
159832   AND fvl85.view_application_id(+) = 0
159833   AND fvl85.language(+)            = USERENV('LANG')
159834      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
159835   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
159836   AND fvl101.view_application_id(+) = 200
159837   AND fvl101.language(+)            = USERENV('LANG')
159838      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
159842   ;
159839   AND fvl140.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
159840   AND fvl140.view_application_id(+) = 0
159841   AND fvl140.language(+)            = USERENV('LANG')
159843 
159844 --
159845 BEGIN
159846 IF g_log_enabled THEN
159847    l_log_module := C_DEFAULT_MODULE||'.EventClass_250';
159848 END IF;
159849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159850    trace
159851       (p_msg      => 'BEGIN of EventClass_250'
159852       ,p_level    => C_LEVEL_PROCEDURE
159853       ,p_module   => l_log_module);
159854 END IF;
159855 
159856 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159857    trace
159858       (p_msg      => 'p_application_id = '||p_application_id||
159859                      ' - p_base_ledger_id = '||p_base_ledger_id||
159860                      ' - p_target_ledger_id  = '||p_target_ledger_id||
159861                      ' - p_language = '||p_language||
159862                      ' - p_currency_code = '||p_currency_code||
159863                      ' - p_sla_ledger_id = '||p_sla_ledger_id
159864       ,p_level    => C_LEVEL_STATEMENT
159865       ,p_module   => l_log_module);
159866 END IF;
159867 --
159868 -- initialze arrays
159869 --
159870 g_array_event.DELETE;
159871 l_rec_array_event := l_null_rec_array_event;
159872 --
159873 --------------------------------------
159874 -- 4262811 Initialze MPA Line Number
159875 --------------------------------------
159876 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
159877 
159878 --
159879 
159880 --
159881 OPEN header_cur;
159882 --
159883 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159884    trace
159885    (p_msg      => 'SQL - FETCH header_cur'
159886    ,p_level    => C_LEVEL_STATEMENT
159887    ,p_module   => l_log_module);
159888 END IF;
159889 --
159890 LOOP
159891 FETCH header_cur BULK COLLECT INTO
159892         l_array_entity_id
159893       , l_array_legal_entity_id
159894       , l_array_entity_code
159895       , l_array_transaction_num
159896       , l_array_event_id
159897       , l_array_class_code
159898       , l_array_event_type
159899       , l_array_event_number
159900       , l_array_event_date
159901       , l_array_transaction_date
159902       , l_array_reference_num_1
159903       , l_array_reference_num_2
159904       , l_array_reference_num_3
159905       , l_array_reference_num_4
159906       , l_array_reference_char_1
159907       , l_array_reference_char_2
159908       , l_array_reference_char_3
159909       , l_array_reference_char_4
159910       , l_array_reference_date_1
159911       , l_array_reference_date_2
159912       , l_array_reference_date_3
159913       , l_array_reference_date_4
159914       , l_array_event_created_by
159915       , l_array_budgetary_control_flag 
159916       , l_array_source_4
159917       , l_array_source_8
159918       , l_array_source_10
159919       , l_array_source_10_meaning
159920       , l_array_source_12
159921       , l_array_source_30
159922       , l_array_source_31
159923       , l_array_source_32
159924       , l_array_source_33
159925       , l_array_source_34
159926       , l_array_source_43
159927       , l_array_source_43_meaning
159928       , l_array_source_45
159929       , l_array_source_57
159930       , l_array_source_88
159931       , l_array_source_113
159932       , l_array_source_114
159933       , l_array_source_116
159934       , l_array_source_116_meaning
159935       , l_array_source_117
159936       , l_array_source_120
159937       , l_array_source_121
159938       , l_array_source_122
159939       , l_array_source_175
159940       , l_array_source_176
159941       LIMIT l_rows;
159942 --
159943 IF (C_LEVEL_EVENT >= g_log_level) THEN
159944    trace
159945    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
159946    ,p_level    => C_LEVEL_EVENT
159947    ,p_module   => l_log_module);
159948 END IF;
159949 --
159950 EXIT WHEN l_array_entity_id.COUNT = 0;
159951 
159952 -- initialize arrays
159953 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
159954 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
159955 
159956 --
159957 -- Bug 4458708
159958 --
159959 XLA_AE_LINES_PKG.g_LineNumber := 0;
159960 
159961 
159962 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
159963 g_last_hdr_idx := l_array_event_id.LAST;
159964 --
159965 -- loop for the headers. Each iteration is for each header extract row
159966 -- fetched in header cursor
159967 --
159968 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
159969 
159970 --
159971 -- set event info as cache for other routines to refer event attributes
159972 --
159973 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
159974    (p_application_id           => p_application_id
159975    ,p_primary_ledger_id        => p_primary_ledger_id
159976    ,p_base_ledger_id           => p_base_ledger_id
159977    ,p_target_ledger_id         => p_target_ledger_id
159978    ,p_entity_id                => l_array_entity_id(hdr_idx)
159979    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
159980    ,p_entity_code              => l_array_entity_code(hdr_idx)
159981    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
159982    ,p_event_id                 => l_array_event_id(hdr_idx)
159983    ,p_event_class_code         => l_array_class_code(hdr_idx)
159984    ,p_event_type_code          => l_array_event_type(hdr_idx)
159985    ,p_event_number             => l_array_event_number(hdr_idx)
159986    ,p_event_date               => l_array_event_date(hdr_idx)
159987    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
159988    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
159989    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
159990    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
159994    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
159991    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
159992    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
159993    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
159995    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
159996    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
159997    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
159998    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
159999    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
160000    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
160001    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
160002 
160003 --
160004 -- set the status of entry to C_VALID (0)
160005 --
160006 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
160007 
160008 --
160009 -- initialize a row for ae header
160010 --
160011 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
160012 
160013 l_event_id := l_array_event_id(hdr_idx);
160014 
160015 --
160016 -- storing the hdr_idx for event. May be used by line cursor.
160017 --
160018 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
160019 
160020 --
160021 -- store sources from header extract. This can be improved to
160022 -- store only those sources from header extract that may be used in lines
160023 --
160024 
160025 g_array_event(l_event_id).array_value_num('source_4') := l_array_source_4(hdr_idx);
160026 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
160027 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
160028 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
160029 g_array_event(l_event_id).array_value_num('source_12') := l_array_source_12(hdr_idx);
160030 g_array_event(l_event_id).array_value_num('source_30') := l_array_source_30(hdr_idx);
160031 g_array_event(l_event_id).array_value_num('source_31') := l_array_source_31(hdr_idx);
160032 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
160033 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
160034 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
160035 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
160036 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
160037 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
160038 g_array_event(l_event_id).array_value_char('source_57') := l_array_source_57(hdr_idx);
160039 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
160040 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
160041 g_array_event(l_event_id).array_value_num('source_114') := l_array_source_114(hdr_idx);
160042 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
160043 g_array_event(l_event_id).array_value_char('source_116_meaning') := l_array_source_116_meaning(hdr_idx);
160044 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
160045 g_array_event(l_event_id).array_value_date('source_120') := l_array_source_120(hdr_idx);
160046 g_array_event(l_event_id).array_value_num('source_121') := l_array_source_121(hdr_idx);
160047 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
160048 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
160049 g_array_event(l_event_id).array_value_num('source_176') := l_array_source_176(hdr_idx);
160050 
160051 --
160052 -- initilaize the status of ae headers for diffrent balance types
160053 -- the status is initialised to C_NOT_CREATED (2)
160054 --
160055 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160056 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160057 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160058 
160059 --
160060 -- call api to validate and store accounting attributes for header
160061 --
160062 
160063 ------------------------------------------------------------
160064 -- Accrual Reversal : to get date for Standard Source (NONE)
160065 ------------------------------------------------------------
160066 l_acc_rev_gl_date_source := NULL;
160067 
160068      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
160069       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_175');
160070      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
160071       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_176');
160072      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
160073       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_4');
160074      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
160075       l_rec_acct_attrs.array_date_value(4) := 
160076 xla_ae_sources_pkg.GetSystemSourceDate(
160077    p_source_code           => 'XLA_EVENT_DATE'
160078  , p_source_type_code      => 'Y'
160079  , p_source_application_id =>  602
160080 );
160081 
160082 
160083 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
160084 
160085 XLA_AE_HEADER_PKG.SetJeCategoryName;
160086 
160087 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
160088 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
160089 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
160090 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
160091 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
160092 
160093 
160097 --accounting attribute enhancement, bug 3612931
160094 -- No header level analytical criteria
160095 
160096 --
160098 --
160099 l_trx_reversal_source := SUBSTR(NULL, 1,30);
160100 
160101 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
160102    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
160103 
160104    xla_accounting_err_pkg.build_message
160105       (p_appli_s_name            => 'XLA'
160106       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
160107       ,p_token_1                 => 'ACCT_ATTR_NAME'
160108       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
160109       ,p_token_2                 => 'PRODUCT_NAME'
160110       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
160111       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
160112       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
160113       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
160114 
160115 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
160116    --
160117    -- following sets the accounting attributes needed to reverse
160118    -- accounting for a distributeion
160119    --
160120    xla_ae_lines_pkg.SetTrxReversalAttrs
160121       (p_event_id              => l_event_id
160122       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
160123       ,p_trx_reversal_source   => l_trx_reversal_source);
160124 
160125 END IF;
160126 
160127 
160128 ----------------------------------------------------------------
160129 -- 4262811 -  update the header statuses to invalid in need be
160130 ----------------------------------------------------------------
160131 --
160132 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
160133 
160134 
160135   -----------------------------------------------
160136   -- No accrual reversal for the event class/type
160137   -----------------------------------------------
160138 ----------------------------------------------------------------
160139 
160140 --
160141 -- this ends the header loop iteration for one bulk fetch
160142 --
160143 END LOOP;
160144 
160145 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
160146 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
160147 
160148 --
160149 -- insert dummy rows into lines gt table that were created due to
160150 -- transaction reversals
160151 --
160152 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
160153    l_result := XLA_AE_LINES_PKG.InsertLines;
160154 END IF;
160155 
160156 --
160157 -- reset the temp_line_num for each set of events fetched from header
160158 -- cursor rather than doing it for each new event in line cursor
160159 -- Bug 3939231
160160 --
160161 xla_ae_lines_pkg.g_temp_line_num := 0;
160162 
160163 
160164 
160165 --
160166 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
160167 --
160168 --
160169 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160170 
160171       trace
160172          (p_msg      => 'SQL - FETCH line_cur'
160173          ,p_level    => C_LEVEL_STATEMENT
160174          ,p_module   => l_log_module);
160175 
160176 END IF;
160177 --
160178 --
160179 LOOP
160180   --
160181   FETCH line_cur BULK COLLECT INTO
160182         l_array_entity_id
160183       , l_array_legal_entity_id
160184       , l_array_entity_code
160185       , l_array_transaction_num
160186       , l_array_event_id
160187       , l_array_class_code
160188       , l_array_event_type
160189       , l_array_event_number
160190       , l_array_event_date
160191       , l_array_transaction_date
160192       , l_array_reference_num_1
160193       , l_array_reference_num_2
160194       , l_array_reference_num_3
160195       , l_array_reference_num_4
160196       , l_array_reference_char_1
160197       , l_array_reference_char_2
160198       , l_array_reference_char_3
160199       , l_array_reference_char_4
160200       , l_array_reference_date_1
160201       , l_array_reference_date_2
160202       , l_array_reference_date_3
160203       , l_array_reference_date_4
160204       , l_array_event_created_by
160205       , l_array_budgetary_control_flag
160206       , l_array_extract_line_num 
160207       , l_array_source_25
160208       , l_array_source_28
160209       , l_array_source_28_meaning
160210       , l_array_source_48
160211       , l_array_source_58
160212       , l_array_source_60
160213       , l_array_source_85
160214       , l_array_source_85_meaning
160215       , l_array_source_96
160216       , l_array_source_97
160217       , l_array_source_98
160218       , l_array_source_99
160219       , l_array_source_100
160220       , l_array_source_101
160221       , l_array_source_101_meaning
160222       , l_array_source_102
160223       , l_array_source_103
160224       , l_array_source_104
160225       , l_array_source_105
160226       , l_array_source_106
160227       , l_array_source_107
160228       , l_array_source_115
160229       , l_array_source_118
160230       , l_array_source_119
160231       , l_array_source_124
160232       , l_array_source_140
160233       , l_array_source_140_meaning
160234       , l_array_source_157
160235       , l_array_source_164
160236       LIMIT l_rows;
160237 
160238   --
160239   IF (C_LEVEL_EVENT >= g_log_level) THEN
160240             trace
160241                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
160242                ,p_level    => C_LEVEL_EVENT
160243                ,p_module   => l_log_module);
160244   END IF;
160245   --
160246   EXIT WHEN l_array_entity_id.count = 0;
160247 
160251 -- Bug 4458708
160248   XLA_AE_LINES_PKG.g_rec_lines := null;
160249 
160250 --
160252 --
160253 XLA_AE_LINES_PKG.g_LineNumber := 0;
160254 --
160255 --
160256 
160257 FOR Idx IN 1..l_array_event_id.count LOOP
160258    --
160259    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
160260    --
160261    l_event_id := l_array_event_id(idx);  -- 5648433
160262 
160263    --
160264    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
160265    --
160266 
160267    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
160268              (g_array_event(l_event_id).array_value_num('header_index'))
160269          ,'N'
160270          ) <> 'Y'
160271    THEN
160272       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160273          trace
160274             (p_msg      => 'Trancaction revesal option is not Y '
160275             ,p_level    => C_LEVEL_STATEMENT
160276             ,p_module   => l_log_module);
160277       END IF;
160278 
160279 --
160280 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
160281 --
160282 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
160283 --
160284 -- set event info as cache for other routines to refer event attributes
160285 --
160286 
160287 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
160288    l_previous_event_id := l_event_id;
160289 
160290    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
160291       (p_application_id           => p_application_id
160292       ,p_primary_ledger_id        => p_primary_ledger_id
160293       ,p_base_ledger_id           => p_base_ledger_id
160294       ,p_target_ledger_id         => p_target_ledger_id
160295       ,p_entity_id                => l_array_entity_id(Idx)
160296       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
160297       ,p_entity_code              => l_array_entity_code(Idx)
160298       ,p_transaction_num          => l_array_transaction_num(Idx)
160299       ,p_event_id                 => l_array_event_id(Idx)
160300       ,p_event_class_code         => l_array_class_code(Idx)
160301       ,p_event_type_code          => l_array_event_type(Idx)
160302       ,p_event_number             => l_array_event_number(Idx)
160303       ,p_event_date               => l_array_event_date(Idx)
160304       ,p_transaction_date         => l_array_transaction_date(Idx)
160305       ,p_reference_num_1          => l_array_reference_num_1(Idx)
160306       ,p_reference_num_2          => l_array_reference_num_2(Idx)
160307       ,p_reference_num_3          => l_array_reference_num_3(Idx)
160308       ,p_reference_num_4          => l_array_reference_num_4(Idx)
160309       ,p_reference_char_1         => l_array_reference_char_1(Idx)
160310       ,p_reference_char_2         => l_array_reference_char_2(Idx)
160311       ,p_reference_char_3         => l_array_reference_char_3(Idx)
160312       ,p_reference_char_4         => l_array_reference_char_4(Idx)
160313       ,p_reference_date_1         => l_array_reference_date_1(Idx)
160314       ,p_reference_date_2         => l_array_reference_date_2(Idx)
160315       ,p_reference_date_3         => l_array_reference_date_3(Idx)
160316       ,p_reference_date_4         => l_array_reference_date_4(Idx)
160317       ,p_event_created_by         => l_array_event_created_by(Idx)
160318       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
160319        --
160320 END IF;
160321 
160322 
160323 
160324 --
160325 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
160326 
160327 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
160328 
160329 IF l_continue_with_lines THEN
160330    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
160331       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
160332 
160333       xla_accounting_err_pkg.build_message
160334          (p_appli_s_name            => 'XLA'
160335          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
160336          ,p_token_1                 => 'LINE_NUMBER'
160337          ,p_value_1                 => l_array_extract_line_num(Idx)
160338          ,p_token_2                 => 'PRODUCT_NAME'
160339          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
160340          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
160341          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
160342          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
160343 
160344    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
160345       --
160346       -- following sets the accounting attributes needed to reverse
160347       -- accounting for a distributeion
160348       --
160349 
160350       --
160351       -- 5217187
160352       --
160353       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
160354       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
160355                                        g_array_event(l_event_id).array_value_num('header_index'));
160356       --
160357       --
160358 
160359       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
160360       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
160361       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
160362       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_107(Idx);
160363       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
160364       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
160365       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
160366       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_88');
160367       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
160368       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_115(Idx);
160372 
160369       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
160370       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
160371 
160373       xla_ae_lines_pkg.SetAcctReversalAttrs
160374          (p_event_id             => l_event_id
160375          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
160376          ,p_calculate_acctd_flag => l_calculate_acctd_flag
160377          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
160378    END IF;
160379 
160380    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
160381        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
160382 
160383 --
160384 AcctLineType_75 (
160385  p_application_id  => p_application_id
160386  ,p_event_id     => l_event_id
160387  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160388  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160389  ,p_actual_flag => l_actual_flag
160390  ,p_balance_type_code => l_balance_type_code
160391  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160392  
160393  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160394  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160395  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160396  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
160397  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160398  , p_source_58 => l_array_source_58(Idx)
160399  , p_source_60 => l_array_source_60(Idx)
160400  , p_source_85 => l_array_source_85(Idx)
160401  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160402  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160403  , p_source_96 => l_array_source_96(Idx)
160404  , p_source_101 => l_array_source_101(Idx)
160405  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160406  , p_source_102 => l_array_source_102(Idx)
160407  , p_source_103 => l_array_source_103(Idx)
160408  , p_source_104 => l_array_source_104(Idx)
160409  , p_source_105 => l_array_source_105(Idx)
160410  , p_source_106 => l_array_source_106(Idx)
160411  , p_source_107 => l_array_source_107(Idx)
160412  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160413  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160414  , p_source_115 => l_array_source_115(Idx)
160415  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160416  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160417  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160418  , p_source_119 => l_array_source_119(Idx)
160419  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160420  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160421  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160422  );
160423 If(l_balance_type_code = 'A') THEN
160424   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160425 END IF;
160426 
160427 --
160428 
160429 
160430 --
160431 AcctLineType_76 (
160432  p_application_id  => p_application_id
160433  ,p_event_id     => l_event_id
160434  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160435  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160436  ,p_actual_flag => l_actual_flag
160437  ,p_balance_type_code => l_balance_type_code
160438  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160439  
160440  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160441  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160442  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160443  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
160444  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160445  , p_source_58 => l_array_source_58(Idx)
160446  , p_source_60 => l_array_source_60(Idx)
160447  , p_source_85 => l_array_source_85(Idx)
160448  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160449  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160450  , p_source_96 => l_array_source_96(Idx)
160451  , p_source_101 => l_array_source_101(Idx)
160452  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160453  , p_source_102 => l_array_source_102(Idx)
160454  , p_source_103 => l_array_source_103(Idx)
160455  , p_source_104 => l_array_source_104(Idx)
160456  , p_source_105 => l_array_source_105(Idx)
160457  , p_source_106 => l_array_source_106(Idx)
160458  , p_source_107 => l_array_source_107(Idx)
160459  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160460  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160461  , p_source_115 => l_array_source_115(Idx)
160462  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160463  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160464  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160465  , p_source_119 => l_array_source_119(Idx)
160466  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160467  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160468  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160469  );
160470 If(l_balance_type_code = 'A') THEN
160471   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160472 END IF;
160473 
160474 --
160475 
160476 
160477 --
160478 AcctLineType_84 (
160479  p_application_id  => p_application_id
160480  ,p_event_id     => l_event_id
160481  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160482  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160483  ,p_actual_flag => l_actual_flag
160484  ,p_balance_type_code => l_balance_type_code
160485  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160486  
160487  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160488  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
160492  , p_source_58 => l_array_source_58(Idx)
160489  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
160490  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
160491  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160493  , p_source_60 => l_array_source_60(Idx)
160494  , p_source_85 => l_array_source_85(Idx)
160495  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160496  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160497  , p_source_96 => l_array_source_96(Idx)
160498  , p_source_101 => l_array_source_101(Idx)
160499  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160500  , p_source_102 => l_array_source_102(Idx)
160501  , p_source_103 => l_array_source_103(Idx)
160502  , p_source_104 => l_array_source_104(Idx)
160503  , p_source_105 => l_array_source_105(Idx)
160504  , p_source_106 => l_array_source_106(Idx)
160505  , p_source_107 => l_array_source_107(Idx)
160506  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160507  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160508  , p_source_115 => l_array_source_115(Idx)
160509  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160510  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160511  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160512  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160513  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160514  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160515  , p_source_124 => l_array_source_124(Idx)
160516  );
160517 If(l_balance_type_code = 'A') THEN
160518   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160519 END IF;
160520 
160521 --
160522 
160523 
160524 --
160525 AcctLineType_85 (
160526  p_application_id  => p_application_id
160527  ,p_event_id     => l_event_id
160528  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160529  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160530  ,p_actual_flag => l_actual_flag
160531  ,p_balance_type_code => l_balance_type_code
160532  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160533  
160534  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160535  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160536  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160537  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
160538  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160539  , p_source_58 => l_array_source_58(Idx)
160540  , p_source_60 => l_array_source_60(Idx)
160541  , p_source_85 => l_array_source_85(Idx)
160542  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160543  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160544  , p_source_96 => l_array_source_96(Idx)
160545  , p_source_101 => l_array_source_101(Idx)
160546  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160547  , p_source_102 => l_array_source_102(Idx)
160548  , p_source_103 => l_array_source_103(Idx)
160549  , p_source_104 => l_array_source_104(Idx)
160550  , p_source_105 => l_array_source_105(Idx)
160551  , p_source_106 => l_array_source_106(Idx)
160552  , p_source_107 => l_array_source_107(Idx)
160553  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160554  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160555  , p_source_115 => l_array_source_115(Idx)
160556  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160557  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160558  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160559  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160560  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160561  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160562  , p_source_124 => l_array_source_124(Idx)
160563  );
160564 If(l_balance_type_code = 'A') THEN
160565   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160566 END IF;
160567 
160568 --
160569 
160570 
160571 --
160572 AcctLineType_86 (
160573  p_application_id  => p_application_id
160574  ,p_event_id     => l_event_id
160575  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160576  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160577  ,p_actual_flag => l_actual_flag
160578  ,p_balance_type_code => l_balance_type_code
160579  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160580  
160581  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160582  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160583  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160584  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
160585  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160586  , p_source_58 => l_array_source_58(Idx)
160587  , p_source_60 => l_array_source_60(Idx)
160588  , p_source_85 => l_array_source_85(Idx)
160589  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160590  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160591  , p_source_96 => l_array_source_96(Idx)
160592  , p_source_101 => l_array_source_101(Idx)
160593  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160594  , p_source_102 => l_array_source_102(Idx)
160595  , p_source_103 => l_array_source_103(Idx)
160596  , p_source_104 => l_array_source_104(Idx)
160597  , p_source_105 => l_array_source_105(Idx)
160598  , p_source_106 => l_array_source_106(Idx)
160599  , p_source_107 => l_array_source_107(Idx)
160600  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160601  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160602  , p_source_115 => l_array_source_115(Idx)
160606  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160603  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160604  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160605  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160607  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160608  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160609  , p_source_124 => l_array_source_124(Idx)
160610  );
160611 If(l_balance_type_code = 'A') THEN
160612   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160613 END IF;
160614 
160615 --
160616 
160617 
160618 --
160619 AcctLineType_87 (
160620  p_application_id  => p_application_id
160621  ,p_event_id     => l_event_id
160622  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160623  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160624  ,p_actual_flag => l_actual_flag
160625  ,p_balance_type_code => l_balance_type_code
160626  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160627  
160628  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160629  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
160630  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
160631  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
160632  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160633  , p_source_58 => l_array_source_58(Idx)
160634  , p_source_60 => l_array_source_60(Idx)
160635  , p_source_85 => l_array_source_85(Idx)
160636  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160637  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160638  , p_source_96 => l_array_source_96(Idx)
160639  , p_source_101 => l_array_source_101(Idx)
160640  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160641  , p_source_102 => l_array_source_102(Idx)
160642  , p_source_103 => l_array_source_103(Idx)
160643  , p_source_104 => l_array_source_104(Idx)
160644  , p_source_105 => l_array_source_105(Idx)
160645  , p_source_106 => l_array_source_106(Idx)
160646  , p_source_107 => l_array_source_107(Idx)
160647  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160648  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160649  , p_source_115 => l_array_source_115(Idx)
160650  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160651  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160652  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160653  , p_source_119 => l_array_source_119(Idx)
160654  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160655  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160656  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160657  );
160658 If(l_balance_type_code = 'A') THEN
160659   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160660 END IF;
160661 
160662 --
160663 
160664 
160665 --
160666 AcctLineType_97 (
160667  p_application_id  => p_application_id
160668  ,p_event_id     => l_event_id
160669  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160670  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160671  ,p_actual_flag => l_actual_flag
160672  ,p_balance_type_code => l_balance_type_code
160673  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160674  
160675  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160676  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
160677  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
160678  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
160679  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160680  , p_source_58 => l_array_source_58(Idx)
160681  , p_source_60 => l_array_source_60(Idx)
160682  , p_source_85 => l_array_source_85(Idx)
160683  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160684  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160685  , p_source_96 => l_array_source_96(Idx)
160686  , p_source_101 => l_array_source_101(Idx)
160687  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160688  , p_source_102 => l_array_source_102(Idx)
160689  , p_source_103 => l_array_source_103(Idx)
160690  , p_source_104 => l_array_source_104(Idx)
160691  , p_source_105 => l_array_source_105(Idx)
160692  , p_source_106 => l_array_source_106(Idx)
160693  , p_source_107 => l_array_source_107(Idx)
160694  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160695  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160696  , p_source_115 => l_array_source_115(Idx)
160697  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160698  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160699  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160700  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160701  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160702  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160703  , p_source_124 => l_array_source_124(Idx)
160704  );
160705 If(l_balance_type_code = 'A') THEN
160706   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160707 END IF;
160708 
160709 --
160710 
160711 
160712 --
160713 AcctLineType_98 (
160714  p_application_id  => p_application_id
160715  ,p_event_id     => l_event_id
160716  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160717  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160718  ,p_actual_flag => l_actual_flag
160719  ,p_balance_type_code => l_balance_type_code
160720  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160721  
160722  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160726  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160723  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160724  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160725  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
160727  , p_source_58 => l_array_source_58(Idx)
160728  , p_source_60 => l_array_source_60(Idx)
160729  , p_source_85 => l_array_source_85(Idx)
160730  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160731  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160732  , p_source_96 => l_array_source_96(Idx)
160733  , p_source_101 => l_array_source_101(Idx)
160734  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160735  , p_source_102 => l_array_source_102(Idx)
160736  , p_source_103 => l_array_source_103(Idx)
160737  , p_source_104 => l_array_source_104(Idx)
160738  , p_source_105 => l_array_source_105(Idx)
160739  , p_source_106 => l_array_source_106(Idx)
160740  , p_source_107 => l_array_source_107(Idx)
160741  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160742  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160743  , p_source_115 => l_array_source_115(Idx)
160744  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160745  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160746  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160747  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160748  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160749  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160750  , p_source_124 => l_array_source_124(Idx)
160751  );
160752 If(l_balance_type_code = 'A') THEN
160753   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160754 END IF;
160755 
160756 --
160757 
160758 
160759 --
160760 AcctLineType_99 (
160761  p_application_id  => p_application_id
160762  ,p_event_id     => l_event_id
160763  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160764  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160765  ,p_actual_flag => l_actual_flag
160766  ,p_balance_type_code => l_balance_type_code
160767  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160768  
160769  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160770  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160771  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160772  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
160773  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160774  , p_source_58 => l_array_source_58(Idx)
160775  , p_source_60 => l_array_source_60(Idx)
160776  , p_source_85 => l_array_source_85(Idx)
160777  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160778  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160779  , p_source_96 => l_array_source_96(Idx)
160780  , p_source_101 => l_array_source_101(Idx)
160781  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160782  , p_source_102 => l_array_source_102(Idx)
160783  , p_source_103 => l_array_source_103(Idx)
160784  , p_source_104 => l_array_source_104(Idx)
160785  , p_source_105 => l_array_source_105(Idx)
160786  , p_source_106 => l_array_source_106(Idx)
160787  , p_source_107 => l_array_source_107(Idx)
160788  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160789  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160790  , p_source_115 => l_array_source_115(Idx)
160791  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
160792  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
160793  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160794  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160795  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160796  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160797  , p_source_124 => l_array_source_124(Idx)
160798  );
160799 If(l_balance_type_code = 'A') THEN
160800   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160801 END IF;
160802 
160803 --
160804 
160805 
160806 --
160807 AcctLineType_106 (
160808  p_application_id  => p_application_id
160809  ,p_event_id     => l_event_id
160810  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160811  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160812  ,p_actual_flag => l_actual_flag
160813  ,p_balance_type_code => l_balance_type_code
160814  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160815  
160816  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160817  , p_source_28 => l_array_source_28(Idx)
160818  , p_source_28_meaning => l_array_source_28_meaning(Idx)
160819  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160820  , p_source_58 => l_array_source_58(Idx)
160821  , p_source_60 => l_array_source_60(Idx)
160822  , p_source_85 => l_array_source_85(Idx)
160823  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160824  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160825  , p_source_96 => l_array_source_96(Idx)
160826  , p_source_97 => l_array_source_97(Idx)
160827  , p_source_98 => l_array_source_98(Idx)
160828  , p_source_99 => l_array_source_99(Idx)
160829  , p_source_100 => l_array_source_100(Idx)
160830  , p_source_101 => l_array_source_101(Idx)
160831  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160832  , p_source_102 => l_array_source_102(Idx)
160833  , p_source_107 => l_array_source_107(Idx)
160834  , p_source_115 => l_array_source_115(Idx)
160835  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160836  , p_source_124 => l_array_source_124(Idx)
160837  , p_source_140 => l_array_source_140(Idx)
160838  , p_source_140_meaning => l_array_source_140_meaning(Idx)
160839  );
160843 
160840 If(l_balance_type_code = 'A') THEN
160841   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160842 END IF;
160844 --
160845 
160846 
160847 --
160848 AcctLineType_110 (
160849  p_application_id  => p_application_id
160850  ,p_event_id     => l_event_id
160851  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160852  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160853  ,p_actual_flag => l_actual_flag
160854  ,p_balance_type_code => l_balance_type_code
160855  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160856  
160857  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160858  , p_source_28 => l_array_source_28(Idx)
160859  , p_source_28_meaning => l_array_source_28_meaning(Idx)
160860  , p_source_48 => l_array_source_48(Idx)
160861  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160862  , p_source_58 => l_array_source_58(Idx)
160863  , p_source_60 => l_array_source_60(Idx)
160864  , p_source_85 => l_array_source_85(Idx)
160865  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160866  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160867  , p_source_96 => l_array_source_96(Idx)
160868  , p_source_101 => l_array_source_101(Idx)
160869  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160870  , p_source_102 => l_array_source_102(Idx)
160871  , p_source_103 => l_array_source_103(Idx)
160872  , p_source_104 => l_array_source_104(Idx)
160873  , p_source_105 => l_array_source_105(Idx)
160874  , p_source_106 => l_array_source_106(Idx)
160875  , p_source_107 => l_array_source_107(Idx)
160876  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160877  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160878  , p_source_115 => l_array_source_115(Idx)
160879  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160880  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160881  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160882  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160883  , p_source_124 => l_array_source_124(Idx)
160884  , p_source_140 => l_array_source_140(Idx)
160885  , p_source_140_meaning => l_array_source_140_meaning(Idx)
160886  );
160887 If(l_balance_type_code = 'A') THEN
160888   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160889 END IF;
160890 
160891 --
160892 
160893 
160894 --
160895 AcctLineType_131 (
160896  p_application_id  => p_application_id
160897  ,p_event_id     => l_event_id
160898  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160899  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160900  ,p_actual_flag => l_actual_flag
160901  ,p_balance_type_code => l_balance_type_code
160902  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160903  
160904  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160905  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160906  , p_source_58 => l_array_source_58(Idx)
160907  , p_source_60 => l_array_source_60(Idx)
160908  , p_source_85 => l_array_source_85(Idx)
160909  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160910  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160911  , p_source_96 => l_array_source_96(Idx)
160912  , p_source_101 => l_array_source_101(Idx)
160913  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160914  , p_source_102 => l_array_source_102(Idx)
160915  , p_source_103 => l_array_source_103(Idx)
160916  , p_source_104 => l_array_source_104(Idx)
160917  , p_source_105 => l_array_source_105(Idx)
160918  , p_source_106 => l_array_source_106(Idx)
160919  , p_source_107 => l_array_source_107(Idx)
160920  , p_source_115 => l_array_source_115(Idx)
160921  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
160922  , p_source_118 => l_array_source_118(Idx)
160923  );
160924 If(l_balance_type_code = 'A') THEN
160925   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160926 END IF;
160927 
160928 --
160929 
160930 
160931 --
160932 AcctLineType_132 (
160933  p_application_id  => p_application_id
160934  ,p_event_id     => l_event_id
160935  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160936  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160937  ,p_actual_flag => l_actual_flag
160938  ,p_balance_type_code => l_balance_type_code
160939  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160940  
160941  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160942  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160943  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160944  , p_source_25 => l_array_source_25(Idx)
160945  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
160946  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160947  , p_source_58 => l_array_source_58(Idx)
160948  , p_source_60 => l_array_source_60(Idx)
160949  , p_source_85 => l_array_source_85(Idx)
160950  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160951  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160952  , p_source_96 => l_array_source_96(Idx)
160953  , p_source_101 => l_array_source_101(Idx)
160954  , p_source_101_meaning => l_array_source_101_meaning(Idx)
160955  , p_source_102 => l_array_source_102(Idx)
160956  , p_source_103 => l_array_source_103(Idx)
160957  , p_source_104 => l_array_source_104(Idx)
160958  , p_source_105 => l_array_source_105(Idx)
160959  , p_source_106 => l_array_source_106(Idx)
160960  , p_source_107 => l_array_source_107(Idx)
160961  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
160962  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
160963  , p_source_115 => l_array_source_115(Idx)
160964  , p_source_118 => l_array_source_118(Idx)
160965  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
160966  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
160970   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160967  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
160968  );
160969 If(l_balance_type_code = 'A') THEN
160971 END IF;
160972 
160973 --
160974 
160975 
160976 --
160977 AcctLineType_136 (
160978  p_application_id  => p_application_id
160979  ,p_event_id     => l_event_id
160980  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160981  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160982  ,p_actual_flag => l_actual_flag
160983  ,p_balance_type_code => l_balance_type_code
160984  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160985  
160986  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
160987  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
160988  , p_source_25 => l_array_source_25(Idx)
160989  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
160990  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
160991  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
160992  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
160993  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
160994  , p_source_58 => l_array_source_58(Idx)
160995  , p_source_60 => l_array_source_60(Idx)
160996  , p_source_85 => l_array_source_85(Idx)
160997  , p_source_85_meaning => l_array_source_85_meaning(Idx)
160998  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
160999  , p_source_96 => l_array_source_96(Idx)
161000  , p_source_101 => l_array_source_101(Idx)
161001  , p_source_101_meaning => l_array_source_101_meaning(Idx)
161002  , p_source_103 => l_array_source_103(Idx)
161003  , p_source_104 => l_array_source_104(Idx)
161004  , p_source_105 => l_array_source_105(Idx)
161005  , p_source_106 => l_array_source_106(Idx)
161006  , p_source_107 => l_array_source_107(Idx)
161007  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
161008  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
161009  , p_source_115 => l_array_source_115(Idx)
161010  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
161011  , p_source_157 => l_array_source_157(Idx)
161012  );
161013 If(l_balance_type_code = 'A') THEN
161014   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161015 END IF;
161016 
161017 --
161018 
161019 
161020 --
161021 AcctLineType_142 (
161022  p_application_id  => p_application_id
161023  ,p_event_id     => l_event_id
161024  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161025  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161026  ,p_actual_flag => l_actual_flag
161027  ,p_balance_type_code => l_balance_type_code
161028  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161029  
161030  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
161031  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
161032  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
161033  , p_source_25 => l_array_source_25(Idx)
161034  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
161035  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
161036  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
161037  , p_source_58 => l_array_source_58(Idx)
161038  , p_source_60 => l_array_source_60(Idx)
161039  , p_source_85 => l_array_source_85(Idx)
161040  , p_source_85_meaning => l_array_source_85_meaning(Idx)
161041  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
161042  , p_source_96 => l_array_source_96(Idx)
161043  , p_source_101 => l_array_source_101(Idx)
161044  , p_source_101_meaning => l_array_source_101_meaning(Idx)
161045  , p_source_102 => l_array_source_102(Idx)
161046  , p_source_103 => l_array_source_103(Idx)
161047  , p_source_104 => l_array_source_104(Idx)
161048  , p_source_105 => l_array_source_105(Idx)
161049  , p_source_106 => l_array_source_106(Idx)
161050  , p_source_107 => l_array_source_107(Idx)
161051  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
161052  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
161053  , p_source_115 => l_array_source_115(Idx)
161054  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
161055  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
161056  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
161057  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
161058  , p_source_157 => l_array_source_157(Idx)
161059  , p_source_164 => l_array_source_164(Idx)
161060  );
161061 If(l_balance_type_code = 'A') THEN
161062   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161063 END IF;
161064 
161065 --
161066 
161067 
161068 --
161069 AcctLineType_176 (
161070  p_application_id  => p_application_id
161071  ,p_event_id     => l_event_id
161072  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161073  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161074  ,p_actual_flag => l_actual_flag
161075  ,p_balance_type_code => l_balance_type_code
161076  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161077  
161078  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
161079  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
161080  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
161081  , p_source_25 => l_array_source_25(Idx)
161082  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
161083  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
161084  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
161085  , p_source_58 => l_array_source_58(Idx)
161086  , p_source_60 => l_array_source_60(Idx)
161087  , p_source_85 => l_array_source_85(Idx)
161088  , p_source_85_meaning => l_array_source_85_meaning(Idx)
161089  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
161093  , p_source_102 => l_array_source_102(Idx)
161090  , p_source_96 => l_array_source_96(Idx)
161091  , p_source_101 => l_array_source_101(Idx)
161092  , p_source_101_meaning => l_array_source_101_meaning(Idx)
161094  , p_source_103 => l_array_source_103(Idx)
161095  , p_source_104 => l_array_source_104(Idx)
161096  , p_source_105 => l_array_source_105(Idx)
161097  , p_source_106 => l_array_source_106(Idx)
161098  , p_source_107 => l_array_source_107(Idx)
161099  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
161100  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
161101  , p_source_115 => l_array_source_115(Idx)
161102  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
161103  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
161104  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
161105  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
161106  , p_source_157 => l_array_source_157(Idx)
161107  , p_source_164 => l_array_source_164(Idx)
161108  );
161109 If(l_balance_type_code = 'A') THEN
161110   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161111 END IF;
161112 
161113 --
161114 
161115       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
161116       -- or secondary ledger that has different currency with primary
161117       -- or alc that is calculated by sla
161118       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
161119             (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'))
161120 
161121 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
161122 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
161123           AND (l_actual_flag = 'A')) THEN
161124         XLA_AE_LINES_PKG.CreateGainOrLossLines(
161125           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
161126          ,p_application_id   => p_application_id
161127          ,p_amb_context_code => 'DEFAULT'
161128          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
161129          ,p_event_class_code => C_EVENT_CLASS_CODE
161130          ,p_event_type_code  => C_EVENT_TYPE_CODE
161131          
161132          ,p_gain_ccid        => -1
161133          ,p_loss_ccid        => -1
161134 
161135          ,p_actual_flag      => l_actual_flag
161136          ,p_enc_flag         => null
161137          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
161138          ,p_enc_g_l_ref      => null
161139          );
161140       END IF;
161141    END IF;
161142 END IF;
161143 
161144    ELSE
161145       --
161146       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
161147       --
161148       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161149          trace
161150             (p_msg      => 'Trancaction revesal option is Y'
161151             ,p_level    => C_LEVEL_STATEMENT
161152             ,p_module   => l_log_module);
161153       END IF;
161154    END IF;
161155 
161156 END LOOP;
161157 l_result := XLA_AE_LINES_PKG.InsertLines ;
161158 end loop;
161159 close line_cur;
161160 
161161 
161162 --
161163 -- insert headers into xla_ae_headers_gt table
161164 --
161165 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
161166 
161167 -- insert into errors table here.
161168 
161169 END LOOP;
161170 
161171 --
161172 -- 4865292
161173 --
161174 -- Compare g_hdr_extract_count with event count in
161175 -- CreateHeadersAndLines.
161176 --
161177 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
161178 
161179 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161180    trace (p_msg     => '# rows extracted from header extract objects '
161181                     || ' (running total): '
161182                     || g_hdr_extract_count
161183          ,p_level   => C_LEVEL_STATEMENT
161184          ,p_module  => l_log_module);
161185 END IF;
161186 
161187 CLOSE header_cur;
161188 --
161189 
161190 --
161191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161192    trace
161193       (p_msg      => 'END of EventClass_250'
161194       ,p_level    => C_LEVEL_PROCEDURE
161195       ,p_module   => l_log_module);
161196 END IF;
161197 --
161198 RETURN l_result;
161199 EXCEPTION
161200 WHEN xla_exceptions_pkg.application_exception THEN
161201    
161202 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
161203 
161204    
161205 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
161206 
161207    RAISE;
161208 
161209 WHEN NO_DATA_FOUND THEN
161210 
161211 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
161212 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
161213 
161214 FOR header_record IN header_cur
161215 LOOP
161216     l_array_header_events(header_record.event_id) := header_record.event_id;
161217 END LOOP;
161218 
161219 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
161220 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
161221 
161222 fnd_file.put_line(fnd_file.LOG, '                    ');
161223 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
161224 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
161225 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
161226 
161227 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
161228 LOOP
161229 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
161230 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
161234 
161231         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
161232 	END IF;
161233 END LOOP;
161235 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
161236 fnd_file.put_line(fnd_file.LOG, '                    ');
161237 
161238 
161239 xla_exceptions_pkg.raise_message
161240       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_250');
161241 
161242 
161243 WHEN OTHERS THEN
161244    xla_exceptions_pkg.raise_message
161245       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_250');
161246 END EventClass_250;
161247 --
161248 
161249 ---------------------------------------
161250 --
161251 -- PRIVATE PROCEDURE
161252 --         insert_sources_251
161253 --
161254 ----------------------------------------
161255 --
161256 PROCEDURE insert_sources_251(
161257                                 p_target_ledger_id       IN NUMBER
161258                               , p_language               IN VARCHAR2
161259                               , p_sla_ledger_id          IN NUMBER
161260                               , p_pad_start_date         IN DATE
161261                               , p_pad_end_date           IN DATE
161262                          )
161263 IS
161264 
161265 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
161266 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICES';
161267 p_apps_owner                   VARCHAR2(30);
161268 l_log_module                   VARCHAR2(240);
161269 BEGIN
161270 IF g_log_enabled THEN
161271       l_log_module := C_DEFAULT_MODULE||'.insert_sources_251';
161272 END IF;
161273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161274 
161275       trace
161276          (p_msg      => 'BEGIN of insert_sources_251'
161277          ,p_level    => C_LEVEL_PROCEDURE
161278          ,p_module   => l_log_module);
161279 
161280 END IF;
161281 
161282 -- select APPS owner
161283 SELECT oracle_username
161284   INTO p_apps_owner
161285   FROM fnd_oracle_userid
161286  WHERE read_only_flag = 'U'
161287 ;
161288 
161289 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161290       trace
161291          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
161292                         ' - p_language = '||p_language||
161293                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
161294                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
161295                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
161296                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
161297          ,p_level    => C_LEVEL_STATEMENT
161298          ,p_module   => l_log_module);
161299 END IF;
161300 
161301 
161302 --
161303 INSERT INTO xla_diag_sources --hdr2
161304 (
161305         event_id
161306       , ledger_id
161307       , sla_ledger_id
161308       , description_language
161309       , object_name
161310       , object_type_code
161311       , line_number
161312       , source_application_id
161313       , source_type_code
161314       , source_code
161315       , source_value
161316       , source_meaning
161317       , created_by
161318       , creation_date
161319       , last_update_date
161320       , last_updated_by
161321       , last_update_login
161322       , program_update_date
161323       , program_application_id
161324       , program_id
161325       , request_id
161326 )
161327 SELECT
161328         event_id
161329       , p_target_ledger_id
161330       , p_sla_ledger_id
161331       , p_language
161332       , object_name
161333       , object_type_code
161334       , line_number
161335       , source_application_id
161336       , source_type_code
161337       , source_code
161338       , SUBSTR(source_value ,1,1996)
161339       , SUBSTR(source_meaning ,1,200)
161340       , xla_environment_pkg.g_Usr_Id
161341       , TRUNC(SYSDATE)
161342       , TRUNC(SYSDATE)
161343       , xla_environment_pkg.g_Usr_Id
161344       , xla_environment_pkg.g_Login_Id
161345       , TRUNC(SYSDATE)
161346       , xla_environment_pkg.g_Prog_Appl_Id
161347       , xla_environment_pkg.g_Prog_Id
161348       , xla_environment_pkg.g_Req_Id
161349   FROM (
161350        SELECT xet.event_id                  event_id
161351             , 0                          line_number
161352             , CASE r
161353                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161354                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161355                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161356                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161357                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161358                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161359                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161360                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161361                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161362                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161363                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161364                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161365                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161366                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161367                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161368                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161369                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161370                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161371                 
161372                ELSE null
161373               END                           object_name
161374             , CASE r
161375                 WHEN 1 THEN 'HEADER' 
161376                 WHEN 2 THEN 'HEADER' 
161377                 WHEN 3 THEN 'HEADER' 
161378                 WHEN 4 THEN 'HEADER' 
161382                 WHEN 8 THEN 'HEADER' 
161379                 WHEN 5 THEN 'HEADER' 
161380                 WHEN 6 THEN 'HEADER' 
161381                 WHEN 7 THEN 'HEADER' 
161383                 WHEN 9 THEN 'HEADER' 
161384                 WHEN 10 THEN 'HEADER' 
161385                 WHEN 11 THEN 'HEADER' 
161386                 WHEN 12 THEN 'HEADER' 
161387                 WHEN 13 THEN 'HEADER' 
161388                 WHEN 14 THEN 'HEADER' 
161389                 WHEN 15 THEN 'HEADER' 
161390                 WHEN 16 THEN 'HEADER' 
161391                 WHEN 17 THEN 'HEADER' 
161392                 WHEN 18 THEN 'HEADER' 
161393                 
161394                 ELSE null
161395               END                           object_type_code
161396             , CASE r
161397                 WHEN 1 THEN '200' 
161398                 WHEN 2 THEN '200' 
161399                 WHEN 3 THEN '200' 
161400                 WHEN 4 THEN '200' 
161401                 WHEN 5 THEN '200' 
161402                 WHEN 6 THEN '200' 
161403                 WHEN 7 THEN '200' 
161404                 WHEN 8 THEN '200' 
161405                 WHEN 9 THEN '200' 
161406                 WHEN 10 THEN '200' 
161407                 WHEN 11 THEN '200' 
161408                 WHEN 12 THEN '200' 
161409                 WHEN 13 THEN '200' 
161410                 WHEN 14 THEN '200' 
161411                 WHEN 15 THEN '200' 
161412                 WHEN 16 THEN '200' 
161413                 WHEN 17 THEN '200' 
161414                 WHEN 18 THEN '200' 
161415                 
161416                 ELSE null
161417               END                           source_application_id
161418             , 'S'             source_type_code
161419             , CASE r
161420                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
161421                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
161422                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
161423                 WHEN 4 THEN 'AI_ACCTS_PAY_CCID' 
161424                 WHEN 5 THEN 'FSP_RETAINAGE_ACCOUNT' 
161425                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
161426                 WHEN 7 THEN 'AI_INVOICE_ID' 
161427                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
161428                 WHEN 9 THEN 'AI_VENDOR_ID' 
161429                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
161430                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
161431                 WHEN 12 THEN 'INV_EXCHANGE_DATE' 
161432                 WHEN 13 THEN 'INV_EXCHANGE_RATE' 
161433                 WHEN 14 THEN 'INV_EXCHANGE_RATE_TYPE' 
161434                 WHEN 15 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
161435                 WHEN 16 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
161436                 WHEN 17 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
161437                 WHEN 18 THEN 'INV_DOC_SEQUENCE_VALUE' 
161438                 
161439                 ELSE null
161440               END                           source_code
161441             , CASE r
161442                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
161443                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
161444                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
161445                 WHEN 4 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
161446                 WHEN 5 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
161447                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
161448                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
161449                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
161450                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
161451                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
161452                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
161453                 WHEN 12 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
161454                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
161455                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
161456                 WHEN 15 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
161457                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
161458                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
161459                 WHEN 18 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
161460                 
161461                 ELSE null
161462               END                           source_value
161463             , CASE r
161464                 WHEN 1 THEN fvl10.meaning
161465                 WHEN 6 THEN fvl43.meaning
161466                 WHEN 15 THEN fvl167.meaning
161467                 
161468                 ELSE null
161469               END               source_meaning
161470          FROM xla_events_gt     xet  
161471       , AP_INVOICE_EXTRACT_HEADER_V  h2
161472       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
161473   , fnd_lookup_values    fvl10
161474   , fnd_lookup_values    fvl43
161475   , fnd_lookup_values    fvl167
161476              ,(select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
161477          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
161478            AND xet.event_class_code = C_EVENT_CLASS_CODE
161479               AND h2.event_id = xet.event_id
161480  AND h4.asp_org_id = h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
161481   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
161482   AND fvl10.view_application_id(+) = 200
161483   AND fvl10.language(+)            = USERENV('LANG')
161484      AND fvl43.lookup_type(+)         = 'YES_NO'
161485   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
161486   AND fvl43.view_application_id(+) = 0
161487   AND fvl43.language(+)            = USERENV('LANG')
161488      AND fvl167.lookup_type(+)         = 'INVOICE TYPE'
161489   AND fvl167.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
161490   AND fvl167.view_application_id(+) = 200
161491   AND fvl167.language(+)            = USERENV('LANG')
161492   
161493 )
161494 ;
161495 --
161496 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161497 
161498       trace
161499          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
161503 END IF;
161500          ,p_level    => C_LEVEL_STATEMENT
161501          ,p_module   => l_log_module);
161502 
161504 --
161505 
161506 
161507 
161508 --
161509 INSERT INTO xla_diag_sources  --line2
161510 (
161511         event_id
161512       , ledger_id
161513       , sla_ledger_id
161514       , description_language
161515       , object_name
161516       , object_type_code
161517       , line_number
161518       , source_application_id
161519       , source_type_code
161520       , source_code
161521       , source_value
161522       , source_meaning
161523       , created_by
161524       , creation_date
161525       , last_update_date
161526       , last_updated_by
161527       , last_update_login
161528       , program_update_date
161529       , program_application_id
161530       , program_id
161531       , request_id
161532 )
161533 SELECT  event_id
161534       , p_target_ledger_id
161535       , p_sla_ledger_id
161536       , p_language
161537       , object_name
161538       , object_type_code
161539       , line_number
161540       , source_application_id
161541       , source_type_code
161542       , source_code
161543       , SUBSTR(source_value,1,1996)
161544       , SUBSTR(source_meaning ,1,200)
161545       , xla_environment_pkg.g_Usr_Id
161546       , TRUNC(SYSDATE)
161547       , TRUNC(SYSDATE)
161548       , xla_environment_pkg.g_Usr_Id
161549       , xla_environment_pkg.g_Login_Id
161550       , TRUNC(SYSDATE)
161551       , xla_environment_pkg.g_Prog_Appl_Id
161552       , xla_environment_pkg.g_Prog_Id
161553       , xla_environment_pkg.g_Req_Id
161554   FROM (
161555        SELECT xet.event_id                  event_id
161556             , l1.line_number                 line_number
161557             , CASE r
161558                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161559                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161560                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161561                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161562                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161563                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161564                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161565                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161566                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161567                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161568                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161569                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161570                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161571                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161572                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161573                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161574                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161575                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161576                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161577                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161578                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161579                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161580                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161581                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161582                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161583                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161584                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161585                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161586                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161587                 WHEN 30 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161588                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161589                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161590                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161591                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161592                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161593                 WHEN 36 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161594                 WHEN 37 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
161595                 WHEN 38 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
161596                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161597                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161598                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161599                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161600                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161601                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161602                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161603                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161604                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161605                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161606                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161607                 
161608                ELSE null
161609               END                           object_name
161610             , CASE r
161611                 WHEN 1 THEN 'LINE' 
161612                 WHEN 2 THEN 'LINE' 
161613                 WHEN 3 THEN 'LINE' 
161614                 WHEN 4 THEN 'LINE' 
161615                 WHEN 5 THEN 'LINE' 
161616                 WHEN 6 THEN 'LINE' 
161617                 WHEN 7 THEN 'LINE' 
161618                 WHEN 8 THEN 'LINE' 
161619                 WHEN 9 THEN 'LINE' 
161620                 WHEN 10 THEN 'LINE' 
161621                 WHEN 11 THEN 'LINE' 
161622                 WHEN 12 THEN 'LINE' 
161623                 WHEN 13 THEN 'LINE' 
161624                 WHEN 14 THEN 'LINE' 
161625                 WHEN 15 THEN 'LINE' 
161626                 WHEN 16 THEN 'LINE' 
161627                 WHEN 17 THEN 'LINE' 
161628                 WHEN 18 THEN 'LINE' 
161629                 WHEN 19 THEN 'LINE' 
161630                 WHEN 20 THEN 'LINE' 
161634                 WHEN 24 THEN 'LINE' 
161631                 WHEN 21 THEN 'LINE' 
161632                 WHEN 22 THEN 'LINE' 
161633                 WHEN 23 THEN 'LINE' 
161635                 WHEN 25 THEN 'LINE' 
161636                 WHEN 26 THEN 'LINE' 
161637                 WHEN 27 THEN 'LINE' 
161638                 WHEN 28 THEN 'LINE' 
161639                 WHEN 29 THEN 'LINE' 
161640                 WHEN 30 THEN 'LINE' 
161641                 WHEN 31 THEN 'LINE' 
161642                 WHEN 32 THEN 'LINE' 
161643                 WHEN 33 THEN 'LINE' 
161644                 WHEN 34 THEN 'LINE' 
161645                 WHEN 35 THEN 'LINE' 
161646                 WHEN 36 THEN 'LINE' 
161647                 WHEN 37 THEN 'LINE' 
161648                 WHEN 38 THEN 'LINE' 
161649                 WHEN 39 THEN 'LINE' 
161650                 WHEN 40 THEN 'LINE' 
161651                 WHEN 41 THEN 'LINE' 
161652                 WHEN 42 THEN 'LINE' 
161653                 WHEN 43 THEN 'LINE' 
161654                 WHEN 44 THEN 'LINE' 
161655                 WHEN 45 THEN 'LINE' 
161656                 WHEN 46 THEN 'LINE' 
161657                 WHEN 47 THEN 'LINE' 
161658                 WHEN 48 THEN 'LINE' 
161659                 WHEN 49 THEN 'LINE' 
161660                 
161661                 ELSE null
161662               END                           object_type_code
161663             , CASE r
161664                 WHEN 1 THEN '200' 
161665                 WHEN 2 THEN '200' 
161666                 WHEN 3 THEN '200' 
161667                 WHEN 4 THEN '200' 
161668                 WHEN 5 THEN '200' 
161669                 WHEN 6 THEN '200' 
161670                 WHEN 7 THEN '200' 
161671                 WHEN 8 THEN '200' 
161672                 WHEN 9 THEN '200' 
161673                 WHEN 10 THEN '200' 
161674                 WHEN 11 THEN '200' 
161675                 WHEN 12 THEN '200' 
161676                 WHEN 13 THEN '200' 
161677                 WHEN 14 THEN '200' 
161678                 WHEN 15 THEN '200' 
161679                 WHEN 16 THEN '200' 
161680                 WHEN 17 THEN '200' 
161681                 WHEN 18 THEN '200' 
161682                 WHEN 19 THEN '200' 
161683                 WHEN 20 THEN '200' 
161684                 WHEN 21 THEN '200' 
161685                 WHEN 22 THEN '200' 
161686                 WHEN 23 THEN '200' 
161687                 WHEN 24 THEN '200' 
161688                 WHEN 25 THEN '200' 
161689                 WHEN 26 THEN '200' 
161690                 WHEN 27 THEN '200' 
161691                 WHEN 28 THEN '200' 
161692                 WHEN 29 THEN '200' 
161693                 WHEN 30 THEN '200' 
161694                 WHEN 31 THEN '200' 
161695                 WHEN 32 THEN '200' 
161696                 WHEN 33 THEN '200' 
161697                 WHEN 34 THEN '200' 
161698                 WHEN 35 THEN '200' 
161699                 WHEN 36 THEN '200' 
161700                 WHEN 37 THEN '200' 
161701                 WHEN 38 THEN '200' 
161702                 WHEN 39 THEN '200' 
161703                 WHEN 40 THEN '200' 
161704                 WHEN 41 THEN '200' 
161705                 WHEN 42 THEN '200' 
161706                 WHEN 43 THEN '200' 
161707                 WHEN 44 THEN '200' 
161708                 WHEN 45 THEN '200' 
161709                 WHEN 46 THEN '200' 
161710                 WHEN 47 THEN '200' 
161711                 WHEN 48 THEN '200' 
161712                 WHEN 49 THEN '200' 
161713                 
161714                 ELSE null
161715               END                           source_application_id
161716             , 'S'             source_type_code
161717             , CASE r
161718                 WHEN 1 THEN 'AID_DESCRIPTION' 
161719                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
161720                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
161721                 WHEN 4 THEN 'AID_DIST_CCID' 
161722                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
161723                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
161724                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
161725                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
161726                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
161727                 WHEN 10 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
161728                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
161729                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
161730                 WHEN 13 THEN 'ALLOC_TO_MAIN_DIST_ID' 
161731                 WHEN 14 THEN 'BUS_FLOW_PO_APP_ID' 
161732                 WHEN 15 THEN 'BUS_FLOW_PO_DIST_TYPE' 
161733                 WHEN 16 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
161734                 WHEN 17 THEN 'BUS_FLOW_PO_DIST_ID' 
161735                 WHEN 18 THEN 'BUS_FLOW_PO_DOC_ID' 
161736                 WHEN 19 THEN 'AID_INVOICE_DIST_ID' 
161737                 WHEN 20 THEN 'UPG_ENC_CR_CCID' 
161738                 WHEN 21 THEN 'UPG_ENC_CR_AMT' 
161739                 WHEN 22 THEN 'UPG_ENC_CR_BASE_AMT' 
161740                 WHEN 23 THEN 'UPG_ENC_DR_CCID' 
161741                 WHEN 24 THEN 'UPG_ENC_DR_AMT' 
161742                 WHEN 25 THEN 'UPG_ENC_DR_BASE_AMT' 
161743                 WHEN 26 THEN 'UPG_AP_ENCUM_OPTION' 
161744                 WHEN 27 THEN 'AID_AMOUNT' 
161745                 WHEN 28 THEN 'POH_RATE_DATE' 
161746                 WHEN 29 THEN 'POH_RATE' 
161747                 WHEN 30 THEN 'POH_RATE_TYPE' 
161748                 WHEN 31 THEN 'DEFERRED_END_DATE' 
161749                 WHEN 32 THEN 'DEFERRED_OPTION' 
161750                 WHEN 33 THEN 'DEFERRED_START_DATE' 
161751                 WHEN 34 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
161752                 WHEN 35 THEN 'AID_PARENT_REVERSAL_ID' 
161753                 WHEN 36 THEN 'AID_STAT_AMOUNT' 
161754                 WHEN 37 THEN 'TAX_LINE_ID' 
161755                 WHEN 38 THEN 'REC_NREC_TAX_DIST_ID' 
161756                 WHEN 39 THEN 'SUMMARY_TAX_LINE_ID' 
161757                 WHEN 40 THEN 'UPG_CR_ENC_TYPE_ID' 
161758                 WHEN 41 THEN 'UPG_DR_ENC_TYPE_ID' 
161762                 WHEN 45 THEN 'BUS_FLOW_INV_DIST_ID' 
161759                 WHEN 42 THEN 'BUS_FLOW_AP_APP_ID' 
161760                 WHEN 43 THEN 'BUS_FLOW_INV_DIST_TYPE' 
161761                 WHEN 44 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
161763                 WHEN 46 THEN 'BUS_FLOW_INV_ID' 
161764                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
161765                 WHEN 48 THEN 'BUS_FLOW_RET_INV_DIST_ID' 
161766                 WHEN 49 THEN 'BUS_FLOW_RET_INV_ID' 
161767                 
161768                 ELSE null
161769               END                           source_code
161770             , CASE r
161771                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
161772                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
161773                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
161774                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
161775                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
161776                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
161777                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
161778                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
161779                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
161780                 WHEN 10 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
161781                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
161782                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
161783                 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
161784                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
161785                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
161786                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
161787                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
161788                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
161789                 WHEN 19 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
161790                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
161791                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
161792                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
161793                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
161794                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
161795                 WHEN 25 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
161796                 WHEN 26 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
161797                 WHEN 27 THEN TO_CHAR(l1.AID_AMOUNT)
161798                 WHEN 28 THEN TO_CHAR(l3.POH_RATE_DATE)
161799                 WHEN 29 THEN TO_CHAR(l3.POH_RATE)
161800                 WHEN 30 THEN TO_CHAR(l3.POH_RATE_TYPE)
161801                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_END_DATE)
161802                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_OPTION)
161803                 WHEN 33 THEN TO_CHAR(l1.DEFERRED_START_DATE)
161804                 WHEN 34 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
161805                 WHEN 35 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
161806                 WHEN 36 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
161807                 WHEN 37 THEN TO_CHAR(l5.TAX_LINE_ID)
161808                 WHEN 38 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
161809                 WHEN 39 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
161810                 WHEN 40 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
161811                 WHEN 41 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
161812                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
161813                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
161814                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
161815                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
161816                 WHEN 46 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
161817                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
161818                 WHEN 48 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_DIST_ID)
161819                 WHEN 49 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_ID)
161820                 
161821                 ELSE null
161822               END                           source_value
161823             , CASE r
161824                 WHEN 3 THEN fvl17.meaning
161825                 WHEN 5 THEN fvl28.meaning
161826                 WHEN 10 THEN fvl54.meaning
161827                 WHEN 34 THEN fvl85.meaning
161828                 WHEN 47 THEN fvl145.meaning
161829                 
161830                 ELSE null
161831               END               source_meaning
161832          FROM  xla_events_gt     xet  
161833         , AP_INVOICE_EXTRACT_DETAILS_V  l1
161834         , AP_PO_HEADERS_EXTRACT_V  l3
161835         , ZX_AP_DEF_TAX_EXTRACT_V  l5
161836         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
161837   , fnd_lookup_values    fvl17
161838   , fnd_lookup_values    fvl28
161839   , fnd_lookup_values    fvl54
161840   , fnd_lookup_values    fvl85
161841   , fnd_lookup_values    fvl145
161842             , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
161843         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
161844           AND xet.event_class_code = C_EVENT_CLASS_CODE
161845             AND l1.event_id          = xet.event_id
161846  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
161847   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
161848   AND fvl17.view_application_id(+) = 201
161849   AND fvl17.language(+)            = USERENV('LANG')
161850      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
161851   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
161852   AND fvl28.view_application_id(+) = 200
161853   AND fvl28.language(+)            = USERENV('LANG')
161854      AND fvl54.lookup_type(+)         = 'YES_NO'
161855   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
161856   AND fvl54.view_application_id(+) = 0
161857   AND fvl54.language(+)            = USERENV('LANG')
161858      AND fvl85.lookup_type(+)         = 'YES_NO'
161859   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
161860   AND fvl85.view_application_id(+) = 0
161861   AND fvl85.language(+)            = USERENV('LANG')
161865   AND fvl145.language(+)            = USERENV('LANG')
161862      AND fvl145.lookup_type(+)         = 'YES_NO'
161863   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
161864   AND fvl145.view_application_id(+) = 0
161866   
161867 )
161868 ;
161869 --
161870 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161871 
161872       trace
161873          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
161874          ,p_level    => C_LEVEL_STATEMENT
161875          ,p_module   => l_log_module);
161876 
161877 END IF;
161878 
161879 
161880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161881       trace
161882          (p_msg      => 'END of insert_sources_251'
161883          ,p_level    => C_LEVEL_PROCEDURE
161884          ,p_module   => l_log_module);
161885 END IF;
161886 EXCEPTION
161887   WHEN xla_exceptions_pkg.application_exception THEN
161888       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
161889             trace
161890                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
161891                ,p_level    => C_LEVEL_EXCEPTION
161892                ,p_module   => l_log_module);
161893       END IF;
161894       RAISE;
161895   WHEN OTHERS THEN
161896       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
161897             trace
161898                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
161899                ,p_level    => C_LEVEL_EXCEPTION
161900                ,p_module   => l_log_module);
161901        END IF;
161902        xla_exceptions_pkg.raise_message
161903            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_251');
161904 END insert_sources_251;
161905 --
161906 
161907 ---------------------------------------
161908 --
161909 -- PRIVATE FUNCTION
161910 --         EventClass_251
161911 --
161912 ----------------------------------------
161913 --
161914 FUNCTION EventClass_251
161915        (p_application_id         IN NUMBER
161916        ,p_base_ledger_id         IN NUMBER
161917        ,p_target_ledger_id       IN NUMBER
161918        ,p_language               IN VARCHAR2
161919        ,p_currency_code          IN VARCHAR2
161920        ,p_sla_ledger_id          IN NUMBER
161921        ,p_pad_start_date         IN DATE
161922        ,p_pad_end_date           IN DATE
161923        ,p_primary_ledger_id      IN NUMBER)
161924 RETURN BOOLEAN IS
161925 --
161926 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
161927 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICES';
161928 
161929 l_calculate_acctd_flag   VARCHAR2(1) :='N';
161930 l_calculate_g_l_flag     VARCHAR2(1) :='N';
161931 --
161932 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161933 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161934 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
161935 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
161936 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161937 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
161938 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
161939 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161940 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
161941 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
161942 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161943 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161944 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161945 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
161946 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
161947 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
161948 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
161949 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
161950 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
161951 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
161952 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
161953 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
161954 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
161955 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
161956 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
161957 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
161958 
161959 l_event_id                             NUMBER;
161960 l_previous_event_id                    NUMBER;
161961 l_first_event_id                       NUMBER;
161962 l_last_event_id                        NUMBER;
161963 
161964 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
161965 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
161966 --
161967 --
161968 l_result                    BOOLEAN := TRUE;
161969 l_rows                      NUMBER  := 1000;
161970 l_event_type_name           VARCHAR2(80) := 'All';
161971 l_event_class_name          VARCHAR2(80) := 'Invoices';
161972 l_description               VARCHAR2(4000);
161973 l_transaction_reversal      NUMBER;
161974 l_ae_header_id              NUMBER;
161975 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
161976 l_log_module                VARCHAR2(240);
161977 --
161978 l_acct_reversal_source      VARCHAR2(30);
161979 l_trx_reversal_source       VARCHAR2(30);
161980 
161981 l_continue_with_lines       BOOLEAN := TRUE;
161982 --
161983 l_acc_rev_gl_date_source    DATE;                      -- 4262811
161984 --
161985 type t_array_event_id is table of number index by binary_integer;
161986 
161990 l_actual_flag                        VARCHAR2(1) := NULL;
161987 l_rec_array_event                    t_rec_array_event;
161988 l_null_rec_array_event               t_rec_array_event;
161989 l_array_ae_header_id                 xla_number_array_type;
161991 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
161992 l_balance_type_code                  VARCHAR2(1) :=NULL;
161993 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
161994 
161995 --
161996 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
161997 --
161998 
161999 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
162000 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
162001 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
162002 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
162003 TYPE t_array_source_35 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162004 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
162005 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
162006 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
162007 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
162008 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
162009 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
162010 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
162011 TYPE t_array_source_147 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
162012 TYPE t_array_source_148 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
162013 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
162014 TYPE t_array_source_171 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
162015 TYPE t_array_source_172 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
162016 TYPE t_array_source_173 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
162017 
162018 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
162019 TYPE t_array_source_16 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162020 TYPE t_array_source_17 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162021 TYPE t_array_source_25 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
162022 TYPE t_array_source_28 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
162023 TYPE t_array_source_38 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
162024 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162025 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162026 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
162027 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
162028 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
162029 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
162030 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162031 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
162032 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162033 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
162034 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162035 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
162036 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162037 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
162038 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
162039 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
162040 TYPE t_array_source_74 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
162041 TYPE t_array_source_75 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
162042 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
162043 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
162044 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162045 TYPE t_array_source_79 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
162046 TYPE t_array_source_80 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
162047 TYPE t_array_source_81 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
162048 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
162049 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
162053 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162050 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
162051 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
162052 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
162054 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
162055 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162056 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
162057 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
162058 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
162059 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
162060 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162061 TYPE t_array_source_98 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
162062 TYPE t_array_source_99 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162063 TYPE t_array_source_100 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
162064 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
162065 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162066 TYPE t_array_source_169 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_ID%TYPE INDEX BY BINARY_INTEGER;
162067 
162068 l_array_source_10              t_array_source_10;
162069 l_array_source_10_meaning      t_array_lookup_meaning;
162070 l_array_source_15              t_array_source_15;
162071 l_array_source_18              t_array_source_18;
162072 l_array_source_29              t_array_source_29;
162073 l_array_source_35              t_array_source_35;
162074 l_array_source_43              t_array_source_43;
162075 l_array_source_43_meaning      t_array_lookup_meaning;
162076 l_array_source_63              t_array_source_63;
162077 l_array_source_72              t_array_source_72;
162078 l_array_source_86              t_array_source_86;
162079 l_array_source_87              t_array_source_87;
162080 l_array_source_88              t_array_source_88;
162081 l_array_source_146              t_array_source_146;
162082 l_array_source_147              t_array_source_147;
162083 l_array_source_148              t_array_source_148;
162084 l_array_source_167              t_array_source_167;
162085 l_array_source_167_meaning      t_array_lookup_meaning;
162086 l_array_source_171              t_array_source_171;
162087 l_array_source_172              t_array_source_172;
162088 l_array_source_173              t_array_source_173;
162089 
162090 l_array_source_1      t_array_source_1;
162091 l_array_source_16      t_array_source_16;
162092 l_array_source_17      t_array_source_17;
162093 l_array_source_17_meaning      t_array_lookup_meaning;
162094 l_array_source_25      t_array_source_25;
162095 l_array_source_28      t_array_source_28;
162096 l_array_source_28_meaning      t_array_lookup_meaning;
162097 l_array_source_38      t_array_source_38;
162098 l_array_source_39      t_array_source_39;
162099 l_array_source_46      t_array_source_46;
162100 l_array_source_47      t_array_source_47;
162101 l_array_source_54      t_array_source_54;
162102 l_array_source_54_meaning      t_array_lookup_meaning;
162103 l_array_source_58      t_array_source_58;
162104 l_array_source_60      t_array_source_60;
162105 l_array_source_62      t_array_source_62;
162106 l_array_source_64      t_array_source_64;
162107 l_array_source_65      t_array_source_65;
162108 l_array_source_66      t_array_source_66;
162109 l_array_source_67      t_array_source_67;
162110 l_array_source_68      t_array_source_68;
162111 l_array_source_69      t_array_source_69;
162112 l_array_source_70      t_array_source_70;
162113 l_array_source_71      t_array_source_71;
162114 l_array_source_73      t_array_source_73;
162115 l_array_source_74      t_array_source_74;
162116 l_array_source_75      t_array_source_75;
162117 l_array_source_76      t_array_source_76;
162118 l_array_source_77      t_array_source_77;
162119 l_array_source_78      t_array_source_78;
162120 l_array_source_79      t_array_source_79;
162121 l_array_source_80      t_array_source_80;
162122 l_array_source_81      t_array_source_81;
162123 l_array_source_82      t_array_source_82;
162124 l_array_source_83      t_array_source_83;
162125 l_array_source_84      t_array_source_84;
162126 l_array_source_85      t_array_source_85;
162127 l_array_source_85_meaning      t_array_lookup_meaning;
162128 l_array_source_89      t_array_source_89;
162129 l_array_source_90      t_array_source_90;
162130 l_array_source_91      t_array_source_91;
162131 l_array_source_92      t_array_source_92;
162132 l_array_source_93      t_array_source_93;
162133 l_array_source_94      t_array_source_94;
162134 l_array_source_95      t_array_source_95;
162135 l_array_source_96      t_array_source_96;
162136 l_array_source_97      t_array_source_97;
162137 l_array_source_98      t_array_source_98;
162138 l_array_source_99      t_array_source_99;
162139 l_array_source_100      t_array_source_100;
162140 l_array_source_145      t_array_source_145;
162141 l_array_source_145_meaning      t_array_lookup_meaning;
162142 l_array_source_168      t_array_source_168;
162143 l_array_source_169      t_array_source_169;
162144 
162145 --
162146 CURSOR header_cur
162147 IS
162148 SELECT /*+ leading(xet) cardinality(xet,1) */
162149 -- Event Class Code: INVOICES
162150     xet.entity_id
162151    ,xet.legal_entity_id
162152    ,xet.entity_code
162153    ,xet.transaction_number
162154    ,xet.event_id
162155    ,xet.event_class_code
162159    ,xet.transaction_date
162156    ,xet.event_type_code
162157    ,xet.event_number
162158    ,xet.event_date
162160    ,xet.reference_num_1
162161    ,xet.reference_num_2
162162    ,xet.reference_num_3
162163    ,xet.reference_num_4
162164    ,xet.reference_char_1
162165    ,xet.reference_char_2
162166    ,xet.reference_char_3
162167    ,xet.reference_char_4
162168    ,xet.reference_date_1
162169    ,xet.reference_date_2
162170    ,xet.reference_date_3
162171    ,xet.reference_date_4
162172    ,xet.event_created_by
162173    ,xet.budgetary_control_flag 
162174   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
162175   , fvl10.meaning   source_10_meaning
162176   , h4.ASP_RATE_VAR_GAIN_CCID    source_15
162177   , h4.ASP_RATE_VAR_LOSS_CCID    source_18
162178   , h2.AI_ACCTS_PAY_CCID    source_29
162179   , h4.FSP_RETAINAGE_ACCOUNT    source_35
162180   , h4.ASP_AUTO_OFFSET_FLAG    source_43
162181   , fvl43.meaning   source_43_meaning
162182   , h2.AI_INVOICE_ID    source_63
162183   , h2.AI_INVOICE_CURRENCY_CODE    source_72
162184   , h2.AI_VENDOR_ID    source_86
162185   , h2.AI_VENDOR_SITE_ID    source_87
162186   , h2.THIRD_PARTY_TYPE    source_88
162187   , h2.INV_EXCHANGE_DATE    source_146
162188   , h2.INV_EXCHANGE_RATE    source_147
162189   , h2.INV_EXCHANGE_RATE_TYPE    source_148
162190   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_167
162191   , fvl167.meaning   source_167_meaning
162192   , h2.INV_DOC_SEQUENCE_CATEGORY    source_171
162193   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_172
162194   , h2.INV_DOC_SEQUENCE_VALUE    source_173
162195   FROM xla_events_gt     xet 
162196   , AP_INVOICE_EXTRACT_HEADER_V  h2
162197   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
162198   , fnd_lookup_values    fvl10
162199   , fnd_lookup_values    fvl43
162200   , fnd_lookup_values    fvl167
162201  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
162202    and xet.event_class_code = C_EVENT_CLASS_CODE
162203    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
162204  AND h4.asp_org_id = h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
162205   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
162206   AND fvl10.view_application_id(+) = 200
162207   AND fvl10.language(+)            = USERENV('LANG')
162208      AND fvl43.lookup_type(+)         = 'YES_NO'
162209   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
162210   AND fvl43.view_application_id(+) = 0
162211   AND fvl43.language(+)            = USERENV('LANG')
162212      AND fvl167.lookup_type(+)         = 'INVOICE TYPE'
162213   AND fvl167.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
162214   AND fvl167.view_application_id(+) = 200
162215   AND fvl167.language(+)            = USERENV('LANG')
162216   
162217  ORDER BY event_id
162218 ;
162219 
162220 
162221 --
162222 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
162223 IS
162224 SELECT  /*+ leading(xet) cardinality(xet,1) */
162225 -- Event Class Code: INVOICES
162226     xet.entity_id
162227    ,xet.legal_entity_id
162228    ,xet.entity_code
162229    ,xet.transaction_number
162230    ,xet.event_id
162231    ,xet.event_class_code
162232    ,xet.event_type_code
162233    ,xet.event_number
162234    ,xet.event_date
162235    ,xet.transaction_date
162236    ,xet.reference_num_1
162237    ,xet.reference_num_2
162238    ,xet.reference_num_3
162239    ,xet.reference_num_4
162240    ,xet.reference_char_1
162241    ,xet.reference_char_2
162242    ,xet.reference_char_3
162243    ,xet.reference_char_4
162244    ,xet.reference_date_1
162245    ,xet.reference_date_2
162246    ,xet.reference_date_3
162247    ,xet.reference_date_4
162248    ,xet.event_created_by
162249    ,xet.budgetary_control_flag
162250  , l1.LINE_NUMBER  
162251   , l1.AID_DESCRIPTION    source_1
162252   , l1.INV_DIST_BASE_AMOUNT    source_16
162253   , l1.RELATED_INV_DIST_DEST_TYPE    source_17
162254   , fvl17.meaning   source_17_meaning
162255   , l1.AID_DIST_CCID    source_25
162256   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
162257   , fvl28.meaning   source_28_meaning
162258   , l1.AID_RET_RELATED_DIST_CCID    source_38
162259   , l1.AWT_RELATED_DIST_ACCOUNT    source_39
162260   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_46
162261   , l1.ASAT_LIAB_CCID    source_47
162262   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_54
162263   , fvl54.meaning   source_54_meaning
162264   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
162265   , l1.DISTRIBUTION_LINK_TYPE    source_60
162266   , l1.ALLOC_TO_MAIN_DIST_ID    source_62
162267   , l1.BUS_FLOW_PO_APP_ID    source_64
162268   , l1.BUS_FLOW_PO_DIST_TYPE    source_65
162269   , l1.BUS_FLOW_PO_ENTITY_CODE    source_66
162270   , l1.BUS_FLOW_PO_DIST_ID    source_67
162271   , l1.BUS_FLOW_PO_DOC_ID    source_68
162272   , l1.AID_INVOICE_DIST_ID    source_69
162273   , l1.UPG_ENC_CR_CCID    source_70
162274   , l1.UPG_ENC_CR_AMT    source_71
162275   , l1.UPG_ENC_CR_BASE_AMT    source_73
162276   , l1.UPG_ENC_DR_CCID    source_74
162277   , l1.UPG_ENC_DR_AMT    source_75
162278   , l1.UPG_ENC_DR_BASE_AMT    source_76
162279   , l1.UPG_AP_ENCUM_OPTION    source_77
162280   , l1.AID_AMOUNT    source_78
162281   , l3.POH_RATE_DATE    source_79
162282   , l3.POH_RATE    source_80
162283   , l3.POH_RATE_TYPE    source_81
162284   , l1.DEFERRED_END_DATE    source_82
162285   , l1.DEFERRED_OPTION    source_83
162286   , l1.DEFERRED_START_DATE    source_84
162287   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
162288   , fvl85.meaning   source_85_meaning
162289   , l1.AID_PARENT_REVERSAL_ID    source_89
162290   , l1.AID_STAT_AMOUNT    source_90
162291   , l5.TAX_LINE_ID    source_91
162292   , l6.REC_NREC_TAX_DIST_ID    source_92
162293   , l1.SUMMARY_TAX_LINE_ID    source_93
162294   , l1.UPG_CR_ENC_TYPE_ID    source_94
162295   , l1.UPG_DR_ENC_TYPE_ID    source_95
162296   , l1.BUS_FLOW_AP_APP_ID    source_96
162297   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
162301   , l1.SELF_ASSESSED_TAX_FLAG    source_145
162298   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
162299   , l1.BUS_FLOW_INV_DIST_ID    source_99
162300   , l1.BUS_FLOW_INV_ID    source_100
162302   , fvl145.meaning   source_145_meaning
162303   , l1.BUS_FLOW_RET_INV_DIST_ID    source_168
162304   , l1.BUS_FLOW_RET_INV_ID    source_169
162305   FROM xla_events_gt     xet 
162306   , AP_INVOICE_EXTRACT_DETAILS_V  l1
162307   , AP_PO_HEADERS_EXTRACT_V  l3
162308   , ZX_AP_DEF_TAX_EXTRACT_V  l5
162309   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
162310   , fnd_lookup_values    fvl17
162311   , fnd_lookup_values    fvl28
162312   , fnd_lookup_values    fvl54
162313   , fnd_lookup_values    fvl85
162314   , fnd_lookup_values    fvl145
162315  WHERE xet.event_id between x_first_event_id and x_last_event_id
162316    and xet.event_date between p_pad_start_date and p_pad_end_date
162317    and xet.event_class_code = C_EVENT_CLASS_CODE
162318    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
162319  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
162320   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
162321   AND fvl17.view_application_id(+) = 201
162322   AND fvl17.language(+)            = USERENV('LANG')
162323      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
162324   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
162325   AND fvl28.view_application_id(+) = 200
162326   AND fvl28.language(+)            = USERENV('LANG')
162327      AND fvl54.lookup_type(+)         = 'YES_NO'
162328   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
162329   AND fvl54.view_application_id(+) = 0
162330   AND fvl54.language(+)            = USERENV('LANG')
162331      AND fvl85.lookup_type(+)         = 'YES_NO'
162332   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
162333   AND fvl85.view_application_id(+) = 0
162334   AND fvl85.language(+)            = USERENV('LANG')
162335      AND fvl145.lookup_type(+)         = 'YES_NO'
162336   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
162337   AND fvl145.view_application_id(+) = 0
162338   AND fvl145.language(+)            = USERENV('LANG')
162339   ;
162340 
162341 --
162342 BEGIN
162343 IF g_log_enabled THEN
162344    l_log_module := C_DEFAULT_MODULE||'.EventClass_251';
162345 END IF;
162346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162347    trace
162348       (p_msg      => 'BEGIN of EventClass_251'
162349       ,p_level    => C_LEVEL_PROCEDURE
162350       ,p_module   => l_log_module);
162351 END IF;
162352 
162353 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162354    trace
162355       (p_msg      => 'p_application_id = '||p_application_id||
162356                      ' - p_base_ledger_id = '||p_base_ledger_id||
162357                      ' - p_target_ledger_id  = '||p_target_ledger_id||
162358                      ' - p_language = '||p_language||
162359                      ' - p_currency_code = '||p_currency_code||
162360                      ' - p_sla_ledger_id = '||p_sla_ledger_id
162361       ,p_level    => C_LEVEL_STATEMENT
162362       ,p_module   => l_log_module);
162363 END IF;
162364 --
162365 -- initialze arrays
162366 --
162367 g_array_event.DELETE;
162368 l_rec_array_event := l_null_rec_array_event;
162369 --
162370 --------------------------------------
162371 -- 4262811 Initialze MPA Line Number
162372 --------------------------------------
162373 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
162374 
162375 --
162376 
162377 --
162378 OPEN header_cur;
162379 --
162380 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162381    trace
162382    (p_msg      => 'SQL - FETCH header_cur'
162383    ,p_level    => C_LEVEL_STATEMENT
162384    ,p_module   => l_log_module);
162385 END IF;
162386 --
162387 LOOP
162388 FETCH header_cur BULK COLLECT INTO
162389         l_array_entity_id
162390       , l_array_legal_entity_id
162391       , l_array_entity_code
162392       , l_array_transaction_num
162393       , l_array_event_id
162394       , l_array_class_code
162395       , l_array_event_type
162396       , l_array_event_number
162397       , l_array_event_date
162398       , l_array_transaction_date
162399       , l_array_reference_num_1
162400       , l_array_reference_num_2
162401       , l_array_reference_num_3
162402       , l_array_reference_num_4
162403       , l_array_reference_char_1
162404       , l_array_reference_char_2
162405       , l_array_reference_char_3
162406       , l_array_reference_char_4
162407       , l_array_reference_date_1
162408       , l_array_reference_date_2
162409       , l_array_reference_date_3
162410       , l_array_reference_date_4
162411       , l_array_event_created_by
162412       , l_array_budgetary_control_flag 
162413       , l_array_source_10
162414       , l_array_source_10_meaning
162415       , l_array_source_15
162416       , l_array_source_18
162417       , l_array_source_29
162418       , l_array_source_35
162419       , l_array_source_43
162420       , l_array_source_43_meaning
162421       , l_array_source_63
162422       , l_array_source_72
162423       , l_array_source_86
162424       , l_array_source_87
162425       , l_array_source_88
162426       , l_array_source_146
162427       , l_array_source_147
162428       , l_array_source_148
162429       , l_array_source_167
162430       , l_array_source_167_meaning
162431       , l_array_source_171
162432       , l_array_source_172
162433       , l_array_source_173
162434       LIMIT l_rows;
162435 --
162436 IF (C_LEVEL_EVENT >= g_log_level) THEN
162437    trace
162438    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
162439    ,p_level    => C_LEVEL_EVENT
162440    ,p_module   => l_log_module);
162441 END IF;
162442 --
162446 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
162443 EXIT WHEN l_array_entity_id.COUNT = 0;
162444 
162445 -- initialize arrays
162447 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
162448 
162449 --
162450 -- Bug 4458708
162451 --
162452 XLA_AE_LINES_PKG.g_LineNumber := 0;
162453 
162454 
162455 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
162456 g_last_hdr_idx := l_array_event_id.LAST;
162457 --
162458 -- loop for the headers. Each iteration is for each header extract row
162459 -- fetched in header cursor
162460 --
162461 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
162462 
162463 --
162464 -- set event info as cache for other routines to refer event attributes
162465 --
162466 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
162467    (p_application_id           => p_application_id
162468    ,p_primary_ledger_id        => p_primary_ledger_id
162469    ,p_base_ledger_id           => p_base_ledger_id
162470    ,p_target_ledger_id         => p_target_ledger_id
162471    ,p_entity_id                => l_array_entity_id(hdr_idx)
162472    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
162473    ,p_entity_code              => l_array_entity_code(hdr_idx)
162474    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
162475    ,p_event_id                 => l_array_event_id(hdr_idx)
162476    ,p_event_class_code         => l_array_class_code(hdr_idx)
162477    ,p_event_type_code          => l_array_event_type(hdr_idx)
162478    ,p_event_number             => l_array_event_number(hdr_idx)
162479    ,p_event_date               => l_array_event_date(hdr_idx)
162480    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
162481    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
162482    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
162483    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
162484    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
162485    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
162486    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
162487    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
162488    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
162489    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
162490    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
162491    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
162492    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
162493    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
162494    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
162495 
162496 --
162497 -- set the status of entry to C_VALID (0)
162498 --
162499 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
162500 
162501 --
162502 -- initialize a row for ae header
162503 --
162504 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
162505 
162506 l_event_id := l_array_event_id(hdr_idx);
162507 
162508 --
162509 -- storing the hdr_idx for event. May be used by line cursor.
162510 --
162511 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
162512 
162513 --
162514 -- store sources from header extract. This can be improved to
162515 -- store only those sources from header extract that may be used in lines
162516 --
162517 
162518 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
162519 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
162520 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
162521 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
162522 g_array_event(l_event_id).array_value_num('source_29') := l_array_source_29(hdr_idx);
162523 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
162524 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
162525 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
162526 g_array_event(l_event_id).array_value_num('source_63') := l_array_source_63(hdr_idx);
162527 g_array_event(l_event_id).array_value_char('source_72') := l_array_source_72(hdr_idx);
162528 g_array_event(l_event_id).array_value_num('source_86') := l_array_source_86(hdr_idx);
162529 g_array_event(l_event_id).array_value_num('source_87') := l_array_source_87(hdr_idx);
162530 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
162531 g_array_event(l_event_id).array_value_date('source_146') := l_array_source_146(hdr_idx);
162532 g_array_event(l_event_id).array_value_num('source_147') := l_array_source_147(hdr_idx);
162533 g_array_event(l_event_id).array_value_char('source_148') := l_array_source_148(hdr_idx);
162534 g_array_event(l_event_id).array_value_char('source_167') := l_array_source_167(hdr_idx);
162535 g_array_event(l_event_id).array_value_char('source_167_meaning') := l_array_source_167_meaning(hdr_idx);
162536 g_array_event(l_event_id).array_value_char('source_171') := l_array_source_171(hdr_idx);
162537 g_array_event(l_event_id).array_value_num('source_172') := l_array_source_172(hdr_idx);
162538 g_array_event(l_event_id).array_value_num('source_173') := l_array_source_173(hdr_idx);
162539 
162540 --
162541 -- initilaize the status of ae headers for diffrent balance types
162542 -- the status is initialised to C_NOT_CREATED (2)
162543 --
162544 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
162545 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
162546 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
162547 
162548 --
162549 -- call api to validate and store accounting attributes for header
162550 --
162551 
162552 ------------------------------------------------------------
162556 
162553 -- Accrual Reversal : to get date for Standard Source (NONE)
162554 ------------------------------------------------------------
162555 l_acc_rev_gl_date_source := NULL;
162557      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
162558       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_171');
162559      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
162560       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_172');
162561      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
162562       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_173');
162563      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
162564       l_rec_acct_attrs.array_date_value(4) := 
162565 xla_ae_sources_pkg.GetSystemSourceDate(
162566    p_source_code           => 'XLA_EVENT_DATE'
162567  , p_source_type_code      => 'Y'
162568  , p_source_application_id =>  602
162569 );
162570 
162571 
162572 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
162573 
162574 XLA_AE_HEADER_PKG.SetJeCategoryName;
162575 
162576 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
162577 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
162578 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
162579 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
162580 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
162581 
162582 
162583 --
162584 xla_ae_header_pkg.SetHdrDescription(
162585    p_description => Description_1 (
162586    p_application_id => p_application_id 
162587    )
162588 );
162589 --
162590 
162591 -- No header level analytical criteria
162592 
162593 --
162594 --accounting attribute enhancement, bug 3612931
162595 --
162596 l_trx_reversal_source := SUBSTR(NULL, 1,30);
162597 
162598 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
162599    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
162600 
162601    xla_accounting_err_pkg.build_message
162602       (p_appli_s_name            => 'XLA'
162603       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
162604       ,p_token_1                 => 'ACCT_ATTR_NAME'
162605       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
162606       ,p_token_2                 => 'PRODUCT_NAME'
162607       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
162608       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
162609       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
162610       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
162611 
162612 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
162613    --
162614    -- following sets the accounting attributes needed to reverse
162615    -- accounting for a distributeion
162616    --
162617    xla_ae_lines_pkg.SetTrxReversalAttrs
162618       (p_event_id              => l_event_id
162619       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
162620       ,p_trx_reversal_source   => l_trx_reversal_source);
162621 
162622 END IF;
162623 
162624 
162625 ----------------------------------------------------------------
162626 -- 4262811 -  update the header statuses to invalid in need be
162627 ----------------------------------------------------------------
162628 --
162629 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
162630 
162631 
162632   -----------------------------------------------
162633   -- No accrual reversal for the event class/type
162634   -----------------------------------------------
162635 ----------------------------------------------------------------
162636 
162637 --
162638 -- this ends the header loop iteration for one bulk fetch
162639 --
162640 END LOOP;
162641 
162642 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
162643 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
162644 
162645 --
162646 -- insert dummy rows into lines gt table that were created due to
162647 -- transaction reversals
162648 --
162649 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
162650    l_result := XLA_AE_LINES_PKG.InsertLines;
162651 END IF;
162652 
162653 --
162654 -- reset the temp_line_num for each set of events fetched from header
162655 -- cursor rather than doing it for each new event in line cursor
162656 -- Bug 3939231
162657 --
162658 xla_ae_lines_pkg.g_temp_line_num := 0;
162659 
162660 
162661 
162662 --
162663 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
162664 --
162665 --
162666 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162667 
162668       trace
162669          (p_msg      => 'SQL - FETCH line_cur'
162670          ,p_level    => C_LEVEL_STATEMENT
162671          ,p_module   => l_log_module);
162672 
162673 END IF;
162674 --
162675 --
162676 LOOP
162677   --
162678   FETCH line_cur BULK COLLECT INTO
162679         l_array_entity_id
162680       , l_array_legal_entity_id
162681       , l_array_entity_code
162682       , l_array_transaction_num
162683       , l_array_event_id
162684       , l_array_class_code
162685       , l_array_event_type
162686       , l_array_event_number
162687       , l_array_event_date
162688       , l_array_transaction_date
162689       , l_array_reference_num_1
162690       , l_array_reference_num_2
162691       , l_array_reference_num_3
162692       , l_array_reference_num_4
162693       , l_array_reference_char_1
162694       , l_array_reference_char_2
162698       , l_array_reference_date_2
162695       , l_array_reference_char_3
162696       , l_array_reference_char_4
162697       , l_array_reference_date_1
162699       , l_array_reference_date_3
162700       , l_array_reference_date_4
162701       , l_array_event_created_by
162702       , l_array_budgetary_control_flag
162703       , l_array_extract_line_num 
162704       , l_array_source_1
162705       , l_array_source_16
162706       , l_array_source_17
162707       , l_array_source_17_meaning
162708       , l_array_source_25
162709       , l_array_source_28
162710       , l_array_source_28_meaning
162711       , l_array_source_38
162712       , l_array_source_39
162713       , l_array_source_46
162714       , l_array_source_47
162715       , l_array_source_54
162716       , l_array_source_54_meaning
162717       , l_array_source_58
162718       , l_array_source_60
162719       , l_array_source_62
162720       , l_array_source_64
162721       , l_array_source_65
162722       , l_array_source_66
162723       , l_array_source_67
162724       , l_array_source_68
162725       , l_array_source_69
162726       , l_array_source_70
162727       , l_array_source_71
162728       , l_array_source_73
162729       , l_array_source_74
162730       , l_array_source_75
162731       , l_array_source_76
162732       , l_array_source_77
162733       , l_array_source_78
162734       , l_array_source_79
162735       , l_array_source_80
162736       , l_array_source_81
162737       , l_array_source_82
162738       , l_array_source_83
162739       , l_array_source_84
162740       , l_array_source_85
162741       , l_array_source_85_meaning
162742       , l_array_source_89
162743       , l_array_source_90
162744       , l_array_source_91
162745       , l_array_source_92
162746       , l_array_source_93
162747       , l_array_source_94
162748       , l_array_source_95
162749       , l_array_source_96
162750       , l_array_source_97
162751       , l_array_source_98
162752       , l_array_source_99
162753       , l_array_source_100
162754       , l_array_source_145
162755       , l_array_source_145_meaning
162756       , l_array_source_168
162757       , l_array_source_169
162758       LIMIT l_rows;
162759 
162760   --
162761   IF (C_LEVEL_EVENT >= g_log_level) THEN
162762             trace
162763                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
162764                ,p_level    => C_LEVEL_EVENT
162765                ,p_module   => l_log_module);
162766   END IF;
162767   --
162768   EXIT WHEN l_array_entity_id.count = 0;
162769 
162770   XLA_AE_LINES_PKG.g_rec_lines := null;
162771 
162772 --
162773 -- Bug 4458708
162774 --
162775 XLA_AE_LINES_PKG.g_LineNumber := 0;
162776 --
162777 --
162778 
162779 FOR Idx IN 1..l_array_event_id.count LOOP
162780    --
162781    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
162782    --
162783    l_event_id := l_array_event_id(idx);  -- 5648433
162784 
162785    --
162786    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
162787    --
162788 
162789    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
162790              (g_array_event(l_event_id).array_value_num('header_index'))
162791          ,'N'
162792          ) <> 'Y'
162793    THEN
162794       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162795          trace
162796             (p_msg      => 'Trancaction revesal option is not Y '
162797             ,p_level    => C_LEVEL_STATEMENT
162798             ,p_module   => l_log_module);
162799       END IF;
162800 
162801 --
162802 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
162803 --
162804 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
162805 --
162806 -- set event info as cache for other routines to refer event attributes
162807 --
162808 
162809 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
162810    l_previous_event_id := l_event_id;
162811 
162812    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
162813       (p_application_id           => p_application_id
162814       ,p_primary_ledger_id        => p_primary_ledger_id
162815       ,p_base_ledger_id           => p_base_ledger_id
162816       ,p_target_ledger_id         => p_target_ledger_id
162817       ,p_entity_id                => l_array_entity_id(Idx)
162818       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
162819       ,p_entity_code              => l_array_entity_code(Idx)
162820       ,p_transaction_num          => l_array_transaction_num(Idx)
162821       ,p_event_id                 => l_array_event_id(Idx)
162822       ,p_event_class_code         => l_array_class_code(Idx)
162823       ,p_event_type_code          => l_array_event_type(Idx)
162824       ,p_event_number             => l_array_event_number(Idx)
162825       ,p_event_date               => l_array_event_date(Idx)
162826       ,p_transaction_date         => l_array_transaction_date(Idx)
162827       ,p_reference_num_1          => l_array_reference_num_1(Idx)
162828       ,p_reference_num_2          => l_array_reference_num_2(Idx)
162829       ,p_reference_num_3          => l_array_reference_num_3(Idx)
162830       ,p_reference_num_4          => l_array_reference_num_4(Idx)
162831       ,p_reference_char_1         => l_array_reference_char_1(Idx)
162832       ,p_reference_char_2         => l_array_reference_char_2(Idx)
162833       ,p_reference_char_3         => l_array_reference_char_3(Idx)
162834       ,p_reference_char_4         => l_array_reference_char_4(Idx)
162835       ,p_reference_date_1         => l_array_reference_date_1(Idx)
162836       ,p_reference_date_2         => l_array_reference_date_2(Idx)
162837       ,p_reference_date_3         => l_array_reference_date_3(Idx)
162838       ,p_reference_date_4         => l_array_reference_date_4(Idx)
162842 END IF;
162839       ,p_event_created_by         => l_array_event_created_by(Idx)
162840       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
162841        --
162843 
162844 
162845 
162846 --
162847 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
162848 
162849 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
162850 
162851 IF l_continue_with_lines THEN
162852    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
162853       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
162854 
162855       xla_accounting_err_pkg.build_message
162856          (p_appli_s_name            => 'XLA'
162857          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
162858          ,p_token_1                 => 'LINE_NUMBER'
162859          ,p_value_1                 => l_array_extract_line_num(Idx)
162860          ,p_token_2                 => 'PRODUCT_NAME'
162861          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
162862          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
162863          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
162864          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
162865 
162866    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
162867       --
162868       -- following sets the accounting attributes needed to reverse
162869       -- accounting for a distributeion
162870       --
162871 
162872       --
162873       -- 5217187
162874       --
162875       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
162876       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
162877                                        g_array_event(l_event_id).array_value_num('header_index'));
162878       --
162879       --
162880 
162881       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
162882       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
162883       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
162884       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_69(Idx);
162885       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
162886       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
162887       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
162888       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_70(Idx);
162889       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
162890       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_71(Idx);
162891       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
162892       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_72');
162893       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
162894       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_73(Idx);
162895       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
162896       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_74(Idx);
162897       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
162898       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_75(Idx);
162899       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
162900       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_72');
162901       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
162902       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_76(Idx);
162903       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
162904       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_77(Idx);
162905       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
162906       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_88');
162907       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
162908       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_89(Idx);
162909       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
162910       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_60(Idx);
162911       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
162912       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_91(Idx);
162913       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
162914       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_92(Idx);
162915       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
162916       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_93(Idx);
162917       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
162918       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_94(Idx);
162919       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
162920       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_95(Idx);
162921 
162922 
162923       xla_ae_lines_pkg.SetAcctReversalAttrs
162924          (p_event_id             => l_event_id
162925          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
162926          ,p_calculate_acctd_flag => l_calculate_acctd_flag
162927          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
162928    END IF;
162929 
162930    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
162931        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
162932 
162933 --
162934 AcctLineType_58 (
162935  p_application_id  => p_application_id
162936  ,p_event_id     => l_event_id
162937  ,p_calculate_acctd_flag => l_calculate_acctd_flag
162938  ,p_calculate_g_l_flag => l_calculate_g_l_flag
162939  ,p_actual_flag => l_actual_flag
162940  ,p_balance_type_code => l_balance_type_code
162941  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
162942  
162946  , p_source_28 => l_array_source_28(Idx)
162943  , p_source_1 => l_array_source_1(Idx)
162944  , p_source_16 => l_array_source_16(Idx)
162945  , p_source_25 => l_array_source_25(Idx)
162947  , p_source_28_meaning => l_array_source_28_meaning(Idx)
162948  , p_source_58 => l_array_source_58(Idx)
162949  , p_source_60 => l_array_source_60(Idx)
162950  , p_source_62 => l_array_source_62(Idx)
162951  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
162952  , p_source_64 => l_array_source_64(Idx)
162953  , p_source_65 => l_array_source_65(Idx)
162954  , p_source_66 => l_array_source_66(Idx)
162955  , p_source_67 => l_array_source_67(Idx)
162956  , p_source_68 => l_array_source_68(Idx)
162957  , p_source_69 => l_array_source_69(Idx)
162958  , p_source_70 => l_array_source_70(Idx)
162959  , p_source_71 => l_array_source_71(Idx)
162960  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
162961  , p_source_73 => l_array_source_73(Idx)
162962  , p_source_74 => l_array_source_74(Idx)
162963  , p_source_75 => l_array_source_75(Idx)
162964  , p_source_76 => l_array_source_76(Idx)
162965  , p_source_77 => l_array_source_77(Idx)
162966  , p_source_78 => l_array_source_78(Idx)
162967  , p_source_79 => l_array_source_79(Idx)
162968  , p_source_80 => l_array_source_80(Idx)
162969  , p_source_81 => l_array_source_81(Idx)
162970  , p_source_82 => l_array_source_82(Idx)
162971  , p_source_83 => l_array_source_83(Idx)
162972  , p_source_84 => l_array_source_84(Idx)
162973  , p_source_85 => l_array_source_85(Idx)
162974  , p_source_85_meaning => l_array_source_85_meaning(Idx)
162975  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
162976  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
162977  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
162978  , p_source_89 => l_array_source_89(Idx)
162979  , p_source_90 => l_array_source_90(Idx)
162980  , p_source_91 => l_array_source_91(Idx)
162981  , p_source_92 => l_array_source_92(Idx)
162982  , p_source_93 => l_array_source_93(Idx)
162983  , p_source_94 => l_array_source_94(Idx)
162984  , p_source_95 => l_array_source_95(Idx)
162985  );
162986 If(l_balance_type_code = 'A') THEN
162987   l_actual_gain_loss_ref := l_gain_or_loss_ref;
162988 END IF;
162989 
162990 --
162991 
162992 
162993 --
162994 AcctLineType_62 (
162995  p_application_id  => p_application_id
162996  ,p_event_id     => l_event_id
162997  ,p_calculate_acctd_flag => l_calculate_acctd_flag
162998  ,p_calculate_g_l_flag => l_calculate_g_l_flag
162999  ,p_actual_flag => l_actual_flag
163000  ,p_balance_type_code => l_balance_type_code
163001  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163002  
163003  , p_source_1 => l_array_source_1(Idx)
163004  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163005  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163006  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
163007  , p_source_16 => l_array_source_16(Idx)
163008  , p_source_17 => l_array_source_17(Idx)
163009  , p_source_17_meaning => l_array_source_17_meaning(Idx)
163010  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
163011  , p_source_25 => l_array_source_25(Idx)
163012  , p_source_28 => l_array_source_28(Idx)
163013  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163014  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
163015  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
163016  , p_source_58 => l_array_source_58(Idx)
163017  , p_source_60 => l_array_source_60(Idx)
163018  , p_source_62 => l_array_source_62(Idx)
163019  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163020  , p_source_69 => l_array_source_69(Idx)
163021  , p_source_70 => l_array_source_70(Idx)
163022  , p_source_71 => l_array_source_71(Idx)
163023  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163024  , p_source_73 => l_array_source_73(Idx)
163025  , p_source_74 => l_array_source_74(Idx)
163026  , p_source_75 => l_array_source_75(Idx)
163027  , p_source_76 => l_array_source_76(Idx)
163028  , p_source_77 => l_array_source_77(Idx)
163029  , p_source_78 => l_array_source_78(Idx)
163030  , p_source_82 => l_array_source_82(Idx)
163031  , p_source_83 => l_array_source_83(Idx)
163032  , p_source_84 => l_array_source_84(Idx)
163033  , p_source_85 => l_array_source_85(Idx)
163034  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163035  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163036  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163037  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163038  , p_source_89 => l_array_source_89(Idx)
163039  , p_source_90 => l_array_source_90(Idx)
163040  , p_source_91 => l_array_source_91(Idx)
163041  , p_source_92 => l_array_source_92(Idx)
163042  , p_source_93 => l_array_source_93(Idx)
163043  , p_source_94 => l_array_source_94(Idx)
163044  , p_source_95 => l_array_source_95(Idx)
163045  , p_source_96 => l_array_source_96(Idx)
163046  , p_source_97 => l_array_source_97(Idx)
163047  , p_source_98 => l_array_source_98(Idx)
163048  , p_source_99 => l_array_source_99(Idx)
163049  , p_source_100 => l_array_source_100(Idx)
163050  );
163051 If(l_balance_type_code = 'A') THEN
163052   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163053 END IF;
163054 
163055 --
163056 
163057 
163058 --
163059 AcctLineType_66 (
163060  p_application_id  => p_application_id
163061  ,p_event_id     => l_event_id
163062  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163063  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163064  ,p_actual_flag => l_actual_flag
163065  ,p_balance_type_code => l_balance_type_code
163066  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163067  
163068  , p_source_1 => l_array_source_1(Idx)
163069  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163073  , p_source_17 => l_array_source_17(Idx)
163070  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163071  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
163072  , p_source_16 => l_array_source_16(Idx)
163074  , p_source_17_meaning => l_array_source_17_meaning(Idx)
163075  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
163076  , p_source_25 => l_array_source_25(Idx)
163077  , p_source_28 => l_array_source_28(Idx)
163078  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163079  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
163080  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
163081  , p_source_54 => l_array_source_54(Idx)
163082  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163083  , p_source_58 => l_array_source_58(Idx)
163084  , p_source_60 => l_array_source_60(Idx)
163085  , p_source_62 => l_array_source_62(Idx)
163086  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163087  , p_source_69 => l_array_source_69(Idx)
163088  , p_source_70 => l_array_source_70(Idx)
163089  , p_source_71 => l_array_source_71(Idx)
163090  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163091  , p_source_73 => l_array_source_73(Idx)
163092  , p_source_74 => l_array_source_74(Idx)
163093  , p_source_75 => l_array_source_75(Idx)
163094  , p_source_76 => l_array_source_76(Idx)
163095  , p_source_77 => l_array_source_77(Idx)
163096  , p_source_78 => l_array_source_78(Idx)
163097  , p_source_82 => l_array_source_82(Idx)
163098  , p_source_83 => l_array_source_83(Idx)
163099  , p_source_84 => l_array_source_84(Idx)
163100  , p_source_85 => l_array_source_85(Idx)
163101  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163102  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163103  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163104  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163105  , p_source_89 => l_array_source_89(Idx)
163106  , p_source_90 => l_array_source_90(Idx)
163107  , p_source_91 => l_array_source_91(Idx)
163108  , p_source_92 => l_array_source_92(Idx)
163109  , p_source_93 => l_array_source_93(Idx)
163110  , p_source_94 => l_array_source_94(Idx)
163111  , p_source_95 => l_array_source_95(Idx)
163112  , p_source_96 => l_array_source_96(Idx)
163113  , p_source_97 => l_array_source_97(Idx)
163114  , p_source_98 => l_array_source_98(Idx)
163115  , p_source_99 => l_array_source_99(Idx)
163116  , p_source_100 => l_array_source_100(Idx)
163117  );
163118 If(l_balance_type_code = 'A') THEN
163119   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163120 END IF;
163121 
163122 --
163123 
163124 
163125 --
163126 AcctLineType_118 (
163127  p_application_id  => p_application_id
163128  ,p_event_id     => l_event_id
163129  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163130  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163131  ,p_actual_flag => l_actual_flag
163132  ,p_balance_type_code => l_balance_type_code
163133  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163134  
163135  , p_source_1 => l_array_source_1(Idx)
163136  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163137  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163138  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
163139  , p_source_16 => l_array_source_16(Idx)
163140  , p_source_17 => l_array_source_17(Idx)
163141  , p_source_17_meaning => l_array_source_17_meaning(Idx)
163142  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
163143  , p_source_25 => l_array_source_25(Idx)
163144  , p_source_28 => l_array_source_28(Idx)
163145  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163146  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
163147  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
163148  , p_source_54 => l_array_source_54(Idx)
163149  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163150  , p_source_58 => l_array_source_58(Idx)
163151  , p_source_60 => l_array_source_60(Idx)
163152  , p_source_62 => l_array_source_62(Idx)
163153  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163154  , p_source_69 => l_array_source_69(Idx)
163155  , p_source_70 => l_array_source_70(Idx)
163156  , p_source_71 => l_array_source_71(Idx)
163157  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163158  , p_source_73 => l_array_source_73(Idx)
163159  , p_source_74 => l_array_source_74(Idx)
163160  , p_source_75 => l_array_source_75(Idx)
163161  , p_source_76 => l_array_source_76(Idx)
163162  , p_source_77 => l_array_source_77(Idx)
163163  , p_source_78 => l_array_source_78(Idx)
163164  , p_source_82 => l_array_source_82(Idx)
163165  , p_source_83 => l_array_source_83(Idx)
163166  , p_source_84 => l_array_source_84(Idx)
163167  , p_source_85 => l_array_source_85(Idx)
163168  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163169  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163170  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163171  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163172  , p_source_89 => l_array_source_89(Idx)
163173  , p_source_90 => l_array_source_90(Idx)
163174  , p_source_91 => l_array_source_91(Idx)
163175  , p_source_92 => l_array_source_92(Idx)
163176  , p_source_93 => l_array_source_93(Idx)
163177  , p_source_94 => l_array_source_94(Idx)
163178  , p_source_95 => l_array_source_95(Idx)
163179  , p_source_96 => l_array_source_96(Idx)
163180  , p_source_97 => l_array_source_97(Idx)
163181  , p_source_98 => l_array_source_98(Idx)
163182  , p_source_99 => l_array_source_99(Idx)
163183  , p_source_100 => l_array_source_100(Idx)
163184  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163185  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163189   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163186  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163187  );
163188 If(l_balance_type_code = 'A') THEN
163190 END IF;
163191 
163192 --
163193 
163194 
163195 --
163196 AcctLineType_127 (
163197  p_application_id  => p_application_id
163198  ,p_event_id     => l_event_id
163199  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163200  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163201  ,p_actual_flag => l_actual_flag
163202  ,p_balance_type_code => l_balance_type_code
163203  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163204  
163205  , p_source_1 => l_array_source_1(Idx)
163206  , p_source_16 => l_array_source_16(Idx)
163207  , p_source_25 => l_array_source_25(Idx)
163208  , p_source_28 => l_array_source_28(Idx)
163209  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163210  , p_source_58 => l_array_source_58(Idx)
163211  , p_source_60 => l_array_source_60(Idx)
163212  , p_source_62 => l_array_source_62(Idx)
163213  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163214  , p_source_69 => l_array_source_69(Idx)
163215  , p_source_70 => l_array_source_70(Idx)
163216  , p_source_71 => l_array_source_71(Idx)
163217  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163218  , p_source_73 => l_array_source_73(Idx)
163219  , p_source_74 => l_array_source_74(Idx)
163220  , p_source_75 => l_array_source_75(Idx)
163221  , p_source_76 => l_array_source_76(Idx)
163222  , p_source_77 => l_array_source_77(Idx)
163223  , p_source_78 => l_array_source_78(Idx)
163224  , p_source_82 => l_array_source_82(Idx)
163225  , p_source_83 => l_array_source_83(Idx)
163226  , p_source_84 => l_array_source_84(Idx)
163227  , p_source_85 => l_array_source_85(Idx)
163228  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163229  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163230  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163231  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163232  , p_source_89 => l_array_source_89(Idx)
163233  , p_source_90 => l_array_source_90(Idx)
163234  , p_source_91 => l_array_source_91(Idx)
163235  , p_source_92 => l_array_source_92(Idx)
163236  , p_source_93 => l_array_source_93(Idx)
163237  , p_source_94 => l_array_source_94(Idx)
163238  , p_source_95 => l_array_source_95(Idx)
163239  , p_source_96 => l_array_source_96(Idx)
163240  , p_source_97 => l_array_source_97(Idx)
163241  , p_source_98 => l_array_source_98(Idx)
163242  , p_source_99 => l_array_source_99(Idx)
163243  , p_source_100 => l_array_source_100(Idx)
163244  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163245  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163246  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163247  );
163248 If(l_balance_type_code = 'A') THEN
163249   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163250 END IF;
163251 
163252 --
163253 
163254 
163255 --
163256 AcctLineType_149 (
163257  p_application_id  => p_application_id
163258  ,p_event_id     => l_event_id
163259  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163260  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163261  ,p_actual_flag => l_actual_flag
163262  ,p_balance_type_code => l_balance_type_code
163263  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163264  
163265  , p_source_1 => l_array_source_1(Idx)
163266  , p_source_16 => l_array_source_16(Idx)
163267  , p_source_25 => l_array_source_25(Idx)
163268  , p_source_28 => l_array_source_28(Idx)
163269  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163270  , p_source_54 => l_array_source_54(Idx)
163271  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163272  , p_source_58 => l_array_source_58(Idx)
163273  , p_source_60 => l_array_source_60(Idx)
163274  , p_source_62 => l_array_source_62(Idx)
163275  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163276  , p_source_69 => l_array_source_69(Idx)
163277  , p_source_70 => l_array_source_70(Idx)
163278  , p_source_71 => l_array_source_71(Idx)
163279  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163280  , p_source_73 => l_array_source_73(Idx)
163281  , p_source_74 => l_array_source_74(Idx)
163282  , p_source_75 => l_array_source_75(Idx)
163283  , p_source_76 => l_array_source_76(Idx)
163284  , p_source_77 => l_array_source_77(Idx)
163285  , p_source_78 => l_array_source_78(Idx)
163286  , p_source_82 => l_array_source_82(Idx)
163287  , p_source_83 => l_array_source_83(Idx)
163288  , p_source_84 => l_array_source_84(Idx)
163289  , p_source_85 => l_array_source_85(Idx)
163290  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163291  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163292  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163293  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163294  , p_source_89 => l_array_source_89(Idx)
163295  , p_source_90 => l_array_source_90(Idx)
163296  , p_source_91 => l_array_source_91(Idx)
163297  , p_source_92 => l_array_source_92(Idx)
163298  , p_source_93 => l_array_source_93(Idx)
163299  , p_source_94 => l_array_source_94(Idx)
163300  , p_source_95 => l_array_source_95(Idx)
163301  , p_source_96 => l_array_source_96(Idx)
163302  , p_source_97 => l_array_source_97(Idx)
163303  , p_source_98 => l_array_source_98(Idx)
163304  , p_source_99 => l_array_source_99(Idx)
163305  , p_source_100 => l_array_source_100(Idx)
163306  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163307  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163308  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163309  );
163310 If(l_balance_type_code = 'A') THEN
163311   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163312 END IF;
163313 
163314 --
163315 
163316 
163317 --
163318 AcctLineType_153 (
163322  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163319  p_application_id  => p_application_id
163320  ,p_event_id     => l_event_id
163321  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163323  ,p_actual_flag => l_actual_flag
163324  ,p_balance_type_code => l_balance_type_code
163325  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163326  
163327  , p_source_1 => l_array_source_1(Idx)
163328  , p_source_16 => l_array_source_16(Idx)
163329  , p_source_25 => l_array_source_25(Idx)
163330  , p_source_28 => l_array_source_28(Idx)
163331  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163332  , p_source_54 => l_array_source_54(Idx)
163333  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163334  , p_source_58 => l_array_source_58(Idx)
163335  , p_source_60 => l_array_source_60(Idx)
163336  , p_source_62 => l_array_source_62(Idx)
163337  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163338  , p_source_69 => l_array_source_69(Idx)
163339  , p_source_70 => l_array_source_70(Idx)
163340  , p_source_71 => l_array_source_71(Idx)
163341  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163342  , p_source_73 => l_array_source_73(Idx)
163343  , p_source_74 => l_array_source_74(Idx)
163344  , p_source_75 => l_array_source_75(Idx)
163345  , p_source_76 => l_array_source_76(Idx)
163346  , p_source_77 => l_array_source_77(Idx)
163347  , p_source_78 => l_array_source_78(Idx)
163348  , p_source_82 => l_array_source_82(Idx)
163349  , p_source_83 => l_array_source_83(Idx)
163350  , p_source_84 => l_array_source_84(Idx)
163351  , p_source_85 => l_array_source_85(Idx)
163352  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163353  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163354  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163355  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163356  , p_source_89 => l_array_source_89(Idx)
163357  , p_source_90 => l_array_source_90(Idx)
163358  , p_source_91 => l_array_source_91(Idx)
163359  , p_source_92 => l_array_source_92(Idx)
163360  , p_source_93 => l_array_source_93(Idx)
163361  , p_source_94 => l_array_source_94(Idx)
163362  , p_source_95 => l_array_source_95(Idx)
163363  , p_source_96 => l_array_source_96(Idx)
163364  , p_source_97 => l_array_source_97(Idx)
163365  , p_source_98 => l_array_source_98(Idx)
163366  , p_source_99 => l_array_source_99(Idx)
163367  , p_source_100 => l_array_source_100(Idx)
163368  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163369  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163370  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163371  );
163372 If(l_balance_type_code = 'A') THEN
163373   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163374 END IF;
163375 
163376 --
163377 
163378 
163379 --
163380 AcctLineType_163 (
163381  p_application_id  => p_application_id
163382  ,p_event_id     => l_event_id
163383  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163384  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163385  ,p_actual_flag => l_actual_flag
163386  ,p_balance_type_code => l_balance_type_code
163387  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163388  
163389  , p_source_1 => l_array_source_1(Idx)
163390  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163391  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163392  , p_source_16 => l_array_source_16(Idx)
163393  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
163394  , p_source_58 => l_array_source_58(Idx)
163395  , p_source_60 => l_array_source_60(Idx)
163396  , p_source_62 => l_array_source_62(Idx)
163397  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163398  , p_source_69 => l_array_source_69(Idx)
163399  , p_source_70 => l_array_source_70(Idx)
163400  , p_source_71 => l_array_source_71(Idx)
163401  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163402  , p_source_73 => l_array_source_73(Idx)
163403  , p_source_74 => l_array_source_74(Idx)
163404  , p_source_75 => l_array_source_75(Idx)
163405  , p_source_76 => l_array_source_76(Idx)
163406  , p_source_77 => l_array_source_77(Idx)
163407  , p_source_78 => l_array_source_78(Idx)
163408  , p_source_82 => l_array_source_82(Idx)
163409  , p_source_83 => l_array_source_83(Idx)
163410  , p_source_84 => l_array_source_84(Idx)
163411  , p_source_85 => l_array_source_85(Idx)
163412  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163413  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163414  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163415  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163416  , p_source_89 => l_array_source_89(Idx)
163417  , p_source_90 => l_array_source_90(Idx)
163418  , p_source_91 => l_array_source_91(Idx)
163419  , p_source_92 => l_array_source_92(Idx)
163420  , p_source_93 => l_array_source_93(Idx)
163421  , p_source_94 => l_array_source_94(Idx)
163422  , p_source_95 => l_array_source_95(Idx)
163423  , p_source_96 => l_array_source_96(Idx)
163424  , p_source_97 => l_array_source_97(Idx)
163425  , p_source_98 => l_array_source_98(Idx)
163426  , p_source_99 => l_array_source_99(Idx)
163427  , p_source_100 => l_array_source_100(Idx)
163428  , p_source_145 => l_array_source_145(Idx)
163429  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163430  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163431  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163432  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163433  , p_source_167 => g_array_event(l_event_id).array_value_char('source_167')
163434  , p_source_167_meaning => g_array_event(l_event_id).array_value_char('source_167_meaning')
163435  );
163436 If(l_balance_type_code = 'A') THEN
163437   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163438 END IF;
163439 
163440 --
163441 
163445  p_application_id  => p_application_id
163442 
163443 --
163444 AcctLineType_164 (
163446  ,p_event_id     => l_event_id
163447  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163448  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163449  ,p_actual_flag => l_actual_flag
163450  ,p_balance_type_code => l_balance_type_code
163451  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163452  
163453  , p_source_1 => l_array_source_1(Idx)
163454  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163455  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163456  , p_source_16 => l_array_source_16(Idx)
163457  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
163458  , p_source_58 => l_array_source_58(Idx)
163459  , p_source_60 => l_array_source_60(Idx)
163460  , p_source_62 => l_array_source_62(Idx)
163461  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163462  , p_source_69 => l_array_source_69(Idx)
163463  , p_source_70 => l_array_source_70(Idx)
163464  , p_source_71 => l_array_source_71(Idx)
163465  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163466  , p_source_73 => l_array_source_73(Idx)
163467  , p_source_74 => l_array_source_74(Idx)
163468  , p_source_75 => l_array_source_75(Idx)
163469  , p_source_76 => l_array_source_76(Idx)
163470  , p_source_77 => l_array_source_77(Idx)
163471  , p_source_78 => l_array_source_78(Idx)
163472  , p_source_82 => l_array_source_82(Idx)
163473  , p_source_83 => l_array_source_83(Idx)
163474  , p_source_84 => l_array_source_84(Idx)
163475  , p_source_85 => l_array_source_85(Idx)
163476  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163477  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163478  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163479  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163480  , p_source_89 => l_array_source_89(Idx)
163481  , p_source_90 => l_array_source_90(Idx)
163482  , p_source_91 => l_array_source_91(Idx)
163483  , p_source_92 => l_array_source_92(Idx)
163484  , p_source_93 => l_array_source_93(Idx)
163485  , p_source_94 => l_array_source_94(Idx)
163486  , p_source_95 => l_array_source_95(Idx)
163487  , p_source_96 => l_array_source_96(Idx)
163488  , p_source_97 => l_array_source_97(Idx)
163489  , p_source_98 => l_array_source_98(Idx)
163490  , p_source_99 => l_array_source_99(Idx)
163491  , p_source_100 => l_array_source_100(Idx)
163492  , p_source_145 => l_array_source_145(Idx)
163493  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163494  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163495  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163496  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163497  , p_source_167 => g_array_event(l_event_id).array_value_char('source_167')
163498  , p_source_167_meaning => g_array_event(l_event_id).array_value_char('source_167_meaning')
163499  );
163500 If(l_balance_type_code = 'A') THEN
163501   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163502 END IF;
163503 
163504 --
163505 
163506 
163507 --
163508 AcctLineType_165 (
163509  p_application_id  => p_application_id
163510  ,p_event_id     => l_event_id
163511  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163512  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163513  ,p_actual_flag => l_actual_flag
163514  ,p_balance_type_code => l_balance_type_code
163515  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163516  
163517  , p_source_1 => l_array_source_1(Idx)
163518  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163519  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163520  , p_source_16 => l_array_source_16(Idx)
163521  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
163522  , p_source_58 => l_array_source_58(Idx)
163523  , p_source_60 => l_array_source_60(Idx)
163524  , p_source_62 => l_array_source_62(Idx)
163525  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163526  , p_source_69 => l_array_source_69(Idx)
163527  , p_source_70 => l_array_source_70(Idx)
163528  , p_source_71 => l_array_source_71(Idx)
163529  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163530  , p_source_73 => l_array_source_73(Idx)
163531  , p_source_74 => l_array_source_74(Idx)
163532  , p_source_75 => l_array_source_75(Idx)
163533  , p_source_76 => l_array_source_76(Idx)
163534  , p_source_77 => l_array_source_77(Idx)
163535  , p_source_78 => l_array_source_78(Idx)
163536  , p_source_82 => l_array_source_82(Idx)
163537  , p_source_83 => l_array_source_83(Idx)
163538  , p_source_84 => l_array_source_84(Idx)
163539  , p_source_85 => l_array_source_85(Idx)
163540  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163541  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163542  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163543  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163544  , p_source_89 => l_array_source_89(Idx)
163545  , p_source_90 => l_array_source_90(Idx)
163546  , p_source_91 => l_array_source_91(Idx)
163547  , p_source_92 => l_array_source_92(Idx)
163548  , p_source_93 => l_array_source_93(Idx)
163549  , p_source_94 => l_array_source_94(Idx)
163550  , p_source_95 => l_array_source_95(Idx)
163551  , p_source_96 => l_array_source_96(Idx)
163552  , p_source_97 => l_array_source_97(Idx)
163553  , p_source_98 => l_array_source_98(Idx)
163554  , p_source_99 => l_array_source_99(Idx)
163555  , p_source_100 => l_array_source_100(Idx)
163556  , p_source_145 => l_array_source_145(Idx)
163557  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163558  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163559  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163560  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163564 If(l_balance_type_code = 'A') THEN
163561  , p_source_167 => g_array_event(l_event_id).array_value_char('source_167')
163562  , p_source_167_meaning => g_array_event(l_event_id).array_value_char('source_167_meaning')
163563  );
163565   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163566 END IF;
163567 
163568 --
163569 
163570 
163571 --
163572 AcctLineType_182 (
163573  p_application_id  => p_application_id
163574  ,p_event_id     => l_event_id
163575  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163576  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163577  ,p_actual_flag => l_actual_flag
163578  ,p_balance_type_code => l_balance_type_code
163579  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163580  
163581  , p_source_1 => l_array_source_1(Idx)
163582  , p_source_16 => l_array_source_16(Idx)
163583  , p_source_25 => l_array_source_25(Idx)
163584  , p_source_28 => l_array_source_28(Idx)
163585  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163586  , p_source_58 => l_array_source_58(Idx)
163587  , p_source_60 => l_array_source_60(Idx)
163588  , p_source_62 => l_array_source_62(Idx)
163589  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163590  , p_source_69 => l_array_source_69(Idx)
163591  , p_source_70 => l_array_source_70(Idx)
163592  , p_source_71 => l_array_source_71(Idx)
163593  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163594  , p_source_73 => l_array_source_73(Idx)
163595  , p_source_74 => l_array_source_74(Idx)
163596  , p_source_75 => l_array_source_75(Idx)
163597  , p_source_76 => l_array_source_76(Idx)
163598  , p_source_77 => l_array_source_77(Idx)
163599  , p_source_78 => l_array_source_78(Idx)
163600  , p_source_82 => l_array_source_82(Idx)
163601  , p_source_83 => l_array_source_83(Idx)
163602  , p_source_84 => l_array_source_84(Idx)
163603  , p_source_85 => l_array_source_85(Idx)
163604  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163605  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163606  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163607  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163608  , p_source_89 => l_array_source_89(Idx)
163609  , p_source_90 => l_array_source_90(Idx)
163610  , p_source_91 => l_array_source_91(Idx)
163611  , p_source_92 => l_array_source_92(Idx)
163612  , p_source_93 => l_array_source_93(Idx)
163613  , p_source_94 => l_array_source_94(Idx)
163614  , p_source_95 => l_array_source_95(Idx)
163615  , p_source_96 => l_array_source_96(Idx)
163616  , p_source_97 => l_array_source_97(Idx)
163617  , p_source_98 => l_array_source_98(Idx)
163618  , p_source_99 => l_array_source_99(Idx)
163619  , p_source_100 => l_array_source_100(Idx)
163620  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163621  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163622  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163623  );
163624 If(l_balance_type_code = 'A') THEN
163625   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163626 END IF;
163627 
163628 --
163629 
163630 
163631 --
163632 AcctLineType_186 (
163633  p_application_id  => p_application_id
163634  ,p_event_id     => l_event_id
163635  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163636  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163637  ,p_actual_flag => l_actual_flag
163638  ,p_balance_type_code => l_balance_type_code
163639  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163640  
163641  , p_source_1 => l_array_source_1(Idx)
163642  , p_source_16 => l_array_source_16(Idx)
163643  , p_source_25 => l_array_source_25(Idx)
163644  , p_source_28 => l_array_source_28(Idx)
163645  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163646  , p_source_54 => l_array_source_54(Idx)
163647  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163648  , p_source_58 => l_array_source_58(Idx)
163649  , p_source_60 => l_array_source_60(Idx)
163650  , p_source_62 => l_array_source_62(Idx)
163651  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163652  , p_source_69 => l_array_source_69(Idx)
163653  , p_source_70 => l_array_source_70(Idx)
163654  , p_source_71 => l_array_source_71(Idx)
163655  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163656  , p_source_73 => l_array_source_73(Idx)
163657  , p_source_74 => l_array_source_74(Idx)
163658  , p_source_75 => l_array_source_75(Idx)
163659  , p_source_76 => l_array_source_76(Idx)
163660  , p_source_77 => l_array_source_77(Idx)
163661  , p_source_78 => l_array_source_78(Idx)
163662  , p_source_79 => l_array_source_79(Idx)
163663  , p_source_80 => l_array_source_80(Idx)
163664  , p_source_81 => l_array_source_81(Idx)
163665  , p_source_82 => l_array_source_82(Idx)
163666  , p_source_83 => l_array_source_83(Idx)
163667  , p_source_84 => l_array_source_84(Idx)
163668  , p_source_85 => l_array_source_85(Idx)
163669  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163670  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163671  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163672  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163673  , p_source_89 => l_array_source_89(Idx)
163674  , p_source_90 => l_array_source_90(Idx)
163675  , p_source_91 => l_array_source_91(Idx)
163676  , p_source_92 => l_array_source_92(Idx)
163677  , p_source_93 => l_array_source_93(Idx)
163678  , p_source_94 => l_array_source_94(Idx)
163679  , p_source_95 => l_array_source_95(Idx)
163680  , p_source_96 => l_array_source_96(Idx)
163681  , p_source_97 => l_array_source_97(Idx)
163682  , p_source_98 => l_array_source_98(Idx)
163683  , p_source_99 => l_array_source_99(Idx)
163684  , p_source_100 => l_array_source_100(Idx)
163685  , p_source_145 => l_array_source_145(Idx)
163686  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163687  );
163688 If(l_balance_type_code = 'A') THEN
163689   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163693 
163690 END IF;
163691 
163692 --
163694 
163695 --
163696 AcctLineType_189 (
163697  p_application_id  => p_application_id
163698  ,p_event_id     => l_event_id
163699  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163700  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163701  ,p_actual_flag => l_actual_flag
163702  ,p_balance_type_code => l_balance_type_code
163703  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163704  
163705  , p_source_1 => l_array_source_1(Idx)
163706  , p_source_16 => l_array_source_16(Idx)
163707  , p_source_25 => l_array_source_25(Idx)
163708  , p_source_28 => l_array_source_28(Idx)
163709  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163710  , p_source_54 => l_array_source_54(Idx)
163711  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163712  , p_source_58 => l_array_source_58(Idx)
163713  , p_source_60 => l_array_source_60(Idx)
163714  , p_source_62 => l_array_source_62(Idx)
163715  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163716  , p_source_69 => l_array_source_69(Idx)
163717  , p_source_70 => l_array_source_70(Idx)
163718  , p_source_71 => l_array_source_71(Idx)
163719  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163720  , p_source_73 => l_array_source_73(Idx)
163721  , p_source_74 => l_array_source_74(Idx)
163722  , p_source_75 => l_array_source_75(Idx)
163723  , p_source_76 => l_array_source_76(Idx)
163724  , p_source_77 => l_array_source_77(Idx)
163725  , p_source_78 => l_array_source_78(Idx)
163726  , p_source_82 => l_array_source_82(Idx)
163727  , p_source_83 => l_array_source_83(Idx)
163728  , p_source_84 => l_array_source_84(Idx)
163729  , p_source_85 => l_array_source_85(Idx)
163730  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163731  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163732  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163733  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163734  , p_source_89 => l_array_source_89(Idx)
163735  , p_source_90 => l_array_source_90(Idx)
163736  , p_source_91 => l_array_source_91(Idx)
163737  , p_source_92 => l_array_source_92(Idx)
163738  , p_source_93 => l_array_source_93(Idx)
163739  , p_source_94 => l_array_source_94(Idx)
163740  , p_source_95 => l_array_source_95(Idx)
163741  , p_source_96 => l_array_source_96(Idx)
163742  , p_source_97 => l_array_source_97(Idx)
163743  , p_source_98 => l_array_source_98(Idx)
163744  , p_source_99 => l_array_source_99(Idx)
163745  , p_source_100 => l_array_source_100(Idx)
163746  , p_source_145 => l_array_source_145(Idx)
163747  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163748  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163749  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163750  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163751  );
163752 If(l_balance_type_code = 'A') THEN
163753   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163754 END IF;
163755 
163756 --
163757 
163758 
163759 --
163760 AcctLineType_198 (
163761  p_application_id  => p_application_id
163762  ,p_event_id     => l_event_id
163763  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163764  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163765  ,p_actual_flag => l_actual_flag
163766  ,p_balance_type_code => l_balance_type_code
163767  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163768  
163769  , p_source_1 => l_array_source_1(Idx)
163770  , p_source_16 => l_array_source_16(Idx)
163771  , p_source_25 => l_array_source_25(Idx)
163772  , p_source_28 => l_array_source_28(Idx)
163773  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163774  , p_source_58 => l_array_source_58(Idx)
163775  , p_source_60 => l_array_source_60(Idx)
163776  , p_source_62 => l_array_source_62(Idx)
163777  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163778  , p_source_69 => l_array_source_69(Idx)
163779  , p_source_70 => l_array_source_70(Idx)
163780  , p_source_71 => l_array_source_71(Idx)
163781  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163782  , p_source_73 => l_array_source_73(Idx)
163783  , p_source_74 => l_array_source_74(Idx)
163784  , p_source_75 => l_array_source_75(Idx)
163785  , p_source_76 => l_array_source_76(Idx)
163786  , p_source_77 => l_array_source_77(Idx)
163787  , p_source_78 => l_array_source_78(Idx)
163788  , p_source_82 => l_array_source_82(Idx)
163789  , p_source_83 => l_array_source_83(Idx)
163790  , p_source_84 => l_array_source_84(Idx)
163791  , p_source_85 => l_array_source_85(Idx)
163792  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163793  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163794  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163795  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163796  , p_source_89 => l_array_source_89(Idx)
163797  , p_source_90 => l_array_source_90(Idx)
163798  , p_source_91 => l_array_source_91(Idx)
163799  , p_source_92 => l_array_source_92(Idx)
163800  , p_source_93 => l_array_source_93(Idx)
163801  , p_source_94 => l_array_source_94(Idx)
163802  , p_source_95 => l_array_source_95(Idx)
163803  , p_source_96 => l_array_source_96(Idx)
163804  , p_source_97 => l_array_source_97(Idx)
163805  , p_source_98 => l_array_source_98(Idx)
163806  , p_source_99 => l_array_source_99(Idx)
163807  , p_source_100 => l_array_source_100(Idx)
163808  , p_source_145 => l_array_source_145(Idx)
163809  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163810  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163811  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163812  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163813  );
163814 If(l_balance_type_code = 'A') THEN
163815   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163816 END IF;
163817 
163818 --
163819 
163820 
163824  ,p_event_id     => l_event_id
163821 --
163822 AcctLineType_200 (
163823  p_application_id  => p_application_id
163825  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163826  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163827  ,p_actual_flag => l_actual_flag
163828  ,p_balance_type_code => l_balance_type_code
163829  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163830  
163831  , p_source_1 => l_array_source_1(Idx)
163832  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
163833  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
163834  , p_source_16 => l_array_source_16(Idx)
163835  , p_source_25 => l_array_source_25(Idx)
163836  , p_source_28 => l_array_source_28(Idx)
163837  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163838  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
163839  , p_source_38 => l_array_source_38(Idx)
163840  , p_source_58 => l_array_source_58(Idx)
163841  , p_source_60 => l_array_source_60(Idx)
163842  , p_source_62 => l_array_source_62(Idx)
163843  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163844  , p_source_69 => l_array_source_69(Idx)
163845  , p_source_70 => l_array_source_70(Idx)
163846  , p_source_71 => l_array_source_71(Idx)
163847  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163848  , p_source_73 => l_array_source_73(Idx)
163849  , p_source_74 => l_array_source_74(Idx)
163850  , p_source_75 => l_array_source_75(Idx)
163851  , p_source_76 => l_array_source_76(Idx)
163852  , p_source_77 => l_array_source_77(Idx)
163853  , p_source_78 => l_array_source_78(Idx)
163854  , p_source_82 => l_array_source_82(Idx)
163855  , p_source_83 => l_array_source_83(Idx)
163856  , p_source_84 => l_array_source_84(Idx)
163857  , p_source_85 => l_array_source_85(Idx)
163858  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163859  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163860  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163861  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163862  , p_source_89 => l_array_source_89(Idx)
163863  , p_source_90 => l_array_source_90(Idx)
163864  , p_source_91 => l_array_source_91(Idx)
163865  , p_source_92 => l_array_source_92(Idx)
163866  , p_source_93 => l_array_source_93(Idx)
163867  , p_source_94 => l_array_source_94(Idx)
163868  , p_source_95 => l_array_source_95(Idx)
163869  , p_source_96 => l_array_source_96(Idx)
163870  , p_source_97 => l_array_source_97(Idx)
163871  , p_source_98 => l_array_source_98(Idx)
163872  , p_source_99 => l_array_source_99(Idx)
163873  , p_source_100 => l_array_source_100(Idx)
163874  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163875  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163876  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163877  , p_source_167 => g_array_event(l_event_id).array_value_char('source_167')
163878  , p_source_167_meaning => g_array_event(l_event_id).array_value_char('source_167_meaning')
163879  );
163880 If(l_balance_type_code = 'A') THEN
163881   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163882 END IF;
163883 
163884 --
163885 
163886 
163887 --
163888 AcctLineType_203 (
163889  p_application_id  => p_application_id
163890  ,p_event_id     => l_event_id
163891  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163892  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163893  ,p_actual_flag => l_actual_flag
163894  ,p_balance_type_code => l_balance_type_code
163895  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163896  
163897  , p_source_1 => l_array_source_1(Idx)
163898  , p_source_16 => l_array_source_16(Idx)
163899  , p_source_28 => l_array_source_28(Idx)
163900  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163901  , p_source_58 => l_array_source_58(Idx)
163902  , p_source_60 => l_array_source_60(Idx)
163903  , p_source_62 => l_array_source_62(Idx)
163904  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163905  , p_source_69 => l_array_source_69(Idx)
163906  , p_source_70 => l_array_source_70(Idx)
163907  , p_source_71 => l_array_source_71(Idx)
163908  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163909  , p_source_73 => l_array_source_73(Idx)
163910  , p_source_74 => l_array_source_74(Idx)
163911  , p_source_75 => l_array_source_75(Idx)
163912  , p_source_76 => l_array_source_76(Idx)
163913  , p_source_77 => l_array_source_77(Idx)
163914  , p_source_78 => l_array_source_78(Idx)
163915  , p_source_82 => l_array_source_82(Idx)
163916  , p_source_83 => l_array_source_83(Idx)
163917  , p_source_84 => l_array_source_84(Idx)
163918  , p_source_85 => l_array_source_85(Idx)
163919  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163920  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163921  , p_source_89 => l_array_source_89(Idx)
163922  , p_source_90 => l_array_source_90(Idx)
163923  , p_source_91 => l_array_source_91(Idx)
163924  , p_source_92 => l_array_source_92(Idx)
163925  , p_source_93 => l_array_source_93(Idx)
163926  , p_source_94 => l_array_source_94(Idx)
163927  , p_source_95 => l_array_source_95(Idx)
163928  , p_source_96 => l_array_source_96(Idx)
163929  , p_source_97 => l_array_source_97(Idx)
163930  , p_source_98 => l_array_source_98(Idx)
163931  , p_source_167 => g_array_event(l_event_id).array_value_char('source_167')
163932  , p_source_167_meaning => g_array_event(l_event_id).array_value_char('source_167_meaning')
163933  , p_source_168 => l_array_source_168(Idx)
163934  , p_source_169 => l_array_source_169(Idx)
163935  );
163936 If(l_balance_type_code = 'A') THEN
163937   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163938 END IF;
163939 
163940 --
163941 
163942 
163943 --
163944 AcctLineType_207 (
163945  p_application_id  => p_application_id
163946  ,p_event_id     => l_event_id
163947  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163951  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163948  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163949  ,p_actual_flag => l_actual_flag
163950  ,p_balance_type_code => l_balance_type_code
163952  
163953  , p_source_1 => l_array_source_1(Idx)
163954  , p_source_16 => l_array_source_16(Idx)
163955  , p_source_28 => l_array_source_28(Idx)
163956  , p_source_28_meaning => l_array_source_28_meaning(Idx)
163957  , p_source_46 => l_array_source_46(Idx)
163958  , p_source_54 => l_array_source_54(Idx)
163959  , p_source_54_meaning => l_array_source_54_meaning(Idx)
163960  , p_source_58 => l_array_source_58(Idx)
163961  , p_source_60 => l_array_source_60(Idx)
163962  , p_source_62 => l_array_source_62(Idx)
163963  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
163964  , p_source_69 => l_array_source_69(Idx)
163965  , p_source_70 => l_array_source_70(Idx)
163966  , p_source_71 => l_array_source_71(Idx)
163967  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
163968  , p_source_73 => l_array_source_73(Idx)
163969  , p_source_74 => l_array_source_74(Idx)
163970  , p_source_75 => l_array_source_75(Idx)
163971  , p_source_76 => l_array_source_76(Idx)
163972  , p_source_77 => l_array_source_77(Idx)
163973  , p_source_78 => l_array_source_78(Idx)
163974  , p_source_82 => l_array_source_82(Idx)
163975  , p_source_83 => l_array_source_83(Idx)
163976  , p_source_84 => l_array_source_84(Idx)
163977  , p_source_85 => l_array_source_85(Idx)
163978  , p_source_85_meaning => l_array_source_85_meaning(Idx)
163979  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
163980  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
163981  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
163982  , p_source_89 => l_array_source_89(Idx)
163983  , p_source_90 => l_array_source_90(Idx)
163984  , p_source_91 => l_array_source_91(Idx)
163985  , p_source_92 => l_array_source_92(Idx)
163986  , p_source_93 => l_array_source_93(Idx)
163987  , p_source_94 => l_array_source_94(Idx)
163988  , p_source_95 => l_array_source_95(Idx)
163989  , p_source_96 => l_array_source_96(Idx)
163990  , p_source_97 => l_array_source_97(Idx)
163991  , p_source_98 => l_array_source_98(Idx)
163992  , p_source_99 => l_array_source_99(Idx)
163993  , p_source_100 => l_array_source_100(Idx)
163994  , p_source_145 => l_array_source_145(Idx)
163995  , p_source_145_meaning => l_array_source_145_meaning(Idx)
163996  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
163997  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
163998  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
163999  );
164000 If(l_balance_type_code = 'A') THEN
164001   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164002 END IF;
164003 
164004 --
164005 
164006 
164007 --
164008 AcctLineType_211 (
164009  p_application_id  => p_application_id
164010  ,p_event_id     => l_event_id
164011  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164012  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164013  ,p_actual_flag => l_actual_flag
164014  ,p_balance_type_code => l_balance_type_code
164015  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164016  
164017  , p_source_1 => l_array_source_1(Idx)
164018  , p_source_16 => l_array_source_16(Idx)
164019  , p_source_28 => l_array_source_28(Idx)
164020  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164021  , p_source_46 => l_array_source_46(Idx)
164022  , p_source_58 => l_array_source_58(Idx)
164023  , p_source_60 => l_array_source_60(Idx)
164024  , p_source_62 => l_array_source_62(Idx)
164025  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164026  , p_source_69 => l_array_source_69(Idx)
164027  , p_source_70 => l_array_source_70(Idx)
164028  , p_source_71 => l_array_source_71(Idx)
164029  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164030  , p_source_73 => l_array_source_73(Idx)
164031  , p_source_74 => l_array_source_74(Idx)
164032  , p_source_75 => l_array_source_75(Idx)
164033  , p_source_76 => l_array_source_76(Idx)
164034  , p_source_77 => l_array_source_77(Idx)
164035  , p_source_78 => l_array_source_78(Idx)
164036  , p_source_82 => l_array_source_82(Idx)
164037  , p_source_83 => l_array_source_83(Idx)
164038  , p_source_84 => l_array_source_84(Idx)
164039  , p_source_85 => l_array_source_85(Idx)
164040  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164041  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164042  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164043  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164044  , p_source_89 => l_array_source_89(Idx)
164045  , p_source_90 => l_array_source_90(Idx)
164046  , p_source_91 => l_array_source_91(Idx)
164047  , p_source_92 => l_array_source_92(Idx)
164048  , p_source_93 => l_array_source_93(Idx)
164049  , p_source_94 => l_array_source_94(Idx)
164050  , p_source_95 => l_array_source_95(Idx)
164051  , p_source_96 => l_array_source_96(Idx)
164052  , p_source_97 => l_array_source_97(Idx)
164053  , p_source_98 => l_array_source_98(Idx)
164054  , p_source_99 => l_array_source_99(Idx)
164055  , p_source_100 => l_array_source_100(Idx)
164056  , p_source_145 => l_array_source_145(Idx)
164057  , p_source_145_meaning => l_array_source_145_meaning(Idx)
164058  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
164059  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
164060  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
164061  );
164062 If(l_balance_type_code = 'A') THEN
164063   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164064 END IF;
164065 
164066 --
164067 
164068 
164069 --
164070 AcctLineType_214 (
164071  p_application_id  => p_application_id
164072  ,p_event_id     => l_event_id
164073  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164074  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164078  
164075  ,p_actual_flag => l_actual_flag
164076  ,p_balance_type_code => l_balance_type_code
164077  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164079  , p_source_1 => l_array_source_1(Idx)
164080  , p_source_16 => l_array_source_16(Idx)
164081  , p_source_28 => l_array_source_28(Idx)
164082  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164083  , p_source_47 => l_array_source_47(Idx)
164084  , p_source_58 => l_array_source_58(Idx)
164085  , p_source_60 => l_array_source_60(Idx)
164086  , p_source_62 => l_array_source_62(Idx)
164087  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164088  , p_source_69 => l_array_source_69(Idx)
164089  , p_source_70 => l_array_source_70(Idx)
164090  , p_source_71 => l_array_source_71(Idx)
164091  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164092  , p_source_73 => l_array_source_73(Idx)
164093  , p_source_74 => l_array_source_74(Idx)
164094  , p_source_75 => l_array_source_75(Idx)
164095  , p_source_76 => l_array_source_76(Idx)
164096  , p_source_77 => l_array_source_77(Idx)
164097  , p_source_78 => l_array_source_78(Idx)
164098  , p_source_82 => l_array_source_82(Idx)
164099  , p_source_83 => l_array_source_83(Idx)
164100  , p_source_84 => l_array_source_84(Idx)
164101  , p_source_85 => l_array_source_85(Idx)
164102  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164103  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164104  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164105  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164106  , p_source_89 => l_array_source_89(Idx)
164107  , p_source_90 => l_array_source_90(Idx)
164108  , p_source_91 => l_array_source_91(Idx)
164109  , p_source_92 => l_array_source_92(Idx)
164110  , p_source_93 => l_array_source_93(Idx)
164111  , p_source_94 => l_array_source_94(Idx)
164112  , p_source_95 => l_array_source_95(Idx)
164113  , p_source_96 => l_array_source_96(Idx)
164114  , p_source_97 => l_array_source_97(Idx)
164115  , p_source_98 => l_array_source_98(Idx)
164116  , p_source_99 => l_array_source_99(Idx)
164117  , p_source_100 => l_array_source_100(Idx)
164118  , p_source_145 => l_array_source_145(Idx)
164119  , p_source_145_meaning => l_array_source_145_meaning(Idx)
164120  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
164121  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
164122  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
164123  );
164124 If(l_balance_type_code = 'A') THEN
164125   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164126 END IF;
164127 
164128 --
164129 
164130 
164131 --
164132 AcctLineType_219 (
164133  p_application_id  => p_application_id
164134  ,p_event_id     => l_event_id
164135  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164136  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164137  ,p_actual_flag => l_actual_flag
164138  ,p_balance_type_code => l_balance_type_code
164139  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164140  
164141  , p_source_1 => l_array_source_1(Idx)
164142  , p_source_16 => l_array_source_16(Idx)
164143  , p_source_28 => l_array_source_28(Idx)
164144  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164145  , p_source_46 => l_array_source_46(Idx)
164146  , p_source_54 => l_array_source_54(Idx)
164147  , p_source_54_meaning => l_array_source_54_meaning(Idx)
164148  , p_source_58 => l_array_source_58(Idx)
164149  , p_source_60 => l_array_source_60(Idx)
164150  , p_source_62 => l_array_source_62(Idx)
164151  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164152  , p_source_69 => l_array_source_69(Idx)
164153  , p_source_70 => l_array_source_70(Idx)
164154  , p_source_71 => l_array_source_71(Idx)
164155  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164156  , p_source_73 => l_array_source_73(Idx)
164157  , p_source_74 => l_array_source_74(Idx)
164158  , p_source_75 => l_array_source_75(Idx)
164159  , p_source_76 => l_array_source_76(Idx)
164160  , p_source_77 => l_array_source_77(Idx)
164161  , p_source_78 => l_array_source_78(Idx)
164162  , p_source_79 => l_array_source_79(Idx)
164163  , p_source_80 => l_array_source_80(Idx)
164164  , p_source_81 => l_array_source_81(Idx)
164165  , p_source_82 => l_array_source_82(Idx)
164166  , p_source_83 => l_array_source_83(Idx)
164167  , p_source_84 => l_array_source_84(Idx)
164168  , p_source_85 => l_array_source_85(Idx)
164169  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164170  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164171  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164172  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164173  , p_source_89 => l_array_source_89(Idx)
164174  , p_source_90 => l_array_source_90(Idx)
164175  , p_source_91 => l_array_source_91(Idx)
164176  , p_source_92 => l_array_source_92(Idx)
164177  , p_source_93 => l_array_source_93(Idx)
164178  , p_source_94 => l_array_source_94(Idx)
164179  , p_source_95 => l_array_source_95(Idx)
164180  , p_source_96 => l_array_source_96(Idx)
164181  , p_source_97 => l_array_source_97(Idx)
164182  , p_source_98 => l_array_source_98(Idx)
164183  , p_source_99 => l_array_source_99(Idx)
164184  , p_source_100 => l_array_source_100(Idx)
164185  , p_source_145 => l_array_source_145(Idx)
164186  , p_source_145_meaning => l_array_source_145_meaning(Idx)
164187  );
164188 If(l_balance_type_code = 'A') THEN
164189   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164190 END IF;
164191 
164192 --
164193 
164194 
164195 --
164196 AcctLineType_223 (
164197  p_application_id  => p_application_id
164198  ,p_event_id     => l_event_id
164199  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164200  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164201  ,p_actual_flag => l_actual_flag
164202  ,p_balance_type_code => l_balance_type_code
164203  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164204  
164208  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
164205  , p_source_1 => l_array_source_1(Idx)
164206  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
164207  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
164209  , p_source_16 => l_array_source_16(Idx)
164210  , p_source_17 => l_array_source_17(Idx)
164211  , p_source_17_meaning => l_array_source_17_meaning(Idx)
164212  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
164213  , p_source_25 => l_array_source_25(Idx)
164214  , p_source_28 => l_array_source_28(Idx)
164215  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164216  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
164217  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
164218  , p_source_54 => l_array_source_54(Idx)
164219  , p_source_54_meaning => l_array_source_54_meaning(Idx)
164220  , p_source_58 => l_array_source_58(Idx)
164221  , p_source_60 => l_array_source_60(Idx)
164222  , p_source_62 => l_array_source_62(Idx)
164223  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164224  , p_source_69 => l_array_source_69(Idx)
164225  , p_source_70 => l_array_source_70(Idx)
164226  , p_source_71 => l_array_source_71(Idx)
164227  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164228  , p_source_73 => l_array_source_73(Idx)
164229  , p_source_74 => l_array_source_74(Idx)
164230  , p_source_75 => l_array_source_75(Idx)
164231  , p_source_76 => l_array_source_76(Idx)
164232  , p_source_77 => l_array_source_77(Idx)
164233  , p_source_78 => l_array_source_78(Idx)
164234  , p_source_82 => l_array_source_82(Idx)
164235  , p_source_83 => l_array_source_83(Idx)
164236  , p_source_84 => l_array_source_84(Idx)
164237  , p_source_85 => l_array_source_85(Idx)
164238  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164239  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164240  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164241  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164242  , p_source_89 => l_array_source_89(Idx)
164243  , p_source_90 => l_array_source_90(Idx)
164244  , p_source_91 => l_array_source_91(Idx)
164245  , p_source_92 => l_array_source_92(Idx)
164246  , p_source_93 => l_array_source_93(Idx)
164247  , p_source_94 => l_array_source_94(Idx)
164248  , p_source_95 => l_array_source_95(Idx)
164249  , p_source_96 => l_array_source_96(Idx)
164250  , p_source_97 => l_array_source_97(Idx)
164251  , p_source_98 => l_array_source_98(Idx)
164252  , p_source_99 => l_array_source_99(Idx)
164253  , p_source_100 => l_array_source_100(Idx)
164254  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
164255  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
164256  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
164257  );
164258 If(l_balance_type_code = 'A') THEN
164259   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164260 END IF;
164261 
164262 --
164263 
164264 
164265 --
164266 AcctLineType_227 (
164267  p_application_id  => p_application_id
164268  ,p_event_id     => l_event_id
164269  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164270  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164271  ,p_actual_flag => l_actual_flag
164272  ,p_balance_type_code => l_balance_type_code
164273  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164274  
164275  , p_source_1 => l_array_source_1(Idx)
164276  , p_source_16 => l_array_source_16(Idx)
164277  , p_source_25 => l_array_source_25(Idx)
164278  , p_source_28 => l_array_source_28(Idx)
164279  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164280  , p_source_54 => l_array_source_54(Idx)
164281  , p_source_54_meaning => l_array_source_54_meaning(Idx)
164282  , p_source_58 => l_array_source_58(Idx)
164283  , p_source_60 => l_array_source_60(Idx)
164284  , p_source_62 => l_array_source_62(Idx)
164285  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164286  , p_source_69 => l_array_source_69(Idx)
164287  , p_source_70 => l_array_source_70(Idx)
164288  , p_source_71 => l_array_source_71(Idx)
164289  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164290  , p_source_73 => l_array_source_73(Idx)
164291  , p_source_74 => l_array_source_74(Idx)
164292  , p_source_75 => l_array_source_75(Idx)
164293  , p_source_76 => l_array_source_76(Idx)
164294  , p_source_77 => l_array_source_77(Idx)
164295  , p_source_78 => l_array_source_78(Idx)
164296  , p_source_82 => l_array_source_82(Idx)
164297  , p_source_83 => l_array_source_83(Idx)
164298  , p_source_84 => l_array_source_84(Idx)
164299  , p_source_85 => l_array_source_85(Idx)
164300  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164301  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164302  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164303  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164304  , p_source_89 => l_array_source_89(Idx)
164305  , p_source_90 => l_array_source_90(Idx)
164306  , p_source_91 => l_array_source_91(Idx)
164307  , p_source_92 => l_array_source_92(Idx)
164308  , p_source_93 => l_array_source_93(Idx)
164309  , p_source_94 => l_array_source_94(Idx)
164310  , p_source_95 => l_array_source_95(Idx)
164311  , p_source_96 => l_array_source_96(Idx)
164312  , p_source_97 => l_array_source_97(Idx)
164313  , p_source_98 => l_array_source_98(Idx)
164314  , p_source_99 => l_array_source_99(Idx)
164315  , p_source_100 => l_array_source_100(Idx)
164316  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
164317  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
164318  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
164319  );
164320 If(l_balance_type_code = 'A') THEN
164321   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164322 END IF;
164323 
164324 --
164325 
164326 
164327 --
164331  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164328 AcctLineType_231 (
164329  p_application_id  => p_application_id
164330  ,p_event_id     => l_event_id
164332  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164333  ,p_actual_flag => l_actual_flag
164334  ,p_balance_type_code => l_balance_type_code
164335  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164336  
164337  , p_source_1 => l_array_source_1(Idx)
164338  , p_source_16 => l_array_source_16(Idx)
164339  , p_source_25 => l_array_source_25(Idx)
164340  , p_source_28 => l_array_source_28(Idx)
164341  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164342  , p_source_54 => l_array_source_54(Idx)
164343  , p_source_54_meaning => l_array_source_54_meaning(Idx)
164344  , p_source_58 => l_array_source_58(Idx)
164345  , p_source_60 => l_array_source_60(Idx)
164346  , p_source_62 => l_array_source_62(Idx)
164347  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164348  , p_source_69 => l_array_source_69(Idx)
164349  , p_source_70 => l_array_source_70(Idx)
164350  , p_source_71 => l_array_source_71(Idx)
164351  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164352  , p_source_73 => l_array_source_73(Idx)
164353  , p_source_74 => l_array_source_74(Idx)
164354  , p_source_75 => l_array_source_75(Idx)
164355  , p_source_76 => l_array_source_76(Idx)
164356  , p_source_77 => l_array_source_77(Idx)
164357  , p_source_78 => l_array_source_78(Idx)
164358  , p_source_82 => l_array_source_82(Idx)
164359  , p_source_83 => l_array_source_83(Idx)
164360  , p_source_84 => l_array_source_84(Idx)
164361  , p_source_85 => l_array_source_85(Idx)
164362  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164363  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164364  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164365  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164366  , p_source_89 => l_array_source_89(Idx)
164367  , p_source_90 => l_array_source_90(Idx)
164368  , p_source_91 => l_array_source_91(Idx)
164369  , p_source_92 => l_array_source_92(Idx)
164370  , p_source_93 => l_array_source_93(Idx)
164371  , p_source_94 => l_array_source_94(Idx)
164372  , p_source_95 => l_array_source_95(Idx)
164373  , p_source_96 => l_array_source_96(Idx)
164374  , p_source_97 => l_array_source_97(Idx)
164375  , p_source_98 => l_array_source_98(Idx)
164376  , p_source_99 => l_array_source_99(Idx)
164377  , p_source_100 => l_array_source_100(Idx)
164378  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
164379  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
164380  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
164381  );
164382 If(l_balance_type_code = 'A') THEN
164383   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164384 END IF;
164385 
164386 --
164387 
164388 
164389 --
164390 AcctLineType_237 (
164391  p_application_id  => p_application_id
164392  ,p_event_id     => l_event_id
164393  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164394  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164395  ,p_actual_flag => l_actual_flag
164396  ,p_balance_type_code => l_balance_type_code
164397  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164398  
164399  , p_source_1 => l_array_source_1(Idx)
164400  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
164401  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
164402  , p_source_16 => l_array_source_16(Idx)
164403  , p_source_25 => l_array_source_25(Idx)
164404  , p_source_28 => l_array_source_28(Idx)
164405  , p_source_28_meaning => l_array_source_28_meaning(Idx)
164406  , p_source_39 => l_array_source_39(Idx)
164407  , p_source_58 => l_array_source_58(Idx)
164408  , p_source_60 => l_array_source_60(Idx)
164409  , p_source_62 => l_array_source_62(Idx)
164410  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
164411  , p_source_69 => l_array_source_69(Idx)
164412  , p_source_70 => l_array_source_70(Idx)
164413  , p_source_71 => l_array_source_71(Idx)
164414  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
164415  , p_source_73 => l_array_source_73(Idx)
164416  , p_source_74 => l_array_source_74(Idx)
164417  , p_source_75 => l_array_source_75(Idx)
164418  , p_source_76 => l_array_source_76(Idx)
164419  , p_source_77 => l_array_source_77(Idx)
164420  , p_source_78 => l_array_source_78(Idx)
164421  , p_source_82 => l_array_source_82(Idx)
164422  , p_source_83 => l_array_source_83(Idx)
164423  , p_source_84 => l_array_source_84(Idx)
164424  , p_source_85 => l_array_source_85(Idx)
164425  , p_source_85_meaning => l_array_source_85_meaning(Idx)
164426  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
164427  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
164428  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
164429  , p_source_89 => l_array_source_89(Idx)
164430  , p_source_90 => l_array_source_90(Idx)
164431  , p_source_91 => l_array_source_91(Idx)
164432  , p_source_92 => l_array_source_92(Idx)
164433  , p_source_93 => l_array_source_93(Idx)
164434  , p_source_94 => l_array_source_94(Idx)
164435  , p_source_95 => l_array_source_95(Idx)
164436  , p_source_96 => l_array_source_96(Idx)
164437  , p_source_97 => l_array_source_97(Idx)
164438  , p_source_98 => l_array_source_98(Idx)
164439  , p_source_99 => l_array_source_99(Idx)
164440  , p_source_100 => l_array_source_100(Idx)
164441  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
164442  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
164443  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
164444  );
164445 If(l_balance_type_code = 'A') THEN
164446   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164447 END IF;
164448 
164449 --
164450 
164451       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
164455             (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'))
164452       -- or secondary ledger that has different currency with primary
164453       -- or alc that is calculated by sla
164454       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
164456 
164457 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
164458 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
164459           AND (l_actual_flag = 'A')) THEN
164460         XLA_AE_LINES_PKG.CreateGainOrLossLines(
164461           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
164462          ,p_application_id   => p_application_id
164463          ,p_amb_context_code => 'DEFAULT'
164464          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
164465          ,p_event_class_code => C_EVENT_CLASS_CODE
164466          ,p_event_type_code  => C_EVENT_TYPE_CODE
164467          
164468          ,p_gain_ccid        => -1
164469          ,p_loss_ccid        => -1
164470 
164471          ,p_actual_flag      => l_actual_flag
164472          ,p_enc_flag         => null
164473          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
164474          ,p_enc_g_l_ref      => null
164475          );
164476       END IF;
164477    END IF;
164478 END IF;
164479 
164480    ELSE
164481       --
164482       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
164483       --
164484       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164485          trace
164486             (p_msg      => 'Trancaction revesal option is Y'
164487             ,p_level    => C_LEVEL_STATEMENT
164488             ,p_module   => l_log_module);
164489       END IF;
164490    END IF;
164491 
164492 END LOOP;
164493 l_result := XLA_AE_LINES_PKG.InsertLines ;
164494 end loop;
164495 close line_cur;
164496 
164497 
164498 --
164499 -- insert headers into xla_ae_headers_gt table
164500 --
164501 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
164502 
164503 -- insert into errors table here.
164504 
164505 END LOOP;
164506 
164507 --
164508 -- 4865292
164509 --
164510 -- Compare g_hdr_extract_count with event count in
164511 -- CreateHeadersAndLines.
164512 --
164513 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
164514 
164515 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164516    trace (p_msg     => '# rows extracted from header extract objects '
164517                     || ' (running total): '
164518                     || g_hdr_extract_count
164519          ,p_level   => C_LEVEL_STATEMENT
164520          ,p_module  => l_log_module);
164521 END IF;
164522 
164523 CLOSE header_cur;
164524 --
164525 
164526 --
164527 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164528    trace
164529       (p_msg      => 'END of EventClass_251'
164530       ,p_level    => C_LEVEL_PROCEDURE
164531       ,p_module   => l_log_module);
164532 END IF;
164533 --
164534 RETURN l_result;
164535 EXCEPTION
164536 WHEN xla_exceptions_pkg.application_exception THEN
164537    
164538 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
164539 
164540    
164541 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
164542 
164543    RAISE;
164544 
164545 WHEN NO_DATA_FOUND THEN
164546 
164547 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
164548 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
164549 
164550 FOR header_record IN header_cur
164551 LOOP
164552     l_array_header_events(header_record.event_id) := header_record.event_id;
164553 END LOOP;
164554 
164555 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
164556 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
164557 
164558 fnd_file.put_line(fnd_file.LOG, '                    ');
164559 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
164560 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
164561 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
164562 
164563 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
164564 LOOP
164565 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
164566 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
164567         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
164568 	END IF;
164569 END LOOP;
164570 
164571 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
164572 fnd_file.put_line(fnd_file.LOG, '                    ');
164573 
164574 
164575 xla_exceptions_pkg.raise_message
164576       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_251');
164577 
164578 
164579 WHEN OTHERS THEN
164580    xla_exceptions_pkg.raise_message
164581       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_251');
164582 END EventClass_251;
164583 --
164584 
164585 ---------------------------------------
164586 --
164587 -- PRIVATE PROCEDURE
164588 --         insert_sources_252
164589 --
164590 ----------------------------------------
164591 --
164592 PROCEDURE insert_sources_252(
164593                                 p_target_ledger_id       IN NUMBER
164594                               , p_language               IN VARCHAR2
164595                               , p_sla_ledger_id          IN NUMBER
164596                               , p_pad_start_date         IN DATE
164597                               , p_pad_end_date           IN DATE
164598                          )
164599 IS
164600 
164604 l_log_module                   VARCHAR2(240);
164601 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
164602 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PAYMENTS';
164603 p_apps_owner                   VARCHAR2(30);
164605 BEGIN
164606 IF g_log_enabled THEN
164607       l_log_module := C_DEFAULT_MODULE||'.insert_sources_252';
164608 END IF;
164609 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164610 
164611       trace
164612          (p_msg      => 'BEGIN of insert_sources_252'
164613          ,p_level    => C_LEVEL_PROCEDURE
164614          ,p_module   => l_log_module);
164615 
164616 END IF;
164617 
164618 -- select APPS owner
164619 SELECT oracle_username
164620   INTO p_apps_owner
164621   FROM fnd_oracle_userid
164622  WHERE read_only_flag = 'U'
164623 ;
164624 
164625 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164626       trace
164627          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
164628                         ' - p_language = '||p_language||
164629                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
164630                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
164631                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
164632                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
164633          ,p_level    => C_LEVEL_STATEMENT
164634          ,p_module   => l_log_module);
164635 END IF;
164636 
164637 
164638 --
164639 INSERT INTO xla_diag_sources --hdr2
164640 (
164641         event_id
164642       , ledger_id
164643       , sla_ledger_id
164644       , description_language
164645       , object_name
164646       , object_type_code
164647       , line_number
164648       , source_application_id
164649       , source_type_code
164650       , source_code
164651       , source_value
164652       , source_meaning
164653       , created_by
164654       , creation_date
164655       , last_update_date
164656       , last_updated_by
164657       , last_update_login
164658       , program_update_date
164659       , program_application_id
164660       , program_id
164661       , request_id
164662 )
164663 SELECT
164664         event_id
164665       , p_target_ledger_id
164666       , p_sla_ledger_id
164667       , p_language
164668       , object_name
164669       , object_type_code
164670       , line_number
164671       , source_application_id
164672       , source_type_code
164673       , source_code
164674       , SUBSTR(source_value ,1,1996)
164675       , SUBSTR(source_meaning ,1,200)
164676       , xla_environment_pkg.g_Usr_Id
164677       , TRUNC(SYSDATE)
164678       , TRUNC(SYSDATE)
164679       , xla_environment_pkg.g_Usr_Id
164680       , xla_environment_pkg.g_Login_Id
164681       , TRUNC(SYSDATE)
164682       , xla_environment_pkg.g_Prog_Appl_Id
164683       , xla_environment_pkg.g_Prog_Id
164684       , xla_environment_pkg.g_Req_Id
164685   FROM (
164686        SELECT xet.event_id                  event_id
164687             , 0                          line_number
164688             , CASE r
164689                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164690                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164691                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164692                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164693                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164694                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164695                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164696                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164697                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164698                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164699                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164700                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164701                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164702                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164703                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164704                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164705                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164706                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164707                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164708                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164709                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164710                 WHEN 22 THEN 'FV_XLA_PAYMENTS_V' 
164711                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164712                 WHEN 24 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164713                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164714                 WHEN 26 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164715                 WHEN 27 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164716                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164717                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164718                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164719                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164720                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164721                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164722                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164723                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164724                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164725                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164726                 WHEN 38 THEN 'FV_XLA_PAYMENTS_V' 
164727                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164728                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164729                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164730                 
164731                ELSE null
164732               END                           object_name
164733             , CASE r
164734                 WHEN 1 THEN 'HEADER' 
164735                 WHEN 2 THEN 'HEADER' 
164739                 WHEN 6 THEN 'HEADER' 
164736                 WHEN 3 THEN 'HEADER' 
164737                 WHEN 4 THEN 'HEADER' 
164738                 WHEN 5 THEN 'HEADER' 
164740                 WHEN 7 THEN 'HEADER' 
164741                 WHEN 8 THEN 'HEADER' 
164742                 WHEN 9 THEN 'HEADER' 
164743                 WHEN 10 THEN 'HEADER' 
164744                 WHEN 11 THEN 'HEADER' 
164745                 WHEN 12 THEN 'HEADER' 
164746                 WHEN 13 THEN 'HEADER' 
164747                 WHEN 14 THEN 'HEADER' 
164748                 WHEN 15 THEN 'HEADER' 
164749                 WHEN 16 THEN 'HEADER' 
164750                 WHEN 17 THEN 'HEADER' 
164751                 WHEN 18 THEN 'HEADER' 
164752                 WHEN 19 THEN 'HEADER' 
164753                 WHEN 20 THEN 'HEADER' 
164754                 WHEN 21 THEN 'HEADER' 
164755                 WHEN 22 THEN 'HEADER' 
164756                 WHEN 23 THEN 'HEADER' 
164757                 WHEN 24 THEN 'HEADER' 
164758                 WHEN 25 THEN 'HEADER' 
164759                 WHEN 26 THEN 'HEADER' 
164760                 WHEN 27 THEN 'HEADER' 
164761                 WHEN 28 THEN 'HEADER' 
164762                 WHEN 29 THEN 'HEADER' 
164763                 WHEN 30 THEN 'HEADER' 
164764                 WHEN 31 THEN 'HEADER' 
164765                 WHEN 32 THEN 'HEADER' 
164766                 WHEN 33 THEN 'HEADER' 
164767                 WHEN 34 THEN 'HEADER' 
164768                 WHEN 35 THEN 'HEADER' 
164769                 WHEN 36 THEN 'HEADER' 
164770                 WHEN 37 THEN 'HEADER' 
164771                 WHEN 38 THEN 'HEADER' 
164772                 WHEN 39 THEN 'HEADER' 
164773                 WHEN 40 THEN 'HEADER' 
164774                 WHEN 41 THEN 'HEADER' 
164775                 
164776                 ELSE null
164777               END                           object_type_code
164778             , CASE r
164779                 WHEN 1 THEN '200' 
164780                 WHEN 2 THEN '200' 
164781                 WHEN 3 THEN '200' 
164782                 WHEN 4 THEN '200' 
164783                 WHEN 5 THEN '200' 
164784                 WHEN 6 THEN '200' 
164785                 WHEN 7 THEN '200' 
164786                 WHEN 8 THEN '200' 
164787                 WHEN 9 THEN '200' 
164788                 WHEN 10 THEN '200' 
164789                 WHEN 11 THEN '200' 
164790                 WHEN 12 THEN '200' 
164791                 WHEN 13 THEN '200' 
164792                 WHEN 14 THEN '200' 
164793                 WHEN 15 THEN '200' 
164794                 WHEN 16 THEN '200' 
164795                 WHEN 17 THEN '200' 
164796                 WHEN 18 THEN '200' 
164797                 WHEN 19 THEN '200' 
164798                 WHEN 20 THEN '200' 
164799                 WHEN 21 THEN '200' 
164800                 WHEN 22 THEN '8901' 
164801                 WHEN 23 THEN '200' 
164802                 WHEN 24 THEN '200' 
164803                 WHEN 25 THEN '200' 
164804                 WHEN 26 THEN '200' 
164805                 WHEN 27 THEN '200' 
164806                 WHEN 28 THEN '200' 
164807                 WHEN 29 THEN '200' 
164808                 WHEN 30 THEN '200' 
164809                 WHEN 31 THEN '200' 
164810                 WHEN 32 THEN '200' 
164811                 WHEN 33 THEN '200' 
164812                 WHEN 34 THEN '200' 
164813                 WHEN 35 THEN '200' 
164814                 WHEN 36 THEN '200' 
164815                 WHEN 37 THEN '200' 
164816                 WHEN 38 THEN '8901' 
164817                 WHEN 39 THEN '200' 
164818                 WHEN 40 THEN '200' 
164819                 WHEN 41 THEN '200' 
164820                 
164821                 ELSE null
164822               END                           source_application_id
164823             , 'S'             source_type_code
164824             , CASE r
164825                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
164826                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
164827                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
164828                 WHEN 4 THEN 'AC_CHECK_DATE' 
164829                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
164830                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
164831                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
164832                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
164833                 WHEN 9 THEN 'FSP_DISC_TAKEN_CCID' 
164834                 WHEN 10 THEN 'ASP_DISCOUNT_DIST_METHOD' 
164835                 WHEN 11 THEN 'CGAC_FUTURE_DATED_PMT_CCID' 
164836                 WHEN 12 THEN 'ASP_FD_PMT_ACCT_SOURCE' 
164837                 WHEN 13 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID' 
164838                 WHEN 14 THEN 'POS_FDP_CCID' 
164839                 WHEN 15 THEN 'ASP_INTEREST_CCID' 
164840                 WHEN 16 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
164841                 WHEN 17 THEN 'CGAC_CASH_CLEARING_CCID' 
164842                 WHEN 18 THEN 'CGAC_GAIN_CCID' 
164843                 WHEN 19 THEN 'ASP_GAIN_CCID' 
164844                 WHEN 20 THEN 'CGAC_LOSS_CCID' 
164845                 WHEN 21 THEN 'ASP_LOSS_CCID' 
164846                 WHEN 22 THEN 'FEDERAL_DIT_CONFIRM_ACCT' 
164847                 WHEN 23 THEN 'ASP_DISC_TAKEN_CCID' 
164848                 WHEN 24 THEN 'ASP_AUTO_OFFSET_FLAG' 
164849                 WHEN 25 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID' 
164850                 WHEN 26 THEN 'ASP_ROUNDING_ERROR_CCID' 
164851                 WHEN 27 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
164852                 WHEN 28 THEN 'THIRD_PARTY_TYPE' 
164853                 WHEN 29 THEN 'AC_VENDOR_ID' 
164854                 WHEN 30 THEN 'AC_VENDOR_SITE_ID' 
164855                 WHEN 31 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
164856                 WHEN 32 THEN 'AC_FUTURE_PAY_DUE_DATE' 
164857                 WHEN 33 THEN 'AC_EXCHANGE_DATE' 
164858                 WHEN 34 THEN 'AC_EXCHANGE_RATE' 
164859                 WHEN 35 THEN 'AC_EXCHANGE_RATE_TYPE' 
164860                 WHEN 36 THEN 'PAYMENT_TYPE' 
164861                 WHEN 37 THEN 'PAYMENT_PROCESSING_TYPE' 
164865                 WHEN 41 THEN 'TRANSAC_REVERSAL_FLAG' 
164862                 WHEN 38 THEN 'FEDERAL_DIT_FLAG' 
164863                 WHEN 39 THEN 'AC_DOC_CATEGORY_CODE' 
164864                 WHEN 40 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
164866                 
164867                 ELSE null
164868               END                           source_code
164869             , CASE r
164870                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
164871                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
164872                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
164873                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
164874                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
164875                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
164876                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
164877                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
164878                 WHEN 9 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
164879                 WHEN 10 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
164880                 WHEN 11 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
164881                 WHEN 12 THEN TO_CHAR(h3.ASP_FD_PMT_ACCT_SOURCE)
164882                 WHEN 13 THEN TO_CHAR(h3.FSP_FUTURE_DATED_PAYMENT_CCID)
164883                 WHEN 14 THEN TO_CHAR(h2.POS_FDP_CCID)
164884                 WHEN 15 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
164885                 WHEN 16 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
164886                 WHEN 17 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
164887                 WHEN 18 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
164888                 WHEN 19 THEN TO_CHAR(h3.ASP_GAIN_CCID)
164889                 WHEN 20 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
164890                 WHEN 21 THEN TO_CHAR(h3.ASP_LOSS_CCID)
164891                 WHEN 22 THEN TO_CHAR(h5.FEDERAL_DIT_CONFIRM_ACCT)
164892                 WHEN 23 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
164893                 WHEN 24 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
164894                 WHEN 25 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
164895                 WHEN 26 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
164896                 WHEN 27 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
164897                 WHEN 28 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
164898                 WHEN 29 THEN TO_CHAR(h2.AC_VENDOR_ID)
164899                 WHEN 30 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
164900                 WHEN 31 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
164901                 WHEN 32 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
164902                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
164903                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
164904                 WHEN 35 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
164905                 WHEN 36 THEN TO_CHAR(h2.PAYMENT_TYPE)
164906                 WHEN 37 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
164907                 WHEN 38 THEN TO_CHAR(h5.FEDERAL_DIT_FLAG)
164908                 WHEN 39 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
164909                 WHEN 40 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
164910                 WHEN 41 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
164911                 
164912                 ELSE null
164913               END                           source_value
164914             , CASE r
164915                 WHEN 7 THEN fvl10.meaning
164916                 WHEN 10 THEN fvl14.meaning
164917                 WHEN 12 THEN fvl20.meaning
164918                 WHEN 24 THEN fvl43.meaning
164919                 WHEN 31 THEN fvl116.meaning
164920                 WHEN 36 THEN fvl125.meaning
164921                 WHEN 41 THEN fvl177.meaning
164922                 
164923                 ELSE null
164924               END               source_meaning
164925          FROM xla_events_gt     xet  
164926       , AP_PAYMENT_EXTRACT_HEADER_V  h2
164927       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
164928       , FV_XLA_PAYMENTS_V  h5
164929   , fnd_lookup_values    fvl10
164930   , fnd_lookup_values    fvl14
164931   , fnd_lookup_values    fvl20
164932   , fnd_lookup_values    fvl43
164933   , fnd_lookup_values    fvl116
164934   , fnd_lookup_values    fvl125
164935   , fnd_lookup_values    fvl177
164936              ,(select rownum r from all_objects where rownum <= 41 and owner = p_apps_owner)
164937          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
164938            AND xet.event_class_code = C_EVENT_CLASS_CODE
164939               AND h2.event_id = xet.event_id
164940  AND h3.asp_org_id = h2.ac_org_id AND h5.federal_org_id=h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
164941   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
164942   AND fvl10.view_application_id(+) = 200
164943   AND fvl10.language(+)            = USERENV('LANG')
164944      AND fvl14.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
164945   AND fvl14.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
164946   AND fvl14.view_application_id(+) = 200
164947   AND fvl14.language(+)            = USERENV('LANG')
164948      AND fvl20.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
164949   AND fvl20.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
164950   AND fvl20.view_application_id(+) = 200
164951   AND fvl20.language(+)            = USERENV('LANG')
164952      AND fvl43.lookup_type(+)         = 'YES_NO'
164953   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
164954   AND fvl43.view_application_id(+) = 0
164955   AND fvl43.language(+)            = USERENV('LANG')
164956      AND fvl116.lookup_type(+)         = 'YES_NO'
164957   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
164958   AND fvl116.view_application_id(+) = 0
164959   AND fvl116.language(+)            = USERENV('LANG')
164960      AND fvl125.lookup_type(+)         = 'PAYMENT TYPE'
164961   AND fvl125.lookup_code(+)         = h2.PAYMENT_TYPE
164962   AND fvl125.view_application_id(+) = 200
164963   AND fvl125.language(+)            = USERENV('LANG')
164964      AND fvl177.lookup_type(+)         = 'YES_NO'
164965   AND fvl177.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
164966   AND fvl177.view_application_id(+) = 0
164967   AND fvl177.language(+)            = USERENV('LANG')
164971 --
164968   
164969 )
164970 ;
164972 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164973 
164974       trace
164975          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
164976          ,p_level    => C_LEVEL_STATEMENT
164977          ,p_module   => l_log_module);
164978 
164979 END IF;
164980 --
164981 
164982 
164983 
164984 --
164985 INSERT INTO xla_diag_sources  --line2
164986 (
164987         event_id
164988       , ledger_id
164989       , sla_ledger_id
164990       , description_language
164991       , object_name
164992       , object_type_code
164993       , line_number
164994       , source_application_id
164995       , source_type_code
164996       , source_code
164997       , source_value
164998       , source_meaning
164999       , created_by
165000       , creation_date
165001       , last_update_date
165002       , last_updated_by
165003       , last_update_login
165004       , program_update_date
165005       , program_application_id
165006       , program_id
165007       , request_id
165008 )
165009 SELECT  event_id
165010       , p_target_ledger_id
165011       , p_sla_ledger_id
165012       , p_language
165013       , object_name
165014       , object_type_code
165015       , line_number
165016       , source_application_id
165017       , source_type_code
165018       , source_code
165019       , SUBSTR(source_value,1,1996)
165020       , SUBSTR(source_meaning ,1,200)
165021       , xla_environment_pkg.g_Usr_Id
165022       , TRUNC(SYSDATE)
165023       , TRUNC(SYSDATE)
165024       , xla_environment_pkg.g_Usr_Id
165025       , xla_environment_pkg.g_Login_Id
165026       , TRUNC(SYSDATE)
165027       , xla_environment_pkg.g_Prog_Appl_Id
165028       , xla_environment_pkg.g_Prog_Id
165029       , xla_environment_pkg.g_Req_Id
165030   FROM (
165031        SELECT xet.event_id                  event_id
165032             , l1.line_number                 line_number
165033             , CASE r
165034                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165035                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165036                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165037                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165038                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165039                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165040                 WHEN 7 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165041                 WHEN 8 THEN 'FV_XLA_AP_REF_V' 
165042                 WHEN 9 THEN 'FV_XLA_AP_REF_V' 
165043                 WHEN 10 THEN 'FV_XLA_AP_REF_V' 
165044                 WHEN 11 THEN 'FV_XLA_AP_REF_V' 
165045                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165046                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165047                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165048                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165049                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165050                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165051                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165052                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165053                 WHEN 20 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165054                 WHEN 21 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
165055                 WHEN 22 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165056                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165057                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165058                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165059                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165060                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165061                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165062                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165063                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165064                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165065                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165066                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165067                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165068                 WHEN 35 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165069                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165070                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165071                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165072                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165073                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165074                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165075                 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165076                 
165077                ELSE null
165078               END                           object_name
165079             , CASE r
165080                 WHEN 1 THEN 'LINE' 
165081                 WHEN 2 THEN 'LINE' 
165082                 WHEN 3 THEN 'LINE' 
165083                 WHEN 4 THEN 'LINE' 
165084                 WHEN 5 THEN 'LINE' 
165085                 WHEN 6 THEN 'LINE' 
165086                 WHEN 7 THEN 'LINE' 
165087                 WHEN 8 THEN 'LINE' 
165088                 WHEN 9 THEN 'LINE' 
165089                 WHEN 10 THEN 'LINE' 
165090                 WHEN 11 THEN 'LINE' 
165091                 WHEN 12 THEN 'LINE' 
165092                 WHEN 13 THEN 'LINE' 
165093                 WHEN 14 THEN 'LINE' 
165094                 WHEN 15 THEN 'LINE' 
165095                 WHEN 16 THEN 'LINE' 
165096                 WHEN 17 THEN 'LINE' 
165097                 WHEN 18 THEN 'LINE' 
165098                 WHEN 19 THEN 'LINE' 
165099                 WHEN 20 THEN 'LINE' 
165100                 WHEN 21 THEN 'LINE' 
165101                 WHEN 22 THEN 'LINE' 
165102                 WHEN 23 THEN 'LINE' 
165103                 WHEN 24 THEN 'LINE' 
165104                 WHEN 25 THEN 'LINE' 
165105                 WHEN 26 THEN 'LINE' 
165109                 WHEN 30 THEN 'LINE' 
165106                 WHEN 27 THEN 'LINE' 
165107                 WHEN 28 THEN 'LINE' 
165108                 WHEN 29 THEN 'LINE' 
165110                 WHEN 31 THEN 'LINE' 
165111                 WHEN 32 THEN 'LINE' 
165112                 WHEN 33 THEN 'LINE' 
165113                 WHEN 34 THEN 'LINE' 
165114                 WHEN 35 THEN 'LINE' 
165115                 WHEN 36 THEN 'LINE' 
165116                 WHEN 37 THEN 'LINE' 
165117                 WHEN 38 THEN 'LINE' 
165118                 WHEN 39 THEN 'LINE' 
165119                 WHEN 40 THEN 'LINE' 
165120                 WHEN 41 THEN 'LINE' 
165121                 WHEN 42 THEN 'LINE' 
165122                 
165123                 ELSE null
165124               END                           object_type_code
165125             , CASE r
165126                 WHEN 1 THEN '200' 
165127                 WHEN 2 THEN '200' 
165128                 WHEN 3 THEN '200' 
165129                 WHEN 4 THEN '200' 
165130                 WHEN 5 THEN '200' 
165131                 WHEN 6 THEN '200' 
165132                 WHEN 7 THEN '200' 
165133                 WHEN 8 THEN '8901' 
165134                 WHEN 9 THEN '8901' 
165135                 WHEN 10 THEN '8901' 
165136                 WHEN 11 THEN '8901' 
165137                 WHEN 12 THEN '200' 
165138                 WHEN 13 THEN '200' 
165139                 WHEN 14 THEN '200' 
165140                 WHEN 15 THEN '200' 
165141                 WHEN 16 THEN '200' 
165142                 WHEN 17 THEN '200' 
165143                 WHEN 18 THEN '200' 
165144                 WHEN 19 THEN '200' 
165145                 WHEN 20 THEN '200' 
165146                 WHEN 21 THEN '200' 
165147                 WHEN 22 THEN '200' 
165148                 WHEN 23 THEN '200' 
165149                 WHEN 24 THEN '200' 
165150                 WHEN 25 THEN '200' 
165151                 WHEN 26 THEN '200' 
165152                 WHEN 27 THEN '200' 
165153                 WHEN 28 THEN '200' 
165154                 WHEN 29 THEN '200' 
165155                 WHEN 30 THEN '200' 
165156                 WHEN 31 THEN '200' 
165157                 WHEN 32 THEN '200' 
165158                 WHEN 33 THEN '200' 
165159                 WHEN 34 THEN '200' 
165160                 WHEN 35 THEN '200' 
165161                 WHEN 36 THEN '200' 
165162                 WHEN 37 THEN '200' 
165163                 WHEN 38 THEN '200' 
165164                 WHEN 39 THEN '200' 
165165                 WHEN 40 THEN '200' 
165166                 WHEN 41 THEN '200' 
165167                 WHEN 42 THEN '200' 
165168                 
165169                 ELSE null
165170               END                           source_application_id
165171             , 'S'             source_type_code
165172             , CASE r
165173                 WHEN 1 THEN 'AID_DIST_CCID' 
165174                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
165175                 WHEN 3 THEN 'AI_ACCTS_PAY_CCID' 
165176                 WHEN 4 THEN 'AWT_RELATED_DIST_ACCOUNT' 
165177                 WHEN 5 THEN 'POD_CCID' 
165178                 WHEN 6 THEN 'PO_VARIANCE_ACCOUNT' 
165179                 WHEN 7 THEN 'TAX_ACCOUNT_CCID' 
165180                 WHEN 8 THEN 'FEDERAL_FUND_CATEGORY' 
165181                 WHEN 9 THEN 'FEDERAL_FUND_EXPIRED_STATUS' 
165182                 WHEN 10 THEN 'FEDERAL_FUND_CAT_DESC' 
165183                 WHEN 11 THEN 'FEDERAL_PRIOR_YEAR_FLAG' 
165184                 WHEN 12 THEN 'ENCUMBRANCE_AMOUNT' 
165185                 WHEN 13 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
165186                 WHEN 14 THEN 'AI_PAYMENT_STATUS_FLAG' 
165187                 WHEN 15 THEN 'AI_INVOICE_TYPE_PAID' 
165188                 WHEN 16 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
165189                 WHEN 17 THEN 'DISTRIBUTION_LINK_TYPE' 
165190                 WHEN 18 THEN 'AI_INVOICE_CURRENCY_CODE' 
165191                 WHEN 19 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
165192                 WHEN 20 THEN 'TAX_LINE_ID' 
165193                 WHEN 21 THEN 'REC_NREC_TAX_DIST_ID' 
165194                 WHEN 22 THEN 'SUMMARY_TAX_LINE_ID' 
165195                 WHEN 23 THEN 'BUS_FLOW_AP_APP_ID' 
165196                 WHEN 24 THEN 'BUS_FLOW_INV_DIST_TYPE' 
165197                 WHEN 25 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
165198                 WHEN 26 THEN 'BUS_FLOW_INV_DIST_ID' 
165199                 WHEN 27 THEN 'BUS_FLOW_INV_ID' 
165200                 WHEN 28 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
165201                 WHEN 29 THEN 'APHD_AMOUNT' 
165202                 WHEN 30 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
165203                 WHEN 31 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
165204                 WHEN 32 THEN 'APHD_PAYMENT_BASE_AMT' 
165205                 WHEN 33 THEN 'APHD_INVOICE_BASE_AMT' 
165206                 WHEN 34 THEN 'APHD_INVOICE_DIST_AMOUNT' 
165207                 WHEN 35 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
165208                 WHEN 36 THEN 'AWT_RELATED_DIST_TYPE' 
165209                 WHEN 37 THEN 'INV_EXCHANGE_DATE' 
165210                 WHEN 38 THEN 'INV_EXCHANGE_RATE' 
165211                 WHEN 39 THEN 'INV_EXCHANGE_RATE_TYPE' 
165212                 WHEN 40 THEN 'INV_PMT_BASE_AMT_DIFF' 
165213                 WHEN 41 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
165214                 WHEN 42 THEN 'AWT_AT_PMT_TIME' 
165215                 
165216                 ELSE null
165217               END                           source_code
165218             , CASE r
165219                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
165220                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
165221                 WHEN 3 THEN TO_CHAR(l1.AI_ACCTS_PAY_CCID)
165222                 WHEN 4 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
165223                 WHEN 5 THEN TO_CHAR(l1.POD_CCID)
165224                 WHEN 6 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
165225                 WHEN 7 THEN TO_CHAR(l6.TAX_ACCOUNT_CCID)
165226                 WHEN 8 THEN TO_CHAR(l4.FEDERAL_FUND_CATEGORY)
165227                 WHEN 9 THEN TO_CHAR(l4.FEDERAL_FUND_EXPIRED_STATUS)
165231                 WHEN 13 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
165228                 WHEN 10 THEN TO_CHAR(l4.FEDERAL_FUND_CAT_DESC)
165229                 WHEN 11 THEN TO_CHAR(l4.FEDERAL_PRIOR_YEAR_FLAG)
165230                 WHEN 12 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
165232                 WHEN 14 THEN TO_CHAR(l1.AI_PAYMENT_STATUS_FLAG)
165233                 WHEN 15 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
165234                 WHEN 16 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
165235                 WHEN 17 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
165236                 WHEN 18 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
165237                 WHEN 19 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
165238                 WHEN 20 THEN TO_CHAR(l6.TAX_LINE_ID)
165239                 WHEN 21 THEN TO_CHAR(l7.REC_NREC_TAX_DIST_ID)
165240                 WHEN 22 THEN TO_CHAR(l6.SUMMARY_TAX_LINE_ID)
165241                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
165242                 WHEN 24 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
165243                 WHEN 25 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
165244                 WHEN 26 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
165245                 WHEN 27 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
165246                 WHEN 28 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
165247                 WHEN 29 THEN TO_CHAR(l1.APHD_AMOUNT)
165248                 WHEN 30 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
165249                 WHEN 31 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
165250                 WHEN 32 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
165251                 WHEN 33 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
165252                 WHEN 34 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
165253                 WHEN 35 THEN TO_CHAR(l6.DEF_REC_SETTLEMENT_OPTION_CODE)
165254                 WHEN 36 THEN TO_CHAR(l1.AWT_RELATED_DIST_TYPE)
165255                 WHEN 37 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
165256                 WHEN 38 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
165257                 WHEN 39 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
165258                 WHEN 40 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
165259                 WHEN 41 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
165260                 WHEN 42 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
165261                 
165262                 ELSE null
165263               END                           source_value
165264             , CASE r
165265                 WHEN 2 THEN fvl28.meaning
165266                 WHEN 13 THEN fvl54.meaning
165267                 WHEN 15 THEN fvl56.meaning
165268                 WHEN 19 THEN fvl85.meaning
165269                 WHEN 28 THEN fvl101.meaning
165270                 WHEN 35 THEN fvl140.meaning
165271                 WHEN 42 THEN fvl166.meaning
165272                 
165273                 ELSE null
165274               END               source_meaning
165275          FROM  xla_events_gt     xet  
165276         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
165277         , FV_XLA_AP_REF_V  l4
165278         , ZX_AP_DEF_TAX_EXTRACT_V  l6
165279         , ZX_AP_TAX_JRNL_LINE_DESC_V  l7
165280   , fnd_lookup_values    fvl28
165281   , fnd_lookup_values    fvl54
165282   , fnd_lookup_values    fvl56
165283   , fnd_lookup_values    fvl85
165284   , fnd_lookup_values    fvl101
165285   , fnd_lookup_values    fvl140
165286   , fnd_lookup_values    fvl166
165287             , (select rownum r from all_objects where rownum <= 42 and owner = p_apps_owner)
165288         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
165289           AND xet.event_class_code = C_EVENT_CLASS_CODE
165290             AND l1.event_id          = xet.event_id
165291  AND l4.federal_event_id  (+) = l1.event_id  and l4.federal_line_number  (+) = l1.line_number AND l1.aid_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l7.rec_nrec_tax_dist_id (+)    AND fvl28.lookup_type(+)         = 
165292 'INVOICE DISTRIBUTION TYPE'
165293   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
165294   AND fvl28.view_application_id(+) = 200
165295   AND fvl28.language(+)            = USERENV('LANG')
165296      AND fvl54.lookup_type(+)         = 'YES_NO'
165297   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
165298   AND fvl54.view_application_id(+) = 0
165299   AND fvl54.language(+)            = USERENV('LANG')
165300      AND fvl56.lookup_type(+)         = 'INVOICE TYPE'
165301   AND fvl56.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
165302   AND fvl56.view_application_id(+) = 200
165303   AND fvl56.language(+)            = USERENV('LANG')
165304      AND fvl85.lookup_type(+)         = 'YES_NO'
165305   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
165306   AND fvl85.view_application_id(+) = 0
165307   AND fvl85.language(+)            = USERENV('LANG')
165308      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
165309   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
165310   AND fvl101.view_application_id(+) = 200
165311   AND fvl101.language(+)            = USERENV('LANG')
165312      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
165313   AND fvl140.lookup_code(+)         = l6.DEF_REC_SETTLEMENT_OPTION_CODE
165314   AND fvl140.view_application_id(+) = 0
165315   AND fvl140.language(+)            = USERENV('LANG')
165316      AND fvl166.lookup_type(+)         = 'YES_NO'
165317   AND fvl166.lookup_code(+)         = l1.AWT_AT_PMT_TIME
165318   AND fvl166.view_application_id(+) = 0
165319   AND fvl166.language(+)            = USERENV('LANG')
165320   
165321 )
165322 ;
165323 --
165324 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165325 
165326       trace
165327          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
165328          ,p_level    => C_LEVEL_STATEMENT
165329          ,p_module   => l_log_module);
165330 
165331 END IF;
165332 
165333 
165334 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165335       trace
165336          (p_msg      => 'END of insert_sources_252'
165337          ,p_level    => C_LEVEL_PROCEDURE
165338          ,p_module   => l_log_module);
165339 END IF;
165340 EXCEPTION
165344                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
165341   WHEN xla_exceptions_pkg.application_exception THEN
165342       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
165343             trace
165345                ,p_level    => C_LEVEL_EXCEPTION
165346                ,p_module   => l_log_module);
165347       END IF;
165348       RAISE;
165349   WHEN OTHERS THEN
165350       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
165351             trace
165352                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
165353                ,p_level    => C_LEVEL_EXCEPTION
165354                ,p_module   => l_log_module);
165355        END IF;
165356        xla_exceptions_pkg.raise_message
165357            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_252');
165358 END insert_sources_252;
165359 --
165360 
165361 ---------------------------------------
165362 --
165363 -- PRIVATE FUNCTION
165364 --         EventClass_252
165365 --
165366 ----------------------------------------
165367 --
165368 FUNCTION EventClass_252
165369        (p_application_id         IN NUMBER
165370        ,p_base_ledger_id         IN NUMBER
165371        ,p_target_ledger_id       IN NUMBER
165372        ,p_language               IN VARCHAR2
165373        ,p_currency_code          IN VARCHAR2
165374        ,p_sla_ledger_id          IN NUMBER
165375        ,p_pad_start_date         IN DATE
165376        ,p_pad_end_date           IN DATE
165377        ,p_primary_ledger_id      IN NUMBER)
165378 RETURN BOOLEAN IS
165379 --
165380 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
165381 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PAYMENTS';
165382 
165383 l_calculate_acctd_flag   VARCHAR2(1) :='N';
165384 l_calculate_g_l_flag     VARCHAR2(1) :='N';
165385 --
165386 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165387 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165388 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165389 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165390 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165391 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165392 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165393 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165394 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165395 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165396 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165397 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165398 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165399 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165400 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165401 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165402 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165403 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165404 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165405 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165406 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165407 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165408 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
165409 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165410 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
165411 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
165412 
165413 l_event_id                             NUMBER;
165414 l_previous_event_id                    NUMBER;
165415 l_first_event_id                       NUMBER;
165416 l_last_event_id                        NUMBER;
165417 
165418 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
165419 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
165420 --
165421 --
165422 l_result                    BOOLEAN := TRUE;
165423 l_rows                      NUMBER  := 1000;
165424 l_event_type_name           VARCHAR2(80) := 'All';
165425 l_event_class_name          VARCHAR2(80) := 'Payments';
165426 l_description               VARCHAR2(4000);
165427 l_transaction_reversal      NUMBER;
165428 l_ae_header_id              NUMBER;
165429 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
165430 l_log_module                VARCHAR2(240);
165431 --
165432 l_acct_reversal_source      VARCHAR2(30);
165433 l_trx_reversal_source       VARCHAR2(30);
165434 
165435 l_continue_with_lines       BOOLEAN := TRUE;
165436 --
165437 l_acc_rev_gl_date_source    DATE;                      -- 4262811
165438 --
165439 type t_array_event_id is table of number index by binary_integer;
165440 
165441 l_rec_array_event                    t_rec_array_event;
165442 l_null_rec_array_event               t_rec_array_event;
165443 l_array_ae_header_id                 xla_number_array_type;
165444 l_actual_flag                        VARCHAR2(1) := NULL;
165445 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
165446 l_balance_type_code                  VARCHAR2(1) :=NULL;
165447 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
165448 
165449 --
165450 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
165451 --
165452 
165453 TYPE t_array_source_3 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
165454 TYPE t_array_source_4 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
165455 TYPE t_array_source_5 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
165459 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
165456 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
165457 TYPE t_array_source_7 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
165458 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165460 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
165461 TYPE t_array_source_13 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
165462 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
165463 TYPE t_array_source_19 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
165464 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
165465 TYPE t_array_source_21 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
165466 TYPE t_array_source_22 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
165467 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
165468 TYPE t_array_source_24 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
165469 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
165470 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
165471 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
165472 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
165473 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
165474 TYPE t_array_source_37 IS TABLE OF FV_XLA_PAYMENTS_V.FEDERAL_DIT_CONFIRM_ACCT%TYPE INDEX BY BINARY_INTEGER;
165475 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
165476 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
165477 TYPE t_array_source_44 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
165478 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
165479 TYPE t_array_source_57 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
165480 TYPE t_array_source_88 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
165481 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
165482 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
165483 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165484 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
165485 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
165486 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
165487 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165488 TYPE t_array_source_125 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
165489 TYPE t_array_source_126 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
165490 TYPE t_array_source_170 IS TABLE OF FV_XLA_PAYMENTS_V.FEDERAL_DIT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165491 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
165492 TYPE t_array_source_176 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
165493 TYPE t_array_source_177 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
165494 
165495 TYPE t_array_source_25 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
165496 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
165497 TYPE t_array_source_29 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
165498 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
165499 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
165500 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
165501 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
165502 TYPE t_array_source_49 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
165503 TYPE t_array_source_50 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_EXPIRED_STATUS%TYPE INDEX BY BINARY_INTEGER;
165504 TYPE t_array_source_51 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_FUND_CAT_DESC%TYPE INDEX BY BINARY_INTEGER;
165505 TYPE t_array_source_52 IS TABLE OF FV_XLA_AP_REF_V.FEDERAL_PRIOR_YEAR_FLAG%TYPE INDEX BY BINARY_INTEGER;
165506 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165507 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165508 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_PAYMENT_STATUS_FLAG%TYPE INDEX BY BINARY_INTEGER;
165509 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
165510 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
165511 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
165515 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165512 TYPE t_array_source_72 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165513 TYPE t_array_source_85 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165514 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
165516 TYPE t_array_source_93 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
165517 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
165518 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
165519 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
165520 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165521 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
165522 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
165523 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165524 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165525 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165526 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165527 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165528 TYPE t_array_source_127 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165529 TYPE t_array_source_140 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
165530 TYPE t_array_source_141 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
165531 TYPE t_array_source_146 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
165532 TYPE t_array_source_147 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
165533 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165534 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165535 TYPE t_array_source_161 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165536 TYPE t_array_source_166 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
165537 
165538 l_array_source_3              t_array_source_3;
165539 l_array_source_4              t_array_source_4;
165540 l_array_source_5              t_array_source_5;
165541 l_array_source_6              t_array_source_6;
165542 l_array_source_7              t_array_source_7;
165543 l_array_source_8              t_array_source_8;
165544 l_array_source_10              t_array_source_10;
165545 l_array_source_10_meaning      t_array_lookup_meaning;
165546 l_array_source_12              t_array_source_12;
165547 l_array_source_13              t_array_source_13;
165548 l_array_source_14              t_array_source_14;
165549 l_array_source_14_meaning      t_array_lookup_meaning;
165550 l_array_source_19              t_array_source_19;
165551 l_array_source_20              t_array_source_20;
165552 l_array_source_20_meaning      t_array_lookup_meaning;
165553 l_array_source_21              t_array_source_21;
165554 l_array_source_22              t_array_source_22;
165555 l_array_source_23              t_array_source_23;
165556 l_array_source_24              t_array_source_24;
165557 l_array_source_30              t_array_source_30;
165558 l_array_source_31              t_array_source_31;
165559 l_array_source_32              t_array_source_32;
165560 l_array_source_33              t_array_source_33;
165561 l_array_source_34              t_array_source_34;
165562 l_array_source_37              t_array_source_37;
165563 l_array_source_40              t_array_source_40;
165564 l_array_source_43              t_array_source_43;
165565 l_array_source_43_meaning      t_array_lookup_meaning;
165566 l_array_source_44              t_array_source_44;
165567 l_array_source_45              t_array_source_45;
165568 l_array_source_57              t_array_source_57;
165569 l_array_source_88              t_array_source_88;
165570 l_array_source_113              t_array_source_113;
165571 l_array_source_114              t_array_source_114;
165572 l_array_source_116              t_array_source_116;
165573 l_array_source_116_meaning      t_array_lookup_meaning;
165574 l_array_source_117              t_array_source_117;
165575 l_array_source_120              t_array_source_120;
165576 l_array_source_121              t_array_source_121;
165577 l_array_source_122              t_array_source_122;
165578 l_array_source_125              t_array_source_125;
165579 l_array_source_125_meaning      t_array_lookup_meaning;
165580 l_array_source_126              t_array_source_126;
165581 l_array_source_170              t_array_source_170;
165582 l_array_source_175              t_array_source_175;
165583 l_array_source_176              t_array_source_176;
165584 l_array_source_177              t_array_source_177;
165585 l_array_source_177_meaning      t_array_lookup_meaning;
165586 
165587 l_array_source_25      t_array_source_25;
165588 l_array_source_28      t_array_source_28;
165589 l_array_source_28_meaning      t_array_lookup_meaning;
165590 l_array_source_29      t_array_source_29;
165591 l_array_source_39      t_array_source_39;
165592 l_array_source_41      t_array_source_41;
165593 l_array_source_42      t_array_source_42;
165594 l_array_source_48      t_array_source_48;
165595 l_array_source_49      t_array_source_49;
165596 l_array_source_50      t_array_source_50;
165597 l_array_source_51      t_array_source_51;
165598 l_array_source_52      t_array_source_52;
165602 l_array_source_55      t_array_source_55;
165599 l_array_source_53      t_array_source_53;
165600 l_array_source_54      t_array_source_54;
165601 l_array_source_54_meaning      t_array_lookup_meaning;
165603 l_array_source_56      t_array_source_56;
165604 l_array_source_56_meaning      t_array_lookup_meaning;
165605 l_array_source_58      t_array_source_58;
165606 l_array_source_60      t_array_source_60;
165607 l_array_source_72      t_array_source_72;
165608 l_array_source_85      t_array_source_85;
165609 l_array_source_85_meaning      t_array_lookup_meaning;
165610 l_array_source_91      t_array_source_91;
165611 l_array_source_92      t_array_source_92;
165612 l_array_source_93      t_array_source_93;
165613 l_array_source_96      t_array_source_96;
165614 l_array_source_97      t_array_source_97;
165615 l_array_source_98      t_array_source_98;
165616 l_array_source_99      t_array_source_99;
165617 l_array_source_100      t_array_source_100;
165618 l_array_source_101      t_array_source_101;
165619 l_array_source_101_meaning      t_array_lookup_meaning;
165620 l_array_source_102      t_array_source_102;
165621 l_array_source_107      t_array_source_107;
165622 l_array_source_115      t_array_source_115;
165623 l_array_source_118      t_array_source_118;
165624 l_array_source_119      t_array_source_119;
165625 l_array_source_127      t_array_source_127;
165626 l_array_source_140      t_array_source_140;
165627 l_array_source_140_meaning      t_array_lookup_meaning;
165628 l_array_source_141      t_array_source_141;
165629 l_array_source_146      t_array_source_146;
165630 l_array_source_147      t_array_source_147;
165631 l_array_source_148      t_array_source_148;
165632 l_array_source_156      t_array_source_156;
165633 l_array_source_161      t_array_source_161;
165634 l_array_source_166      t_array_source_166;
165635 l_array_source_166_meaning      t_array_lookup_meaning;
165636 
165637 --
165638 CURSOR header_cur
165639 IS
165640 SELECT /*+ leading(xet) cardinality(xet,1) */
165641 -- Event Class Code: PAYMENTS
165642     xet.entity_id
165643    ,xet.legal_entity_id
165644    ,xet.entity_code
165645    ,xet.transaction_number
165646    ,xet.event_id
165647    ,xet.event_class_code
165648    ,xet.event_type_code
165649    ,xet.event_number
165650    ,xet.event_date
165651    ,xet.transaction_date
165652    ,xet.reference_num_1
165653    ,xet.reference_num_2
165654    ,xet.reference_num_3
165655    ,xet.reference_num_4
165656    ,xet.reference_char_1
165657    ,xet.reference_char_2
165658    ,xet.reference_char_3
165659    ,xet.reference_char_4
165660    ,xet.reference_date_1
165661    ,xet.reference_date_2
165662    ,xet.reference_date_3
165663    ,xet.reference_date_4
165664    ,xet.event_created_by
165665    ,xet.budgetary_control_flag 
165666   , h2.DOC_SEQUENCE_NAME    source_3
165667   , h2.AC_DOC_SEQUENCE_VALUE    source_4
165668   , h2.PAYMENT_TRANSACTION_NUMBER    source_5
165669   , h2.AC_CHECK_DATE    source_6
165670   , h2.CBA_BANK_ACCOUNT_NAME    source_7
165671   , h2.AC_CURRENCY_CODE    source_8
165672   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
165673   , fvl10.meaning   source_10_meaning
165674   , h2.CGAC_AP_ASSET_CCID    source_12
165675   , h3.FSP_DISC_TAKEN_CCID    source_13
165676   , h3.ASP_DISCOUNT_DIST_METHOD    source_14
165677   , fvl14.meaning   source_14_meaning
165678   , h2.CGAC_FUTURE_DATED_PMT_CCID    source_19
165679   , h3.ASP_FD_PMT_ACCT_SOURCE    source_20
165680   , fvl20.meaning   source_20_meaning
165681   , h3.FSP_FUTURE_DATED_PAYMENT_CCID    source_21
165682   , h2.POS_FDP_CCID    source_22
165683   , h3.ASP_INTEREST_CCID    source_23
165684   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_24
165685   , h2.CGAC_CASH_CLEARING_CCID    source_30
165686   , h2.CGAC_GAIN_CCID    source_31
165687   , h3.ASP_GAIN_CCID    source_32
165688   , h2.CGAC_LOSS_CCID    source_33
165689   , h3.ASP_LOSS_CCID    source_34
165690   , h5.FEDERAL_DIT_CONFIRM_ACCT    source_37
165691   , h3.ASP_DISC_TAKEN_CCID    source_40
165692   , h3.ASP_AUTO_OFFSET_FLAG    source_43
165693   , fvl43.meaning   source_43_meaning
165694   , h2.PAYCARD_ACCRUED_ACCOUNT_CCID    source_44
165695   , h3.ASP_ROUNDING_ERROR_CCID    source_45
165696   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_57
165697   , h2.THIRD_PARTY_TYPE    source_88
165698   , h2.AC_VENDOR_ID    source_113
165699   , h2.AC_VENDOR_SITE_ID    source_114
165700   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_116
165701   , fvl116.meaning   source_116_meaning
165702   , h2.AC_FUTURE_PAY_DUE_DATE    source_117
165703   , h2.AC_EXCHANGE_DATE    source_120
165704   , h2.AC_EXCHANGE_RATE    source_121
165705   , h2.AC_EXCHANGE_RATE_TYPE    source_122
165706   , h2.PAYMENT_TYPE    source_125
165707   , fvl125.meaning   source_125_meaning
165708   , h2.PAYMENT_PROCESSING_TYPE    source_126
165709   , h5.FEDERAL_DIT_FLAG    source_170
165710   , h2.AC_DOC_CATEGORY_CODE    source_175
165711   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_176
165712   , h2.TRANSAC_REVERSAL_FLAG    source_177
165713   , fvl177.meaning   source_177_meaning
165714   FROM xla_events_gt     xet 
165715   , AP_PAYMENT_EXTRACT_HEADER_V  h2
165716   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
165717   , FV_XLA_PAYMENTS_V  h5
165718   , fnd_lookup_values    fvl10
165719   , fnd_lookup_values    fvl14
165720   , fnd_lookup_values    fvl20
165721   , fnd_lookup_values    fvl43
165722   , fnd_lookup_values    fvl116
165723   , fnd_lookup_values    fvl125
165724   , fnd_lookup_values    fvl177
165725  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
165726    and xet.event_class_code = C_EVENT_CLASS_CODE
165727    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
165728  AND h3.asp_org_id = h2.ac_org_id AND h5.federal_org_id=h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
165729   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
165730   AND fvl10.view_application_id(+) = 200
165731   AND fvl10.language(+)            = USERENV('LANG')
165735   AND fvl14.language(+)            = USERENV('LANG')
165732      AND fvl14.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
165733   AND fvl14.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
165734   AND fvl14.view_application_id(+) = 200
165736      AND fvl20.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
165737   AND fvl20.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
165738   AND fvl20.view_application_id(+) = 200
165739   AND fvl20.language(+)            = USERENV('LANG')
165740      AND fvl43.lookup_type(+)         = 'YES_NO'
165741   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
165742   AND fvl43.view_application_id(+) = 0
165743   AND fvl43.language(+)            = USERENV('LANG')
165744      AND fvl116.lookup_type(+)         = 'YES_NO'
165745   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
165746   AND fvl116.view_application_id(+) = 0
165747   AND fvl116.language(+)            = USERENV('LANG')
165748      AND fvl125.lookup_type(+)         = 'PAYMENT TYPE'
165749   AND fvl125.lookup_code(+)         = h2.PAYMENT_TYPE
165750   AND fvl125.view_application_id(+) = 200
165751   AND fvl125.language(+)            = USERENV('LANG')
165752      AND fvl177.lookup_type(+)         = 'YES_NO'
165753   AND fvl177.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
165754   AND fvl177.view_application_id(+) = 0
165755   AND fvl177.language(+)            = USERENV('LANG')
165756   
165757  ORDER BY event_id
165758 ;
165759 
165760 
165761 --
165762 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
165763 IS
165764 SELECT  /*+ leading(xet) cardinality(xet,1) */
165765 -- Event Class Code: PAYMENTS
165766     xet.entity_id
165767    ,xet.legal_entity_id
165768    ,xet.entity_code
165769    ,xet.transaction_number
165770    ,xet.event_id
165771    ,xet.event_class_code
165772    ,xet.event_type_code
165773    ,xet.event_number
165774    ,xet.event_date
165775    ,xet.transaction_date
165776    ,xet.reference_num_1
165777    ,xet.reference_num_2
165778    ,xet.reference_num_3
165779    ,xet.reference_num_4
165780    ,xet.reference_char_1
165781    ,xet.reference_char_2
165782    ,xet.reference_char_3
165783    ,xet.reference_char_4
165784    ,xet.reference_date_1
165785    ,xet.reference_date_2
165786    ,xet.reference_date_3
165787    ,xet.reference_date_4
165788    ,xet.event_created_by
165789    ,xet.budgetary_control_flag
165790  , l1.LINE_NUMBER  
165791   , l1.AID_DIST_CCID    source_25
165792   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
165793   , fvl28.meaning   source_28_meaning
165794   , l1.AI_ACCTS_PAY_CCID    source_29
165795   , l1.AWT_RELATED_DIST_ACCOUNT    source_39
165796   , l1.POD_CCID    source_41
165797   , l1.PO_VARIANCE_ACCOUNT    source_42
165798   , l6.TAX_ACCOUNT_CCID    source_48
165799   , l4.FEDERAL_FUND_CATEGORY    source_49
165800   , l4.FEDERAL_FUND_EXPIRED_STATUS    source_50
165801   , l4.FEDERAL_FUND_CAT_DESC    source_51
165802   , l4.FEDERAL_PRIOR_YEAR_FLAG    source_52
165803   , l1.ENCUMBRANCE_AMOUNT    source_53
165804   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_54
165805   , fvl54.meaning   source_54_meaning
165806   , l1.AI_PAYMENT_STATUS_FLAG    source_55
165807   , l1.AI_INVOICE_TYPE_PAID    source_56
165808   , fvl56.meaning   source_56_meaning
165809   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
165810   , l1.DISTRIBUTION_LINK_TYPE    source_60
165811   , l1.AI_INVOICE_CURRENCY_CODE    source_72
165812   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
165813   , fvl85.meaning   source_85_meaning
165814   , l6.TAX_LINE_ID    source_91
165815   , l7.REC_NREC_TAX_DIST_ID    source_92
165816   , l6.SUMMARY_TAX_LINE_ID    source_93
165817   , l1.BUS_FLOW_AP_APP_ID    source_96
165818   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
165819   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
165820   , l1.BUS_FLOW_INV_DIST_ID    source_99
165821   , l1.BUS_FLOW_INV_ID    source_100
165822   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_101
165823   , fvl101.meaning   source_101_meaning
165824   , l1.APHD_AMOUNT    source_102
165825   , l1.APHD_PAYMENT_HIST_DIST_ID    source_107
165826   , l1.APHD_REV_PAY_HIST_DIST_ID    source_115
165827   , l1.APHD_PAYMENT_BASE_AMT    source_118
165828   , l1.APHD_INVOICE_BASE_AMT    source_119
165829   , l1.APHD_INVOICE_DIST_AMOUNT    source_127
165830   , l6.DEF_REC_SETTLEMENT_OPTION_CODE    source_140
165831   , fvl140.meaning   source_140_meaning
165832   , l1.AWT_RELATED_DIST_TYPE    source_141
165833   , l1.INV_EXCHANGE_DATE    source_146
165834   , l1.INV_EXCHANGE_RATE    source_147
165835   , l1.INV_EXCHANGE_RATE_TYPE    source_148
165836   , l1.INV_PMT_BASE_AMT_DIFF    source_156
165837   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_161
165838   , l1.AWT_AT_PMT_TIME    source_166
165839   , fvl166.meaning   source_166_meaning
165840   FROM xla_events_gt     xet 
165841   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
165842   , FV_XLA_AP_REF_V  l4
165843   , ZX_AP_DEF_TAX_EXTRACT_V  l6
165844   , ZX_AP_TAX_JRNL_LINE_DESC_V  l7
165845   , fnd_lookup_values    fvl28
165846   , fnd_lookup_values    fvl54
165847   , fnd_lookup_values    fvl56
165848   , fnd_lookup_values    fvl85
165849   , fnd_lookup_values    fvl101
165850   , fnd_lookup_values    fvl140
165851   , fnd_lookup_values    fvl166
165852  WHERE xet.event_id between x_first_event_id and x_last_event_id
165853    and xet.event_date between p_pad_start_date and p_pad_end_date
165854    and xet.event_class_code = C_EVENT_CLASS_CODE
165855    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
165856  AND l4.federal_event_id  (+) = l1.event_id  AND l4.federal_line_number  (+) = l1.line_number AND l1.AID_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l7.REC_NREC_TAX_DIST_ID (+)    AND fvl28.lookup_type(+)         = 
165857 'INVOICE DISTRIBUTION TYPE'
165858   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
165859   AND fvl28.view_application_id(+) = 200
165860   AND fvl28.language(+)            = USERENV('LANG')
165864   AND fvl54.language(+)            = USERENV('LANG')
165861      AND fvl54.lookup_type(+)         = 'YES_NO'
165862   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
165863   AND fvl54.view_application_id(+) = 0
165865      AND fvl56.lookup_type(+)         = 'INVOICE TYPE'
165866   AND fvl56.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
165867   AND fvl56.view_application_id(+) = 200
165868   AND fvl56.language(+)            = USERENV('LANG')
165869      AND fvl85.lookup_type(+)         = 'YES_NO'
165870   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
165871   AND fvl85.view_application_id(+) = 0
165872   AND fvl85.language(+)            = USERENV('LANG')
165873      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
165874   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
165875   AND fvl101.view_application_id(+) = 200
165876   AND fvl101.language(+)            = USERENV('LANG')
165877      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
165878   AND fvl140.lookup_code(+)         = l6.DEF_REC_SETTLEMENT_OPTION_CODE
165879   AND fvl140.view_application_id(+) = 0
165880   AND fvl140.language(+)            = USERENV('LANG')
165881      AND fvl166.lookup_type(+)         = 'YES_NO'
165882   AND fvl166.lookup_code(+)         = l1.AWT_AT_PMT_TIME
165883   AND fvl166.view_application_id(+) = 0
165884   AND fvl166.language(+)            = USERENV('LANG')
165885   ;
165886 
165887 --
165888 BEGIN
165889 IF g_log_enabled THEN
165890    l_log_module := C_DEFAULT_MODULE||'.EventClass_252';
165891 END IF;
165892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165893    trace
165894       (p_msg      => 'BEGIN of EventClass_252'
165895       ,p_level    => C_LEVEL_PROCEDURE
165896       ,p_module   => l_log_module);
165897 END IF;
165898 
165899 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165900    trace
165901       (p_msg      => 'p_application_id = '||p_application_id||
165902                      ' - p_base_ledger_id = '||p_base_ledger_id||
165903                      ' - p_target_ledger_id  = '||p_target_ledger_id||
165904                      ' - p_language = '||p_language||
165905                      ' - p_currency_code = '||p_currency_code||
165906                      ' - p_sla_ledger_id = '||p_sla_ledger_id
165907       ,p_level    => C_LEVEL_STATEMENT
165908       ,p_module   => l_log_module);
165909 END IF;
165910 --
165911 -- initialze arrays
165912 --
165913 g_array_event.DELETE;
165914 l_rec_array_event := l_null_rec_array_event;
165915 --
165916 --------------------------------------
165917 -- 4262811 Initialze MPA Line Number
165918 --------------------------------------
165919 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
165920 
165921 --
165922 
165923 --
165924 OPEN header_cur;
165925 --
165926 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165927    trace
165928    (p_msg      => 'SQL - FETCH header_cur'
165929    ,p_level    => C_LEVEL_STATEMENT
165930    ,p_module   => l_log_module);
165931 END IF;
165932 --
165933 LOOP
165934 FETCH header_cur BULK COLLECT INTO
165935         l_array_entity_id
165936       , l_array_legal_entity_id
165937       , l_array_entity_code
165938       , l_array_transaction_num
165939       , l_array_event_id
165940       , l_array_class_code
165941       , l_array_event_type
165942       , l_array_event_number
165943       , l_array_event_date
165944       , l_array_transaction_date
165945       , l_array_reference_num_1
165946       , l_array_reference_num_2
165947       , l_array_reference_num_3
165948       , l_array_reference_num_4
165949       , l_array_reference_char_1
165950       , l_array_reference_char_2
165951       , l_array_reference_char_3
165952       , l_array_reference_char_4
165953       , l_array_reference_date_1
165954       , l_array_reference_date_2
165955       , l_array_reference_date_3
165956       , l_array_reference_date_4
165957       , l_array_event_created_by
165958       , l_array_budgetary_control_flag 
165959       , l_array_source_3
165960       , l_array_source_4
165961       , l_array_source_5
165962       , l_array_source_6
165963       , l_array_source_7
165964       , l_array_source_8
165965       , l_array_source_10
165966       , l_array_source_10_meaning
165967       , l_array_source_12
165968       , l_array_source_13
165969       , l_array_source_14
165970       , l_array_source_14_meaning
165971       , l_array_source_19
165972       , l_array_source_20
165973       , l_array_source_20_meaning
165974       , l_array_source_21
165975       , l_array_source_22
165976       , l_array_source_23
165977       , l_array_source_24
165978       , l_array_source_30
165979       , l_array_source_31
165980       , l_array_source_32
165981       , l_array_source_33
165982       , l_array_source_34
165983       , l_array_source_37
165984       , l_array_source_40
165985       , l_array_source_43
165986       , l_array_source_43_meaning
165987       , l_array_source_44
165988       , l_array_source_45
165989       , l_array_source_57
165990       , l_array_source_88
165991       , l_array_source_113
165992       , l_array_source_114
165993       , l_array_source_116
165994       , l_array_source_116_meaning
165995       , l_array_source_117
165996       , l_array_source_120
165997       , l_array_source_121
165998       , l_array_source_122
165999       , l_array_source_125
166000       , l_array_source_125_meaning
166001       , l_array_source_126
166002       , l_array_source_170
166003       , l_array_source_175
166004       , l_array_source_176
166005       , l_array_source_177
166006       , l_array_source_177_meaning
166007       LIMIT l_rows;
166008 --
166009 IF (C_LEVEL_EVENT >= g_log_level) THEN
166010    trace
166011    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
166012    ,p_level    => C_LEVEL_EVENT
166016 EXIT WHEN l_array_entity_id.COUNT = 0;
166013    ,p_module   => l_log_module);
166014 END IF;
166015 --
166017 
166018 -- initialize arrays
166019 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
166020 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
166021 
166022 --
166023 -- Bug 4458708
166024 --
166025 XLA_AE_LINES_PKG.g_LineNumber := 0;
166026 
166027 
166028 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
166029 g_last_hdr_idx := l_array_event_id.LAST;
166030 --
166031 -- loop for the headers. Each iteration is for each header extract row
166032 -- fetched in header cursor
166033 --
166034 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
166035 
166036 --
166037 -- set event info as cache for other routines to refer event attributes
166038 --
166039 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
166040    (p_application_id           => p_application_id
166041    ,p_primary_ledger_id        => p_primary_ledger_id
166042    ,p_base_ledger_id           => p_base_ledger_id
166043    ,p_target_ledger_id         => p_target_ledger_id
166044    ,p_entity_id                => l_array_entity_id(hdr_idx)
166045    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
166046    ,p_entity_code              => l_array_entity_code(hdr_idx)
166047    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
166048    ,p_event_id                 => l_array_event_id(hdr_idx)
166049    ,p_event_class_code         => l_array_class_code(hdr_idx)
166050    ,p_event_type_code          => l_array_event_type(hdr_idx)
166051    ,p_event_number             => l_array_event_number(hdr_idx)
166052    ,p_event_date               => l_array_event_date(hdr_idx)
166053    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
166054    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
166055    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
166056    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
166057    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
166058    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
166059    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
166060    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
166061    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
166062    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
166063    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
166064    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
166065    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
166066    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
166067    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
166068 
166069 --
166070 -- set the status of entry to C_VALID (0)
166071 --
166072 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
166073 
166074 --
166075 -- initialize a row for ae header
166076 --
166077 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
166078 
166079 l_event_id := l_array_event_id(hdr_idx);
166080 
166081 --
166082 -- storing the hdr_idx for event. May be used by line cursor.
166083 --
166084 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
166085 
166086 --
166087 -- store sources from header extract. This can be improved to
166088 -- store only those sources from header extract that may be used in lines
166089 --
166090 
166091 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
166092 g_array_event(l_event_id).array_value_num('source_4') := l_array_source_4(hdr_idx);
166093 g_array_event(l_event_id).array_value_num('source_5') := l_array_source_5(hdr_idx);
166094 g_array_event(l_event_id).array_value_date('source_6') := l_array_source_6(hdr_idx);
166095 g_array_event(l_event_id).array_value_char('source_7') := l_array_source_7(hdr_idx);
166096 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
166097 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
166098 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
166099 g_array_event(l_event_id).array_value_num('source_12') := l_array_source_12(hdr_idx);
166100 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
166101 g_array_event(l_event_id).array_value_char('source_14') := l_array_source_14(hdr_idx);
166102 g_array_event(l_event_id).array_value_char('source_14_meaning') := l_array_source_14_meaning(hdr_idx);
166103 g_array_event(l_event_id).array_value_num('source_19') := l_array_source_19(hdr_idx);
166104 g_array_event(l_event_id).array_value_char('source_20') := l_array_source_20(hdr_idx);
166105 g_array_event(l_event_id).array_value_char('source_20_meaning') := l_array_source_20_meaning(hdr_idx);
166106 g_array_event(l_event_id).array_value_num('source_21') := l_array_source_21(hdr_idx);
166107 g_array_event(l_event_id).array_value_num('source_22') := l_array_source_22(hdr_idx);
166108 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
166109 g_array_event(l_event_id).array_value_char('source_24') := l_array_source_24(hdr_idx);
166110 g_array_event(l_event_id).array_value_num('source_30') := l_array_source_30(hdr_idx);
166111 g_array_event(l_event_id).array_value_num('source_31') := l_array_source_31(hdr_idx);
166112 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
166113 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
166114 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
166115 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
166116 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
166117 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
166118 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
166122 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
166119 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
166120 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
166121 g_array_event(l_event_id).array_value_char('source_57') := l_array_source_57(hdr_idx);
166123 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
166124 g_array_event(l_event_id).array_value_num('source_114') := l_array_source_114(hdr_idx);
166125 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
166126 g_array_event(l_event_id).array_value_char('source_116_meaning') := l_array_source_116_meaning(hdr_idx);
166127 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
166128 g_array_event(l_event_id).array_value_date('source_120') := l_array_source_120(hdr_idx);
166129 g_array_event(l_event_id).array_value_num('source_121') := l_array_source_121(hdr_idx);
166130 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
166131 g_array_event(l_event_id).array_value_char('source_125') := l_array_source_125(hdr_idx);
166132 g_array_event(l_event_id).array_value_char('source_125_meaning') := l_array_source_125_meaning(hdr_idx);
166133 g_array_event(l_event_id).array_value_char('source_126') := l_array_source_126(hdr_idx);
166134 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
166135 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
166136 g_array_event(l_event_id).array_value_num('source_176') := l_array_source_176(hdr_idx);
166137 g_array_event(l_event_id).array_value_char('source_177') := l_array_source_177(hdr_idx);
166138 g_array_event(l_event_id).array_value_char('source_177_meaning') := l_array_source_177_meaning(hdr_idx);
166139 
166140 --
166141 -- initilaize the status of ae headers for diffrent balance types
166142 -- the status is initialised to C_NOT_CREATED (2)
166143 --
166144 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166145 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166146 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166147 
166148 --
166149 -- call api to validate and store accounting attributes for header
166150 --
166151 
166152 ------------------------------------------------------------
166153 -- Accrual Reversal : to get date for Standard Source (NONE)
166154 ------------------------------------------------------------
166155 l_acc_rev_gl_date_source := NULL;
166156 
166157      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
166158       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_175');
166159      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
166160       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_176');
166161      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
166162       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_4');
166163      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
166164       l_rec_acct_attrs.array_date_value(4) := 
166165 xla_ae_sources_pkg.GetSystemSourceDate(
166166    p_source_code           => 'XLA_EVENT_DATE'
166167  , p_source_type_code      => 'Y'
166168  , p_source_application_id =>  602
166169 );
166170      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
166171       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_177');
166172 
166173 
166174 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
166175 
166176 XLA_AE_HEADER_PKG.SetJeCategoryName;
166177 
166178 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
166179 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
166180 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
166181 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
166182 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
166183 
166184 
166185 -- No header level analytical criteria
166186 
166187 --
166188 --accounting attribute enhancement, bug 3612931
166189 --
166190 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_177'), 1,30);
166191 
166192 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
166193    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
166194 
166195    xla_accounting_err_pkg.build_message
166196       (p_appli_s_name            => 'XLA'
166197       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
166198       ,p_token_1                 => 'ACCT_ATTR_NAME'
166199       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
166200       ,p_token_2                 => 'PRODUCT_NAME'
166201       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
166202       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
166203       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
166204       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
166205 
166206 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
166207    --
166208    -- following sets the accounting attributes needed to reverse
166209    -- accounting for a distributeion
166210    --
166211    xla_ae_lines_pkg.SetTrxReversalAttrs
166212       (p_event_id              => l_event_id
166213       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
166214       ,p_trx_reversal_source   => l_trx_reversal_source);
166215 
166216 END IF;
166217 
166218 
166219 ----------------------------------------------------------------
166223 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
166220 -- 4262811 -  update the header statuses to invalid in need be
166221 ----------------------------------------------------------------
166222 --
166224 
166225 
166226   -----------------------------------------------
166227   -- No accrual reversal for the event class/type
166228   -----------------------------------------------
166229 ----------------------------------------------------------------
166230 
166231 --
166232 -- this ends the header loop iteration for one bulk fetch
166233 --
166234 END LOOP;
166235 
166236 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
166237 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
166238 
166239 --
166240 -- insert dummy rows into lines gt table that were created due to
166241 -- transaction reversals
166242 --
166243 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
166244    l_result := XLA_AE_LINES_PKG.InsertLines;
166245 END IF;
166246 
166247 --
166248 -- reset the temp_line_num for each set of events fetched from header
166249 -- cursor rather than doing it for each new event in line cursor
166250 -- Bug 3939231
166251 --
166252 xla_ae_lines_pkg.g_temp_line_num := 0;
166253 
166254 
166255 
166256 --
166257 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
166258 --
166259 --
166260 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166261 
166262       trace
166263          (p_msg      => 'SQL - FETCH line_cur'
166264          ,p_level    => C_LEVEL_STATEMENT
166265          ,p_module   => l_log_module);
166266 
166267 END IF;
166268 --
166269 --
166270 LOOP
166271   --
166272   FETCH line_cur BULK COLLECT INTO
166273         l_array_entity_id
166274       , l_array_legal_entity_id
166275       , l_array_entity_code
166276       , l_array_transaction_num
166277       , l_array_event_id
166278       , l_array_class_code
166279       , l_array_event_type
166280       , l_array_event_number
166281       , l_array_event_date
166282       , l_array_transaction_date
166283       , l_array_reference_num_1
166284       , l_array_reference_num_2
166285       , l_array_reference_num_3
166286       , l_array_reference_num_4
166287       , l_array_reference_char_1
166288       , l_array_reference_char_2
166289       , l_array_reference_char_3
166290       , l_array_reference_char_4
166291       , l_array_reference_date_1
166292       , l_array_reference_date_2
166293       , l_array_reference_date_3
166294       , l_array_reference_date_4
166295       , l_array_event_created_by
166296       , l_array_budgetary_control_flag
166297       , l_array_extract_line_num 
166298       , l_array_source_25
166299       , l_array_source_28
166300       , l_array_source_28_meaning
166301       , l_array_source_29
166302       , l_array_source_39
166303       , l_array_source_41
166304       , l_array_source_42
166305       , l_array_source_48
166306       , l_array_source_49
166307       , l_array_source_50
166308       , l_array_source_51
166309       , l_array_source_52
166310       , l_array_source_53
166311       , l_array_source_54
166312       , l_array_source_54_meaning
166313       , l_array_source_55
166314       , l_array_source_56
166315       , l_array_source_56_meaning
166316       , l_array_source_58
166317       , l_array_source_60
166318       , l_array_source_72
166319       , l_array_source_85
166320       , l_array_source_85_meaning
166321       , l_array_source_91
166322       , l_array_source_92
166323       , l_array_source_93
166324       , l_array_source_96
166325       , l_array_source_97
166326       , l_array_source_98
166327       , l_array_source_99
166328       , l_array_source_100
166329       , l_array_source_101
166330       , l_array_source_101_meaning
166331       , l_array_source_102
166332       , l_array_source_107
166333       , l_array_source_115
166334       , l_array_source_118
166335       , l_array_source_119
166336       , l_array_source_127
166337       , l_array_source_140
166338       , l_array_source_140_meaning
166339       , l_array_source_141
166340       , l_array_source_146
166341       , l_array_source_147
166342       , l_array_source_148
166343       , l_array_source_156
166344       , l_array_source_161
166345       , l_array_source_166
166346       , l_array_source_166_meaning
166347       LIMIT l_rows;
166348 
166349   --
166350   IF (C_LEVEL_EVENT >= g_log_level) THEN
166351             trace
166352                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
166353                ,p_level    => C_LEVEL_EVENT
166354                ,p_module   => l_log_module);
166355   END IF;
166356   --
166357   EXIT WHEN l_array_entity_id.count = 0;
166358 
166359   XLA_AE_LINES_PKG.g_rec_lines := null;
166360 
166361 --
166362 -- Bug 4458708
166363 --
166364 XLA_AE_LINES_PKG.g_LineNumber := 0;
166365 --
166366 --
166367 
166368 FOR Idx IN 1..l_array_event_id.count LOOP
166369    --
166370    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
166371    --
166372    l_event_id := l_array_event_id(idx);  -- 5648433
166373 
166374    --
166375    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
166376    --
166377 
166378    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
166379              (g_array_event(l_event_id).array_value_num('header_index'))
166380          ,'N'
166381          ) <> 'Y'
166382    THEN
166383       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166384          trace
166385             (p_msg      => 'Trancaction revesal option is not Y '
166386             ,p_level    => C_LEVEL_STATEMENT
166390 --
166387             ,p_module   => l_log_module);
166388       END IF;
166389 
166391 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
166392 --
166393 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
166394 --
166395 -- set event info as cache for other routines to refer event attributes
166396 --
166397 
166398 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
166399    l_previous_event_id := l_event_id;
166400 
166401    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
166402       (p_application_id           => p_application_id
166403       ,p_primary_ledger_id        => p_primary_ledger_id
166404       ,p_base_ledger_id           => p_base_ledger_id
166405       ,p_target_ledger_id         => p_target_ledger_id
166406       ,p_entity_id                => l_array_entity_id(Idx)
166407       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
166408       ,p_entity_code              => l_array_entity_code(Idx)
166409       ,p_transaction_num          => l_array_transaction_num(Idx)
166410       ,p_event_id                 => l_array_event_id(Idx)
166411       ,p_event_class_code         => l_array_class_code(Idx)
166412       ,p_event_type_code          => l_array_event_type(Idx)
166413       ,p_event_number             => l_array_event_number(Idx)
166414       ,p_event_date               => l_array_event_date(Idx)
166415       ,p_transaction_date         => l_array_transaction_date(Idx)
166416       ,p_reference_num_1          => l_array_reference_num_1(Idx)
166417       ,p_reference_num_2          => l_array_reference_num_2(Idx)
166418       ,p_reference_num_3          => l_array_reference_num_3(Idx)
166419       ,p_reference_num_4          => l_array_reference_num_4(Idx)
166420       ,p_reference_char_1         => l_array_reference_char_1(Idx)
166421       ,p_reference_char_2         => l_array_reference_char_2(Idx)
166422       ,p_reference_char_3         => l_array_reference_char_3(Idx)
166423       ,p_reference_char_4         => l_array_reference_char_4(Idx)
166424       ,p_reference_date_1         => l_array_reference_date_1(Idx)
166425       ,p_reference_date_2         => l_array_reference_date_2(Idx)
166426       ,p_reference_date_3         => l_array_reference_date_3(Idx)
166427       ,p_reference_date_4         => l_array_reference_date_4(Idx)
166428       ,p_event_created_by         => l_array_event_created_by(Idx)
166429       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
166430        --
166431 END IF;
166432 
166433 
166434 
166435 --
166436 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
166437 
166438 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
166439 
166440 IF l_continue_with_lines THEN
166441    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
166442       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
166443 
166444       xla_accounting_err_pkg.build_message
166445          (p_appli_s_name            => 'XLA'
166446          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
166447          ,p_token_1                 => 'LINE_NUMBER'
166448          ,p_value_1                 => l_array_extract_line_num(Idx)
166449          ,p_token_2                 => 'PRODUCT_NAME'
166450          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
166451          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
166452          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
166453          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
166454 
166455    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
166456       --
166457       -- following sets the accounting attributes needed to reverse
166458       -- accounting for a distributeion
166459       --
166460 
166461       --
166462       -- 5217187
166463       --
166464       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
166465       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
166466                                        g_array_event(l_event_id).array_value_num('header_index'));
166467       --
166468       --
166469 
166470       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
166471       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
166472       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
166473       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_107(Idx);
166474       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
166475       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
166476       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
166477       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_88');
166478       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
166479       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_115(Idx);
166480       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
166481       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
166482       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
166483       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_91(Idx);
166484       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
166485       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_92(Idx);
166486       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
166487       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_93(Idx);
166488 
166489 
166490       xla_ae_lines_pkg.SetAcctReversalAttrs
166491          (p_event_id             => l_event_id
166492          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
166493          ,p_calculate_acctd_flag => l_calculate_acctd_flag
166494          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
166495    END IF;
166496 
166500 --
166497    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
166498        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
166499 
166501 AcctLineType_78 (
166502  p_application_id  => p_application_id
166503  ,p_event_id     => l_event_id
166504  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166505  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166506  ,p_actual_flag => l_actual_flag
166507  ,p_balance_type_code => l_balance_type_code
166508  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166509  
166510  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166511  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
166512  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
166513  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
166514  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166515  , p_source_58 => l_array_source_58(Idx)
166516  , p_source_60 => l_array_source_60(Idx)
166517  , p_source_85 => l_array_source_85(Idx)
166518  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166519  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166520  , p_source_91 => l_array_source_91(Idx)
166521  , p_source_92 => l_array_source_92(Idx)
166522  , p_source_93 => l_array_source_93(Idx)
166523  , p_source_96 => l_array_source_96(Idx)
166524  , p_source_97 => l_array_source_97(Idx)
166525  , p_source_98 => l_array_source_98(Idx)
166526  , p_source_99 => l_array_source_99(Idx)
166527  , p_source_100 => l_array_source_100(Idx)
166528  , p_source_101 => l_array_source_101(Idx)
166529  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166530  , p_source_102 => l_array_source_102(Idx)
166531  , p_source_107 => l_array_source_107(Idx)
166532  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166533  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166534  , p_source_115 => l_array_source_115(Idx)
166535  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166536  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166537  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166538  , p_source_118 => l_array_source_118(Idx)
166539  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166540  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166541  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166542  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166543  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166544  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166545  , p_source_127 => l_array_source_127(Idx)
166546  );
166547 If(l_balance_type_code = 'A') THEN
166548   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166549 END IF;
166550 
166551 --
166552 
166553 
166554 --
166555 AcctLineType_79 (
166556  p_application_id  => p_application_id
166557  ,p_event_id     => l_event_id
166558  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166559  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166560  ,p_actual_flag => l_actual_flag
166561  ,p_balance_type_code => l_balance_type_code
166562  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166563  
166564  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166565  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
166566  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
166567  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
166568  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166569  , p_source_58 => l_array_source_58(Idx)
166570  , p_source_60 => l_array_source_60(Idx)
166571  , p_source_85 => l_array_source_85(Idx)
166572  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166573  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166574  , p_source_91 => l_array_source_91(Idx)
166575  , p_source_92 => l_array_source_92(Idx)
166576  , p_source_93 => l_array_source_93(Idx)
166577  , p_source_96 => l_array_source_96(Idx)
166578  , p_source_97 => l_array_source_97(Idx)
166579  , p_source_98 => l_array_source_98(Idx)
166580  , p_source_99 => l_array_source_99(Idx)
166581  , p_source_100 => l_array_source_100(Idx)
166582  , p_source_101 => l_array_source_101(Idx)
166583  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166584  , p_source_102 => l_array_source_102(Idx)
166585  , p_source_107 => l_array_source_107(Idx)
166586  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166587  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166588  , p_source_115 => l_array_source_115(Idx)
166589  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166590  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166591  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166592  , p_source_118 => l_array_source_118(Idx)
166593  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166594  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166595  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166596  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166597  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166598  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166599  , p_source_127 => l_array_source_127(Idx)
166600  );
166601 If(l_balance_type_code = 'A') THEN
166602   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166603 END IF;
166604 
166605 --
166606 
166607 
166608 --
166609 AcctLineType_80 (
166610  p_application_id  => p_application_id
166611  ,p_event_id     => l_event_id
166612  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166616  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166613  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166614  ,p_actual_flag => l_actual_flag
166615  ,p_balance_type_code => l_balance_type_code
166617  
166618  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166619  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
166620  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
166621  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
166622  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166623  , p_source_58 => l_array_source_58(Idx)
166624  , p_source_60 => l_array_source_60(Idx)
166625  , p_source_85 => l_array_source_85(Idx)
166626  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166627  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166628  , p_source_91 => l_array_source_91(Idx)
166629  , p_source_92 => l_array_source_92(Idx)
166630  , p_source_93 => l_array_source_93(Idx)
166631  , p_source_96 => l_array_source_96(Idx)
166632  , p_source_97 => l_array_source_97(Idx)
166633  , p_source_98 => l_array_source_98(Idx)
166634  , p_source_99 => l_array_source_99(Idx)
166635  , p_source_100 => l_array_source_100(Idx)
166636  , p_source_101 => l_array_source_101(Idx)
166637  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166638  , p_source_102 => l_array_source_102(Idx)
166639  , p_source_107 => l_array_source_107(Idx)
166640  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166641  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166642  , p_source_115 => l_array_source_115(Idx)
166643  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166644  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166645  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166646  , p_source_118 => l_array_source_118(Idx)
166647  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166648  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166649  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166650  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166651  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166652  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166653  , p_source_127 => l_array_source_127(Idx)
166654  );
166655 If(l_balance_type_code = 'A') THEN
166656   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166657 END IF;
166658 
166659 --
166660 
166661 
166662 --
166663 AcctLineType_81 (
166664  p_application_id  => p_application_id
166665  ,p_event_id     => l_event_id
166666  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166667  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166668  ,p_actual_flag => l_actual_flag
166669  ,p_balance_type_code => l_balance_type_code
166670  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166671  
166672  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166673  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
166674  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
166675  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
166676  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166677  , p_source_58 => l_array_source_58(Idx)
166678  , p_source_60 => l_array_source_60(Idx)
166679  , p_source_85 => l_array_source_85(Idx)
166680  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166681  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166682  , p_source_91 => l_array_source_91(Idx)
166683  , p_source_92 => l_array_source_92(Idx)
166684  , p_source_93 => l_array_source_93(Idx)
166685  , p_source_96 => l_array_source_96(Idx)
166686  , p_source_97 => l_array_source_97(Idx)
166687  , p_source_98 => l_array_source_98(Idx)
166688  , p_source_99 => l_array_source_99(Idx)
166689  , p_source_100 => l_array_source_100(Idx)
166690  , p_source_101 => l_array_source_101(Idx)
166691  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166692  , p_source_102 => l_array_source_102(Idx)
166693  , p_source_107 => l_array_source_107(Idx)
166694  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166695  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166696  , p_source_115 => l_array_source_115(Idx)
166697  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166698  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166699  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166700  , p_source_119 => l_array_source_119(Idx)
166701  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166702  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166703  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166704  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166705  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166706  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166707  , p_source_127 => l_array_source_127(Idx)
166708  );
166709 If(l_balance_type_code = 'A') THEN
166710   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166711 END IF;
166712 
166713 --
166714 
166715 
166716 --
166717 AcctLineType_82 (
166718  p_application_id  => p_application_id
166719  ,p_event_id     => l_event_id
166720  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166721  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166722  ,p_actual_flag => l_actual_flag
166723  ,p_balance_type_code => l_balance_type_code
166724  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166725  
166726  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166727  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
166731  , p_source_58 => l_array_source_58(Idx)
166728  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
166729  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
166730  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166732  , p_source_60 => l_array_source_60(Idx)
166733  , p_source_85 => l_array_source_85(Idx)
166734  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166735  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166736  , p_source_91 => l_array_source_91(Idx)
166737  , p_source_92 => l_array_source_92(Idx)
166738  , p_source_93 => l_array_source_93(Idx)
166739  , p_source_96 => l_array_source_96(Idx)
166740  , p_source_97 => l_array_source_97(Idx)
166741  , p_source_98 => l_array_source_98(Idx)
166742  , p_source_99 => l_array_source_99(Idx)
166743  , p_source_100 => l_array_source_100(Idx)
166744  , p_source_101 => l_array_source_101(Idx)
166745  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166746  , p_source_102 => l_array_source_102(Idx)
166747  , p_source_107 => l_array_source_107(Idx)
166748  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166749  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166750  , p_source_115 => l_array_source_115(Idx)
166751  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166752  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166753  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166754  , p_source_119 => l_array_source_119(Idx)
166755  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166756  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166757  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166758  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166759  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166760  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166761  , p_source_127 => l_array_source_127(Idx)
166762  );
166763 If(l_balance_type_code = 'A') THEN
166764   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166765 END IF;
166766 
166767 --
166768 
166769 
166770 --
166771 AcctLineType_83 (
166772  p_application_id  => p_application_id
166773  ,p_event_id     => l_event_id
166774  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166775  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166776  ,p_actual_flag => l_actual_flag
166777  ,p_balance_type_code => l_balance_type_code
166778  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166779  
166780  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166781  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
166782  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
166783  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
166784  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166785  , p_source_58 => l_array_source_58(Idx)
166786  , p_source_60 => l_array_source_60(Idx)
166787  , p_source_85 => l_array_source_85(Idx)
166788  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166789  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166790  , p_source_91 => l_array_source_91(Idx)
166791  , p_source_92 => l_array_source_92(Idx)
166792  , p_source_93 => l_array_source_93(Idx)
166793  , p_source_96 => l_array_source_96(Idx)
166794  , p_source_97 => l_array_source_97(Idx)
166795  , p_source_98 => l_array_source_98(Idx)
166796  , p_source_99 => l_array_source_99(Idx)
166797  , p_source_100 => l_array_source_100(Idx)
166798  , p_source_101 => l_array_source_101(Idx)
166799  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166800  , p_source_102 => l_array_source_102(Idx)
166801  , p_source_107 => l_array_source_107(Idx)
166802  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166803  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166804  , p_source_115 => l_array_source_115(Idx)
166805  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166806  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166807  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166808  , p_source_119 => l_array_source_119(Idx)
166809  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166810  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166811  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166812  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166813  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166814  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166815  , p_source_127 => l_array_source_127(Idx)
166816  );
166817 If(l_balance_type_code = 'A') THEN
166818   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166819 END IF;
166820 
166821 --
166822 
166823 
166824 --
166825 AcctLineType_94 (
166826  p_application_id  => p_application_id
166827  ,p_event_id     => l_event_id
166828  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166829  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166830  ,p_actual_flag => l_actual_flag
166831  ,p_balance_type_code => l_balance_type_code
166832  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166833  
166834  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166835  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
166836  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
166837  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
166838  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166839  , p_source_58 => l_array_source_58(Idx)
166840  , p_source_60 => l_array_source_60(Idx)
166844  , p_source_91 => l_array_source_91(Idx)
166841  , p_source_85 => l_array_source_85(Idx)
166842  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166843  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166845  , p_source_92 => l_array_source_92(Idx)
166846  , p_source_93 => l_array_source_93(Idx)
166847  , p_source_96 => l_array_source_96(Idx)
166848  , p_source_97 => l_array_source_97(Idx)
166849  , p_source_98 => l_array_source_98(Idx)
166850  , p_source_99 => l_array_source_99(Idx)
166851  , p_source_100 => l_array_source_100(Idx)
166852  , p_source_101 => l_array_source_101(Idx)
166853  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166854  , p_source_102 => l_array_source_102(Idx)
166855  , p_source_107 => l_array_source_107(Idx)
166856  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166857  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166858  , p_source_115 => l_array_source_115(Idx)
166859  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166860  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166861  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166862  , p_source_118 => l_array_source_118(Idx)
166863  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166864  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166865  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166866  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166867  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166868  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166869  , p_source_127 => l_array_source_127(Idx)
166870  );
166871 If(l_balance_type_code = 'A') THEN
166872   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166873 END IF;
166874 
166875 --
166876 
166877 
166878 --
166879 AcctLineType_95 (
166880  p_application_id  => p_application_id
166881  ,p_event_id     => l_event_id
166882  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166883  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166884  ,p_actual_flag => l_actual_flag
166885  ,p_balance_type_code => l_balance_type_code
166886  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166887  
166888  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166889  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
166890  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
166891  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
166892  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166893  , p_source_58 => l_array_source_58(Idx)
166894  , p_source_60 => l_array_source_60(Idx)
166895  , p_source_85 => l_array_source_85(Idx)
166896  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166897  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166898  , p_source_91 => l_array_source_91(Idx)
166899  , p_source_92 => l_array_source_92(Idx)
166900  , p_source_93 => l_array_source_93(Idx)
166901  , p_source_96 => l_array_source_96(Idx)
166902  , p_source_97 => l_array_source_97(Idx)
166903  , p_source_98 => l_array_source_98(Idx)
166904  , p_source_99 => l_array_source_99(Idx)
166905  , p_source_100 => l_array_source_100(Idx)
166906  , p_source_101 => l_array_source_101(Idx)
166907  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166908  , p_source_102 => l_array_source_102(Idx)
166909  , p_source_107 => l_array_source_107(Idx)
166910  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166911  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166912  , p_source_115 => l_array_source_115(Idx)
166913  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166914  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166915  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166916  , p_source_118 => l_array_source_118(Idx)
166917  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166918  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166919  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166920  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166921  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166922  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166923  , p_source_127 => l_array_source_127(Idx)
166924  );
166925 If(l_balance_type_code = 'A') THEN
166926   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166927 END IF;
166928 
166929 --
166930 
166931 
166932 --
166933 AcctLineType_96 (
166934  p_application_id  => p_application_id
166935  ,p_event_id     => l_event_id
166936  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166937  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166938  ,p_actual_flag => l_actual_flag
166939  ,p_balance_type_code => l_balance_type_code
166940  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166941  
166942  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166943  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
166944  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
166945  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
166946  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
166947  , p_source_58 => l_array_source_58(Idx)
166948  , p_source_60 => l_array_source_60(Idx)
166949  , p_source_85 => l_array_source_85(Idx)
166950  , p_source_85_meaning => l_array_source_85_meaning(Idx)
166951  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
166952  , p_source_91 => l_array_source_91(Idx)
166953  , p_source_92 => l_array_source_92(Idx)
166954  , p_source_93 => l_array_source_93(Idx)
166958  , p_source_99 => l_array_source_99(Idx)
166955  , p_source_96 => l_array_source_96(Idx)
166956  , p_source_97 => l_array_source_97(Idx)
166957  , p_source_98 => l_array_source_98(Idx)
166959  , p_source_100 => l_array_source_100(Idx)
166960  , p_source_101 => l_array_source_101(Idx)
166961  , p_source_101_meaning => l_array_source_101_meaning(Idx)
166962  , p_source_102 => l_array_source_102(Idx)
166963  , p_source_107 => l_array_source_107(Idx)
166964  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
166965  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
166966  , p_source_115 => l_array_source_115(Idx)
166967  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
166968  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
166969  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
166970  , p_source_118 => l_array_source_118(Idx)
166971  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
166972  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
166973  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
166974  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
166975  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
166976  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
166977  , p_source_127 => l_array_source_127(Idx)
166978  );
166979 If(l_balance_type_code = 'A') THEN
166980   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166981 END IF;
166982 
166983 --
166984 
166985 
166986 --
166987 AcctLineType_107 (
166988  p_application_id  => p_application_id
166989  ,p_event_id     => l_event_id
166990  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166991  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166992  ,p_actual_flag => l_actual_flag
166993  ,p_balance_type_code => l_balance_type_code
166994  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166995  
166996  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
166997  , p_source_28 => l_array_source_28(Idx)
166998  , p_source_28_meaning => l_array_source_28_meaning(Idx)
166999  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167000  , p_source_58 => l_array_source_58(Idx)
167001  , p_source_60 => l_array_source_60(Idx)
167002  , p_source_85 => l_array_source_85(Idx)
167003  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167004  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167005  , p_source_91 => l_array_source_91(Idx)
167006  , p_source_92 => l_array_source_92(Idx)
167007  , p_source_93 => l_array_source_93(Idx)
167008  , p_source_96 => l_array_source_96(Idx)
167009  , p_source_97 => l_array_source_97(Idx)
167010  , p_source_98 => l_array_source_98(Idx)
167011  , p_source_99 => l_array_source_99(Idx)
167012  , p_source_100 => l_array_source_100(Idx)
167013  , p_source_101 => l_array_source_101(Idx)
167014  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167015  , p_source_102 => l_array_source_102(Idx)
167016  , p_source_107 => l_array_source_107(Idx)
167017  , p_source_115 => l_array_source_115(Idx)
167018  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
167019  , p_source_119 => l_array_source_119(Idx)
167020  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167021  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167022  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167023  , p_source_127 => l_array_source_127(Idx)
167024  , p_source_140 => l_array_source_140(Idx)
167025  , p_source_140_meaning => l_array_source_140_meaning(Idx)
167026  , p_source_141 => l_array_source_141(Idx)
167027  );
167028 If(l_balance_type_code = 'A') THEN
167029   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167030 END IF;
167031 
167032 --
167033 
167034 
167035 --
167036 AcctLineType_111 (
167037  p_application_id  => p_application_id
167038  ,p_event_id     => l_event_id
167039  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167040  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167041  ,p_actual_flag => l_actual_flag
167042  ,p_balance_type_code => l_balance_type_code
167043  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167044  
167045  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167046  , p_source_28 => l_array_source_28(Idx)
167047  , p_source_28_meaning => l_array_source_28_meaning(Idx)
167048  , p_source_48 => l_array_source_48(Idx)
167049  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167050  , p_source_58 => l_array_source_58(Idx)
167051  , p_source_60 => l_array_source_60(Idx)
167052  , p_source_85 => l_array_source_85(Idx)
167053  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167054  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167055  , p_source_91 => l_array_source_91(Idx)
167056  , p_source_92 => l_array_source_92(Idx)
167057  , p_source_93 => l_array_source_93(Idx)
167058  , p_source_96 => l_array_source_96(Idx)
167059  , p_source_97 => l_array_source_97(Idx)
167060  , p_source_98 => l_array_source_98(Idx)
167061  , p_source_99 => l_array_source_99(Idx)
167062  , p_source_100 => l_array_source_100(Idx)
167063  , p_source_101 => l_array_source_101(Idx)
167064  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167065  , p_source_102 => l_array_source_102(Idx)
167066  , p_source_107 => l_array_source_107(Idx)
167067  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167068  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167069  , p_source_115 => l_array_source_115(Idx)
167070  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
167071  , p_source_119 => l_array_source_119(Idx)
167072  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167073  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167077  , p_source_140_meaning => l_array_source_140_meaning(Idx)
167074  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167075  , p_source_127 => l_array_source_127(Idx)
167076  , p_source_140 => l_array_source_140(Idx)
167078  , p_source_141 => l_array_source_141(Idx)
167079  , p_source_146 => l_array_source_146(Idx)
167080  , p_source_147 => l_array_source_147(Idx)
167081  , p_source_148 => l_array_source_148(Idx)
167082  );
167083 If(l_balance_type_code = 'A') THEN
167084   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167085 END IF;
167086 
167087 --
167088 
167089 
167090 --
167091 AcctLineType_114 (
167092  p_application_id  => p_application_id
167093  ,p_event_id     => l_event_id
167094  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167095  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167096  ,p_actual_flag => l_actual_flag
167097  ,p_balance_type_code => l_balance_type_code
167098  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167099  
167100  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167101  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167102  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167103  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
167104  , p_source_14 => g_array_event(l_event_id).array_value_char('source_14')
167105  , p_source_14_meaning => g_array_event(l_event_id).array_value_char('source_14_meaning')
167106  , p_source_25 => l_array_source_25(Idx)
167107  , p_source_28 => l_array_source_28(Idx)
167108  , p_source_28_meaning => l_array_source_28_meaning(Idx)
167109  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
167110  , p_source_41 => l_array_source_41(Idx)
167111  , p_source_42 => l_array_source_42(Idx)
167112  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167113  , p_source_58 => l_array_source_58(Idx)
167114  , p_source_60 => l_array_source_60(Idx)
167115  , p_source_85 => l_array_source_85(Idx)
167116  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167117  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167118  , p_source_91 => l_array_source_91(Idx)
167119  , p_source_92 => l_array_source_92(Idx)
167120  , p_source_93 => l_array_source_93(Idx)
167121  , p_source_96 => l_array_source_96(Idx)
167122  , p_source_97 => l_array_source_97(Idx)
167123  , p_source_98 => l_array_source_98(Idx)
167124  , p_source_99 => l_array_source_99(Idx)
167125  , p_source_100 => l_array_source_100(Idx)
167126  , p_source_101 => l_array_source_101(Idx)
167127  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167128  , p_source_102 => l_array_source_102(Idx)
167129  , p_source_107 => l_array_source_107(Idx)
167130  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167131  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167132  , p_source_115 => l_array_source_115(Idx)
167133  , p_source_118 => l_array_source_118(Idx)
167134  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167135  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167136  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167137  , p_source_127 => l_array_source_127(Idx)
167138  , p_source_146 => l_array_source_146(Idx)
167139  , p_source_147 => l_array_source_147(Idx)
167140  , p_source_148 => l_array_source_148(Idx)
167141  );
167142 If(l_balance_type_code = 'A') THEN
167143   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167144 END IF;
167145 
167146 --
167147 
167148 
167149 --
167150 AcctLineType_122 (
167151  p_application_id  => p_application_id
167152  ,p_event_id     => l_event_id
167153  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167154  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167155  ,p_actual_flag => l_actual_flag
167156  ,p_balance_type_code => l_balance_type_code
167157  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167158  
167159  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167160  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167161  , p_source_25 => l_array_source_25(Idx)
167162  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
167163  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167164  , p_source_58 => l_array_source_58(Idx)
167165  , p_source_60 => l_array_source_60(Idx)
167166  , p_source_72 => l_array_source_72(Idx)
167167  , p_source_85 => l_array_source_85(Idx)
167168  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167169  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167170  , p_source_91 => l_array_source_91(Idx)
167171  , p_source_92 => l_array_source_92(Idx)
167172  , p_source_93 => l_array_source_93(Idx)
167173  , p_source_96 => l_array_source_96(Idx)
167174  , p_source_97 => l_array_source_97(Idx)
167175  , p_source_98 => l_array_source_98(Idx)
167176  , p_source_99 => l_array_source_99(Idx)
167177  , p_source_100 => l_array_source_100(Idx)
167178  , p_source_101 => l_array_source_101(Idx)
167179  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167180  , p_source_102 => l_array_source_102(Idx)
167181  , p_source_107 => l_array_source_107(Idx)
167182  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167183  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167184  , p_source_115 => l_array_source_115(Idx)
167185  , p_source_119 => l_array_source_119(Idx)
167186  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167187  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167188  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167189  , p_source_127 => l_array_source_127(Idx)
167190  , p_source_146 => l_array_source_146(Idx)
167191  , p_source_147 => l_array_source_147(Idx)
167192  , p_source_148 => l_array_source_148(Idx)
167193  );
167194 If(l_balance_type_code = 'A') THEN
167198 --
167195   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167196 END IF;
167197 
167199 
167200 
167201 --
167202 AcctLineType_129 (
167203  p_application_id  => p_application_id
167204  ,p_event_id     => l_event_id
167205  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167206  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167207  ,p_actual_flag => l_actual_flag
167208  ,p_balance_type_code => l_balance_type_code
167209  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167210  
167211  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167212  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167213  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167214  , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
167215  , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
167216  , p_source_20_meaning => g_array_event(l_event_id).array_value_char('source_20_meaning')
167217  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
167218  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
167219  , p_source_25 => l_array_source_25(Idx)
167220  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167221  , p_source_58 => l_array_source_58(Idx)
167222  , p_source_60 => l_array_source_60(Idx)
167223  , p_source_85 => l_array_source_85(Idx)
167224  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167225  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167226  , p_source_91 => l_array_source_91(Idx)
167227  , p_source_92 => l_array_source_92(Idx)
167228  , p_source_93 => l_array_source_93(Idx)
167229  , p_source_96 => l_array_source_96(Idx)
167230  , p_source_97 => l_array_source_97(Idx)
167231  , p_source_98 => l_array_source_98(Idx)
167232  , p_source_99 => l_array_source_99(Idx)
167233  , p_source_100 => l_array_source_100(Idx)
167234  , p_source_101 => l_array_source_101(Idx)
167235  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167236  , p_source_102 => l_array_source_102(Idx)
167237  , p_source_107 => l_array_source_107(Idx)
167238  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167239  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167240  , p_source_115 => l_array_source_115(Idx)
167241  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
167242  , p_source_118 => l_array_source_118(Idx)
167243  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167244  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167245  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167246  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167247  , p_source_127 => l_array_source_127(Idx)
167248  );
167249 If(l_balance_type_code = 'A') THEN
167250   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167251 END IF;
167252 
167253 --
167254 
167255 
167256 --
167257 AcctLineType_130 (
167258  p_application_id  => p_application_id
167259  ,p_event_id     => l_event_id
167260  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167261  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167262  ,p_actual_flag => l_actual_flag
167263  ,p_balance_type_code => l_balance_type_code
167264  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167265  
167266  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167267  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167268  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167269  , p_source_19 => g_array_event(l_event_id).array_value_num('source_19')
167270  , p_source_20 => g_array_event(l_event_id).array_value_char('source_20')
167271  , p_source_20_meaning => g_array_event(l_event_id).array_value_char('source_20_meaning')
167272  , p_source_21 => g_array_event(l_event_id).array_value_num('source_21')
167273  , p_source_22 => g_array_event(l_event_id).array_value_num('source_22')
167274  , p_source_25 => l_array_source_25(Idx)
167275  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167276  , p_source_58 => l_array_source_58(Idx)
167277  , p_source_60 => l_array_source_60(Idx)
167278  , p_source_85 => l_array_source_85(Idx)
167279  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167280  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167281  , p_source_91 => l_array_source_91(Idx)
167282  , p_source_92 => l_array_source_92(Idx)
167283  , p_source_93 => l_array_source_93(Idx)
167284  , p_source_96 => l_array_source_96(Idx)
167285  , p_source_97 => l_array_source_97(Idx)
167286  , p_source_98 => l_array_source_98(Idx)
167287  , p_source_99 => l_array_source_99(Idx)
167288  , p_source_100 => l_array_source_100(Idx)
167289  , p_source_101 => l_array_source_101(Idx)
167290  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167291  , p_source_102 => l_array_source_102(Idx)
167292  , p_source_107 => l_array_source_107(Idx)
167293  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167294  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167295  , p_source_115 => l_array_source_115(Idx)
167296  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
167297  , p_source_119 => l_array_source_119(Idx)
167298  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167299  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167300  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167301  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167302  , p_source_127 => l_array_source_127(Idx)
167303  );
167304 If(l_balance_type_code = 'A') THEN
167305   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167306 END IF;
167307 
167308 --
167309 
167310 
167311 --
167312 AcctLineType_135 (
167313  p_application_id  => p_application_id
167314  ,p_event_id     => l_event_id
167318  ,p_balance_type_code => l_balance_type_code
167315  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167316  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167317  ,p_actual_flag => l_actual_flag
167319  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167320  
167321  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167322  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167323  , p_source_25 => l_array_source_25(Idx)
167324  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
167325  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
167326  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
167327  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
167328  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167329  , p_source_58 => l_array_source_58(Idx)
167330  , p_source_60 => l_array_source_60(Idx)
167331  , p_source_85 => l_array_source_85(Idx)
167332  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167333  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167334  , p_source_91 => l_array_source_91(Idx)
167335  , p_source_92 => l_array_source_92(Idx)
167336  , p_source_93 => l_array_source_93(Idx)
167337  , p_source_96 => l_array_source_96(Idx)
167338  , p_source_97 => l_array_source_97(Idx)
167339  , p_source_98 => l_array_source_98(Idx)
167340  , p_source_99 => l_array_source_99(Idx)
167341  , p_source_100 => l_array_source_100(Idx)
167342  , p_source_101 => l_array_source_101(Idx)
167343  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167344  , p_source_107 => l_array_source_107(Idx)
167345  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167346  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167347  , p_source_115 => l_array_source_115(Idx)
167348  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167349  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167350  , p_source_127 => l_array_source_127(Idx)
167351  , p_source_156 => l_array_source_156(Idx)
167352  );
167353 If(l_balance_type_code = 'A') THEN
167354   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167355 END IF;
167356 
167357 --
167358 
167359 
167360 --
167361 AcctLineType_140 (
167362  p_application_id  => p_application_id
167363  ,p_event_id     => l_event_id
167364  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167365  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167366  ,p_actual_flag => l_actual_flag
167367  ,p_balance_type_code => l_balance_type_code
167368  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167369  
167370  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167371  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167372  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167373  , p_source_25 => l_array_source_25(Idx)
167374  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
167375  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
167376  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167377  , p_source_58 => l_array_source_58(Idx)
167378  , p_source_60 => l_array_source_60(Idx)
167379  , p_source_85 => l_array_source_85(Idx)
167380  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167381  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167382  , p_source_91 => l_array_source_91(Idx)
167383  , p_source_92 => l_array_source_92(Idx)
167384  , p_source_93 => l_array_source_93(Idx)
167385  , p_source_96 => l_array_source_96(Idx)
167386  , p_source_97 => l_array_source_97(Idx)
167387  , p_source_98 => l_array_source_98(Idx)
167388  , p_source_99 => l_array_source_99(Idx)
167389  , p_source_100 => l_array_source_100(Idx)
167390  , p_source_101 => l_array_source_101(Idx)
167391  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167392  , p_source_102 => l_array_source_102(Idx)
167393  , p_source_107 => l_array_source_107(Idx)
167394  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167395  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167396  , p_source_115 => l_array_source_115(Idx)
167397  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167398  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167399  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167400  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167401  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167402  , p_source_127 => l_array_source_127(Idx)
167403  , p_source_156 => l_array_source_156(Idx)
167404  , p_source_161 => l_array_source_161(Idx)
167405  );
167406 If(l_balance_type_code = 'A') THEN
167407   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167408 END IF;
167409 
167410 --
167411 
167412 
167413 --
167414 AcctLineType_146 (
167415  p_application_id  => p_application_id
167416  ,p_event_id     => l_event_id
167417  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167418  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167419  ,p_actual_flag => l_actual_flag
167420  ,p_balance_type_code => l_balance_type_code
167421  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167422  
167423  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167424  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
167425  , p_source_24 => g_array_event(l_event_id).array_value_char('source_24')
167426  , p_source_25 => l_array_source_25(Idx)
167427  , p_source_28 => l_array_source_28(Idx)
167428  , p_source_28_meaning => l_array_source_28_meaning(Idx)
167429  , p_source_56 => l_array_source_56(Idx)
167430  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167431  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167432  , p_source_58 => l_array_source_58(Idx)
167436  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167433  , p_source_60 => l_array_source_60(Idx)
167434  , p_source_85 => l_array_source_85(Idx)
167435  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167437  , p_source_91 => l_array_source_91(Idx)
167438  , p_source_92 => l_array_source_92(Idx)
167439  , p_source_93 => l_array_source_93(Idx)
167440  , p_source_96 => l_array_source_96(Idx)
167441  , p_source_97 => l_array_source_97(Idx)
167442  , p_source_98 => l_array_source_98(Idx)
167443  , p_source_99 => l_array_source_99(Idx)
167444  , p_source_100 => l_array_source_100(Idx)
167445  , p_source_101 => l_array_source_101(Idx)
167446  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167447  , p_source_102 => l_array_source_102(Idx)
167448  , p_source_107 => l_array_source_107(Idx)
167449  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167450  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167451  , p_source_115 => l_array_source_115(Idx)
167452  , p_source_118 => l_array_source_118(Idx)
167453  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167454  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167455  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167456  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167457  , p_source_127 => l_array_source_127(Idx)
167458  );
167459 If(l_balance_type_code = 'A') THEN
167460   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167461 END IF;
167462 
167463 --
167464 
167465 
167466 --
167467 AcctLineType_155 (
167468  p_application_id  => p_application_id
167469  ,p_event_id     => l_event_id
167470  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167471  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167472  ,p_actual_flag => l_actual_flag
167473  ,p_balance_type_code => l_balance_type_code
167474  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167475  
167476  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167477  , p_source_56 => l_array_source_56(Idx)
167478  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167479  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167480  , p_source_58 => l_array_source_58(Idx)
167481  , p_source_60 => l_array_source_60(Idx)
167482  , p_source_85 => l_array_source_85(Idx)
167483  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167484  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167485  , p_source_91 => l_array_source_91(Idx)
167486  , p_source_92 => l_array_source_92(Idx)
167487  , p_source_93 => l_array_source_93(Idx)
167488  , p_source_96 => l_array_source_96(Idx)
167489  , p_source_97 => l_array_source_97(Idx)
167490  , p_source_98 => l_array_source_98(Idx)
167491  , p_source_99 => l_array_source_99(Idx)
167492  , p_source_100 => l_array_source_100(Idx)
167493  , p_source_101 => l_array_source_101(Idx)
167494  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167495  , p_source_102 => l_array_source_102(Idx)
167496  , p_source_107 => l_array_source_107(Idx)
167497  , p_source_115 => l_array_source_115(Idx)
167498  , p_source_119 => l_array_source_119(Idx)
167499  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167500  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167501  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167502  , p_source_127 => l_array_source_127(Idx)
167503  , p_source_166 => l_array_source_166(Idx)
167504  , p_source_166_meaning => l_array_source_166_meaning(Idx)
167505  );
167506 If(l_balance_type_code = 'A') THEN
167507   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167508 END IF;
167509 
167510 --
167511 
167512 
167513 --
167514 AcctLineType_166 (
167515  p_application_id  => p_application_id
167516  ,p_event_id     => l_event_id
167517  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167518  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167519  ,p_actual_flag => l_actual_flag
167520  ,p_balance_type_code => l_balance_type_code
167521  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167522  
167523  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167524  , p_source_56 => l_array_source_56(Idx)
167525  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167526  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167527  , p_source_58 => l_array_source_58(Idx)
167528  , p_source_60 => l_array_source_60(Idx)
167529  , p_source_85 => l_array_source_85(Idx)
167530  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167531  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167532  , p_source_91 => l_array_source_91(Idx)
167533  , p_source_92 => l_array_source_92(Idx)
167534  , p_source_93 => l_array_source_93(Idx)
167535  , p_source_96 => l_array_source_96(Idx)
167536  , p_source_97 => l_array_source_97(Idx)
167537  , p_source_98 => l_array_source_98(Idx)
167538  , p_source_99 => l_array_source_99(Idx)
167539  , p_source_100 => l_array_source_100(Idx)
167540  , p_source_101 => l_array_source_101(Idx)
167541  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167542  , p_source_102 => l_array_source_102(Idx)
167543  , p_source_107 => l_array_source_107(Idx)
167544  , p_source_115 => l_array_source_115(Idx)
167545  , p_source_119 => l_array_source_119(Idx)
167546  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167547  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167548  , p_source_127 => l_array_source_127(Idx)
167549  );
167550 If(l_balance_type_code = 'A') THEN
167551   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167552 END IF;
167553 
167554 --
167555 
167556 
167557 --
167558 AcctLineType_174 (
167559  p_application_id  => p_application_id
167560  ,p_event_id     => l_event_id
167561  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167565  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167562  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167563  ,p_actual_flag => l_actual_flag
167564  ,p_balance_type_code => l_balance_type_code
167566  
167567  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167568  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167569  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167570  , p_source_25 => l_array_source_25(Idx)
167571  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
167572  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
167573  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167574  , p_source_58 => l_array_source_58(Idx)
167575  , p_source_60 => l_array_source_60(Idx)
167576  , p_source_85 => l_array_source_85(Idx)
167577  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167578  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167579  , p_source_91 => l_array_source_91(Idx)
167580  , p_source_92 => l_array_source_92(Idx)
167581  , p_source_93 => l_array_source_93(Idx)
167582  , p_source_96 => l_array_source_96(Idx)
167583  , p_source_97 => l_array_source_97(Idx)
167584  , p_source_98 => l_array_source_98(Idx)
167585  , p_source_99 => l_array_source_99(Idx)
167586  , p_source_100 => l_array_source_100(Idx)
167587  , p_source_101 => l_array_source_101(Idx)
167588  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167589  , p_source_102 => l_array_source_102(Idx)
167590  , p_source_107 => l_array_source_107(Idx)
167591  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167592  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167593  , p_source_115 => l_array_source_115(Idx)
167594  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167595  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167596  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167597  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167598  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167599  , p_source_127 => l_array_source_127(Idx)
167600  , p_source_156 => l_array_source_156(Idx)
167601  , p_source_161 => l_array_source_161(Idx)
167602  );
167603 If(l_balance_type_code = 'A') THEN
167604   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167605 END IF;
167606 
167607 --
167608 
167609 
167610 --
167611 AcctLineType_192 (
167612  p_application_id  => p_application_id
167613  ,p_event_id     => l_event_id
167614  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167615  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167616  ,p_actual_flag => l_actual_flag
167617  ,p_balance_type_code => l_balance_type_code
167618  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167619  
167620  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167621  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
167622  , p_source_58 => l_array_source_58(Idx)
167623  , p_source_60 => l_array_source_60(Idx)
167624  , p_source_85 => l_array_source_85(Idx)
167625  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167626  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167627  , p_source_91 => l_array_source_91(Idx)
167628  , p_source_92 => l_array_source_92(Idx)
167629  , p_source_93 => l_array_source_93(Idx)
167630  , p_source_96 => l_array_source_96(Idx)
167631  , p_source_97 => l_array_source_97(Idx)
167632  , p_source_98 => l_array_source_98(Idx)
167633  , p_source_99 => l_array_source_99(Idx)
167634  , p_source_100 => l_array_source_100(Idx)
167635  , p_source_102 => l_array_source_102(Idx)
167636  , p_source_107 => l_array_source_107(Idx)
167637  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167638  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167639  , p_source_115 => l_array_source_115(Idx)
167640  , p_source_118 => l_array_source_118(Idx)
167641  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167642  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167643  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167644  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167645  , p_source_127 => l_array_source_127(Idx)
167646  );
167647 If(l_balance_type_code = 'A') THEN
167648   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167649 END IF;
167650 
167651 --
167652 
167653 
167654 --
167655 AcctLineType_234 (
167656  p_application_id  => p_application_id
167657  ,p_event_id     => l_event_id
167658  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167659  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167660  ,p_actual_flag => l_actual_flag
167661  ,p_balance_type_code => l_balance_type_code
167662  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167663  
167664  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167665  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167666  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167667  , p_source_25 => l_array_source_25(Idx)
167668  , p_source_39 => l_array_source_39(Idx)
167669  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167670  , p_source_58 => l_array_source_58(Idx)
167671  , p_source_60 => l_array_source_60(Idx)
167672  , p_source_85 => l_array_source_85(Idx)
167673  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167674  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167675  , p_source_91 => l_array_source_91(Idx)
167676  , p_source_92 => l_array_source_92(Idx)
167677  , p_source_93 => l_array_source_93(Idx)
167678  , p_source_96 => l_array_source_96(Idx)
167679  , p_source_97 => l_array_source_97(Idx)
167680  , p_source_98 => l_array_source_98(Idx)
167681  , p_source_99 => l_array_source_99(Idx)
167682  , p_source_100 => l_array_source_100(Idx)
167686  , p_source_107 => l_array_source_107(Idx)
167683  , p_source_101 => l_array_source_101(Idx)
167684  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167685  , p_source_102 => l_array_source_102(Idx)
167687  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167688  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167689  , p_source_115 => l_array_source_115(Idx)
167690  , p_source_119 => l_array_source_119(Idx)
167691  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
167692  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
167693  , p_source_126 => g_array_event(l_event_id).array_value_char('source_126')
167694  , p_source_127 => l_array_source_127(Idx)
167695  , p_source_146 => l_array_source_146(Idx)
167696  , p_source_147 => l_array_source_147(Idx)
167697  , p_source_148 => l_array_source_148(Idx)
167698  , p_source_166 => l_array_source_166(Idx)
167699  , p_source_166_meaning => l_array_source_166_meaning(Idx)
167700  );
167701 If(l_balance_type_code = 'A') THEN
167702   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167703 END IF;
167704 
167705 --
167706 
167707 
167708 --
167709 AcctLineType_239 (
167710  p_application_id  => p_application_id
167711  ,p_event_id     => l_event_id
167712  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167713  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167714  ,p_actual_flag => l_actual_flag
167715  ,p_balance_type_code => l_balance_type_code
167716  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167717  
167718  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
167719  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
167720  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
167721  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
167722  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
167723  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167724  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167725  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167726  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
167727  , p_source_25 => l_array_source_25(Idx)
167728  , p_source_28 => l_array_source_28(Idx)
167729  , p_source_28_meaning => l_array_source_28_meaning(Idx)
167730  , p_source_29 => l_array_source_29(Idx)
167731  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
167732  , p_source_52 => l_array_source_52(Idx)
167733  , p_source_53 => l_array_source_53(Idx)
167734  , p_source_54 => l_array_source_54(Idx)
167735  , p_source_54_meaning => l_array_source_54_meaning(Idx)
167736  , p_source_55 => l_array_source_55(Idx)
167737  , p_source_56 => l_array_source_56(Idx)
167738  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167739  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167740  , p_source_58 => l_array_source_58(Idx)
167741  , p_source_60 => l_array_source_60(Idx)
167742  , p_source_85 => l_array_source_85(Idx)
167743  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167744  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167745  , p_source_91 => l_array_source_91(Idx)
167746  , p_source_92 => l_array_source_92(Idx)
167747  , p_source_93 => l_array_source_93(Idx)
167748  , p_source_96 => l_array_source_96(Idx)
167749  , p_source_97 => l_array_source_97(Idx)
167750  , p_source_98 => l_array_source_98(Idx)
167751  , p_source_99 => l_array_source_99(Idx)
167752  , p_source_100 => l_array_source_100(Idx)
167753  , p_source_102 => l_array_source_102(Idx)
167754  , p_source_107 => l_array_source_107(Idx)
167755  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167756  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167757  , p_source_115 => l_array_source_115(Idx)
167758  , p_source_118 => l_array_source_118(Idx)
167759  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167760  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167761  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167762  , p_source_127 => l_array_source_127(Idx)
167763  );
167764 If(l_balance_type_code = 'A') THEN
167765   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167766 END IF;
167767 
167768 --
167769 
167770 
167771 --
167772 AcctLineType_240 (
167773  p_application_id  => p_application_id
167774  ,p_event_id     => l_event_id
167775  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167776  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167777  ,p_actual_flag => l_actual_flag
167778  ,p_balance_type_code => l_balance_type_code
167779  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167780  
167781  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
167782  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
167783  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
167784  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
167785  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
167786  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167787  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167788  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167789  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
167790  , p_source_25 => l_array_source_25(Idx)
167791  , p_source_29 => l_array_source_29(Idx)
167792  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
167793  , p_source_49 => l_array_source_49(Idx)
167794  , p_source_50 => l_array_source_50(Idx)
167795  , p_source_51 => l_array_source_51(Idx)
167796  , p_source_56 => l_array_source_56(Idx)
167797  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167798  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167799  , p_source_58 => l_array_source_58(Idx)
167803  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167800  , p_source_60 => l_array_source_60(Idx)
167801  , p_source_85 => l_array_source_85(Idx)
167802  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167804  , p_source_91 => l_array_source_91(Idx)
167805  , p_source_92 => l_array_source_92(Idx)
167806  , p_source_93 => l_array_source_93(Idx)
167807  , p_source_96 => l_array_source_96(Idx)
167808  , p_source_97 => l_array_source_97(Idx)
167809  , p_source_98 => l_array_source_98(Idx)
167810  , p_source_99 => l_array_source_99(Idx)
167811  , p_source_100 => l_array_source_100(Idx)
167812  , p_source_102 => l_array_source_102(Idx)
167813  , p_source_107 => l_array_source_107(Idx)
167814  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167815  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167816  , p_source_115 => l_array_source_115(Idx)
167817  , p_source_118 => l_array_source_118(Idx)
167818  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167819  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167820  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167821  , p_source_127 => l_array_source_127(Idx)
167822  );
167823 If(l_balance_type_code = 'A') THEN
167824   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167825 END IF;
167826 
167827 --
167828 
167829 
167830 --
167831 AcctLineType_241 (
167832  p_application_id  => p_application_id
167833  ,p_event_id     => l_event_id
167834  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167835  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167836  ,p_actual_flag => l_actual_flag
167837  ,p_balance_type_code => l_balance_type_code
167838  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167839  
167840  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
167841  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
167842  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
167843  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
167844  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
167845  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167846  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167847  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167848  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
167849  , p_source_25 => l_array_source_25(Idx)
167850  , p_source_29 => l_array_source_29(Idx)
167851  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
167852  , p_source_49 => l_array_source_49(Idx)
167853  , p_source_50 => l_array_source_50(Idx)
167854  , p_source_51 => l_array_source_51(Idx)
167855  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167856  , p_source_58 => l_array_source_58(Idx)
167857  , p_source_60 => l_array_source_60(Idx)
167858  , p_source_85 => l_array_source_85(Idx)
167859  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167860  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167861  , p_source_91 => l_array_source_91(Idx)
167862  , p_source_92 => l_array_source_92(Idx)
167863  , p_source_93 => l_array_source_93(Idx)
167864  , p_source_96 => l_array_source_96(Idx)
167865  , p_source_97 => l_array_source_97(Idx)
167866  , p_source_98 => l_array_source_98(Idx)
167867  , p_source_99 => l_array_source_99(Idx)
167868  , p_source_100 => l_array_source_100(Idx)
167869  , p_source_101 => l_array_source_101(Idx)
167870  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167871  , p_source_102 => l_array_source_102(Idx)
167872  , p_source_107 => l_array_source_107(Idx)
167873  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167874  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167875  , p_source_115 => l_array_source_115(Idx)
167876  , p_source_118 => l_array_source_118(Idx)
167877  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167878  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167879  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167880  , p_source_127 => l_array_source_127(Idx)
167881  );
167882 If(l_balance_type_code = 'A') THEN
167883   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167884 END IF;
167885 
167886 --
167887 
167888 
167889 --
167890 AcctLineType_242 (
167891  p_application_id  => p_application_id
167892  ,p_event_id     => l_event_id
167893  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167894  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167895  ,p_actual_flag => l_actual_flag
167896  ,p_balance_type_code => l_balance_type_code
167897  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167898  
167899  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
167900  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
167901  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
167902  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
167903  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
167904  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167905  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167906  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167907  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
167908  , p_source_25 => l_array_source_25(Idx)
167909  , p_source_29 => l_array_source_29(Idx)
167910  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
167911  , p_source_51 => l_array_source_51(Idx)
167912  , p_source_56 => l_array_source_56(Idx)
167913  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167914  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167915  , p_source_58 => l_array_source_58(Idx)
167916  , p_source_60 => l_array_source_60(Idx)
167920  , p_source_91 => l_array_source_91(Idx)
167917  , p_source_85 => l_array_source_85(Idx)
167918  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167919  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167921  , p_source_92 => l_array_source_92(Idx)
167922  , p_source_93 => l_array_source_93(Idx)
167923  , p_source_96 => l_array_source_96(Idx)
167924  , p_source_97 => l_array_source_97(Idx)
167925  , p_source_98 => l_array_source_98(Idx)
167926  , p_source_99 => l_array_source_99(Idx)
167927  , p_source_100 => l_array_source_100(Idx)
167928  , p_source_101 => l_array_source_101(Idx)
167929  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167930  , p_source_102 => l_array_source_102(Idx)
167931  , p_source_107 => l_array_source_107(Idx)
167932  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167933  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167934  , p_source_115 => l_array_source_115(Idx)
167935  , p_source_118 => l_array_source_118(Idx)
167936  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167937  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167938  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167939  , p_source_127 => l_array_source_127(Idx)
167940  );
167941 If(l_balance_type_code = 'A') THEN
167942   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167943 END IF;
167944 
167945 --
167946 
167947 
167948 --
167949 AcctLineType_243 (
167950  p_application_id  => p_application_id
167951  ,p_event_id     => l_event_id
167952  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167953  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167954  ,p_actual_flag => l_actual_flag
167955  ,p_balance_type_code => l_balance_type_code
167956  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167957  
167958  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
167959  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
167960  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
167961  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
167962  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
167963  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
167964  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
167965  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
167966  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
167967  , p_source_25 => l_array_source_25(Idx)
167968  , p_source_29 => l_array_source_29(Idx)
167969  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
167970  , p_source_51 => l_array_source_51(Idx)
167971  , p_source_56 => l_array_source_56(Idx)
167972  , p_source_56_meaning => l_array_source_56_meaning(Idx)
167973  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
167974  , p_source_58 => l_array_source_58(Idx)
167975  , p_source_60 => l_array_source_60(Idx)
167976  , p_source_85 => l_array_source_85(Idx)
167977  , p_source_85_meaning => l_array_source_85_meaning(Idx)
167978  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
167979  , p_source_91 => l_array_source_91(Idx)
167980  , p_source_92 => l_array_source_92(Idx)
167981  , p_source_93 => l_array_source_93(Idx)
167982  , p_source_96 => l_array_source_96(Idx)
167983  , p_source_97 => l_array_source_97(Idx)
167984  , p_source_98 => l_array_source_98(Idx)
167985  , p_source_99 => l_array_source_99(Idx)
167986  , p_source_100 => l_array_source_100(Idx)
167987  , p_source_101 => l_array_source_101(Idx)
167988  , p_source_101_meaning => l_array_source_101_meaning(Idx)
167989  , p_source_102 => l_array_source_102(Idx)
167990  , p_source_107 => l_array_source_107(Idx)
167991  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
167992  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
167993  , p_source_115 => l_array_source_115(Idx)
167994  , p_source_118 => l_array_source_118(Idx)
167995  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
167996  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
167997  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167998  , p_source_127 => l_array_source_127(Idx)
167999  );
168000 If(l_balance_type_code = 'A') THEN
168001   l_actual_gain_loss_ref := l_gain_or_loss_ref;
168002 END IF;
168003 
168004 --
168005 
168006 
168007 --
168008 AcctLineType_244 (
168009  p_application_id  => p_application_id
168010  ,p_event_id     => l_event_id
168011  ,p_calculate_acctd_flag => l_calculate_acctd_flag
168012  ,p_calculate_g_l_flag => l_calculate_g_l_flag
168013  ,p_actual_flag => l_actual_flag
168014  ,p_balance_type_code => l_balance_type_code
168015  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
168016  
168017  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
168018  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
168019  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
168020  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
168021  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
168022  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
168023  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
168024  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
168025  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
168026  , p_source_25 => l_array_source_25(Idx)
168027  , p_source_29 => l_array_source_29(Idx)
168028  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
168029  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
168030  , p_source_58 => l_array_source_58(Idx)
168031  , p_source_60 => l_array_source_60(Idx)
168032  , p_source_85 => l_array_source_85(Idx)
168033  , p_source_85_meaning => l_array_source_85_meaning(Idx)
168037  , p_source_93 => l_array_source_93(Idx)
168034  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
168035  , p_source_91 => l_array_source_91(Idx)
168036  , p_source_92 => l_array_source_92(Idx)
168038  , p_source_96 => l_array_source_96(Idx)
168039  , p_source_97 => l_array_source_97(Idx)
168040  , p_source_98 => l_array_source_98(Idx)
168041  , p_source_99 => l_array_source_99(Idx)
168042  , p_source_100 => l_array_source_100(Idx)
168043  , p_source_101 => l_array_source_101(Idx)
168044  , p_source_101_meaning => l_array_source_101_meaning(Idx)
168045  , p_source_102 => l_array_source_102(Idx)
168046  , p_source_107 => l_array_source_107(Idx)
168047  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
168048  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
168049  , p_source_115 => l_array_source_115(Idx)
168050  , p_source_118 => l_array_source_118(Idx)
168051  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
168052  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
168053  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
168054  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
168055  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
168056  , p_source_127 => l_array_source_127(Idx)
168057  , p_source_170 => g_array_event(l_event_id).array_value_char('source_170')
168058  );
168059 If(l_balance_type_code = 'A') THEN
168060   l_actual_gain_loss_ref := l_gain_or_loss_ref;
168061 END IF;
168062 
168063 --
168064 
168065 
168066 --
168067 AcctLineType_245 (
168068  p_application_id  => p_application_id
168069  ,p_event_id     => l_event_id
168070  ,p_calculate_acctd_flag => l_calculate_acctd_flag
168071  ,p_calculate_g_l_flag => l_calculate_g_l_flag
168072  ,p_actual_flag => l_actual_flag
168073  ,p_balance_type_code => l_balance_type_code
168074  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
168075  
168076  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
168077  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
168078  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
168079  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
168080  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
168081  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
168082  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
168083  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
168084  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
168085  , p_source_25 => l_array_source_25(Idx)
168086  , p_source_29 => l_array_source_29(Idx)
168087  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
168088  , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
168089  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
168090  , p_source_58 => l_array_source_58(Idx)
168091  , p_source_60 => l_array_source_60(Idx)
168092  , p_source_85 => l_array_source_85(Idx)
168093  , p_source_85_meaning => l_array_source_85_meaning(Idx)
168094  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
168095  , p_source_91 => l_array_source_91(Idx)
168096  , p_source_92 => l_array_source_92(Idx)
168097  , p_source_93 => l_array_source_93(Idx)
168098  , p_source_96 => l_array_source_96(Idx)
168099  , p_source_97 => l_array_source_97(Idx)
168100  , p_source_98 => l_array_source_98(Idx)
168101  , p_source_99 => l_array_source_99(Idx)
168102  , p_source_100 => l_array_source_100(Idx)
168103  , p_source_101 => l_array_source_101(Idx)
168104  , p_source_101_meaning => l_array_source_101_meaning(Idx)
168105  , p_source_102 => l_array_source_102(Idx)
168106  , p_source_107 => l_array_source_107(Idx)
168107  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
168108  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
168109  , p_source_115 => l_array_source_115(Idx)
168110  , p_source_118 => l_array_source_118(Idx)
168111  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
168112  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
168113  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
168114  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
168115  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
168116  , p_source_127 => l_array_source_127(Idx)
168117  , p_source_170 => g_array_event(l_event_id).array_value_char('source_170')
168118  );
168119 If(l_balance_type_code = 'A') THEN
168120   l_actual_gain_loss_ref := l_gain_or_loss_ref;
168121 END IF;
168122 
168123 --
168124 
168125 
168126 --
168127 AcctLineType_246 (
168128  p_application_id  => p_application_id
168129  ,p_event_id     => l_event_id
168130  ,p_calculate_acctd_flag => l_calculate_acctd_flag
168131  ,p_calculate_g_l_flag => l_calculate_g_l_flag
168132  ,p_actual_flag => l_actual_flag
168133  ,p_balance_type_code => l_balance_type_code
168134  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
168135  
168136  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
168137  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
168138  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
168139  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
168140  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
168141  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
168142  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
168143  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
168144  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
168145  , p_source_25 => l_array_source_25(Idx)
168146  , p_source_29 => l_array_source_29(Idx)
168150  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
168147  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
168148  , p_source_56 => l_array_source_56(Idx)
168149  , p_source_56_meaning => l_array_source_56_meaning(Idx)
168151  , p_source_58 => l_array_source_58(Idx)
168152  , p_source_60 => l_array_source_60(Idx)
168153  , p_source_85 => l_array_source_85(Idx)
168154  , p_source_85_meaning => l_array_source_85_meaning(Idx)
168155  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
168156  , p_source_91 => l_array_source_91(Idx)
168157  , p_source_92 => l_array_source_92(Idx)
168158  , p_source_93 => l_array_source_93(Idx)
168159  , p_source_96 => l_array_source_96(Idx)
168160  , p_source_97 => l_array_source_97(Idx)
168161  , p_source_98 => l_array_source_98(Idx)
168162  , p_source_99 => l_array_source_99(Idx)
168163  , p_source_100 => l_array_source_100(Idx)
168164  , p_source_101 => l_array_source_101(Idx)
168165  , p_source_101_meaning => l_array_source_101_meaning(Idx)
168166  , p_source_102 => l_array_source_102(Idx)
168167  , p_source_107 => l_array_source_107(Idx)
168168  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
168169  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
168170  , p_source_115 => l_array_source_115(Idx)
168171  , p_source_118 => l_array_source_118(Idx)
168172  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
168173  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
168174  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
168175  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
168176  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
168177  , p_source_127 => l_array_source_127(Idx)
168178  , p_source_170 => g_array_event(l_event_id).array_value_char('source_170')
168179  );
168180 If(l_balance_type_code = 'A') THEN
168181   l_actual_gain_loss_ref := l_gain_or_loss_ref;
168182 END IF;
168183 
168184 --
168185 
168186 
168187 --
168188 AcctLineType_247 (
168189  p_application_id  => p_application_id
168190  ,p_event_id     => l_event_id
168191  ,p_calculate_acctd_flag => l_calculate_acctd_flag
168192  ,p_calculate_g_l_flag => l_calculate_g_l_flag
168193  ,p_actual_flag => l_actual_flag
168194  ,p_balance_type_code => l_balance_type_code
168195  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
168196  
168197  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
168198  , p_source_4 => g_array_event(l_event_id).array_value_num('source_4')
168199  , p_source_5 => g_array_event(l_event_id).array_value_num('source_5')
168200  , p_source_6 => g_array_event(l_event_id).array_value_date('source_6')
168201  , p_source_7 => g_array_event(l_event_id).array_value_char('source_7')
168202  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
168203  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
168204  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
168205  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
168206  , p_source_25 => l_array_source_25(Idx)
168207  , p_source_29 => l_array_source_29(Idx)
168208  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
168209  , p_source_56 => l_array_source_56(Idx)
168210  , p_source_56_meaning => l_array_source_56_meaning(Idx)
168211  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
168212  , p_source_58 => l_array_source_58(Idx)
168213  , p_source_60 => l_array_source_60(Idx)
168214  , p_source_85 => l_array_source_85(Idx)
168215  , p_source_85_meaning => l_array_source_85_meaning(Idx)
168216  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
168217  , p_source_91 => l_array_source_91(Idx)
168218  , p_source_92 => l_array_source_92(Idx)
168219  , p_source_93 => l_array_source_93(Idx)
168220  , p_source_96 => l_array_source_96(Idx)
168221  , p_source_97 => l_array_source_97(Idx)
168222  , p_source_98 => l_array_source_98(Idx)
168223  , p_source_99 => l_array_source_99(Idx)
168224  , p_source_100 => l_array_source_100(Idx)
168225  , p_source_102 => l_array_source_102(Idx)
168226  , p_source_107 => l_array_source_107(Idx)
168227  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
168228  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
168229  , p_source_115 => l_array_source_115(Idx)
168230  , p_source_118 => l_array_source_118(Idx)
168231  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
168232  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
168233  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
168234  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
168235  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
168236  , p_source_127 => l_array_source_127(Idx)
168237  , p_source_170 => g_array_event(l_event_id).array_value_char('source_170')
168238  );
168239 If(l_balance_type_code = 'A') THEN
168240   l_actual_gain_loss_ref := l_gain_or_loss_ref;
168241 END IF;
168242 
168243 --
168244 
168245       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
168246       -- or secondary ledger that has different currency with primary
168247       -- or alc that is calculated by sla
168248       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
168249             (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'))
168250 
168251 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
168252 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
168253           AND (l_actual_flag = 'A')) THEN
168254         XLA_AE_LINES_PKG.CreateGainOrLossLines(
168255           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
168259          ,p_event_class_code => C_EVENT_CLASS_CODE
168256          ,p_application_id   => p_application_id
168257          ,p_amb_context_code => 'DEFAULT'
168258          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
168260          ,p_event_type_code  => C_EVENT_TYPE_CODE
168261          
168262          ,p_gain_ccid        => -1
168263          ,p_loss_ccid        => -1
168264 
168265          ,p_actual_flag      => l_actual_flag
168266          ,p_enc_flag         => null
168267          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
168268          ,p_enc_g_l_ref      => null
168269          );
168270       END IF;
168271    END IF;
168272 END IF;
168273 
168274    ELSE
168275       --
168276       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
168277       --
168278       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168279          trace
168280             (p_msg      => 'Trancaction revesal option is Y'
168281             ,p_level    => C_LEVEL_STATEMENT
168282             ,p_module   => l_log_module);
168283       END IF;
168284    END IF;
168285 
168286 END LOOP;
168287 l_result := XLA_AE_LINES_PKG.InsertLines ;
168288 end loop;
168289 close line_cur;
168290 
168291 
168292 --
168293 -- insert headers into xla_ae_headers_gt table
168294 --
168295 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
168296 
168297 -- insert into errors table here.
168298 
168299 END LOOP;
168300 
168301 --
168302 -- 4865292
168303 --
168304 -- Compare g_hdr_extract_count with event count in
168305 -- CreateHeadersAndLines.
168306 --
168307 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
168308 
168309 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168310    trace (p_msg     => '# rows extracted from header extract objects '
168311                     || ' (running total): '
168312                     || g_hdr_extract_count
168313          ,p_level   => C_LEVEL_STATEMENT
168314          ,p_module  => l_log_module);
168315 END IF;
168316 
168317 CLOSE header_cur;
168318 --
168319 
168320 --
168321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168322    trace
168323       (p_msg      => 'END of EventClass_252'
168324       ,p_level    => C_LEVEL_PROCEDURE
168325       ,p_module   => l_log_module);
168326 END IF;
168327 --
168328 RETURN l_result;
168329 EXCEPTION
168330 WHEN xla_exceptions_pkg.application_exception THEN
168331    
168332 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
168333 
168334    
168335 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
168336 
168337    RAISE;
168338 
168339 WHEN NO_DATA_FOUND THEN
168340 
168341 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
168342 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
168343 
168344 FOR header_record IN header_cur
168345 LOOP
168346     l_array_header_events(header_record.event_id) := header_record.event_id;
168347 END LOOP;
168348 
168349 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
168350 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
168351 
168352 fnd_file.put_line(fnd_file.LOG, '                    ');
168353 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
168354 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
168355 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
168356 
168357 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
168358 LOOP
168359 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
168360 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
168361         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
168362 	END IF;
168363 END LOOP;
168364 
168365 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
168366 fnd_file.put_line(fnd_file.LOG, '                    ');
168367 
168368 
168369 xla_exceptions_pkg.raise_message
168370       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_252');
168371 
168372 
168373 WHEN OTHERS THEN
168374    xla_exceptions_pkg.raise_message
168375       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_252');
168376 END EventClass_252;
168377 --
168378 
168379 ---------------------------------------
168380 --
168381 -- PRIVATE PROCEDURE
168382 --         insert_sources_253
168383 --
168384 ----------------------------------------
168385 --
168386 PROCEDURE insert_sources_253(
168387                                 p_target_ledger_id       IN NUMBER
168388                               , p_language               IN VARCHAR2
168389                               , p_sla_ledger_id          IN NUMBER
168390                               , p_pad_start_date         IN DATE
168391                               , p_pad_end_date           IN DATE
168392                          )
168393 IS
168394 
168395 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
168396 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
168397 p_apps_owner                   VARCHAR2(30);
168398 l_log_module                   VARCHAR2(240);
168399 BEGIN
168400 IF g_log_enabled THEN
168401       l_log_module := C_DEFAULT_MODULE||'.insert_sources_253';
168402 END IF;
168403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168404 
168405       trace
168406          (p_msg      => 'BEGIN of insert_sources_253'
168407          ,p_level    => C_LEVEL_PROCEDURE
168408          ,p_module   => l_log_module);
168409 
168410 END IF;
168411 
168412 -- select APPS owner
168413 SELECT oracle_username
168414   INTO p_apps_owner
168418 
168415   FROM fnd_oracle_userid
168416  WHERE read_only_flag = 'U'
168417 ;
168419 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168420       trace
168421          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
168422                         ' - p_language = '||p_language||
168423                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
168424                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
168425                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
168426                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
168427          ,p_level    => C_LEVEL_STATEMENT
168428          ,p_module   => l_log_module);
168429 END IF;
168430 
168431 
168432 --
168433 INSERT INTO xla_diag_sources --hdr2
168434 (
168435         event_id
168436       , ledger_id
168437       , sla_ledger_id
168438       , description_language
168439       , object_name
168440       , object_type_code
168441       , line_number
168442       , source_application_id
168443       , source_type_code
168444       , source_code
168445       , source_value
168446       , source_meaning
168447       , created_by
168448       , creation_date
168449       , last_update_date
168450       , last_updated_by
168451       , last_update_login
168452       , program_update_date
168453       , program_application_id
168454       , program_id
168455       , request_id
168456 )
168457 SELECT
168458         event_id
168459       , p_target_ledger_id
168460       , p_sla_ledger_id
168461       , p_language
168462       , object_name
168463       , object_type_code
168464       , line_number
168465       , source_application_id
168466       , source_type_code
168467       , source_code
168468       , SUBSTR(source_value ,1,1996)
168469       , SUBSTR(source_meaning ,1,200)
168470       , xla_environment_pkg.g_Usr_Id
168471       , TRUNC(SYSDATE)
168472       , TRUNC(SYSDATE)
168473       , xla_environment_pkg.g_Usr_Id
168474       , xla_environment_pkg.g_Login_Id
168475       , TRUNC(SYSDATE)
168476       , xla_environment_pkg.g_Prog_Appl_Id
168477       , xla_environment_pkg.g_Prog_Id
168478       , xla_environment_pkg.g_Req_Id
168479   FROM (
168480        SELECT xet.event_id                  event_id
168481             , 0                          line_number
168482             , CASE r
168483                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168484                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168485                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168486                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168487                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168488                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168489                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168490                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168491                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168492                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168493                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168494                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168495                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168496                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168497                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168498                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
168499                 
168500                ELSE null
168501               END                           object_name
168502             , CASE r
168503                 WHEN 1 THEN 'HEADER' 
168504                 WHEN 2 THEN 'HEADER' 
168505                 WHEN 3 THEN 'HEADER' 
168506                 WHEN 4 THEN 'HEADER' 
168507                 WHEN 5 THEN 'HEADER' 
168508                 WHEN 6 THEN 'HEADER' 
168509                 WHEN 7 THEN 'HEADER' 
168510                 WHEN 8 THEN 'HEADER' 
168511                 WHEN 9 THEN 'HEADER' 
168512                 WHEN 10 THEN 'HEADER' 
168513                 WHEN 11 THEN 'HEADER' 
168514                 WHEN 12 THEN 'HEADER' 
168515                 WHEN 13 THEN 'HEADER' 
168516                 WHEN 14 THEN 'HEADER' 
168517                 WHEN 15 THEN 'HEADER' 
168518                 WHEN 16 THEN 'HEADER' 
168519                 
168520                 ELSE null
168521               END                           object_type_code
168522             , CASE r
168523                 WHEN 1 THEN '200' 
168524                 WHEN 2 THEN '200' 
168525                 WHEN 3 THEN '200' 
168526                 WHEN 4 THEN '200' 
168527                 WHEN 5 THEN '200' 
168528                 WHEN 6 THEN '200' 
168529                 WHEN 7 THEN '200' 
168530                 WHEN 8 THEN '200' 
168531                 WHEN 9 THEN '200' 
168532                 WHEN 10 THEN '200' 
168533                 WHEN 11 THEN '200' 
168534                 WHEN 12 THEN '200' 
168535                 WHEN 13 THEN '200' 
168536                 WHEN 14 THEN '200' 
168537                 WHEN 15 THEN '200' 
168538                 WHEN 16 THEN '200' 
168539                 
168540                 ELSE null
168541               END                           source_application_id
168542             , 'S'             source_type_code
168543             , CASE r
168544                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
168545                 WHEN 2 THEN 'ASP_GAIN_CCID' 
168546                 WHEN 3 THEN 'ASP_LOSS_CCID' 
168547                 WHEN 4 THEN 'ASP_PREPAY_TAX_DIFF_CCID' 
168548                 WHEN 5 THEN 'ASP_ROUNDING_ERROR_CCID' 
168549                 WHEN 6 THEN 'AI_INVOICE_ID' 
168550                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
168551                 WHEN 8 THEN 'AI_VENDOR_ID' 
168552                 WHEN 9 THEN 'AI_VENDOR_SITE_ID' 
168553                 WHEN 10 THEN 'THIRD_PARTY_TYPE' 
168554                 WHEN 11 THEN 'INV_EXCHANGE_DATE' 
168558                 WHEN 15 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
168555                 WHEN 12 THEN 'INV_EXCHANGE_RATE' 
168556                 WHEN 13 THEN 'INV_EXCHANGE_RATE_TYPE' 
168557                 WHEN 14 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
168559                 WHEN 16 THEN 'INV_DOC_SEQUENCE_VALUE' 
168560                 
168561                 ELSE null
168562               END                           source_code
168563             , CASE r
168564                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
168565                 WHEN 2 THEN TO_CHAR(h4.ASP_GAIN_CCID)
168566                 WHEN 3 THEN TO_CHAR(h4.ASP_LOSS_CCID)
168567                 WHEN 4 THEN TO_CHAR(h4.ASP_PREPAY_TAX_DIFF_CCID)
168568                 WHEN 5 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
168569                 WHEN 6 THEN TO_CHAR(h1.AI_INVOICE_ID)
168570                 WHEN 7 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
168571                 WHEN 8 THEN TO_CHAR(h1.AI_VENDOR_ID)
168572                 WHEN 9 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
168573                 WHEN 10 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
168574                 WHEN 11 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
168575                 WHEN 12 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
168576                 WHEN 13 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
168577                 WHEN 14 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
168578                 WHEN 15 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
168579                 WHEN 16 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
168580                 
168581                 ELSE null
168582               END                           source_value
168583             , CASE r
168584                 WHEN 1 THEN fvl10.meaning
168585                 
168586                 ELSE null
168587               END               source_meaning
168588          FROM xla_events_gt     xet  
168589       , AP_INVOICE_EXTRACT_HEADER_V  h1
168590       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
168591   , fnd_lookup_values    fvl10
168592              ,(select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
168593          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
168594            AND xet.event_class_code = C_EVENT_CLASS_CODE
168595               AND h1.event_id = xet.event_id
168596  AND h4.asp_org_id = h1.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
168597   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
168598   AND fvl10.view_application_id(+) = 200
168599   AND fvl10.language(+)            = USERENV('LANG')
168600   
168601 )
168602 ;
168603 --
168604 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168605 
168606       trace
168607          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
168608          ,p_level    => C_LEVEL_STATEMENT
168609          ,p_module   => l_log_module);
168610 
168611 END IF;
168612 --
168613 
168614 
168615 
168616 --
168617 INSERT INTO xla_diag_sources  --line2
168618 (
168619         event_id
168620       , ledger_id
168621       , sla_ledger_id
168622       , description_language
168623       , object_name
168624       , object_type_code
168625       , line_number
168626       , source_application_id
168627       , source_type_code
168628       , source_code
168629       , source_value
168630       , source_meaning
168631       , created_by
168632       , creation_date
168633       , last_update_date
168634       , last_updated_by
168635       , last_update_login
168636       , program_update_date
168637       , program_application_id
168638       , program_id
168639       , request_id
168640 )
168641 SELECT  event_id
168642       , p_target_ledger_id
168643       , p_sla_ledger_id
168644       , p_language
168645       , object_name
168646       , object_type_code
168647       , line_number
168648       , source_application_id
168649       , source_type_code
168650       , source_code
168651       , SUBSTR(source_value,1,1996)
168652       , SUBSTR(source_meaning ,1,200)
168653       , xla_environment_pkg.g_Usr_Id
168654       , TRUNC(SYSDATE)
168655       , TRUNC(SYSDATE)
168656       , xla_environment_pkg.g_Usr_Id
168657       , xla_environment_pkg.g_Login_Id
168658       , TRUNC(SYSDATE)
168659       , xla_environment_pkg.g_Prog_Appl_Id
168660       , xla_environment_pkg.g_Prog_Id
168661       , xla_environment_pkg.g_Req_Id
168662   FROM (
168663        SELECT xet.event_id                  event_id
168664             , l2.line_number                 line_number
168665             , CASE r
168666                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168667                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168668                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168669                 WHEN 4 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168670                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168671                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168672                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168673                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168674                 WHEN 9 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168675                 WHEN 10 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168676                 WHEN 11 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168677                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168678                 WHEN 13 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168679                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168680                 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168681                 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168682                 WHEN 17 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168683                 WHEN 18 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168684                 WHEN 19 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
168685                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168686                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168690                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168687                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168688                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168689                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168691                 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168692                 WHEN 27 THEN 'AP_PREPAY_DEF_TAX_EXTRACT_V' 
168693                 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168694                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168695                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168696                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168697                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168698                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168699                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168700                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168701                 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168702                 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168703                 WHEN 38 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168704                 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168705                 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168706                 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168707                 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168708                 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168709                 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168710                 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168711                 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168712                 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168713                 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
168714                 
168715                ELSE null
168716               END                           object_name
168717             , CASE r
168718                 WHEN 1 THEN 'LINE' 
168719                 WHEN 2 THEN 'LINE' 
168720                 WHEN 3 THEN 'LINE' 
168721                 WHEN 4 THEN 'LINE' 
168722                 WHEN 5 THEN 'LINE' 
168723                 WHEN 6 THEN 'LINE' 
168724                 WHEN 7 THEN 'LINE' 
168725                 WHEN 8 THEN 'LINE' 
168726                 WHEN 9 THEN 'LINE' 
168727                 WHEN 10 THEN 'LINE' 
168728                 WHEN 11 THEN 'LINE' 
168729                 WHEN 12 THEN 'LINE' 
168730                 WHEN 13 THEN 'LINE' 
168731                 WHEN 14 THEN 'LINE' 
168732                 WHEN 15 THEN 'LINE' 
168733                 WHEN 16 THEN 'LINE' 
168734                 WHEN 17 THEN 'LINE' 
168735                 WHEN 18 THEN 'LINE' 
168736                 WHEN 19 THEN 'LINE' 
168737                 WHEN 20 THEN 'LINE' 
168738                 WHEN 21 THEN 'LINE' 
168739                 WHEN 22 THEN 'LINE' 
168740                 WHEN 23 THEN 'LINE' 
168741                 WHEN 24 THEN 'LINE' 
168742                 WHEN 25 THEN 'LINE' 
168743                 WHEN 26 THEN 'LINE' 
168744                 WHEN 27 THEN 'LINE' 
168745                 WHEN 28 THEN 'LINE' 
168746                 WHEN 29 THEN 'LINE' 
168747                 WHEN 30 THEN 'LINE' 
168748                 WHEN 31 THEN 'LINE' 
168749                 WHEN 32 THEN 'LINE' 
168750                 WHEN 33 THEN 'LINE' 
168751                 WHEN 34 THEN 'LINE' 
168752                 WHEN 35 THEN 'LINE' 
168753                 WHEN 36 THEN 'LINE' 
168754                 WHEN 37 THEN 'LINE' 
168755                 WHEN 38 THEN 'LINE' 
168756                 WHEN 39 THEN 'LINE' 
168757                 WHEN 40 THEN 'LINE' 
168758                 WHEN 41 THEN 'LINE' 
168759                 WHEN 42 THEN 'LINE' 
168760                 WHEN 43 THEN 'LINE' 
168761                 WHEN 44 THEN 'LINE' 
168762                 WHEN 45 THEN 'LINE' 
168763                 WHEN 46 THEN 'LINE' 
168764                 WHEN 47 THEN 'LINE' 
168765                 WHEN 48 THEN 'LINE' 
168766                 
168767                 ELSE null
168768               END                           object_type_code
168769             , CASE r
168770                 WHEN 1 THEN '200' 
168771                 WHEN 2 THEN '200' 
168772                 WHEN 3 THEN '200' 
168773                 WHEN 4 THEN '200' 
168774                 WHEN 5 THEN '200' 
168775                 WHEN 6 THEN '200' 
168776                 WHEN 7 THEN '200' 
168777                 WHEN 8 THEN '200' 
168778                 WHEN 9 THEN '200' 
168779                 WHEN 10 THEN '200' 
168780                 WHEN 11 THEN '200' 
168781                 WHEN 12 THEN '200' 
168782                 WHEN 13 THEN '200' 
168783                 WHEN 14 THEN '200' 
168784                 WHEN 15 THEN '200' 
168785                 WHEN 16 THEN '200' 
168786                 WHEN 17 THEN '200' 
168787                 WHEN 18 THEN '200' 
168788                 WHEN 19 THEN '200' 
168789                 WHEN 20 THEN '200' 
168790                 WHEN 21 THEN '200' 
168791                 WHEN 22 THEN '200' 
168792                 WHEN 23 THEN '200' 
168793                 WHEN 24 THEN '200' 
168794                 WHEN 25 THEN '200' 
168795                 WHEN 26 THEN '200' 
168796                 WHEN 27 THEN '200' 
168797                 WHEN 28 THEN '200' 
168798                 WHEN 29 THEN '200' 
168799                 WHEN 30 THEN '200' 
168800                 WHEN 31 THEN '200' 
168801                 WHEN 32 THEN '200' 
168802                 WHEN 33 THEN '200' 
168803                 WHEN 34 THEN '200' 
168804                 WHEN 35 THEN '200' 
168805                 WHEN 36 THEN '200' 
168806                 WHEN 37 THEN '200' 
168807                 WHEN 38 THEN '200' 
168808                 WHEN 39 THEN '200' 
168809                 WHEN 40 THEN '200' 
168810                 WHEN 41 THEN '200' 
168811                 WHEN 42 THEN '200' 
168812                 WHEN 43 THEN '200' 
168816                 WHEN 47 THEN '200' 
168813                 WHEN 44 THEN '200' 
168814                 WHEN 45 THEN '200' 
168815                 WHEN 46 THEN '200' 
168817                 WHEN 48 THEN '200' 
168818                 
168819                 ELSE null
168820               END                           source_application_id
168821             , 'S'             source_type_code
168822             , CASE r
168823                 WHEN 1 THEN 'AID_DIST_CCID' 
168824                 WHEN 2 THEN 'CGAC_GAIN_CCID' 
168825                 WHEN 3 THEN 'CGAC_LOSS_CCID' 
168826                 WHEN 4 THEN 'TAX_ACCOUNT_CCID' 
168827                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
168828                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
168829                 WHEN 7 THEN 'UPG_ENC_CR_CCID' 
168830                 WHEN 8 THEN 'UPG_ENC_CR_AMT' 
168831                 WHEN 9 THEN 'UPG_ENC_CR_BASE_AMT' 
168832                 WHEN 10 THEN 'UPG_ENC_DR_CCID' 
168833                 WHEN 11 THEN 'UPG_ENC_DR_AMT' 
168834                 WHEN 12 THEN 'UPG_ENC_DR_BASE_AMT' 
168835                 WHEN 13 THEN 'UPG_AP_ENCUM_OPTION' 
168836                 WHEN 14 THEN 'DEFERRED_END_DATE' 
168837                 WHEN 15 THEN 'DEFERRED_OPTION' 
168838                 WHEN 16 THEN 'DEFERRED_START_DATE' 
168839                 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
168840                 WHEN 18 THEN 'TAX_LINE_ID' 
168841                 WHEN 19 THEN 'REC_NREC_TAX_DIST_ID' 
168842                 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID' 
168843                 WHEN 21 THEN 'UPG_CR_ENC_TYPE_ID' 
168844                 WHEN 22 THEN 'UPG_DR_ENC_TYPE_ID' 
168845                 WHEN 23 THEN 'BUS_FLOW_AP_APP_ID' 
168846                 WHEN 24 THEN 'BUS_FLOW_INV_DIST_TYPE' 
168847                 WHEN 25 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
168848                 WHEN 26 THEN 'APAD_DIST_LOOKUP_CODE' 
168849                 WHEN 27 THEN 'DEF_REC_PP_SET_OPTION_CODE' 
168850                 WHEN 28 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
168851                 WHEN 29 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE' 
168852                 WHEN 30 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY' 
168853                 WHEN 31 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID' 
168854                 WHEN 32 THEN 'BF_CASHALWAYS_PP_PMT_ID' 
168855                 WHEN 33 THEN 'UPG_ENC_CR_ACCT_CLASS' 
168856                 WHEN 34 THEN 'UPG_ENC_DR_ACCT_CLASS' 
168857                 WHEN 35 THEN 'APAD_AMOUNT' 
168858                 WHEN 36 THEN 'BASE_AMT_AT_PP_XRATE' 
168859                 WHEN 37 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
168860                 WHEN 38 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
168861                 WHEN 39 THEN 'BF_PREPAY_REC_DIST_ID' 
168862                 WHEN 40 THEN 'BF_PREPAY_REC_INV' 
168863                 WHEN 41 THEN 'APAD_BASE_AMOUNT' 
168864                 WHEN 42 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
168865                 WHEN 43 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
168866                 WHEN 44 THEN 'BF_ACCRUAL_PP_DIST_ID' 
168867                 WHEN 45 THEN 'BF_ACCRUAL_PP_INV' 
168868                 WHEN 46 THEN 'BASE_AMT_AT_PP_PAY_XRATE' 
168869                 WHEN 47 THEN 'APAD_BASE_AMOUNT_DIFF' 
168870                 WHEN 48 THEN 'INV_PREPMT_GAIN_LOSS_INDICATOR' 
168871                 
168872                 ELSE null
168873               END                           source_code
168874             , CASE r
168875                 WHEN 1 THEN TO_CHAR(l2.AID_DIST_CCID)
168876                 WHEN 2 THEN TO_CHAR(l2.CGAC_GAIN_CCID)
168877                 WHEN 3 THEN TO_CHAR(l2.CGAC_LOSS_CCID)
168878                 WHEN 4 THEN TO_CHAR(l5.TAX_ACCOUNT_CCID)
168879                 WHEN 5 THEN TO_CHAR(l2.DIST_ACCOUNT_REVERSAL_OPTION)
168880                 WHEN 6 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
168881                 WHEN 7 THEN TO_CHAR(l2.UPG_ENC_CR_CCID)
168882                 WHEN 8 THEN TO_CHAR(l2.UPG_ENC_CR_AMT)
168883                 WHEN 9 THEN TO_CHAR(l2.UPG_ENC_CR_BASE_AMT)
168884                 WHEN 10 THEN TO_CHAR(l2.UPG_ENC_DR_CCID)
168885                 WHEN 11 THEN TO_CHAR(l2.UPG_ENC_DR_AMT)
168886                 WHEN 12 THEN TO_CHAR(l2.UPG_ENC_DR_BASE_AMT)
168887                 WHEN 13 THEN TO_CHAR(l2.UPG_AP_ENCUM_OPTION)
168888                 WHEN 14 THEN TO_CHAR(l2.DEFERRED_END_DATE)
168889                 WHEN 15 THEN TO_CHAR(l2.DEFERRED_OPTION)
168890                 WHEN 16 THEN TO_CHAR(l2.DEFERRED_START_DATE)
168891                 WHEN 17 THEN TO_CHAR(l2.OVERRIDE_ACCTD_AMT_FLAG)
168892                 WHEN 18 THEN TO_CHAR(l5.TAX_LINE_ID)
168893                 WHEN 19 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
168894                 WHEN 20 THEN TO_CHAR(l2.SUMMARY_TAX_LINE_ID)
168895                 WHEN 21 THEN TO_CHAR(l2.UPG_CR_ENC_TYPE_ID)
168896                 WHEN 22 THEN TO_CHAR(l2.UPG_DR_ENC_TYPE_ID)
168897                 WHEN 23 THEN TO_CHAR(l2.BUS_FLOW_AP_APP_ID)
168898                 WHEN 24 THEN TO_CHAR(l2.BUS_FLOW_INV_DIST_TYPE)
168899                 WHEN 25 THEN TO_CHAR(l2.BUS_FLOW_INV_ENTITY_CODE)
168900                 WHEN 26 THEN TO_CHAR(l2.APAD_DIST_LOOKUP_CODE)
168901                 WHEN 27 THEN TO_CHAR(l3.DEF_REC_PP_SET_OPTION_CODE)
168902                 WHEN 28 THEN TO_CHAR(l2.APAD_DISTRIBUTION_IDENTIFIER)
168903                 WHEN 29 THEN TO_CHAR(l2.BF_CASH_ALWAYS_PP_DIST_TYPE)
168904                 WHEN 30 THEN TO_CHAR(l2.BF_CASH_ALWAYS_PREPAY_ENTITY)
168905                 WHEN 31 THEN TO_CHAR(l2.BF_CASHALWAYS_PP_PMT_DIST_ID)
168906                 WHEN 32 THEN TO_CHAR(l2.BF_CASHALWAYS_PP_PMT_ID)
168907                 WHEN 33 THEN TO_CHAR(l2.UPG_ENC_CR_ACCT_CLASS)
168908                 WHEN 34 THEN TO_CHAR(l2.UPG_ENC_DR_ACCT_CLASS)
168909                 WHEN 35 THEN TO_CHAR(l2.APAD_AMOUNT)
168910                 WHEN 36 THEN TO_CHAR(l2.BASE_AMT_AT_PP_XRATE)
168911                 WHEN 37 THEN TO_CHAR(l2.REVERSED_PREPAY_APP_DIST_ID)
168912                 WHEN 38 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
168913                 WHEN 39 THEN TO_CHAR(l2.BF_PREPAY_REC_DIST_ID)
168914                 WHEN 40 THEN TO_CHAR(l2.BF_PREPAY_REC_INV)
168915                 WHEN 41 THEN TO_CHAR(l2.APAD_BASE_AMOUNT)
168916                 WHEN 42 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_DIST_TYPE)
168920                 WHEN 46 THEN TO_CHAR(l2.BASE_AMT_AT_PP_PAY_XRATE)
168917                 WHEN 43 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_ENTITY_CODE)
168918                 WHEN 44 THEN TO_CHAR(l2.BF_ACCRUAL_PP_DIST_ID)
168919                 WHEN 45 THEN TO_CHAR(l2.BF_ACCRUAL_PP_INV)
168921                 WHEN 47 THEN TO_CHAR(l2.APAD_BASE_AMOUNT_DIFF)
168922                 WHEN 48 THEN TO_CHAR(l2.INV_PREPMT_GAIN_LOSS_INDICATOR)
168923                 
168924                 ELSE null
168925               END                           source_value
168926             , CASE r
168927                 WHEN 17 THEN fvl85.meaning
168928                 WHEN 27 THEN fvl129.meaning
168929                 WHEN 38 THEN fvl140.meaning
168930                 
168931                 ELSE null
168932               END               source_meaning
168933          FROM  xla_events_gt     xet  
168934         , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
168935         , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
168936         , ZX_AP_DEF_TAX_EXTRACT_V  l5
168937         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
168938   , fnd_lookup_values    fvl85
168939   , fnd_lookup_values    fvl129
168940   , fnd_lookup_values    fvl140
168941             , (select rownum r from all_objects where rownum <= 48 and owner = p_apps_owner)
168942         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
168943           AND xet.event_class_code = C_EVENT_CLASS_CODE
168944             AND l2.event_id          = xet.event_id
168945  AND l2.pp_detail_tax_dist_id = l3.rec_nrec_pp_tax_dist_id (+)  AND l2.recp_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l2.recp_detail_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl85.lookup_type(+)         = 'YES_NO'
168946   AND fvl85.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
168947   AND fvl85.view_application_id(+) = 0
168948   AND fvl85.language(+)            = USERENV('LANG')
168949      AND fvl129.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
168950   AND fvl129.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
168951   AND fvl129.view_application_id(+) = 0
168952   AND fvl129.language(+)            = USERENV('LANG')
168953      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
168954   AND fvl140.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
168955   AND fvl140.view_application_id(+) = 0
168956   AND fvl140.language(+)            = USERENV('LANG')
168957   
168958 )
168959 ;
168960 --
168961 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168962 
168963       trace
168964          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
168965          ,p_level    => C_LEVEL_STATEMENT
168966          ,p_module   => l_log_module);
168967 
168968 END IF;
168969 
168970 
168971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168972       trace
168973          (p_msg      => 'END of insert_sources_253'
168974          ,p_level    => C_LEVEL_PROCEDURE
168975          ,p_module   => l_log_module);
168976 END IF;
168977 EXCEPTION
168978   WHEN xla_exceptions_pkg.application_exception THEN
168979       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
168980             trace
168981                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
168982                ,p_level    => C_LEVEL_EXCEPTION
168983                ,p_module   => l_log_module);
168984       END IF;
168985       RAISE;
168986   WHEN OTHERS THEN
168987       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
168988             trace
168989                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
168990                ,p_level    => C_LEVEL_EXCEPTION
168991                ,p_module   => l_log_module);
168992        END IF;
168993        xla_exceptions_pkg.raise_message
168994            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_253');
168995 END insert_sources_253;
168996 --
168997 
168998 ---------------------------------------
168999 --
169000 -- PRIVATE FUNCTION
169001 --         EventClass_253
169002 --
169003 ----------------------------------------
169004 --
169005 FUNCTION EventClass_253
169006        (p_application_id         IN NUMBER
169007        ,p_base_ledger_id         IN NUMBER
169008        ,p_target_ledger_id       IN NUMBER
169009        ,p_language               IN VARCHAR2
169010        ,p_currency_code          IN VARCHAR2
169011        ,p_sla_ledger_id          IN NUMBER
169012        ,p_pad_start_date         IN DATE
169013        ,p_pad_end_date           IN DATE
169014        ,p_primary_ledger_id      IN NUMBER)
169015 RETURN BOOLEAN IS
169016 --
169017 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
169018 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
169019 
169020 l_calculate_acctd_flag   VARCHAR2(1) :='N';
169021 l_calculate_g_l_flag     VARCHAR2(1) :='N';
169022 --
169023 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169024 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169025 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
169026 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
169027 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169028 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
169029 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
169030 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169031 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
169032 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
169033 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169034 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169035 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169036 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
169037 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
169041 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
169038 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
169039 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
169040 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
169042 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
169043 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
169044 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
169045 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
169046 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
169047 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
169048 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
169049 
169050 l_event_id                             NUMBER;
169051 l_previous_event_id                    NUMBER;
169052 l_first_event_id                       NUMBER;
169053 l_last_event_id                        NUMBER;
169054 
169055 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
169056 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
169057 --
169058 --
169059 l_result                    BOOLEAN := TRUE;
169060 l_rows                      NUMBER  := 1000;
169061 l_event_type_name           VARCHAR2(80) := 'All';
169062 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
169063 l_description               VARCHAR2(4000);
169064 l_transaction_reversal      NUMBER;
169065 l_ae_header_id              NUMBER;
169066 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
169067 l_log_module                VARCHAR2(240);
169068 --
169069 l_acct_reversal_source      VARCHAR2(30);
169070 l_trx_reversal_source       VARCHAR2(30);
169071 
169072 l_continue_with_lines       BOOLEAN := TRUE;
169073 --
169074 l_acc_rev_gl_date_source    DATE;                      -- 4262811
169075 --
169076 type t_array_event_id is table of number index by binary_integer;
169077 
169078 l_rec_array_event                    t_rec_array_event;
169079 l_null_rec_array_event               t_rec_array_event;
169080 l_array_ae_header_id                 xla_number_array_type;
169081 l_actual_flag                        VARCHAR2(1) := NULL;
169082 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
169083 l_balance_type_code                  VARCHAR2(1) :=NULL;
169084 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
169085 
169086 --
169087 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
169088 --
169089 
169090 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
169091 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
169092 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
169093 TYPE t_array_source_36 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PREPAY_TAX_DIFF_CCID%TYPE INDEX BY BINARY_INTEGER;
169094 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
169095 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
169096 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
169097 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
169098 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
169099 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
169100 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
169101 TYPE t_array_source_147 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
169102 TYPE t_array_source_148 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
169103 TYPE t_array_source_171 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
169104 TYPE t_array_source_172 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
169105 TYPE t_array_source_173 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
169106 
169107 TYPE t_array_source_25 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
169108 TYPE t_array_source_31 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
169109 TYPE t_array_source_33 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
169110 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
169111 TYPE t_array_source_58 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
169112 TYPE t_array_source_60 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
169113 TYPE t_array_source_70 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
169114 TYPE t_array_source_71 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
169115 TYPE t_array_source_73 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
169116 TYPE t_array_source_74 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
169117 TYPE t_array_source_75 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
169118 TYPE t_array_source_76 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
169119 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
169120 TYPE t_array_source_82 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
169124 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
169121 TYPE t_array_source_83 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
169122 TYPE t_array_source_84 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
169123 TYPE t_array_source_85 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
169125 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
169126 TYPE t_array_source_93 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
169127 TYPE t_array_source_94 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
169128 TYPE t_array_source_95 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
169129 TYPE t_array_source_96 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
169130 TYPE t_array_source_97 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
169131 TYPE t_array_source_98 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
169132 TYPE t_array_source_128 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
169133 TYPE t_array_source_129 IS TABLE OF AP_PREPAY_DEF_TAX_EXTRACT_V.DEF_REC_PP_SET_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
169134 TYPE t_array_source_130 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
169135 TYPE t_array_source_131 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
169136 TYPE t_array_source_132 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
169137 TYPE t_array_source_133 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
169138 TYPE t_array_source_134 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
169139 TYPE t_array_source_135 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
169140 TYPE t_array_source_136 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
169141 TYPE t_array_source_137 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
169142 TYPE t_array_source_138 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_XRATE%TYPE INDEX BY BINARY_INTEGER;
169143 TYPE t_array_source_139 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
169144 TYPE t_array_source_140 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
169145 TYPE t_array_source_142 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
169146 TYPE t_array_source_143 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_INV%TYPE INDEX BY BINARY_INTEGER;
169147 TYPE t_array_source_144 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
169148 TYPE t_array_source_149 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
169149 TYPE t_array_source_150 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
169150 TYPE t_array_source_151 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
169151 TYPE t_array_source_152 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
169152 TYPE t_array_source_153 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
169153 TYPE t_array_source_158 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT_DIFF%TYPE INDEX BY BINARY_INTEGER;
169154 TYPE t_array_source_165 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_PREPMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
169155 
169156 l_array_source_10              t_array_source_10;
169157 l_array_source_10_meaning      t_array_lookup_meaning;
169158 l_array_source_32              t_array_source_32;
169159 l_array_source_34              t_array_source_34;
169160 l_array_source_36              t_array_source_36;
169161 l_array_source_45              t_array_source_45;
169162 l_array_source_63              t_array_source_63;
169163 l_array_source_72              t_array_source_72;
169164 l_array_source_86              t_array_source_86;
169165 l_array_source_87              t_array_source_87;
169166 l_array_source_88              t_array_source_88;
169167 l_array_source_146              t_array_source_146;
169168 l_array_source_147              t_array_source_147;
169169 l_array_source_148              t_array_source_148;
169170 l_array_source_171              t_array_source_171;
169171 l_array_source_172              t_array_source_172;
169172 l_array_source_173              t_array_source_173;
169173 
169174 l_array_source_25      t_array_source_25;
169175 l_array_source_31      t_array_source_31;
169176 l_array_source_33      t_array_source_33;
169177 l_array_source_48      t_array_source_48;
169178 l_array_source_58      t_array_source_58;
169179 l_array_source_60      t_array_source_60;
169180 l_array_source_70      t_array_source_70;
169181 l_array_source_71      t_array_source_71;
169182 l_array_source_73      t_array_source_73;
169183 l_array_source_74      t_array_source_74;
169184 l_array_source_75      t_array_source_75;
169185 l_array_source_76      t_array_source_76;
169186 l_array_source_77      t_array_source_77;
169187 l_array_source_82      t_array_source_82;
169188 l_array_source_83      t_array_source_83;
169189 l_array_source_84      t_array_source_84;
169190 l_array_source_85      t_array_source_85;
169191 l_array_source_85_meaning      t_array_lookup_meaning;
169192 l_array_source_91      t_array_source_91;
169193 l_array_source_92      t_array_source_92;
169194 l_array_source_93      t_array_source_93;
169195 l_array_source_94      t_array_source_94;
169196 l_array_source_95      t_array_source_95;
169197 l_array_source_96      t_array_source_96;
169198 l_array_source_97      t_array_source_97;
169199 l_array_source_98      t_array_source_98;
169203 l_array_source_130      t_array_source_130;
169200 l_array_source_128      t_array_source_128;
169201 l_array_source_129      t_array_source_129;
169202 l_array_source_129_meaning      t_array_lookup_meaning;
169204 l_array_source_131      t_array_source_131;
169205 l_array_source_132      t_array_source_132;
169206 l_array_source_133      t_array_source_133;
169207 l_array_source_134      t_array_source_134;
169208 l_array_source_135      t_array_source_135;
169209 l_array_source_136      t_array_source_136;
169210 l_array_source_137      t_array_source_137;
169211 l_array_source_138      t_array_source_138;
169212 l_array_source_139      t_array_source_139;
169213 l_array_source_140      t_array_source_140;
169214 l_array_source_140_meaning      t_array_lookup_meaning;
169215 l_array_source_142      t_array_source_142;
169216 l_array_source_143      t_array_source_143;
169217 l_array_source_144      t_array_source_144;
169218 l_array_source_149      t_array_source_149;
169219 l_array_source_150      t_array_source_150;
169220 l_array_source_151      t_array_source_151;
169221 l_array_source_152      t_array_source_152;
169222 l_array_source_153      t_array_source_153;
169223 l_array_source_158      t_array_source_158;
169224 l_array_source_165      t_array_source_165;
169225 
169226 --
169227 CURSOR header_cur
169228 IS
169229 SELECT /*+ leading(xet) cardinality(xet,1) */
169230 -- Event Class Code: PREPAYMENT APPLICATIONS
169231     xet.entity_id
169232    ,xet.legal_entity_id
169233    ,xet.entity_code
169234    ,xet.transaction_number
169235    ,xet.event_id
169236    ,xet.event_class_code
169237    ,xet.event_type_code
169238    ,xet.event_number
169239    ,xet.event_date
169240    ,xet.transaction_date
169241    ,xet.reference_num_1
169242    ,xet.reference_num_2
169243    ,xet.reference_num_3
169244    ,xet.reference_num_4
169245    ,xet.reference_char_1
169246    ,xet.reference_char_2
169247    ,xet.reference_char_3
169248    ,xet.reference_char_4
169249    ,xet.reference_date_1
169250    ,xet.reference_date_2
169251    ,xet.reference_date_3
169252    ,xet.reference_date_4
169253    ,xet.event_created_by
169254    ,xet.budgetary_control_flag 
169255   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
169256   , fvl10.meaning   source_10_meaning
169257   , h4.ASP_GAIN_CCID    source_32
169258   , h4.ASP_LOSS_CCID    source_34
169259   , h4.ASP_PREPAY_TAX_DIFF_CCID    source_36
169260   , h4.ASP_ROUNDING_ERROR_CCID    source_45
169261   , h1.AI_INVOICE_ID    source_63
169262   , h1.AI_INVOICE_CURRENCY_CODE    source_72
169263   , h1.AI_VENDOR_ID    source_86
169264   , h1.AI_VENDOR_SITE_ID    source_87
169265   , h1.THIRD_PARTY_TYPE    source_88
169266   , h1.INV_EXCHANGE_DATE    source_146
169267   , h1.INV_EXCHANGE_RATE    source_147
169268   , h1.INV_EXCHANGE_RATE_TYPE    source_148
169269   , h1.INV_DOC_SEQUENCE_CATEGORY    source_171
169270   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_172
169271   , h1.INV_DOC_SEQUENCE_VALUE    source_173
169272   FROM xla_events_gt     xet 
169273   , AP_INVOICE_EXTRACT_HEADER_V  h1
169274   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
169275   , fnd_lookup_values    fvl10
169276  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
169277    and xet.event_class_code = C_EVENT_CLASS_CODE
169278    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
169279  AND h4.asp_org_id = h1.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
169280   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
169281   AND fvl10.view_application_id(+) = 200
169282   AND fvl10.language(+)            = USERENV('LANG')
169283   
169284  ORDER BY event_id
169285 ;
169286 
169287 
169288 --
169289 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
169290 IS
169291 SELECT  /*+ leading(xet) cardinality(xet,1) */
169292 -- Event Class Code: PREPAYMENT APPLICATIONS
169293     xet.entity_id
169294    ,xet.legal_entity_id
169295    ,xet.entity_code
169296    ,xet.transaction_number
169297    ,xet.event_id
169298    ,xet.event_class_code
169299    ,xet.event_type_code
169300    ,xet.event_number
169301    ,xet.event_date
169302    ,xet.transaction_date
169303    ,xet.reference_num_1
169304    ,xet.reference_num_2
169305    ,xet.reference_num_3
169306    ,xet.reference_num_4
169307    ,xet.reference_char_1
169308    ,xet.reference_char_2
169309    ,xet.reference_char_3
169310    ,xet.reference_char_4
169311    ,xet.reference_date_1
169312    ,xet.reference_date_2
169313    ,xet.reference_date_3
169314    ,xet.reference_date_4
169315    ,xet.event_created_by
169316    ,xet.budgetary_control_flag
169317  , l2.LINE_NUMBER  
169318   , l2.AID_DIST_CCID    source_25
169319   , l2.CGAC_GAIN_CCID    source_31
169320   , l2.CGAC_LOSS_CCID    source_33
169321   , l5.TAX_ACCOUNT_CCID    source_48
169322   , l2.DIST_ACCOUNT_REVERSAL_OPTION    source_58
169323   , l2.DISTRIBUTION_LINK_TYPE    source_60
169324   , l2.UPG_ENC_CR_CCID    source_70
169325   , l2.UPG_ENC_CR_AMT    source_71
169326   , l2.UPG_ENC_CR_BASE_AMT    source_73
169327   , l2.UPG_ENC_DR_CCID    source_74
169328   , l2.UPG_ENC_DR_AMT    source_75
169329   , l2.UPG_ENC_DR_BASE_AMT    source_76
169330   , l2.UPG_AP_ENCUM_OPTION    source_77
169331   , l2.DEFERRED_END_DATE    source_82
169332   , l2.DEFERRED_OPTION    source_83
169333   , l2.DEFERRED_START_DATE    source_84
169334   , l2.OVERRIDE_ACCTD_AMT_FLAG    source_85
169335   , fvl85.meaning   source_85_meaning
169336   , l5.TAX_LINE_ID    source_91
169337   , l6.REC_NREC_TAX_DIST_ID    source_92
169338   , l2.SUMMARY_TAX_LINE_ID    source_93
169339   , l2.UPG_CR_ENC_TYPE_ID    source_94
169340   , l2.UPG_DR_ENC_TYPE_ID    source_95
169341   , l2.BUS_FLOW_AP_APP_ID    source_96
169342   , l2.BUS_FLOW_INV_DIST_TYPE    source_97
169343   , l2.BUS_FLOW_INV_ENTITY_CODE    source_98
169344   , l2.APAD_DIST_LOOKUP_CODE    source_128
169348   , l2.BF_CASH_ALWAYS_PP_DIST_TYPE    source_131
169345   , l3.DEF_REC_PP_SET_OPTION_CODE    source_129
169346   , fvl129.meaning   source_129_meaning
169347   , l2.APAD_DISTRIBUTION_IDENTIFIER    source_130
169349   , l2.BF_CASH_ALWAYS_PREPAY_ENTITY    source_132
169350   , l2.BF_CASHALWAYS_PP_PMT_DIST_ID    source_133
169351   , l2.BF_CASHALWAYS_PP_PMT_ID    source_134
169352   , l2.UPG_ENC_CR_ACCT_CLASS    source_135
169353   , l2.UPG_ENC_DR_ACCT_CLASS    source_136
169354   , l2.APAD_AMOUNT    source_137
169355   , l2.BASE_AMT_AT_PP_XRATE    source_138
169356   , l2.REVERSED_PREPAY_APP_DIST_ID    source_139
169357   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_140
169358   , fvl140.meaning   source_140_meaning
169359   , l2.BF_PREPAY_REC_DIST_ID    source_142
169360   , l2.BF_PREPAY_REC_INV    source_143
169361   , l2.APAD_BASE_AMOUNT    source_144
169362   , l2.BF_ACCRUAL_PREPAY_DIST_TYPE    source_149
169363   , l2.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_150
169364   , l2.BF_ACCRUAL_PP_DIST_ID    source_151
169365   , l2.BF_ACCRUAL_PP_INV    source_152
169366   , l2.BASE_AMT_AT_PP_PAY_XRATE    source_153
169367   , l2.APAD_BASE_AMOUNT_DIFF    source_158
169368   , l2.INV_PREPMT_GAIN_LOSS_INDICATOR    source_165
169369   FROM xla_events_gt     xet 
169370   , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
169371   , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
169372   , ZX_AP_DEF_TAX_EXTRACT_V  l5
169373   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
169374   , fnd_lookup_values    fvl85
169375   , fnd_lookup_values    fvl129
169376   , fnd_lookup_values    fvl140
169377  WHERE xet.event_id between x_first_event_id and x_last_event_id
169378    and xet.event_date between p_pad_start_date and p_pad_end_date
169379    and xet.event_class_code = C_EVENT_CLASS_CODE
169380    and xet.event_status_code <> 'N'   AND l2.event_id      = xet.event_id
169381  AND l2.PP_DETAIL_TAX_DIST_ID = l3.REC_NREC_PP_TAX_DIST_ID (+)  AND l2.RECP_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)  AND l2.RECP_DETAIL_TAX_DIST_ID = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl85.lookup_type(+)         = 'YES_NO'
169382   AND fvl85.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
169383   AND fvl85.view_application_id(+) = 0
169384   AND fvl85.language(+)            = USERENV('LANG')
169385      AND fvl129.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
169386   AND fvl129.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
169387   AND fvl129.view_application_id(+) = 0
169388   AND fvl129.language(+)            = USERENV('LANG')
169389      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
169390   AND fvl140.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
169391   AND fvl140.view_application_id(+) = 0
169392   AND fvl140.language(+)            = USERENV('LANG')
169393   ;
169394 
169395 --
169396 BEGIN
169397 IF g_log_enabled THEN
169398    l_log_module := C_DEFAULT_MODULE||'.EventClass_253';
169399 END IF;
169400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
169401    trace
169402       (p_msg      => 'BEGIN of EventClass_253'
169403       ,p_level    => C_LEVEL_PROCEDURE
169404       ,p_module   => l_log_module);
169405 END IF;
169406 
169407 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169408    trace
169409       (p_msg      => 'p_application_id = '||p_application_id||
169410                      ' - p_base_ledger_id = '||p_base_ledger_id||
169411                      ' - p_target_ledger_id  = '||p_target_ledger_id||
169412                      ' - p_language = '||p_language||
169413                      ' - p_currency_code = '||p_currency_code||
169414                      ' - p_sla_ledger_id = '||p_sla_ledger_id
169415       ,p_level    => C_LEVEL_STATEMENT
169416       ,p_module   => l_log_module);
169417 END IF;
169418 --
169419 -- initialze arrays
169420 --
169421 g_array_event.DELETE;
169422 l_rec_array_event := l_null_rec_array_event;
169423 --
169424 --------------------------------------
169425 -- 4262811 Initialze MPA Line Number
169426 --------------------------------------
169427 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
169428 
169429 --
169430 
169431 --
169432 OPEN header_cur;
169433 --
169434 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169435    trace
169436    (p_msg      => 'SQL - FETCH header_cur'
169437    ,p_level    => C_LEVEL_STATEMENT
169438    ,p_module   => l_log_module);
169439 END IF;
169440 --
169441 LOOP
169442 FETCH header_cur BULK COLLECT INTO
169443         l_array_entity_id
169444       , l_array_legal_entity_id
169445       , l_array_entity_code
169446       , l_array_transaction_num
169447       , l_array_event_id
169448       , l_array_class_code
169449       , l_array_event_type
169450       , l_array_event_number
169451       , l_array_event_date
169452       , l_array_transaction_date
169453       , l_array_reference_num_1
169454       , l_array_reference_num_2
169455       , l_array_reference_num_3
169456       , l_array_reference_num_4
169457       , l_array_reference_char_1
169458       , l_array_reference_char_2
169459       , l_array_reference_char_3
169460       , l_array_reference_char_4
169461       , l_array_reference_date_1
169462       , l_array_reference_date_2
169463       , l_array_reference_date_3
169464       , l_array_reference_date_4
169465       , l_array_event_created_by
169466       , l_array_budgetary_control_flag 
169467       , l_array_source_10
169468       , l_array_source_10_meaning
169469       , l_array_source_32
169470       , l_array_source_34
169471       , l_array_source_36
169472       , l_array_source_45
169473       , l_array_source_63
169474       , l_array_source_72
169475       , l_array_source_86
169476       , l_array_source_87
169477       , l_array_source_88
169478       , l_array_source_146
169479       , l_array_source_147
169480       , l_array_source_148
169481       , l_array_source_171
169482       , l_array_source_172
169483       , l_array_source_173
169484       LIMIT l_rows;
169485 --
169486 IF (C_LEVEL_EVENT >= g_log_level) THEN
169490    ,p_module   => l_log_module);
169487    trace
169488    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
169489    ,p_level    => C_LEVEL_EVENT
169491 END IF;
169492 --
169493 EXIT WHEN l_array_entity_id.COUNT = 0;
169494 
169495 -- initialize arrays
169496 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
169497 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
169498 
169499 --
169500 -- Bug 4458708
169501 --
169502 XLA_AE_LINES_PKG.g_LineNumber := 0;
169503 
169504 
169505 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
169506 g_last_hdr_idx := l_array_event_id.LAST;
169507 --
169508 -- loop for the headers. Each iteration is for each header extract row
169509 -- fetched in header cursor
169510 --
169511 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
169512 
169513 --
169514 -- set event info as cache for other routines to refer event attributes
169515 --
169516 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
169517    (p_application_id           => p_application_id
169518    ,p_primary_ledger_id        => p_primary_ledger_id
169519    ,p_base_ledger_id           => p_base_ledger_id
169520    ,p_target_ledger_id         => p_target_ledger_id
169521    ,p_entity_id                => l_array_entity_id(hdr_idx)
169522    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
169523    ,p_entity_code              => l_array_entity_code(hdr_idx)
169524    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
169525    ,p_event_id                 => l_array_event_id(hdr_idx)
169526    ,p_event_class_code         => l_array_class_code(hdr_idx)
169527    ,p_event_type_code          => l_array_event_type(hdr_idx)
169528    ,p_event_number             => l_array_event_number(hdr_idx)
169529    ,p_event_date               => l_array_event_date(hdr_idx)
169530    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
169531    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
169532    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
169533    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
169534    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
169535    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
169536    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
169537    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
169538    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
169539    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
169540    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
169541    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
169542    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
169543    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
169544    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
169545 
169546 --
169547 -- set the status of entry to C_VALID (0)
169548 --
169549 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
169550 
169551 --
169552 -- initialize a row for ae header
169553 --
169554 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
169555 
169556 l_event_id := l_array_event_id(hdr_idx);
169557 
169558 --
169559 -- storing the hdr_idx for event. May be used by line cursor.
169560 --
169561 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
169562 
169563 --
169564 -- store sources from header extract. This can be improved to
169565 -- store only those sources from header extract that may be used in lines
169566 --
169567 
169568 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
169569 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
169570 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
169571 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
169572 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
169573 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
169574 g_array_event(l_event_id).array_value_num('source_63') := l_array_source_63(hdr_idx);
169575 g_array_event(l_event_id).array_value_char('source_72') := l_array_source_72(hdr_idx);
169576 g_array_event(l_event_id).array_value_num('source_86') := l_array_source_86(hdr_idx);
169577 g_array_event(l_event_id).array_value_num('source_87') := l_array_source_87(hdr_idx);
169578 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
169579 g_array_event(l_event_id).array_value_date('source_146') := l_array_source_146(hdr_idx);
169580 g_array_event(l_event_id).array_value_num('source_147') := l_array_source_147(hdr_idx);
169581 g_array_event(l_event_id).array_value_char('source_148') := l_array_source_148(hdr_idx);
169582 g_array_event(l_event_id).array_value_char('source_171') := l_array_source_171(hdr_idx);
169583 g_array_event(l_event_id).array_value_num('source_172') := l_array_source_172(hdr_idx);
169584 g_array_event(l_event_id).array_value_num('source_173') := l_array_source_173(hdr_idx);
169585 
169586 --
169587 -- initilaize the status of ae headers for diffrent balance types
169588 -- the status is initialised to C_NOT_CREATED (2)
169589 --
169590 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169591 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169592 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169593 
169594 --
169595 -- call api to validate and store accounting attributes for header
169596 --
169597 
169598 ------------------------------------------------------------
169599 -- Accrual Reversal : to get date for Standard Source (NONE)
169600 ------------------------------------------------------------
169601 l_acc_rev_gl_date_source := NULL;
169602 
169606       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_172');
169603      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
169604       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_171');
169605      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
169607      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
169608       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_173');
169609      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
169610       l_rec_acct_attrs.array_date_value(4) := 
169611 xla_ae_sources_pkg.GetSystemSourceDate(
169612    p_source_code           => 'XLA_EVENT_DATE'
169613  , p_source_type_code      => 'Y'
169614  , p_source_application_id =>  602
169615 );
169616 
169617 
169618 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
169619 
169620 XLA_AE_HEADER_PKG.SetJeCategoryName;
169621 
169622 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
169623 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
169624 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
169625 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
169626 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
169627 
169628 
169629 -- No header level analytical criteria
169630 
169631 --
169632 --accounting attribute enhancement, bug 3612931
169633 --
169634 l_trx_reversal_source := SUBSTR(NULL, 1,30);
169635 
169636 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
169637    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
169638 
169639    xla_accounting_err_pkg.build_message
169640       (p_appli_s_name            => 'XLA'
169641       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
169642       ,p_token_1                 => 'ACCT_ATTR_NAME'
169643       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
169644       ,p_token_2                 => 'PRODUCT_NAME'
169645       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
169646       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
169647       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
169648       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
169649 
169650 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
169651    --
169652    -- following sets the accounting attributes needed to reverse
169653    -- accounting for a distributeion
169654    --
169655    xla_ae_lines_pkg.SetTrxReversalAttrs
169656       (p_event_id              => l_event_id
169657       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
169658       ,p_trx_reversal_source   => l_trx_reversal_source);
169659 
169660 END IF;
169661 
169662 
169663 ----------------------------------------------------------------
169664 -- 4262811 -  update the header statuses to invalid in need be
169665 ----------------------------------------------------------------
169666 --
169667 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
169668 
169669 
169670   -----------------------------------------------
169671   -- No accrual reversal for the event class/type
169672   -----------------------------------------------
169673 ----------------------------------------------------------------
169674 
169675 --
169676 -- this ends the header loop iteration for one bulk fetch
169677 --
169678 END LOOP;
169679 
169680 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
169681 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
169682 
169683 --
169684 -- insert dummy rows into lines gt table that were created due to
169685 -- transaction reversals
169686 --
169687 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
169688    l_result := XLA_AE_LINES_PKG.InsertLines;
169689 END IF;
169690 
169691 --
169692 -- reset the temp_line_num for each set of events fetched from header
169693 -- cursor rather than doing it for each new event in line cursor
169694 -- Bug 3939231
169695 --
169696 xla_ae_lines_pkg.g_temp_line_num := 0;
169697 
169698 
169699 
169700 --
169701 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
169702 --
169703 --
169704 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169705 
169706       trace
169707          (p_msg      => 'SQL - FETCH line_cur'
169708          ,p_level    => C_LEVEL_STATEMENT
169709          ,p_module   => l_log_module);
169710 
169711 END IF;
169712 --
169713 --
169714 LOOP
169715   --
169716   FETCH line_cur BULK COLLECT INTO
169717         l_array_entity_id
169718       , l_array_legal_entity_id
169719       , l_array_entity_code
169720       , l_array_transaction_num
169721       , l_array_event_id
169722       , l_array_class_code
169723       , l_array_event_type
169724       , l_array_event_number
169725       , l_array_event_date
169726       , l_array_transaction_date
169727       , l_array_reference_num_1
169728       , l_array_reference_num_2
169729       , l_array_reference_num_3
169730       , l_array_reference_num_4
169731       , l_array_reference_char_1
169732       , l_array_reference_char_2
169733       , l_array_reference_char_3
169734       , l_array_reference_char_4
169735       , l_array_reference_date_1
169736       , l_array_reference_date_2
169737       , l_array_reference_date_3
169738       , l_array_reference_date_4
169739       , l_array_event_created_by
169740       , l_array_budgetary_control_flag
169741       , l_array_extract_line_num 
169742       , l_array_source_25
169746       , l_array_source_58
169743       , l_array_source_31
169744       , l_array_source_33
169745       , l_array_source_48
169747       , l_array_source_60
169748       , l_array_source_70
169749       , l_array_source_71
169750       , l_array_source_73
169751       , l_array_source_74
169752       , l_array_source_75
169753       , l_array_source_76
169754       , l_array_source_77
169755       , l_array_source_82
169756       , l_array_source_83
169757       , l_array_source_84
169758       , l_array_source_85
169759       , l_array_source_85_meaning
169760       , l_array_source_91
169761       , l_array_source_92
169762       , l_array_source_93
169763       , l_array_source_94
169764       , l_array_source_95
169765       , l_array_source_96
169766       , l_array_source_97
169767       , l_array_source_98
169768       , l_array_source_128
169769       , l_array_source_129
169770       , l_array_source_129_meaning
169771       , l_array_source_130
169772       , l_array_source_131
169773       , l_array_source_132
169774       , l_array_source_133
169775       , l_array_source_134
169776       , l_array_source_135
169777       , l_array_source_136
169778       , l_array_source_137
169779       , l_array_source_138
169780       , l_array_source_139
169781       , l_array_source_140
169782       , l_array_source_140_meaning
169783       , l_array_source_142
169784       , l_array_source_143
169785       , l_array_source_144
169786       , l_array_source_149
169787       , l_array_source_150
169788       , l_array_source_151
169789       , l_array_source_152
169790       , l_array_source_153
169791       , l_array_source_158
169792       , l_array_source_165
169793       LIMIT l_rows;
169794 
169795   --
169796   IF (C_LEVEL_EVENT >= g_log_level) THEN
169797             trace
169798                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
169799                ,p_level    => C_LEVEL_EVENT
169800                ,p_module   => l_log_module);
169801   END IF;
169802   --
169803   EXIT WHEN l_array_entity_id.count = 0;
169804 
169805   XLA_AE_LINES_PKG.g_rec_lines := null;
169806 
169807 --
169808 -- Bug 4458708
169809 --
169810 XLA_AE_LINES_PKG.g_LineNumber := 0;
169811 --
169812 --
169813 
169814 FOR Idx IN 1..l_array_event_id.count LOOP
169815    --
169816    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
169817    --
169818    l_event_id := l_array_event_id(idx);  -- 5648433
169819 
169820    --
169821    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
169822    --
169823 
169824    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
169825              (g_array_event(l_event_id).array_value_num('header_index'))
169826          ,'N'
169827          ) <> 'Y'
169828    THEN
169829       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169830          trace
169831             (p_msg      => 'Trancaction revesal option is not Y '
169832             ,p_level    => C_LEVEL_STATEMENT
169833             ,p_module   => l_log_module);
169834       END IF;
169835 
169836 --
169837 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
169838 --
169839 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
169840 --
169841 -- set event info as cache for other routines to refer event attributes
169842 --
169843 
169844 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
169845    l_previous_event_id := l_event_id;
169846 
169847    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
169848       (p_application_id           => p_application_id
169849       ,p_primary_ledger_id        => p_primary_ledger_id
169850       ,p_base_ledger_id           => p_base_ledger_id
169851       ,p_target_ledger_id         => p_target_ledger_id
169852       ,p_entity_id                => l_array_entity_id(Idx)
169853       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
169854       ,p_entity_code              => l_array_entity_code(Idx)
169855       ,p_transaction_num          => l_array_transaction_num(Idx)
169856       ,p_event_id                 => l_array_event_id(Idx)
169857       ,p_event_class_code         => l_array_class_code(Idx)
169858       ,p_event_type_code          => l_array_event_type(Idx)
169859       ,p_event_number             => l_array_event_number(Idx)
169860       ,p_event_date               => l_array_event_date(Idx)
169861       ,p_transaction_date         => l_array_transaction_date(Idx)
169862       ,p_reference_num_1          => l_array_reference_num_1(Idx)
169863       ,p_reference_num_2          => l_array_reference_num_2(Idx)
169864       ,p_reference_num_3          => l_array_reference_num_3(Idx)
169865       ,p_reference_num_4          => l_array_reference_num_4(Idx)
169866       ,p_reference_char_1         => l_array_reference_char_1(Idx)
169867       ,p_reference_char_2         => l_array_reference_char_2(Idx)
169868       ,p_reference_char_3         => l_array_reference_char_3(Idx)
169869       ,p_reference_char_4         => l_array_reference_char_4(Idx)
169870       ,p_reference_date_1         => l_array_reference_date_1(Idx)
169871       ,p_reference_date_2         => l_array_reference_date_2(Idx)
169872       ,p_reference_date_3         => l_array_reference_date_3(Idx)
169873       ,p_reference_date_4         => l_array_reference_date_4(Idx)
169874       ,p_event_created_by         => l_array_event_created_by(Idx)
169875       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
169876        --
169877 END IF;
169878 
169879 
169880 
169881 --
169882 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
169883 
169884 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
169885 
169886 IF l_continue_with_lines THEN
169887    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
169891          (p_appli_s_name            => 'XLA'
169888       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
169889 
169890       xla_accounting_err_pkg.build_message
169892          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
169893          ,p_token_1                 => 'LINE_NUMBER'
169894          ,p_value_1                 => l_array_extract_line_num(Idx)
169895          ,p_token_2                 => 'PRODUCT_NAME'
169896          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
169897          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
169898          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
169899          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
169900 
169901    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
169902       --
169903       -- following sets the accounting attributes needed to reverse
169904       -- accounting for a distributeion
169905       --
169906 
169907       --
169908       -- 5217187
169909       --
169910       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
169911       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
169912                                        g_array_event(l_event_id).array_value_num('header_index'));
169913       --
169914       --
169915 
169916       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
169917       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
169918       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
169919       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_130(Idx);
169920       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
169921       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
169922       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
169923       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_135(Idx);
169924       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
169925       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_70(Idx);
169926       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
169927       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_71(Idx);
169928       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
169929       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_72');
169930       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
169931       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_73(Idx);
169932       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
169933       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_136(Idx);
169934       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
169935       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_74(Idx);
169936       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
169937       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_75(Idx);
169938       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
169939       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_72');
169940       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
169941       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_76(Idx);
169942       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
169943       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_77(Idx);
169944       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
169945       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_88');
169946       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
169947       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_139(Idx);
169948       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
169949       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_60(Idx);
169950       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
169951       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_91(Idx);
169952       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
169953       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_92(Idx);
169954       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
169955       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_93(Idx);
169956       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
169957       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_94(Idx);
169958       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
169959       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_95(Idx);
169960 
169961 
169962       xla_ae_lines_pkg.SetAcctReversalAttrs
169963          (p_event_id             => l_event_id
169964          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
169965          ,p_calculate_acctd_flag => l_calculate_acctd_flag
169966          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
169967    END IF;
169968 
169969    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
169970        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
169971 
169972 --
169973 AcctLineType_103 (
169974  p_application_id  => p_application_id
169975  ,p_event_id     => l_event_id
169976  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169977  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169978  ,p_actual_flag => l_actual_flag
169979  ,p_balance_type_code => l_balance_type_code
169980  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169981  
169982  , p_source_58 => l_array_source_58(Idx)
169983  , p_source_60 => l_array_source_60(Idx)
169984  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
169985  , p_source_70 => l_array_source_70(Idx)
169989  , p_source_74 => l_array_source_74(Idx)
169986  , p_source_71 => l_array_source_71(Idx)
169987  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
169988  , p_source_73 => l_array_source_73(Idx)
169990  , p_source_75 => l_array_source_75(Idx)
169991  , p_source_76 => l_array_source_76(Idx)
169992  , p_source_77 => l_array_source_77(Idx)
169993  , p_source_82 => l_array_source_82(Idx)
169994  , p_source_83 => l_array_source_83(Idx)
169995  , p_source_84 => l_array_source_84(Idx)
169996  , p_source_85 => l_array_source_85(Idx)
169997  , p_source_85_meaning => l_array_source_85_meaning(Idx)
169998  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
169999  , p_source_91 => l_array_source_91(Idx)
170000  , p_source_92 => l_array_source_92(Idx)
170001  , p_source_93 => l_array_source_93(Idx)
170002  , p_source_94 => l_array_source_94(Idx)
170003  , p_source_95 => l_array_source_95(Idx)
170004  , p_source_96 => l_array_source_96(Idx)
170005  , p_source_128 => l_array_source_128(Idx)
170006  , p_source_129 => l_array_source_129(Idx)
170007  , p_source_129_meaning => l_array_source_129_meaning(Idx)
170008  , p_source_130 => l_array_source_130(Idx)
170009  , p_source_131 => l_array_source_131(Idx)
170010  , p_source_132 => l_array_source_132(Idx)
170011  , p_source_133 => l_array_source_133(Idx)
170012  , p_source_134 => l_array_source_134(Idx)
170013  , p_source_135 => l_array_source_135(Idx)
170014  , p_source_136 => l_array_source_136(Idx)
170015  , p_source_137 => l_array_source_137(Idx)
170016  , p_source_138 => l_array_source_138(Idx)
170017  , p_source_139 => l_array_source_139(Idx)
170018  );
170019 If(l_balance_type_code = 'A') THEN
170020   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170021 END IF;
170022 
170023 --
170024 
170025 
170026 --
170027 AcctLineType_108 (
170028  p_application_id  => p_application_id
170029  ,p_event_id     => l_event_id
170030  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170031  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170032  ,p_actual_flag => l_actual_flag
170033  ,p_balance_type_code => l_balance_type_code
170034  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170035  
170036  , p_source_58 => l_array_source_58(Idx)
170037  , p_source_60 => l_array_source_60(Idx)
170038  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170039  , p_source_70 => l_array_source_70(Idx)
170040  , p_source_71 => l_array_source_71(Idx)
170041  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170042  , p_source_73 => l_array_source_73(Idx)
170043  , p_source_74 => l_array_source_74(Idx)
170044  , p_source_75 => l_array_source_75(Idx)
170045  , p_source_76 => l_array_source_76(Idx)
170046  , p_source_77 => l_array_source_77(Idx)
170047  , p_source_82 => l_array_source_82(Idx)
170048  , p_source_83 => l_array_source_83(Idx)
170049  , p_source_84 => l_array_source_84(Idx)
170050  , p_source_85 => l_array_source_85(Idx)
170051  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170052  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170053  , p_source_91 => l_array_source_91(Idx)
170054  , p_source_92 => l_array_source_92(Idx)
170055  , p_source_93 => l_array_source_93(Idx)
170056  , p_source_94 => l_array_source_94(Idx)
170057  , p_source_95 => l_array_source_95(Idx)
170058  , p_source_96 => l_array_source_96(Idx)
170059  , p_source_97 => l_array_source_97(Idx)
170060  , p_source_98 => l_array_source_98(Idx)
170061  , p_source_130 => l_array_source_130(Idx)
170062  , p_source_135 => l_array_source_135(Idx)
170063  , p_source_136 => l_array_source_136(Idx)
170064  , p_source_137 => l_array_source_137(Idx)
170065  , p_source_139 => l_array_source_139(Idx)
170066  , p_source_140 => l_array_source_140(Idx)
170067  , p_source_140_meaning => l_array_source_140_meaning(Idx)
170068  , p_source_142 => l_array_source_142(Idx)
170069  , p_source_143 => l_array_source_143(Idx)
170070  , p_source_144 => l_array_source_144(Idx)
170071  );
170072 If(l_balance_type_code = 'A') THEN
170073   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170074 END IF;
170075 
170076 --
170077 
170078 
170079 --
170080 AcctLineType_112 (
170081  p_application_id  => p_application_id
170082  ,p_event_id     => l_event_id
170083  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170084  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170085  ,p_actual_flag => l_actual_flag
170086  ,p_balance_type_code => l_balance_type_code
170087  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170088  
170089  , p_source_48 => l_array_source_48(Idx)
170090  , p_source_58 => l_array_source_58(Idx)
170091  , p_source_60 => l_array_source_60(Idx)
170092  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170093  , p_source_70 => l_array_source_70(Idx)
170094  , p_source_71 => l_array_source_71(Idx)
170095  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170096  , p_source_73 => l_array_source_73(Idx)
170097  , p_source_74 => l_array_source_74(Idx)
170098  , p_source_75 => l_array_source_75(Idx)
170099  , p_source_76 => l_array_source_76(Idx)
170100  , p_source_77 => l_array_source_77(Idx)
170101  , p_source_82 => l_array_source_82(Idx)
170102  , p_source_83 => l_array_source_83(Idx)
170103  , p_source_84 => l_array_source_84(Idx)
170104  , p_source_85 => l_array_source_85(Idx)
170105  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170106  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170107  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170108  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170109  , p_source_91 => l_array_source_91(Idx)
170110  , p_source_92 => l_array_source_92(Idx)
170111  , p_source_93 => l_array_source_93(Idx)
170112  , p_source_94 => l_array_source_94(Idx)
170113  , p_source_95 => l_array_source_95(Idx)
170114  , p_source_96 => l_array_source_96(Idx)
170115  , p_source_130 => l_array_source_130(Idx)
170116  , p_source_135 => l_array_source_135(Idx)
170120  , p_source_140 => l_array_source_140(Idx)
170117  , p_source_136 => l_array_source_136(Idx)
170118  , p_source_137 => l_array_source_137(Idx)
170119  , p_source_139 => l_array_source_139(Idx)
170121  , p_source_140_meaning => l_array_source_140_meaning(Idx)
170122  , p_source_144 => l_array_source_144(Idx)
170123  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
170124  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
170125  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
170126  , p_source_149 => l_array_source_149(Idx)
170127  , p_source_150 => l_array_source_150(Idx)
170128  , p_source_151 => l_array_source_151(Idx)
170129  , p_source_152 => l_array_source_152(Idx)
170130  );
170131 If(l_balance_type_code = 'A') THEN
170132   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170133 END IF;
170134 
170135 --
170136 
170137 
170138 --
170139 AcctLineType_120 (
170140  p_application_id  => p_application_id
170141  ,p_event_id     => l_event_id
170142  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170143  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170144  ,p_actual_flag => l_actual_flag
170145  ,p_balance_type_code => l_balance_type_code
170146  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170147  
170148  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
170149  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
170150  , p_source_25 => l_array_source_25(Idx)
170151  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
170152  , p_source_58 => l_array_source_58(Idx)
170153  , p_source_60 => l_array_source_60(Idx)
170154  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170155  , p_source_70 => l_array_source_70(Idx)
170156  , p_source_71 => l_array_source_71(Idx)
170157  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170158  , p_source_73 => l_array_source_73(Idx)
170159  , p_source_74 => l_array_source_74(Idx)
170160  , p_source_75 => l_array_source_75(Idx)
170161  , p_source_76 => l_array_source_76(Idx)
170162  , p_source_77 => l_array_source_77(Idx)
170163  , p_source_82 => l_array_source_82(Idx)
170164  , p_source_83 => l_array_source_83(Idx)
170165  , p_source_84 => l_array_source_84(Idx)
170166  , p_source_85 => l_array_source_85(Idx)
170167  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170168  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170169  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170170  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170171  , p_source_91 => l_array_source_91(Idx)
170172  , p_source_92 => l_array_source_92(Idx)
170173  , p_source_93 => l_array_source_93(Idx)
170174  , p_source_94 => l_array_source_94(Idx)
170175  , p_source_95 => l_array_source_95(Idx)
170176  , p_source_96 => l_array_source_96(Idx)
170177  , p_source_128 => l_array_source_128(Idx)
170178  , p_source_130 => l_array_source_130(Idx)
170179  , p_source_135 => l_array_source_135(Idx)
170180  , p_source_136 => l_array_source_136(Idx)
170181  , p_source_137 => l_array_source_137(Idx)
170182  , p_source_138 => l_array_source_138(Idx)
170183  , p_source_139 => l_array_source_139(Idx)
170184  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
170185  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
170186  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
170187  , p_source_149 => l_array_source_149(Idx)
170188  , p_source_150 => l_array_source_150(Idx)
170189  , p_source_151 => l_array_source_151(Idx)
170190  , p_source_152 => l_array_source_152(Idx)
170191  );
170192 If(l_balance_type_code = 'A') THEN
170193   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170194 END IF;
170195 
170196 --
170197 
170198 
170199 --
170200 AcctLineType_124 (
170201  p_application_id  => p_application_id
170202  ,p_event_id     => l_event_id
170203  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170204  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170205  ,p_actual_flag => l_actual_flag
170206  ,p_balance_type_code => l_balance_type_code
170207  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170208  
170209  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
170210  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
170211  , p_source_25 => l_array_source_25(Idx)
170212  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
170213  , p_source_58 => l_array_source_58(Idx)
170214  , p_source_60 => l_array_source_60(Idx)
170215  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170216  , p_source_70 => l_array_source_70(Idx)
170217  , p_source_71 => l_array_source_71(Idx)
170218  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170219  , p_source_73 => l_array_source_73(Idx)
170220  , p_source_74 => l_array_source_74(Idx)
170221  , p_source_75 => l_array_source_75(Idx)
170222  , p_source_76 => l_array_source_76(Idx)
170223  , p_source_77 => l_array_source_77(Idx)
170224  , p_source_82 => l_array_source_82(Idx)
170225  , p_source_83 => l_array_source_83(Idx)
170226  , p_source_84 => l_array_source_84(Idx)
170227  , p_source_85 => l_array_source_85(Idx)
170228  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170229  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170230  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170231  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170232  , p_source_91 => l_array_source_91(Idx)
170233  , p_source_92 => l_array_source_92(Idx)
170234  , p_source_93 => l_array_source_93(Idx)
170235  , p_source_94 => l_array_source_94(Idx)
170236  , p_source_95 => l_array_source_95(Idx)
170237  , p_source_96 => l_array_source_96(Idx)
170238  , p_source_128 => l_array_source_128(Idx)
170239  , p_source_130 => l_array_source_130(Idx)
170240  , p_source_135 => l_array_source_135(Idx)
170244  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
170241  , p_source_136 => l_array_source_136(Idx)
170242  , p_source_137 => l_array_source_137(Idx)
170243  , p_source_139 => l_array_source_139(Idx)
170245  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
170246  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
170247  , p_source_149 => l_array_source_149(Idx)
170248  , p_source_150 => l_array_source_150(Idx)
170249  , p_source_151 => l_array_source_151(Idx)
170250  , p_source_152 => l_array_source_152(Idx)
170251  , p_source_153 => l_array_source_153(Idx)
170252  );
170253 If(l_balance_type_code = 'A') THEN
170254   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170255 END IF;
170256 
170257 --
170258 
170259 
170260 --
170261 AcctLineType_137 (
170262  p_application_id  => p_application_id
170263  ,p_event_id     => l_event_id
170264  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170265  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170266  ,p_actual_flag => l_actual_flag
170267  ,p_balance_type_code => l_balance_type_code
170268  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170269  
170270  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
170271  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
170272  , p_source_25 => l_array_source_25(Idx)
170273  , p_source_31 => l_array_source_31(Idx)
170274  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
170275  , p_source_33 => l_array_source_33(Idx)
170276  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
170277  , p_source_58 => l_array_source_58(Idx)
170278  , p_source_60 => l_array_source_60(Idx)
170279  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170280  , p_source_70 => l_array_source_70(Idx)
170281  , p_source_71 => l_array_source_71(Idx)
170282  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170283  , p_source_73 => l_array_source_73(Idx)
170284  , p_source_74 => l_array_source_74(Idx)
170285  , p_source_75 => l_array_source_75(Idx)
170286  , p_source_76 => l_array_source_76(Idx)
170287  , p_source_77 => l_array_source_77(Idx)
170288  , p_source_82 => l_array_source_82(Idx)
170289  , p_source_83 => l_array_source_83(Idx)
170290  , p_source_84 => l_array_source_84(Idx)
170291  , p_source_85 => l_array_source_85(Idx)
170292  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170293  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170294  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170295  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170296  , p_source_91 => l_array_source_91(Idx)
170297  , p_source_92 => l_array_source_92(Idx)
170298  , p_source_93 => l_array_source_93(Idx)
170299  , p_source_94 => l_array_source_94(Idx)
170300  , p_source_95 => l_array_source_95(Idx)
170301  , p_source_96 => l_array_source_96(Idx)
170302  , p_source_128 => l_array_source_128(Idx)
170303  , p_source_130 => l_array_source_130(Idx)
170304  , p_source_135 => l_array_source_135(Idx)
170305  , p_source_136 => l_array_source_136(Idx)
170306  , p_source_139 => l_array_source_139(Idx)
170307  , p_source_149 => l_array_source_149(Idx)
170308  , p_source_150 => l_array_source_150(Idx)
170309  , p_source_151 => l_array_source_151(Idx)
170310  , p_source_152 => l_array_source_152(Idx)
170311  , p_source_158 => l_array_source_158(Idx)
170312  );
170313 If(l_balance_type_code = 'A') THEN
170314   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170315 END IF;
170316 
170317 --
170318 
170319 
170320 --
170321 AcctLineType_143 (
170322  p_application_id  => p_application_id
170323  ,p_event_id     => l_event_id
170324  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170325  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170326  ,p_actual_flag => l_actual_flag
170327  ,p_balance_type_code => l_balance_type_code
170328  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170329  
170330  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
170331  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
170332  , p_source_25 => l_array_source_25(Idx)
170333  , p_source_31 => l_array_source_31(Idx)
170334  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
170335  , p_source_58 => l_array_source_58(Idx)
170336  , p_source_60 => l_array_source_60(Idx)
170337  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170338  , p_source_70 => l_array_source_70(Idx)
170339  , p_source_71 => l_array_source_71(Idx)
170340  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170341  , p_source_73 => l_array_source_73(Idx)
170342  , p_source_74 => l_array_source_74(Idx)
170343  , p_source_75 => l_array_source_75(Idx)
170344  , p_source_76 => l_array_source_76(Idx)
170345  , p_source_77 => l_array_source_77(Idx)
170346  , p_source_82 => l_array_source_82(Idx)
170347  , p_source_83 => l_array_source_83(Idx)
170348  , p_source_84 => l_array_source_84(Idx)
170349  , p_source_85 => l_array_source_85(Idx)
170350  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170351  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170352  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170353  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170354  , p_source_91 => l_array_source_91(Idx)
170355  , p_source_92 => l_array_source_92(Idx)
170356  , p_source_93 => l_array_source_93(Idx)
170357  , p_source_94 => l_array_source_94(Idx)
170358  , p_source_95 => l_array_source_95(Idx)
170359  , p_source_96 => l_array_source_96(Idx)
170360  , p_source_128 => l_array_source_128(Idx)
170361  , p_source_130 => l_array_source_130(Idx)
170362  , p_source_135 => l_array_source_135(Idx)
170363  , p_source_136 => l_array_source_136(Idx)
170364  , p_source_137 => l_array_source_137(Idx)
170365  , p_source_139 => l_array_source_139(Idx)
170369  , p_source_149 => l_array_source_149(Idx)
170366  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
170367  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
170368  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
170370  , p_source_150 => l_array_source_150(Idx)
170371  , p_source_151 => l_array_source_151(Idx)
170372  , p_source_152 => l_array_source_152(Idx)
170373  , p_source_158 => l_array_source_158(Idx)
170374  , p_source_165 => l_array_source_165(Idx)
170375  );
170376 If(l_balance_type_code = 'A') THEN
170377   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170378 END IF;
170379 
170380 --
170381 
170382 
170383 --
170384 AcctLineType_170 (
170385  p_application_id  => p_application_id
170386  ,p_event_id     => l_event_id
170387  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170388  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170389  ,p_actual_flag => l_actual_flag
170390  ,p_balance_type_code => l_balance_type_code
170391  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170392  
170393  , p_source_58 => l_array_source_58(Idx)
170394  , p_source_60 => l_array_source_60(Idx)
170395  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170396  , p_source_70 => l_array_source_70(Idx)
170397  , p_source_71 => l_array_source_71(Idx)
170398  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170399  , p_source_73 => l_array_source_73(Idx)
170400  , p_source_74 => l_array_source_74(Idx)
170401  , p_source_75 => l_array_source_75(Idx)
170402  , p_source_76 => l_array_source_76(Idx)
170403  , p_source_77 => l_array_source_77(Idx)
170404  , p_source_82 => l_array_source_82(Idx)
170405  , p_source_83 => l_array_source_83(Idx)
170406  , p_source_84 => l_array_source_84(Idx)
170407  , p_source_85 => l_array_source_85(Idx)
170408  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170409  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170410  , p_source_91 => l_array_source_91(Idx)
170411  , p_source_92 => l_array_source_92(Idx)
170412  , p_source_93 => l_array_source_93(Idx)
170413  , p_source_94 => l_array_source_94(Idx)
170414  , p_source_95 => l_array_source_95(Idx)
170415  , p_source_96 => l_array_source_96(Idx)
170416  , p_source_128 => l_array_source_128(Idx)
170417  , p_source_130 => l_array_source_130(Idx)
170418  , p_source_135 => l_array_source_135(Idx)
170419  , p_source_136 => l_array_source_136(Idx)
170420  , p_source_137 => l_array_source_137(Idx)
170421  , p_source_139 => l_array_source_139(Idx)
170422  , p_source_142 => l_array_source_142(Idx)
170423  , p_source_143 => l_array_source_143(Idx)
170424  , p_source_144 => l_array_source_144(Idx)
170425  , p_source_149 => l_array_source_149(Idx)
170426  , p_source_150 => l_array_source_150(Idx)
170427  );
170428 If(l_balance_type_code = 'A') THEN
170429   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170430 END IF;
170431 
170432 --
170433 
170434 
170435 --
170436 AcctLineType_177 (
170437  p_application_id  => p_application_id
170438  ,p_event_id     => l_event_id
170439  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170440  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170441  ,p_actual_flag => l_actual_flag
170442  ,p_balance_type_code => l_balance_type_code
170443  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170444  
170445  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
170446  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
170447  , p_source_25 => l_array_source_25(Idx)
170448  , p_source_33 => l_array_source_33(Idx)
170449  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
170450  , p_source_58 => l_array_source_58(Idx)
170451  , p_source_60 => l_array_source_60(Idx)
170452  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170453  , p_source_70 => l_array_source_70(Idx)
170454  , p_source_71 => l_array_source_71(Idx)
170455  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170456  , p_source_73 => l_array_source_73(Idx)
170457  , p_source_74 => l_array_source_74(Idx)
170458  , p_source_75 => l_array_source_75(Idx)
170459  , p_source_76 => l_array_source_76(Idx)
170460  , p_source_77 => l_array_source_77(Idx)
170461  , p_source_82 => l_array_source_82(Idx)
170462  , p_source_83 => l_array_source_83(Idx)
170463  , p_source_84 => l_array_source_84(Idx)
170464  , p_source_85 => l_array_source_85(Idx)
170465  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170466  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170467  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170468  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170469  , p_source_91 => l_array_source_91(Idx)
170470  , p_source_92 => l_array_source_92(Idx)
170471  , p_source_93 => l_array_source_93(Idx)
170472  , p_source_94 => l_array_source_94(Idx)
170473  , p_source_95 => l_array_source_95(Idx)
170474  , p_source_96 => l_array_source_96(Idx)
170475  , p_source_128 => l_array_source_128(Idx)
170476  , p_source_130 => l_array_source_130(Idx)
170477  , p_source_135 => l_array_source_135(Idx)
170478  , p_source_136 => l_array_source_136(Idx)
170479  , p_source_137 => l_array_source_137(Idx)
170480  , p_source_139 => l_array_source_139(Idx)
170481  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
170482  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
170483  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
170484  , p_source_149 => l_array_source_149(Idx)
170485  , p_source_150 => l_array_source_150(Idx)
170486  , p_source_151 => l_array_source_151(Idx)
170487  , p_source_152 => l_array_source_152(Idx)
170488  , p_source_158 => l_array_source_158(Idx)
170489  , p_source_165 => l_array_source_165(Idx)
170490  );
170491 If(l_balance_type_code = 'A') THEN
170492   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170493 END IF;
170494 
170495 --
170499 AcctLineType_195 (
170496 
170497 
170498 --
170500  p_application_id  => p_application_id
170501  ,p_event_id     => l_event_id
170502  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170503  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170504  ,p_actual_flag => l_actual_flag
170505  ,p_balance_type_code => l_balance_type_code
170506  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170507  
170508  , p_source_58 => l_array_source_58(Idx)
170509  , p_source_60 => l_array_source_60(Idx)
170510  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170511  , p_source_70 => l_array_source_70(Idx)
170512  , p_source_71 => l_array_source_71(Idx)
170513  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170514  , p_source_73 => l_array_source_73(Idx)
170515  , p_source_74 => l_array_source_74(Idx)
170516  , p_source_75 => l_array_source_75(Idx)
170517  , p_source_76 => l_array_source_76(Idx)
170518  , p_source_77 => l_array_source_77(Idx)
170519  , p_source_82 => l_array_source_82(Idx)
170520  , p_source_83 => l_array_source_83(Idx)
170521  , p_source_84 => l_array_source_84(Idx)
170522  , p_source_85 => l_array_source_85(Idx)
170523  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170524  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170525  , p_source_91 => l_array_source_91(Idx)
170526  , p_source_92 => l_array_source_92(Idx)
170527  , p_source_93 => l_array_source_93(Idx)
170528  , p_source_94 => l_array_source_94(Idx)
170529  , p_source_95 => l_array_source_95(Idx)
170530  , p_source_96 => l_array_source_96(Idx)
170531  , p_source_128 => l_array_source_128(Idx)
170532  , p_source_129 => l_array_source_129(Idx)
170533  , p_source_129_meaning => l_array_source_129_meaning(Idx)
170534  , p_source_130 => l_array_source_130(Idx)
170535  , p_source_135 => l_array_source_135(Idx)
170536  , p_source_136 => l_array_source_136(Idx)
170537  , p_source_137 => l_array_source_137(Idx)
170538  , p_source_138 => l_array_source_138(Idx)
170539  , p_source_139 => l_array_source_139(Idx)
170540  , p_source_149 => l_array_source_149(Idx)
170541  , p_source_150 => l_array_source_150(Idx)
170542  , p_source_151 => l_array_source_151(Idx)
170543  , p_source_152 => l_array_source_152(Idx)
170544  );
170545 If(l_balance_type_code = 'A') THEN
170546   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170547 END IF;
170548 
170549 --
170550 
170551 
170552 --
170553 AcctLineType_220 (
170554  p_application_id  => p_application_id
170555  ,p_event_id     => l_event_id
170556  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170557  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170558  ,p_actual_flag => l_actual_flag
170559  ,p_balance_type_code => l_balance_type_code
170560  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170561  
170562  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
170563  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
170564  , p_source_25 => l_array_source_25(Idx)
170565  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
170566  , p_source_58 => l_array_source_58(Idx)
170567  , p_source_60 => l_array_source_60(Idx)
170568  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
170569  , p_source_70 => l_array_source_70(Idx)
170570  , p_source_71 => l_array_source_71(Idx)
170571  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
170572  , p_source_73 => l_array_source_73(Idx)
170573  , p_source_74 => l_array_source_74(Idx)
170574  , p_source_75 => l_array_source_75(Idx)
170575  , p_source_76 => l_array_source_76(Idx)
170576  , p_source_77 => l_array_source_77(Idx)
170577  , p_source_82 => l_array_source_82(Idx)
170578  , p_source_83 => l_array_source_83(Idx)
170579  , p_source_84 => l_array_source_84(Idx)
170580  , p_source_85 => l_array_source_85(Idx)
170581  , p_source_85_meaning => l_array_source_85_meaning(Idx)
170582  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
170583  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
170584  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
170585  , p_source_91 => l_array_source_91(Idx)
170586  , p_source_92 => l_array_source_92(Idx)
170587  , p_source_93 => l_array_source_93(Idx)
170588  , p_source_94 => l_array_source_94(Idx)
170589  , p_source_95 => l_array_source_95(Idx)
170590  , p_source_96 => l_array_source_96(Idx)
170591  , p_source_128 => l_array_source_128(Idx)
170592  , p_source_130 => l_array_source_130(Idx)
170593  , p_source_135 => l_array_source_135(Idx)
170594  , p_source_136 => l_array_source_136(Idx)
170595  , p_source_137 => l_array_source_137(Idx)
170596  , p_source_139 => l_array_source_139(Idx)
170597  , p_source_144 => l_array_source_144(Idx)
170598  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
170599  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
170600  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
170601  , p_source_149 => l_array_source_149(Idx)
170602  , p_source_150 => l_array_source_150(Idx)
170603  , p_source_151 => l_array_source_151(Idx)
170604  , p_source_152 => l_array_source_152(Idx)
170605  );
170606 If(l_balance_type_code = 'A') THEN
170607   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170608 END IF;
170609 
170610 --
170611 
170612       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
170613       -- or secondary ledger that has different currency with primary
170614       -- or alc that is calculated by sla
170615       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
170616             (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'))
170617 
170618 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
170622           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
170619 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
170620           AND (l_actual_flag = 'A')) THEN
170621         XLA_AE_LINES_PKG.CreateGainOrLossLines(
170623          ,p_application_id   => p_application_id
170624          ,p_amb_context_code => 'DEFAULT'
170625          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
170626          ,p_event_class_code => C_EVENT_CLASS_CODE
170627          ,p_event_type_code  => C_EVENT_TYPE_CODE
170628          
170629          ,p_gain_ccid        => -1
170630          ,p_loss_ccid        => -1
170631 
170632          ,p_actual_flag      => l_actual_flag
170633          ,p_enc_flag         => null
170634          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
170635          ,p_enc_g_l_ref      => null
170636          );
170637       END IF;
170638    END IF;
170639 END IF;
170640 
170641    ELSE
170642       --
170643       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
170644       --
170645       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170646          trace
170647             (p_msg      => 'Trancaction revesal option is Y'
170648             ,p_level    => C_LEVEL_STATEMENT
170649             ,p_module   => l_log_module);
170650       END IF;
170651    END IF;
170652 
170653 END LOOP;
170654 l_result := XLA_AE_LINES_PKG.InsertLines ;
170655 end loop;
170656 close line_cur;
170657 
170658 
170659 --
170660 -- insert headers into xla_ae_headers_gt table
170661 --
170662 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
170663 
170664 -- insert into errors table here.
170665 
170666 END LOOP;
170667 
170668 --
170669 -- 4865292
170670 --
170671 -- Compare g_hdr_extract_count with event count in
170672 -- CreateHeadersAndLines.
170673 --
170674 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
170675 
170676 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170677    trace (p_msg     => '# rows extracted from header extract objects '
170678                     || ' (running total): '
170679                     || g_hdr_extract_count
170680          ,p_level   => C_LEVEL_STATEMENT
170681          ,p_module  => l_log_module);
170682 END IF;
170683 
170684 CLOSE header_cur;
170685 --
170686 
170687 --
170688 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170689    trace
170690       (p_msg      => 'END of EventClass_253'
170691       ,p_level    => C_LEVEL_PROCEDURE
170692       ,p_module   => l_log_module);
170693 END IF;
170694 --
170695 RETURN l_result;
170696 EXCEPTION
170697 WHEN xla_exceptions_pkg.application_exception THEN
170698    
170699 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
170700 
170701    
170702 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
170703 
170704    RAISE;
170705 
170706 WHEN NO_DATA_FOUND THEN
170707 
170708 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
170709 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
170710 
170711 FOR header_record IN header_cur
170712 LOOP
170713     l_array_header_events(header_record.event_id) := header_record.event_id;
170714 END LOOP;
170715 
170716 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
170717 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
170718 
170719 fnd_file.put_line(fnd_file.LOG, '                    ');
170720 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
170721 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
170722 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
170723 
170724 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
170725 LOOP
170726 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
170727 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
170728         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
170729 	END IF;
170730 END LOOP;
170731 
170732 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
170733 fnd_file.put_line(fnd_file.LOG, '                    ');
170734 
170735 
170736 xla_exceptions_pkg.raise_message
170737       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_253');
170738 
170739 
170740 WHEN OTHERS THEN
170741    xla_exceptions_pkg.raise_message
170742       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_253');
170743 END EventClass_253;
170744 --
170745 
170746 ---------------------------------------
170747 --
170748 -- PRIVATE PROCEDURE
170749 --         insert_sources_254
170750 --
170751 ----------------------------------------
170752 --
170753 PROCEDURE insert_sources_254(
170754                                 p_target_ledger_id       IN NUMBER
170755                               , p_language               IN VARCHAR2
170756                               , p_sla_ledger_id          IN NUMBER
170757                               , p_pad_start_date         IN DATE
170758                               , p_pad_end_date           IN DATE
170759                          )
170760 IS
170761 
170762 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
170763 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
170764 p_apps_owner                   VARCHAR2(30);
170765 l_log_module                   VARCHAR2(240);
170766 BEGIN
170767 IF g_log_enabled THEN
170768       l_log_module := C_DEFAULT_MODULE||'.insert_sources_254';
170769 END IF;
170770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170771 
170772       trace
170773          (p_msg      => 'BEGIN of insert_sources_254'
170777 END IF;
170774          ,p_level    => C_LEVEL_PROCEDURE
170775          ,p_module   => l_log_module);
170776 
170778 
170779 -- select APPS owner
170780 SELECT oracle_username
170781   INTO p_apps_owner
170782   FROM fnd_oracle_userid
170783  WHERE read_only_flag = 'U'
170784 ;
170785 
170786 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170787       trace
170788          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
170789                         ' - p_language = '||p_language||
170790                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
170791                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
170792                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
170793                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
170794          ,p_level    => C_LEVEL_STATEMENT
170795          ,p_module   => l_log_module);
170796 END IF;
170797 
170798 
170799 --
170800 INSERT INTO xla_diag_sources --hdr2
170801 (
170802         event_id
170803       , ledger_id
170804       , sla_ledger_id
170805       , description_language
170806       , object_name
170807       , object_type_code
170808       , line_number
170809       , source_application_id
170810       , source_type_code
170811       , source_code
170812       , source_value
170813       , source_meaning
170814       , created_by
170815       , creation_date
170816       , last_update_date
170817       , last_updated_by
170818       , last_update_login
170819       , program_update_date
170820       , program_application_id
170821       , program_id
170822       , request_id
170823 )
170824 SELECT
170825         event_id
170826       , p_target_ledger_id
170827       , p_sla_ledger_id
170828       , p_language
170829       , object_name
170830       , object_type_code
170831       , line_number
170832       , source_application_id
170833       , source_type_code
170834       , source_code
170835       , SUBSTR(source_value ,1,1996)
170836       , SUBSTR(source_meaning ,1,200)
170837       , xla_environment_pkg.g_Usr_Id
170838       , TRUNC(SYSDATE)
170839       , TRUNC(SYSDATE)
170840       , xla_environment_pkg.g_Usr_Id
170841       , xla_environment_pkg.g_Login_Id
170842       , TRUNC(SYSDATE)
170843       , xla_environment_pkg.g_Prog_Appl_Id
170844       , xla_environment_pkg.g_Prog_Id
170845       , xla_environment_pkg.g_Req_Id
170846   FROM (
170847        SELECT xet.event_id                  event_id
170848             , 0                          line_number
170849             , CASE r
170850                WHEN 1 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
170851                 WHEN 2 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
170852                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
170853                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
170854                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170855                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
170856                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170857                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170858                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170859                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170860                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170861                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170862                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170863                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170864                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170865                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170866                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
170867                 
170868                ELSE null
170869               END                           object_name
170870             , CASE r
170871                 WHEN 1 THEN 'HEADER' 
170872                 WHEN 2 THEN 'HEADER' 
170873                 WHEN 3 THEN 'HEADER' 
170874                 WHEN 4 THEN 'HEADER' 
170875                 WHEN 5 THEN 'HEADER' 
170876                 WHEN 6 THEN 'HEADER' 
170877                 WHEN 7 THEN 'HEADER' 
170878                 WHEN 8 THEN 'HEADER' 
170879                 WHEN 9 THEN 'HEADER' 
170880                 WHEN 10 THEN 'HEADER' 
170881                 WHEN 11 THEN 'HEADER' 
170882                 WHEN 12 THEN 'HEADER' 
170883                 WHEN 13 THEN 'HEADER' 
170884                 WHEN 14 THEN 'HEADER' 
170885                 WHEN 15 THEN 'HEADER' 
170886                 WHEN 16 THEN 'HEADER' 
170887                 WHEN 17 THEN 'HEADER' 
170888                 
170889                 ELSE null
170890               END                           object_type_code
170891             , CASE r
170892                 WHEN 1 THEN '200' 
170893                 WHEN 2 THEN '200' 
170894                 WHEN 3 THEN '200' 
170895                 WHEN 4 THEN '200' 
170896                 WHEN 5 THEN '200' 
170897                 WHEN 6 THEN '200' 
170898                 WHEN 7 THEN '200' 
170899                 WHEN 8 THEN '200' 
170900                 WHEN 9 THEN '200' 
170901                 WHEN 10 THEN '200' 
170902                 WHEN 11 THEN '200' 
170903                 WHEN 12 THEN '200' 
170904                 WHEN 13 THEN '200' 
170905                 WHEN 14 THEN '200' 
170906                 WHEN 15 THEN '200' 
170907                 WHEN 16 THEN '200' 
170908                 WHEN 17 THEN '200' 
170909                 
170910                 ELSE null
170911               END                           source_application_id
170912             , 'S'             source_type_code
170913             , CASE r
170914                 WHEN 1 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
170915                 WHEN 2 THEN 'ASP_RATE_VAR_GAIN_CCID' 
170916                 WHEN 3 THEN 'ASP_RATE_VAR_LOSS_CCID' 
170917                 WHEN 4 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG' 
170921                 WHEN 8 THEN 'AI_INVOICE_CURRENCY_CODE' 
170918                 WHEN 5 THEN 'AI_ACCTS_PAY_CCID' 
170919                 WHEN 6 THEN 'ASP_AUTO_OFFSET_FLAG' 
170920                 WHEN 7 THEN 'AI_INVOICE_ID' 
170922                 WHEN 9 THEN 'AI_VENDOR_ID' 
170923                 WHEN 10 THEN 'AI_VENDOR_SITE_ID' 
170924                 WHEN 11 THEN 'THIRD_PARTY_TYPE' 
170925                 WHEN 12 THEN 'INV_EXCHANGE_DATE' 
170926                 WHEN 13 THEN 'INV_EXCHANGE_RATE' 
170927                 WHEN 14 THEN 'INV_EXCHANGE_RATE_TYPE' 
170928                 WHEN 15 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
170929                 WHEN 16 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
170930                 WHEN 17 THEN 'INV_DOC_SEQUENCE_VALUE' 
170931                 
170932                 ELSE null
170933               END                           source_code
170934             , CASE r
170935                 WHEN 1 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
170936                 WHEN 2 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
170937                 WHEN 3 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
170938                 WHEN 4 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
170939                 WHEN 5 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
170940                 WHEN 6 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
170941                 WHEN 7 THEN TO_CHAR(h2.AI_INVOICE_ID)
170942                 WHEN 8 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
170943                 WHEN 9 THEN TO_CHAR(h2.AI_VENDOR_ID)
170944                 WHEN 10 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
170945                 WHEN 11 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
170946                 WHEN 12 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
170947                 WHEN 13 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
170948                 WHEN 14 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
170949                 WHEN 15 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
170950                 WHEN 16 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
170951                 WHEN 17 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
170952                 
170953                 ELSE null
170954               END                           source_value
170955             , CASE r
170956                 WHEN 1 THEN fvl10.meaning
170957                 WHEN 4 THEN fvl26.meaning
170958                 WHEN 6 THEN fvl43.meaning
170959                 
170960                 ELSE null
170961               END               source_meaning
170962          FROM xla_events_gt     xet  
170963       , AP_INVOICE_EXTRACT_HEADER_V  h2
170964       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
170965   , fnd_lookup_values    fvl10
170966   , fnd_lookup_values    fvl26
170967   , fnd_lookup_values    fvl43
170968              ,(select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
170969          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
170970            AND xet.event_class_code = C_EVENT_CLASS_CODE
170971               AND h2.event_id = xet.event_id
170972  AND h4.asp_org_id = h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
170973   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
170974   AND fvl10.view_application_id(+) = 200
170975   AND fvl10.language(+)            = USERENV('LANG')
170976      AND fvl26.lookup_type(+)         = 'YES_NO'
170977   AND fvl26.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
170978   AND fvl26.view_application_id(+) = 0
170979   AND fvl26.language(+)            = USERENV('LANG')
170980      AND fvl43.lookup_type(+)         = 'YES_NO'
170981   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
170982   AND fvl43.view_application_id(+) = 0
170983   AND fvl43.language(+)            = USERENV('LANG')
170984   
170985 )
170986 ;
170987 --
170988 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170989 
170990       trace
170991          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
170992          ,p_level    => C_LEVEL_STATEMENT
170993          ,p_module   => l_log_module);
170994 
170995 END IF;
170996 --
170997 
170998 
170999 
171000 --
171001 INSERT INTO xla_diag_sources  --line2
171002 (
171003         event_id
171004       , ledger_id
171005       , sla_ledger_id
171006       , description_language
171007       , object_name
171008       , object_type_code
171009       , line_number
171010       , source_application_id
171011       , source_type_code
171012       , source_code
171013       , source_value
171014       , source_meaning
171015       , created_by
171016       , creation_date
171017       , last_update_date
171018       , last_updated_by
171019       , last_update_login
171020       , program_update_date
171021       , program_application_id
171022       , program_id
171023       , request_id
171024 )
171025 SELECT  event_id
171026       , p_target_ledger_id
171027       , p_sla_ledger_id
171028       , p_language
171029       , object_name
171030       , object_type_code
171031       , line_number
171032       , source_application_id
171033       , source_type_code
171034       , source_code
171035       , SUBSTR(source_value,1,1996)
171036       , SUBSTR(source_meaning ,1,200)
171037       , xla_environment_pkg.g_Usr_Id
171038       , TRUNC(SYSDATE)
171039       , TRUNC(SYSDATE)
171040       , xla_environment_pkg.g_Usr_Id
171041       , xla_environment_pkg.g_Login_Id
171042       , TRUNC(SYSDATE)
171043       , xla_environment_pkg.g_Prog_Appl_Id
171044       , xla_environment_pkg.g_Prog_Id
171045       , xla_environment_pkg.g_Req_Id
171046   FROM (
171047        SELECT xet.event_id                  event_id
171048             , l1.line_number                 line_number
171049             , CASE r
171050                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171051                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171052                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171053                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171057                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171054                 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V' 
171055                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171056                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171058                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171059                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171060                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171061                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171062                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171063                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171064                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171065                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171066                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171067                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171068                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171069                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171070                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171071                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171072                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171073                 WHEN 24 THEN 'AP_PO_HEADERS_EXTRACT_V' 
171074                 WHEN 25 THEN 'AP_PO_HEADERS_EXTRACT_V' 
171075                 WHEN 26 THEN 'AP_PO_HEADERS_EXTRACT_V' 
171076                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171077                 WHEN 28 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171078                 WHEN 29 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171079                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171080                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171081                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171082                 WHEN 33 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
171083                 WHEN 34 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
171084                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171085                 WHEN 36 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171086                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171087                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171088                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171089                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171090                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171091                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171092                 WHEN 43 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
171093                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
171094                 
171095                ELSE null
171096               END                           object_name
171097             , CASE r
171098                 WHEN 1 THEN 'LINE' 
171099                 WHEN 2 THEN 'LINE' 
171100                 WHEN 3 THEN 'LINE' 
171101                 WHEN 4 THEN 'LINE' 
171102                 WHEN 5 THEN 'LINE' 
171103                 WHEN 6 THEN 'LINE' 
171104                 WHEN 7 THEN 'LINE' 
171105                 WHEN 8 THEN 'LINE' 
171106                 WHEN 9 THEN 'LINE' 
171107                 WHEN 10 THEN 'LINE' 
171108                 WHEN 11 THEN 'LINE' 
171109                 WHEN 12 THEN 'LINE' 
171110                 WHEN 13 THEN 'LINE' 
171111                 WHEN 14 THEN 'LINE' 
171112                 WHEN 15 THEN 'LINE' 
171113                 WHEN 16 THEN 'LINE' 
171114                 WHEN 17 THEN 'LINE' 
171115                 WHEN 18 THEN 'LINE' 
171116                 WHEN 19 THEN 'LINE' 
171117                 WHEN 20 THEN 'LINE' 
171118                 WHEN 21 THEN 'LINE' 
171119                 WHEN 22 THEN 'LINE' 
171120                 WHEN 23 THEN 'LINE' 
171121                 WHEN 24 THEN 'LINE' 
171122                 WHEN 25 THEN 'LINE' 
171123                 WHEN 26 THEN 'LINE' 
171124                 WHEN 27 THEN 'LINE' 
171125                 WHEN 28 THEN 'LINE' 
171126                 WHEN 29 THEN 'LINE' 
171127                 WHEN 30 THEN 'LINE' 
171128                 WHEN 31 THEN 'LINE' 
171129                 WHEN 32 THEN 'LINE' 
171130                 WHEN 33 THEN 'LINE' 
171131                 WHEN 34 THEN 'LINE' 
171132                 WHEN 35 THEN 'LINE' 
171133                 WHEN 36 THEN 'LINE' 
171134                 WHEN 37 THEN 'LINE' 
171135                 WHEN 38 THEN 'LINE' 
171136                 WHEN 39 THEN 'LINE' 
171137                 WHEN 40 THEN 'LINE' 
171138                 WHEN 41 THEN 'LINE' 
171139                 WHEN 42 THEN 'LINE' 
171140                 WHEN 43 THEN 'LINE' 
171141                 WHEN 44 THEN 'LINE' 
171142                 
171143                 ELSE null
171144               END                           object_type_code
171145             , CASE r
171146                 WHEN 1 THEN '200' 
171147                 WHEN 2 THEN '200' 
171148                 WHEN 3 THEN '200' 
171149                 WHEN 4 THEN '200' 
171150                 WHEN 5 THEN '200' 
171151                 WHEN 6 THEN '200' 
171152                 WHEN 7 THEN '200' 
171153                 WHEN 8 THEN '200' 
171154                 WHEN 9 THEN '200' 
171155                 WHEN 10 THEN '200' 
171156                 WHEN 11 THEN '200' 
171157                 WHEN 12 THEN '200' 
171158                 WHEN 13 THEN '200' 
171159                 WHEN 14 THEN '200' 
171160                 WHEN 15 THEN '200' 
171161                 WHEN 16 THEN '200' 
171162                 WHEN 17 THEN '200' 
171163                 WHEN 18 THEN '200' 
171164                 WHEN 19 THEN '200' 
171165                 WHEN 20 THEN '200' 
171166                 WHEN 21 THEN '200' 
171167                 WHEN 22 THEN '200' 
171168                 WHEN 23 THEN '200' 
171169                 WHEN 24 THEN '200' 
171170                 WHEN 25 THEN '200' 
171171                 WHEN 26 THEN '200' 
171172                 WHEN 27 THEN '200' 
171173                 WHEN 28 THEN '200' 
171174                 WHEN 29 THEN '200' 
171175                 WHEN 30 THEN '200' 
171179                 WHEN 34 THEN '200' 
171176                 WHEN 31 THEN '200' 
171177                 WHEN 32 THEN '200' 
171178                 WHEN 33 THEN '200' 
171180                 WHEN 35 THEN '200' 
171181                 WHEN 36 THEN '200' 
171182                 WHEN 37 THEN '200' 
171183                 WHEN 38 THEN '200' 
171184                 WHEN 39 THEN '200' 
171185                 WHEN 40 THEN '200' 
171186                 WHEN 41 THEN '200' 
171187                 WHEN 42 THEN '200' 
171188                 WHEN 43 THEN '200' 
171189                 WHEN 44 THEN '200' 
171190                 
171191                 ELSE null
171192               END                           source_application_id
171193             , 'S'             source_type_code
171194             , CASE r
171195                 WHEN 1 THEN 'AID_DESCRIPTION' 
171196                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
171197                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
171198                 WHEN 4 THEN 'AID_DIST_CCID' 
171199                 WHEN 5 THEN 'PO_NUMBER' 
171200                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
171201                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
171202                 WHEN 8 THEN 'POD_CCID' 
171203                 WHEN 9 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
171204                 WHEN 10 THEN 'ASAT_LIAB_CCID' 
171205                 WHEN 11 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
171206                 WHEN 12 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
171207                 WHEN 13 THEN 'DISTRIBUTION_LINK_TYPE' 
171208                 WHEN 14 THEN 'ALLOC_TO_MAIN_DIST_ID' 
171209                 WHEN 15 THEN 'AID_INVOICE_DIST_ID' 
171210                 WHEN 16 THEN 'UPG_ENC_CR_CCID' 
171211                 WHEN 17 THEN 'UPG_ENC_CR_AMT' 
171212                 WHEN 18 THEN 'UPG_ENC_CR_BASE_AMT' 
171213                 WHEN 19 THEN 'UPG_ENC_DR_CCID' 
171214                 WHEN 20 THEN 'UPG_ENC_DR_AMT' 
171215                 WHEN 21 THEN 'UPG_ENC_DR_BASE_AMT' 
171216                 WHEN 22 THEN 'UPG_AP_ENCUM_OPTION' 
171217                 WHEN 23 THEN 'AID_AMOUNT' 
171218                 WHEN 24 THEN 'POH_RATE_DATE' 
171219                 WHEN 25 THEN 'POH_RATE' 
171220                 WHEN 26 THEN 'POH_RATE_TYPE' 
171221                 WHEN 27 THEN 'DEFERRED_END_DATE' 
171222                 WHEN 28 THEN 'DEFERRED_OPTION' 
171223                 WHEN 29 THEN 'DEFERRED_START_DATE' 
171224                 WHEN 30 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
171225                 WHEN 31 THEN 'AID_PARENT_REVERSAL_ID' 
171226                 WHEN 32 THEN 'AID_STAT_AMOUNT' 
171227                 WHEN 33 THEN 'TAX_LINE_ID' 
171228                 WHEN 34 THEN 'REC_NREC_TAX_DIST_ID' 
171229                 WHEN 35 THEN 'SUMMARY_TAX_LINE_ID' 
171230                 WHEN 36 THEN 'UPG_CR_ENC_TYPE_ID' 
171231                 WHEN 37 THEN 'UPG_DR_ENC_TYPE_ID' 
171232                 WHEN 38 THEN 'BUS_FLOW_AP_APP_ID' 
171233                 WHEN 39 THEN 'BUS_FLOW_INV_DIST_TYPE' 
171234                 WHEN 40 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
171235                 WHEN 41 THEN 'BUS_FLOW_INV_DIST_ID' 
171236                 WHEN 42 THEN 'BUS_FLOW_INV_ID' 
171237                 WHEN 43 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
171238                 WHEN 44 THEN 'SELF_ASSESSED_TAX_FLAG' 
171239                 
171240                 ELSE null
171241               END                           source_code
171242             , CASE r
171243                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
171244                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
171245                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
171246                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
171247                 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
171248                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
171249                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
171250                 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
171251                 WHEN 9 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
171252                 WHEN 10 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
171253                 WHEN 11 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
171254                 WHEN 12 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
171255                 WHEN 13 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
171256                 WHEN 14 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
171257                 WHEN 15 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
171258                 WHEN 16 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
171259                 WHEN 17 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
171260                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
171261                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
171262                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
171263                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
171264                 WHEN 22 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
171265                 WHEN 23 THEN TO_CHAR(l1.AID_AMOUNT)
171266                 WHEN 24 THEN TO_CHAR(l3.POH_RATE_DATE)
171267                 WHEN 25 THEN TO_CHAR(l3.POH_RATE)
171268                 WHEN 26 THEN TO_CHAR(l3.POH_RATE_TYPE)
171269                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_END_DATE)
171270                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_OPTION)
171271                 WHEN 29 THEN TO_CHAR(l1.DEFERRED_START_DATE)
171272                 WHEN 30 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
171273                 WHEN 31 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
171274                 WHEN 32 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
171275                 WHEN 33 THEN TO_CHAR(l5.TAX_LINE_ID)
171276                 WHEN 34 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
171277                 WHEN 35 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
171278                 WHEN 36 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
171279                 WHEN 37 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
171280                 WHEN 38 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
171281                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
171282                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
171283                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
171287                 
171284                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
171285                 WHEN 43 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
171286                 WHEN 44 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
171288                 ELSE null
171289               END                           source_value
171290             , CASE r
171291                 WHEN 3 THEN fvl17.meaning
171292                 WHEN 6 THEN fvl28.meaning
171293                 WHEN 11 THEN fvl54.meaning
171294                 WHEN 30 THEN fvl85.meaning
171295                 WHEN 43 THEN fvl140.meaning
171296                 WHEN 44 THEN fvl145.meaning
171297                 
171298                 ELSE null
171299               END               source_meaning
171300          FROM  xla_events_gt     xet  
171301         , AP_INVOICE_EXTRACT_DETAILS_V  l1
171302         , AP_PO_HEADERS_EXTRACT_V  l3
171303         , ZX_AP_DEF_TAX_EXTRACT_V  l5
171304         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
171305   , fnd_lookup_values    fvl17
171306   , fnd_lookup_values    fvl28
171307   , fnd_lookup_values    fvl54
171308   , fnd_lookup_values    fvl85
171309   , fnd_lookup_values    fvl140
171310   , fnd_lookup_values    fvl145
171311             , (select rownum r from all_objects where rownum <= 44 and owner = p_apps_owner)
171312         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
171313           AND xet.event_class_code = C_EVENT_CLASS_CODE
171314             AND l1.event_id          = xet.event_id
171315  AND l1.pod_po_header_id  = l3.po_header_id (+)  AND l1.zrnd_tax_dist_id = l5.rec_nrec_tax_dist_id (+)  AND l1.zrnd_tax_dist_id = l6.rec_nrec_tax_dist_id (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
171316   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
171317   AND fvl17.view_application_id(+) = 201
171318   AND fvl17.language(+)            = USERENV('LANG')
171319      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
171320   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
171321   AND fvl28.view_application_id(+) = 200
171322   AND fvl28.language(+)            = USERENV('LANG')
171323      AND fvl54.lookup_type(+)         = 'YES_NO'
171324   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
171325   AND fvl54.view_application_id(+) = 0
171326   AND fvl54.language(+)            = USERENV('LANG')
171327      AND fvl85.lookup_type(+)         = 'YES_NO'
171328   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
171329   AND fvl85.view_application_id(+) = 0
171330   AND fvl85.language(+)            = USERENV('LANG')
171331      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
171332   AND fvl140.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
171333   AND fvl140.view_application_id(+) = 0
171334   AND fvl140.language(+)            = USERENV('LANG')
171335      AND fvl145.lookup_type(+)         = 'YES_NO'
171336   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
171337   AND fvl145.view_application_id(+) = 0
171338   AND fvl145.language(+)            = USERENV('LANG')
171339   
171340 )
171341 ;
171342 --
171343 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171344 
171345       trace
171346          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
171347          ,p_level    => C_LEVEL_STATEMENT
171348          ,p_module   => l_log_module);
171349 
171350 END IF;
171351 
171352 
171353 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171354       trace
171355          (p_msg      => 'END of insert_sources_254'
171356          ,p_level    => C_LEVEL_PROCEDURE
171357          ,p_module   => l_log_module);
171358 END IF;
171359 EXCEPTION
171360   WHEN xla_exceptions_pkg.application_exception THEN
171361       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
171362             trace
171363                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
171364                ,p_level    => C_LEVEL_EXCEPTION
171365                ,p_module   => l_log_module);
171366       END IF;
171367       RAISE;
171368   WHEN OTHERS THEN
171369       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
171370             trace
171371                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
171372                ,p_level    => C_LEVEL_EXCEPTION
171373                ,p_module   => l_log_module);
171374        END IF;
171375        xla_exceptions_pkg.raise_message
171376            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_254');
171377 END insert_sources_254;
171378 --
171379 
171380 ---------------------------------------
171381 --
171382 -- PRIVATE FUNCTION
171383 --         EventClass_254
171384 --
171385 ----------------------------------------
171386 --
171387 FUNCTION EventClass_254
171388        (p_application_id         IN NUMBER
171389        ,p_base_ledger_id         IN NUMBER
171390        ,p_target_ledger_id       IN NUMBER
171391        ,p_language               IN VARCHAR2
171392        ,p_currency_code          IN VARCHAR2
171393        ,p_sla_ledger_id          IN NUMBER
171394        ,p_pad_start_date         IN DATE
171395        ,p_pad_end_date           IN DATE
171396        ,p_primary_ledger_id      IN NUMBER)
171397 RETURN BOOLEAN IS
171398 --
171399 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
171400 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
171401 
171402 l_calculate_acctd_flag   VARCHAR2(1) :='N';
171403 l_calculate_g_l_flag     VARCHAR2(1) :='N';
171404 --
171405 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171406 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171407 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
171408 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
171409 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171410 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
171414 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
171411 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
171412 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171413 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
171415 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171416 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171417 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171418 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
171419 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
171420 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
171421 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
171422 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
171423 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
171424 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
171425 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
171426 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
171427 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
171428 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
171429 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
171430 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
171431 
171432 l_event_id                             NUMBER;
171433 l_previous_event_id                    NUMBER;
171434 l_first_event_id                       NUMBER;
171435 l_last_event_id                        NUMBER;
171436 
171437 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
171438 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
171439 --
171440 --
171441 l_result                    BOOLEAN := TRUE;
171442 l_rows                      NUMBER  := 1000;
171443 l_event_type_name           VARCHAR2(80) := 'All';
171444 l_event_class_name          VARCHAR2(80) := 'Prepayments';
171445 l_description               VARCHAR2(4000);
171446 l_transaction_reversal      NUMBER;
171447 l_ae_header_id              NUMBER;
171448 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
171449 l_log_module                VARCHAR2(240);
171450 --
171451 l_acct_reversal_source      VARCHAR2(30);
171452 l_trx_reversal_source       VARCHAR2(30);
171453 
171454 l_continue_with_lines       BOOLEAN := TRUE;
171455 --
171456 l_acc_rev_gl_date_source    DATE;                      -- 4262811
171457 --
171458 type t_array_event_id is table of number index by binary_integer;
171459 
171460 l_rec_array_event                    t_rec_array_event;
171461 l_null_rec_array_event               t_rec_array_event;
171462 l_array_ae_header_id                 xla_number_array_type;
171463 l_actual_flag                        VARCHAR2(1) := NULL;
171464 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
171465 l_balance_type_code                  VARCHAR2(1) :=NULL;
171466 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
171467 
171468 --
171469 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
171470 --
171471 
171472 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
171473 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
171474 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
171475 TYPE t_array_source_26 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
171476 TYPE t_array_source_29 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
171477 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
171478 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
171479 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
171480 TYPE t_array_source_86 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
171481 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
171482 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
171483 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
171484 TYPE t_array_source_147 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
171485 TYPE t_array_source_148 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
171486 TYPE t_array_source_171 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
171487 TYPE t_array_source_172 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
171488 TYPE t_array_source_173 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
171489 
171490 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
171491 TYPE t_array_source_16 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
171492 TYPE t_array_source_17 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
171493 TYPE t_array_source_25 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
171494 TYPE t_array_source_27 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
171495 TYPE t_array_source_28 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
171496 TYPE t_array_source_39 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
171500 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
171497 TYPE t_array_source_41 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
171498 TYPE t_array_source_46 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
171499 TYPE t_array_source_47 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
171501 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
171502 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
171503 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
171504 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
171505 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
171506 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
171507 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
171508 TYPE t_array_source_74 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
171509 TYPE t_array_source_75 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
171510 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
171511 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
171512 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
171513 TYPE t_array_source_79 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
171514 TYPE t_array_source_80 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
171515 TYPE t_array_source_81 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
171516 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
171517 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
171518 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
171519 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
171520 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
171521 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
171522 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
171523 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
171524 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
171525 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
171526 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
171527 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
171528 TYPE t_array_source_97 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
171529 TYPE t_array_source_98 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
171530 TYPE t_array_source_99 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
171531 TYPE t_array_source_100 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
171532 TYPE t_array_source_140 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
171533 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
171534 
171535 l_array_source_10              t_array_source_10;
171536 l_array_source_10_meaning      t_array_lookup_meaning;
171537 l_array_source_15              t_array_source_15;
171538 l_array_source_18              t_array_source_18;
171539 l_array_source_26              t_array_source_26;
171540 l_array_source_26_meaning      t_array_lookup_meaning;
171541 l_array_source_29              t_array_source_29;
171542 l_array_source_43              t_array_source_43;
171543 l_array_source_43_meaning      t_array_lookup_meaning;
171544 l_array_source_63              t_array_source_63;
171545 l_array_source_72              t_array_source_72;
171546 l_array_source_86              t_array_source_86;
171547 l_array_source_87              t_array_source_87;
171548 l_array_source_88              t_array_source_88;
171549 l_array_source_146              t_array_source_146;
171550 l_array_source_147              t_array_source_147;
171551 l_array_source_148              t_array_source_148;
171552 l_array_source_171              t_array_source_171;
171553 l_array_source_172              t_array_source_172;
171554 l_array_source_173              t_array_source_173;
171555 
171556 l_array_source_1      t_array_source_1;
171557 l_array_source_16      t_array_source_16;
171558 l_array_source_17      t_array_source_17;
171559 l_array_source_17_meaning      t_array_lookup_meaning;
171560 l_array_source_25      t_array_source_25;
171561 l_array_source_27      t_array_source_27;
171562 l_array_source_28      t_array_source_28;
171563 l_array_source_28_meaning      t_array_lookup_meaning;
171564 l_array_source_39      t_array_source_39;
171565 l_array_source_41      t_array_source_41;
171566 l_array_source_46      t_array_source_46;
171567 l_array_source_47      t_array_source_47;
171568 l_array_source_54      t_array_source_54;
171569 l_array_source_54_meaning      t_array_lookup_meaning;
171570 l_array_source_58      t_array_source_58;
171571 l_array_source_60      t_array_source_60;
171572 l_array_source_62      t_array_source_62;
171573 l_array_source_69      t_array_source_69;
171574 l_array_source_70      t_array_source_70;
171578 l_array_source_75      t_array_source_75;
171575 l_array_source_71      t_array_source_71;
171576 l_array_source_73      t_array_source_73;
171577 l_array_source_74      t_array_source_74;
171579 l_array_source_76      t_array_source_76;
171580 l_array_source_77      t_array_source_77;
171581 l_array_source_78      t_array_source_78;
171582 l_array_source_79      t_array_source_79;
171583 l_array_source_80      t_array_source_80;
171584 l_array_source_81      t_array_source_81;
171585 l_array_source_82      t_array_source_82;
171586 l_array_source_83      t_array_source_83;
171587 l_array_source_84      t_array_source_84;
171588 l_array_source_85      t_array_source_85;
171589 l_array_source_85_meaning      t_array_lookup_meaning;
171590 l_array_source_89      t_array_source_89;
171591 l_array_source_90      t_array_source_90;
171592 l_array_source_91      t_array_source_91;
171593 l_array_source_92      t_array_source_92;
171594 l_array_source_93      t_array_source_93;
171595 l_array_source_94      t_array_source_94;
171596 l_array_source_95      t_array_source_95;
171597 l_array_source_96      t_array_source_96;
171598 l_array_source_97      t_array_source_97;
171599 l_array_source_98      t_array_source_98;
171600 l_array_source_99      t_array_source_99;
171601 l_array_source_100      t_array_source_100;
171602 l_array_source_140      t_array_source_140;
171603 l_array_source_140_meaning      t_array_lookup_meaning;
171604 l_array_source_145      t_array_source_145;
171605 l_array_source_145_meaning      t_array_lookup_meaning;
171606 
171607 --
171608 CURSOR header_cur
171609 IS
171610 SELECT /*+ leading(xet) cardinality(xet,1) */
171611 -- Event Class Code: PREPAYMENTS
171612     xet.entity_id
171613    ,xet.legal_entity_id
171614    ,xet.entity_code
171615    ,xet.transaction_number
171616    ,xet.event_id
171617    ,xet.event_class_code
171618    ,xet.event_type_code
171619    ,xet.event_number
171620    ,xet.event_date
171621    ,xet.transaction_date
171622    ,xet.reference_num_1
171623    ,xet.reference_num_2
171624    ,xet.reference_num_3
171625    ,xet.reference_num_4
171626    ,xet.reference_char_1
171627    ,xet.reference_char_2
171628    ,xet.reference_char_3
171629    ,xet.reference_char_4
171630    ,xet.reference_date_1
171631    ,xet.reference_date_2
171632    ,xet.reference_date_3
171633    ,xet.reference_date_4
171634    ,xet.event_created_by
171635    ,xet.budgetary_control_flag 
171636   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
171637   , fvl10.meaning   source_10_meaning
171638   , h4.ASP_RATE_VAR_GAIN_CCID    source_15
171639   , h4.ASP_RATE_VAR_LOSS_CCID    source_18
171640   , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG    source_26
171641   , fvl26.meaning   source_26_meaning
171642   , h2.AI_ACCTS_PAY_CCID    source_29
171643   , h4.ASP_AUTO_OFFSET_FLAG    source_43
171644   , fvl43.meaning   source_43_meaning
171645   , h2.AI_INVOICE_ID    source_63
171646   , h2.AI_INVOICE_CURRENCY_CODE    source_72
171647   , h2.AI_VENDOR_ID    source_86
171648   , h2.AI_VENDOR_SITE_ID    source_87
171649   , h2.THIRD_PARTY_TYPE    source_88
171650   , h2.INV_EXCHANGE_DATE    source_146
171651   , h2.INV_EXCHANGE_RATE    source_147
171652   , h2.INV_EXCHANGE_RATE_TYPE    source_148
171653   , h2.INV_DOC_SEQUENCE_CATEGORY    source_171
171654   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_172
171655   , h2.INV_DOC_SEQUENCE_VALUE    source_173
171656   FROM xla_events_gt     xet 
171657   , AP_INVOICE_EXTRACT_HEADER_V  h2
171658   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
171659   , fnd_lookup_values    fvl10
171660   , fnd_lookup_values    fvl26
171661   , fnd_lookup_values    fvl43
171662  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
171663    and xet.event_class_code = C_EVENT_CLASS_CODE
171664    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
171665  AND h4.asp_org_id = h2.ai_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
171666   AND fvl10.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
171667   AND fvl10.view_application_id(+) = 200
171668   AND fvl10.language(+)            = USERENV('LANG')
171669      AND fvl26.lookup_type(+)         = 'YES_NO'
171670   AND fvl26.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
171671   AND fvl26.view_application_id(+) = 0
171672   AND fvl26.language(+)            = USERENV('LANG')
171673      AND fvl43.lookup_type(+)         = 'YES_NO'
171674   AND fvl43.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
171675   AND fvl43.view_application_id(+) = 0
171676   AND fvl43.language(+)            = USERENV('LANG')
171677   
171678  ORDER BY event_id
171679 ;
171680 
171681 
171682 --
171683 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
171684 IS
171685 SELECT  /*+ leading(xet) cardinality(xet,1) */
171686 -- Event Class Code: PREPAYMENTS
171687     xet.entity_id
171688    ,xet.legal_entity_id
171689    ,xet.entity_code
171690    ,xet.transaction_number
171691    ,xet.event_id
171692    ,xet.event_class_code
171693    ,xet.event_type_code
171694    ,xet.event_number
171695    ,xet.event_date
171696    ,xet.transaction_date
171697    ,xet.reference_num_1
171698    ,xet.reference_num_2
171699    ,xet.reference_num_3
171700    ,xet.reference_num_4
171701    ,xet.reference_char_1
171702    ,xet.reference_char_2
171703    ,xet.reference_char_3
171704    ,xet.reference_char_4
171705    ,xet.reference_date_1
171706    ,xet.reference_date_2
171707    ,xet.reference_date_3
171708    ,xet.reference_date_4
171709    ,xet.event_created_by
171710    ,xet.budgetary_control_flag
171711  , l1.LINE_NUMBER  
171712   , l1.AID_DESCRIPTION    source_1
171713   , l1.INV_DIST_BASE_AMOUNT    source_16
171714   , l1.RELATED_INV_DIST_DEST_TYPE    source_17
171715   , fvl17.meaning   source_17_meaning
171716   , l1.AID_DIST_CCID    source_25
171717   , l3.PO_NUMBER    source_27
171718   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
171722   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_46
171719   , fvl28.meaning   source_28_meaning
171720   , l1.AWT_RELATED_DIST_ACCOUNT    source_39
171721   , l1.POD_CCID    source_41
171723   , l1.ASAT_LIAB_CCID    source_47
171724   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_54
171725   , fvl54.meaning   source_54_meaning
171726   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
171727   , l1.DISTRIBUTION_LINK_TYPE    source_60
171728   , l1.ALLOC_TO_MAIN_DIST_ID    source_62
171729   , l1.AID_INVOICE_DIST_ID    source_69
171730   , l1.UPG_ENC_CR_CCID    source_70
171731   , l1.UPG_ENC_CR_AMT    source_71
171732   , l1.UPG_ENC_CR_BASE_AMT    source_73
171733   , l1.UPG_ENC_DR_CCID    source_74
171734   , l1.UPG_ENC_DR_AMT    source_75
171735   , l1.UPG_ENC_DR_BASE_AMT    source_76
171736   , l1.UPG_AP_ENCUM_OPTION    source_77
171737   , l1.AID_AMOUNT    source_78
171738   , l3.POH_RATE_DATE    source_79
171739   , l3.POH_RATE    source_80
171740   , l3.POH_RATE_TYPE    source_81
171741   , l1.DEFERRED_END_DATE    source_82
171742   , l1.DEFERRED_OPTION    source_83
171743   , l1.DEFERRED_START_DATE    source_84
171744   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
171745   , fvl85.meaning   source_85_meaning
171746   , l1.AID_PARENT_REVERSAL_ID    source_89
171747   , l1.AID_STAT_AMOUNT    source_90
171748   , l5.TAX_LINE_ID    source_91
171749   , l6.REC_NREC_TAX_DIST_ID    source_92
171750   , l1.SUMMARY_TAX_LINE_ID    source_93
171751   , l1.UPG_CR_ENC_TYPE_ID    source_94
171752   , l1.UPG_DR_ENC_TYPE_ID    source_95
171753   , l1.BUS_FLOW_AP_APP_ID    source_96
171754   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
171755   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
171756   , l1.BUS_FLOW_INV_DIST_ID    source_99
171757   , l1.BUS_FLOW_INV_ID    source_100
171758   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_140
171759   , fvl140.meaning   source_140_meaning
171760   , l1.SELF_ASSESSED_TAX_FLAG    source_145
171761   , fvl145.meaning   source_145_meaning
171762   FROM xla_events_gt     xet 
171763   , AP_INVOICE_EXTRACT_DETAILS_V  l1
171764   , AP_PO_HEADERS_EXTRACT_V  l3
171765   , ZX_AP_DEF_TAX_EXTRACT_V  l5
171766   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
171767   , fnd_lookup_values    fvl17
171768   , fnd_lookup_values    fvl28
171769   , fnd_lookup_values    fvl54
171770   , fnd_lookup_values    fvl85
171771   , fnd_lookup_values    fvl140
171772   , fnd_lookup_values    fvl145
171773  WHERE xet.event_id between x_first_event_id and x_last_event_id
171774    and xet.event_date between p_pad_start_date and p_pad_end_date
171775    and xet.event_class_code = C_EVENT_CLASS_CODE
171776    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
171777  AND l1.POD_PO_Header_Id  = l3.PO_Header_Id (+)  AND l1.ZRND_tax_dist_id = l5.REC_NREC_TAX_DIST_ID (+)  AND l1.ZRND_tax_dist_id = l6.REC_NREC_TAX_DIST_ID (+)    AND fvl17.lookup_type(+)         = 'DESTINATION TYPE'
171778   AND fvl17.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
171779   AND fvl17.view_application_id(+) = 201
171780   AND fvl17.language(+)            = USERENV('LANG')
171781      AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
171782   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
171783   AND fvl28.view_application_id(+) = 200
171784   AND fvl28.language(+)            = USERENV('LANG')
171785      AND fvl54.lookup_type(+)         = 'YES_NO'
171786   AND fvl54.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
171787   AND fvl54.view_application_id(+) = 0
171788   AND fvl54.language(+)            = USERENV('LANG')
171789      AND fvl85.lookup_type(+)         = 'YES_NO'
171790   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
171791   AND fvl85.view_application_id(+) = 0
171792   AND fvl85.language(+)            = USERENV('LANG')
171793      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
171794   AND fvl140.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
171795   AND fvl140.view_application_id(+) = 0
171796   AND fvl140.language(+)            = USERENV('LANG')
171797      AND fvl145.lookup_type(+)         = 'YES_NO'
171798   AND fvl145.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
171799   AND fvl145.view_application_id(+) = 0
171800   AND fvl145.language(+)            = USERENV('LANG')
171801   ;
171802 
171803 --
171804 BEGIN
171805 IF g_log_enabled THEN
171806    l_log_module := C_DEFAULT_MODULE||'.EventClass_254';
171807 END IF;
171808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171809    trace
171810       (p_msg      => 'BEGIN of EventClass_254'
171811       ,p_level    => C_LEVEL_PROCEDURE
171812       ,p_module   => l_log_module);
171813 END IF;
171814 
171815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171816    trace
171817       (p_msg      => 'p_application_id = '||p_application_id||
171818                      ' - p_base_ledger_id = '||p_base_ledger_id||
171819                      ' - p_target_ledger_id  = '||p_target_ledger_id||
171820                      ' - p_language = '||p_language||
171821                      ' - p_currency_code = '||p_currency_code||
171822                      ' - p_sla_ledger_id = '||p_sla_ledger_id
171823       ,p_level    => C_LEVEL_STATEMENT
171824       ,p_module   => l_log_module);
171825 END IF;
171826 --
171827 -- initialze arrays
171828 --
171829 g_array_event.DELETE;
171830 l_rec_array_event := l_null_rec_array_event;
171831 --
171832 --------------------------------------
171833 -- 4262811 Initialze MPA Line Number
171834 --------------------------------------
171835 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
171836 
171837 --
171838 
171839 --
171840 OPEN header_cur;
171841 --
171842 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171843    trace
171844    (p_msg      => 'SQL - FETCH header_cur'
171845    ,p_level    => C_LEVEL_STATEMENT
171846    ,p_module   => l_log_module);
171847 END IF;
171848 --
171849 LOOP
171850 FETCH header_cur BULK COLLECT INTO
171851         l_array_entity_id
171852       , l_array_legal_entity_id
171853       , l_array_entity_code
171857       , l_array_event_type
171854       , l_array_transaction_num
171855       , l_array_event_id
171856       , l_array_class_code
171858       , l_array_event_number
171859       , l_array_event_date
171860       , l_array_transaction_date
171861       , l_array_reference_num_1
171862       , l_array_reference_num_2
171863       , l_array_reference_num_3
171864       , l_array_reference_num_4
171865       , l_array_reference_char_1
171866       , l_array_reference_char_2
171867       , l_array_reference_char_3
171868       , l_array_reference_char_4
171869       , l_array_reference_date_1
171870       , l_array_reference_date_2
171871       , l_array_reference_date_3
171872       , l_array_reference_date_4
171873       , l_array_event_created_by
171874       , l_array_budgetary_control_flag 
171875       , l_array_source_10
171876       , l_array_source_10_meaning
171877       , l_array_source_15
171878       , l_array_source_18
171879       , l_array_source_26
171880       , l_array_source_26_meaning
171881       , l_array_source_29
171882       , l_array_source_43
171883       , l_array_source_43_meaning
171884       , l_array_source_63
171885       , l_array_source_72
171886       , l_array_source_86
171887       , l_array_source_87
171888       , l_array_source_88
171889       , l_array_source_146
171890       , l_array_source_147
171891       , l_array_source_148
171892       , l_array_source_171
171893       , l_array_source_172
171894       , l_array_source_173
171895       LIMIT l_rows;
171896 --
171897 IF (C_LEVEL_EVENT >= g_log_level) THEN
171898    trace
171899    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
171900    ,p_level    => C_LEVEL_EVENT
171901    ,p_module   => l_log_module);
171902 END IF;
171903 --
171904 EXIT WHEN l_array_entity_id.COUNT = 0;
171905 
171906 -- initialize arrays
171907 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
171908 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
171909 
171910 --
171911 -- Bug 4458708
171912 --
171913 XLA_AE_LINES_PKG.g_LineNumber := 0;
171914 
171915 
171916 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
171917 g_last_hdr_idx := l_array_event_id.LAST;
171918 --
171919 -- loop for the headers. Each iteration is for each header extract row
171920 -- fetched in header cursor
171921 --
171922 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
171923 
171924 --
171925 -- set event info as cache for other routines to refer event attributes
171926 --
171927 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
171928    (p_application_id           => p_application_id
171929    ,p_primary_ledger_id        => p_primary_ledger_id
171930    ,p_base_ledger_id           => p_base_ledger_id
171931    ,p_target_ledger_id         => p_target_ledger_id
171932    ,p_entity_id                => l_array_entity_id(hdr_idx)
171933    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
171934    ,p_entity_code              => l_array_entity_code(hdr_idx)
171935    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
171936    ,p_event_id                 => l_array_event_id(hdr_idx)
171937    ,p_event_class_code         => l_array_class_code(hdr_idx)
171938    ,p_event_type_code          => l_array_event_type(hdr_idx)
171939    ,p_event_number             => l_array_event_number(hdr_idx)
171940    ,p_event_date               => l_array_event_date(hdr_idx)
171941    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
171942    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
171943    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
171944    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
171945    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
171946    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
171947    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
171948    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
171949    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
171950    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
171951    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
171952    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
171953    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
171954    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
171955    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
171956 
171957 --
171958 -- set the status of entry to C_VALID (0)
171959 --
171960 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
171961 
171962 --
171963 -- initialize a row for ae header
171964 --
171965 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
171966 
171967 l_event_id := l_array_event_id(hdr_idx);
171968 
171969 --
171970 -- storing the hdr_idx for event. May be used by line cursor.
171971 --
171972 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
171973 
171974 --
171975 -- store sources from header extract. This can be improved to
171976 -- store only those sources from header extract that may be used in lines
171977 --
171978 
171979 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
171980 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
171981 g_array_event(l_event_id).array_value_num('source_15') := l_array_source_15(hdr_idx);
171982 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
171983 g_array_event(l_event_id).array_value_char('source_26') := l_array_source_26(hdr_idx);
171984 g_array_event(l_event_id).array_value_char('source_26_meaning') := l_array_source_26_meaning(hdr_idx);
171985 g_array_event(l_event_id).array_value_num('source_29') := l_array_source_29(hdr_idx);
171989 g_array_event(l_event_id).array_value_char('source_72') := l_array_source_72(hdr_idx);
171986 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
171987 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
171988 g_array_event(l_event_id).array_value_num('source_63') := l_array_source_63(hdr_idx);
171990 g_array_event(l_event_id).array_value_num('source_86') := l_array_source_86(hdr_idx);
171991 g_array_event(l_event_id).array_value_num('source_87') := l_array_source_87(hdr_idx);
171992 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
171993 g_array_event(l_event_id).array_value_date('source_146') := l_array_source_146(hdr_idx);
171994 g_array_event(l_event_id).array_value_num('source_147') := l_array_source_147(hdr_idx);
171995 g_array_event(l_event_id).array_value_char('source_148') := l_array_source_148(hdr_idx);
171996 g_array_event(l_event_id).array_value_char('source_171') := l_array_source_171(hdr_idx);
171997 g_array_event(l_event_id).array_value_num('source_172') := l_array_source_172(hdr_idx);
171998 g_array_event(l_event_id).array_value_num('source_173') := l_array_source_173(hdr_idx);
171999 
172000 --
172001 -- initilaize the status of ae headers for diffrent balance types
172002 -- the status is initialised to C_NOT_CREATED (2)
172003 --
172004 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
172005 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
172006 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
172007 
172008 --
172009 -- call api to validate and store accounting attributes for header
172010 --
172011 
172012 ------------------------------------------------------------
172013 -- Accrual Reversal : to get date for Standard Source (NONE)
172014 ------------------------------------------------------------
172015 l_acc_rev_gl_date_source := NULL;
172016 
172017      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
172018       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_171');
172019      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
172020       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_172');
172021      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
172022       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_173');
172023      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
172024       l_rec_acct_attrs.array_date_value(4) := 
172025 xla_ae_sources_pkg.GetSystemSourceDate(
172026    p_source_code           => 'XLA_EVENT_DATE'
172027  , p_source_type_code      => 'Y'
172028  , p_source_application_id =>  602
172029 );
172030 
172031 
172032 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
172033 
172034 XLA_AE_HEADER_PKG.SetJeCategoryName;
172035 
172036 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
172037 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
172038 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
172039 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
172040 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
172041 
172042 
172043 -- No header level analytical criteria
172044 
172045 --
172046 --accounting attribute enhancement, bug 3612931
172047 --
172048 l_trx_reversal_source := SUBSTR(NULL, 1,30);
172049 
172050 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
172051    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
172052 
172053    xla_accounting_err_pkg.build_message
172054       (p_appli_s_name            => 'XLA'
172055       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
172056       ,p_token_1                 => 'ACCT_ATTR_NAME'
172057       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
172058       ,p_token_2                 => 'PRODUCT_NAME'
172059       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
172060       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
172061       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
172062       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
172063 
172064 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
172065    --
172066    -- following sets the accounting attributes needed to reverse
172067    -- accounting for a distributeion
172068    --
172069    xla_ae_lines_pkg.SetTrxReversalAttrs
172070       (p_event_id              => l_event_id
172071       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
172072       ,p_trx_reversal_source   => l_trx_reversal_source);
172073 
172074 END IF;
172075 
172076 
172077 ----------------------------------------------------------------
172078 -- 4262811 -  update the header statuses to invalid in need be
172079 ----------------------------------------------------------------
172080 --
172081 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
172082 
172083 
172084   -----------------------------------------------
172085   -- No accrual reversal for the event class/type
172086   -----------------------------------------------
172087 ----------------------------------------------------------------
172088 
172089 --
172090 -- this ends the header loop iteration for one bulk fetch
172091 --
172092 END LOOP;
172093 
172094 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
172095 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
172096 
172097 --
172098 -- insert dummy rows into lines gt table that were created due to
172099 -- transaction reversals
172103 END IF;
172100 --
172101 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
172102    l_result := XLA_AE_LINES_PKG.InsertLines;
172104 
172105 --
172106 -- reset the temp_line_num for each set of events fetched from header
172107 -- cursor rather than doing it for each new event in line cursor
172108 -- Bug 3939231
172109 --
172110 xla_ae_lines_pkg.g_temp_line_num := 0;
172111 
172112 
172113 
172114 --
172115 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
172116 --
172117 --
172118 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
172119 
172120       trace
172121          (p_msg      => 'SQL - FETCH line_cur'
172122          ,p_level    => C_LEVEL_STATEMENT
172123          ,p_module   => l_log_module);
172124 
172125 END IF;
172126 --
172127 --
172128 LOOP
172129   --
172130   FETCH line_cur BULK COLLECT INTO
172131         l_array_entity_id
172132       , l_array_legal_entity_id
172133       , l_array_entity_code
172134       , l_array_transaction_num
172135       , l_array_event_id
172136       , l_array_class_code
172137       , l_array_event_type
172138       , l_array_event_number
172139       , l_array_event_date
172140       , l_array_transaction_date
172141       , l_array_reference_num_1
172142       , l_array_reference_num_2
172143       , l_array_reference_num_3
172144       , l_array_reference_num_4
172145       , l_array_reference_char_1
172146       , l_array_reference_char_2
172147       , l_array_reference_char_3
172148       , l_array_reference_char_4
172149       , l_array_reference_date_1
172150       , l_array_reference_date_2
172151       , l_array_reference_date_3
172152       , l_array_reference_date_4
172153       , l_array_event_created_by
172154       , l_array_budgetary_control_flag
172155       , l_array_extract_line_num 
172156       , l_array_source_1
172157       , l_array_source_16
172158       , l_array_source_17
172159       , l_array_source_17_meaning
172160       , l_array_source_25
172161       , l_array_source_27
172162       , l_array_source_28
172163       , l_array_source_28_meaning
172164       , l_array_source_39
172165       , l_array_source_41
172166       , l_array_source_46
172167       , l_array_source_47
172168       , l_array_source_54
172169       , l_array_source_54_meaning
172170       , l_array_source_58
172171       , l_array_source_60
172172       , l_array_source_62
172173       , l_array_source_69
172174       , l_array_source_70
172175       , l_array_source_71
172176       , l_array_source_73
172177       , l_array_source_74
172178       , l_array_source_75
172179       , l_array_source_76
172180       , l_array_source_77
172181       , l_array_source_78
172182       , l_array_source_79
172183       , l_array_source_80
172184       , l_array_source_81
172185       , l_array_source_82
172186       , l_array_source_83
172187       , l_array_source_84
172188       , l_array_source_85
172189       , l_array_source_85_meaning
172190       , l_array_source_89
172191       , l_array_source_90
172192       , l_array_source_91
172193       , l_array_source_92
172194       , l_array_source_93
172195       , l_array_source_94
172196       , l_array_source_95
172197       , l_array_source_96
172198       , l_array_source_97
172199       , l_array_source_98
172200       , l_array_source_99
172201       , l_array_source_100
172202       , l_array_source_140
172203       , l_array_source_140_meaning
172204       , l_array_source_145
172205       , l_array_source_145_meaning
172206       LIMIT l_rows;
172207 
172208   --
172209   IF (C_LEVEL_EVENT >= g_log_level) THEN
172210             trace
172211                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
172212                ,p_level    => C_LEVEL_EVENT
172213                ,p_module   => l_log_module);
172214   END IF;
172215   --
172216   EXIT WHEN l_array_entity_id.count = 0;
172217 
172218   XLA_AE_LINES_PKG.g_rec_lines := null;
172219 
172220 --
172221 -- Bug 4458708
172222 --
172223 XLA_AE_LINES_PKG.g_LineNumber := 0;
172224 --
172225 --
172226 
172227 FOR Idx IN 1..l_array_event_id.count LOOP
172228    --
172229    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
172230    --
172231    l_event_id := l_array_event_id(idx);  -- 5648433
172232 
172233    --
172234    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
172235    --
172236 
172237    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
172238              (g_array_event(l_event_id).array_value_num('header_index'))
172239          ,'N'
172240          ) <> 'Y'
172241    THEN
172242       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
172243          trace
172244             (p_msg      => 'Trancaction revesal option is not Y '
172245             ,p_level    => C_LEVEL_STATEMENT
172246             ,p_module   => l_log_module);
172247       END IF;
172248 
172249 --
172250 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
172251 --
172252 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
172253 --
172254 -- set event info as cache for other routines to refer event attributes
172255 --
172256 
172257 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
172258    l_previous_event_id := l_event_id;
172259 
172260    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
172261       (p_application_id           => p_application_id
172262       ,p_primary_ledger_id        => p_primary_ledger_id
172263       ,p_base_ledger_id           => p_base_ledger_id
172264       ,p_target_ledger_id         => p_target_ledger_id
172265       ,p_entity_id                => l_array_entity_id(Idx)
172269       ,p_event_id                 => l_array_event_id(Idx)
172266       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
172267       ,p_entity_code              => l_array_entity_code(Idx)
172268       ,p_transaction_num          => l_array_transaction_num(Idx)
172270       ,p_event_class_code         => l_array_class_code(Idx)
172271       ,p_event_type_code          => l_array_event_type(Idx)
172272       ,p_event_number             => l_array_event_number(Idx)
172273       ,p_event_date               => l_array_event_date(Idx)
172274       ,p_transaction_date         => l_array_transaction_date(Idx)
172275       ,p_reference_num_1          => l_array_reference_num_1(Idx)
172276       ,p_reference_num_2          => l_array_reference_num_2(Idx)
172277       ,p_reference_num_3          => l_array_reference_num_3(Idx)
172278       ,p_reference_num_4          => l_array_reference_num_4(Idx)
172279       ,p_reference_char_1         => l_array_reference_char_1(Idx)
172280       ,p_reference_char_2         => l_array_reference_char_2(Idx)
172281       ,p_reference_char_3         => l_array_reference_char_3(Idx)
172282       ,p_reference_char_4         => l_array_reference_char_4(Idx)
172283       ,p_reference_date_1         => l_array_reference_date_1(Idx)
172284       ,p_reference_date_2         => l_array_reference_date_2(Idx)
172285       ,p_reference_date_3         => l_array_reference_date_3(Idx)
172286       ,p_reference_date_4         => l_array_reference_date_4(Idx)
172287       ,p_event_created_by         => l_array_event_created_by(Idx)
172288       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
172289        --
172290 END IF;
172291 
172292 
172293 
172294 --
172295 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
172296 
172297 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
172298 
172299 IF l_continue_with_lines THEN
172300    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
172301       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
172302 
172303       xla_accounting_err_pkg.build_message
172304          (p_appli_s_name            => 'XLA'
172305          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
172306          ,p_token_1                 => 'LINE_NUMBER'
172307          ,p_value_1                 => l_array_extract_line_num(Idx)
172308          ,p_token_2                 => 'PRODUCT_NAME'
172309          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
172310          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
172311          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
172312          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
172313 
172314    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
172315       --
172316       -- following sets the accounting attributes needed to reverse
172317       -- accounting for a distributeion
172318       --
172319 
172320       --
172321       -- 5217187
172322       --
172323       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
172324       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
172325                                        g_array_event(l_event_id).array_value_num('header_index'));
172326       --
172327       --
172328 
172329       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
172330       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
172331       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
172332       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_69(Idx);
172333       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
172334       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
172335       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
172336       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_70(Idx);
172337       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
172338       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_71(Idx);
172339       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
172340       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_72');
172341       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
172342       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_73(Idx);
172343       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
172344       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_74(Idx);
172345       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
172346       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_75(Idx);
172347       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
172348       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_72');
172349       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
172350       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_76(Idx);
172351       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
172352       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_77(Idx);
172353       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
172354       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_88');
172355       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
172356       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_89(Idx);
172357       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
172358       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_60(Idx);
172359       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
172360       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_91(Idx);
172361       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
172365       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
172362       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_92(Idx);
172363       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
172364       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_93(Idx);
172366       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_94(Idx);
172367       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
172368       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_95(Idx);
172369 
172370 
172371       xla_ae_lines_pkg.SetAcctReversalAttrs
172372          (p_event_id             => l_event_id
172373          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
172374          ,p_calculate_acctd_flag => l_calculate_acctd_flag
172375          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
172376    END IF;
172377 
172378    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
172379        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
172380 
172381 --
172382 AcctLineType_59 (
172383  p_application_id  => p_application_id
172384  ,p_event_id     => l_event_id
172385  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172386  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172387  ,p_actual_flag => l_actual_flag
172388  ,p_balance_type_code => l_balance_type_code
172389  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172390  
172391  , p_source_1 => l_array_source_1(Idx)
172392  , p_source_16 => l_array_source_16(Idx)
172393  , p_source_25 => l_array_source_25(Idx)
172394  , p_source_28 => l_array_source_28(Idx)
172395  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172396  , p_source_58 => l_array_source_58(Idx)
172397  , p_source_60 => l_array_source_60(Idx)
172398  , p_source_62 => l_array_source_62(Idx)
172399  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172400  , p_source_69 => l_array_source_69(Idx)
172401  , p_source_70 => l_array_source_70(Idx)
172402  , p_source_71 => l_array_source_71(Idx)
172403  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172404  , p_source_73 => l_array_source_73(Idx)
172405  , p_source_74 => l_array_source_74(Idx)
172406  , p_source_75 => l_array_source_75(Idx)
172407  , p_source_76 => l_array_source_76(Idx)
172408  , p_source_77 => l_array_source_77(Idx)
172409  , p_source_78 => l_array_source_78(Idx)
172410  , p_source_79 => l_array_source_79(Idx)
172411  , p_source_80 => l_array_source_80(Idx)
172412  , p_source_81 => l_array_source_81(Idx)
172413  , p_source_82 => l_array_source_82(Idx)
172414  , p_source_83 => l_array_source_83(Idx)
172415  , p_source_84 => l_array_source_84(Idx)
172416  , p_source_85 => l_array_source_85(Idx)
172417  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172418  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172419  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172420  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172421  , p_source_89 => l_array_source_89(Idx)
172422  , p_source_90 => l_array_source_90(Idx)
172423  , p_source_91 => l_array_source_91(Idx)
172424  , p_source_92 => l_array_source_92(Idx)
172425  , p_source_93 => l_array_source_93(Idx)
172426  , p_source_94 => l_array_source_94(Idx)
172427  , p_source_95 => l_array_source_95(Idx)
172428  , p_source_96 => l_array_source_96(Idx)
172429  , p_source_97 => l_array_source_97(Idx)
172430  , p_source_98 => l_array_source_98(Idx)
172431  , p_source_99 => l_array_source_99(Idx)
172432  , p_source_100 => l_array_source_100(Idx)
172433  );
172434 If(l_balance_type_code = 'A') THEN
172435   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172436 END IF;
172437 
172438 --
172439 
172440 
172441 --
172442 AcctLineType_63 (
172443  p_application_id  => p_application_id
172444  ,p_event_id     => l_event_id
172445  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172446  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172447  ,p_actual_flag => l_actual_flag
172448  ,p_balance_type_code => l_balance_type_code
172449  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172450  
172451  , p_source_1 => l_array_source_1(Idx)
172452  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
172453  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
172454  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
172455  , p_source_16 => l_array_source_16(Idx)
172456  , p_source_17 => l_array_source_17(Idx)
172457  , p_source_17_meaning => l_array_source_17_meaning(Idx)
172458  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
172459  , p_source_25 => l_array_source_25(Idx)
172460  , p_source_28 => l_array_source_28(Idx)
172461  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172462  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
172463  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
172464  , p_source_58 => l_array_source_58(Idx)
172465  , p_source_60 => l_array_source_60(Idx)
172466  , p_source_62 => l_array_source_62(Idx)
172467  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172468  , p_source_69 => l_array_source_69(Idx)
172469  , p_source_70 => l_array_source_70(Idx)
172470  , p_source_71 => l_array_source_71(Idx)
172471  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172472  , p_source_73 => l_array_source_73(Idx)
172473  , p_source_74 => l_array_source_74(Idx)
172474  , p_source_75 => l_array_source_75(Idx)
172475  , p_source_76 => l_array_source_76(Idx)
172476  , p_source_77 => l_array_source_77(Idx)
172477  , p_source_82 => l_array_source_82(Idx)
172478  , p_source_83 => l_array_source_83(Idx)
172479  , p_source_84 => l_array_source_84(Idx)
172480  , p_source_85 => l_array_source_85(Idx)
172481  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172482  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172483  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172487  , p_source_91 => l_array_source_91(Idx)
172484  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172485  , p_source_89 => l_array_source_89(Idx)
172486  , p_source_90 => l_array_source_90(Idx)
172488  , p_source_92 => l_array_source_92(Idx)
172489  , p_source_93 => l_array_source_93(Idx)
172490  , p_source_94 => l_array_source_94(Idx)
172491  , p_source_95 => l_array_source_95(Idx)
172492  , p_source_96 => l_array_source_96(Idx)
172493  , p_source_97 => l_array_source_97(Idx)
172494  , p_source_98 => l_array_source_98(Idx)
172495  , p_source_99 => l_array_source_99(Idx)
172496  , p_source_100 => l_array_source_100(Idx)
172497  );
172498 If(l_balance_type_code = 'A') THEN
172499   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172500 END IF;
172501 
172502 --
172503 
172504 
172505 --
172506 AcctLineType_67 (
172507  p_application_id  => p_application_id
172508  ,p_event_id     => l_event_id
172509  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172510  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172511  ,p_actual_flag => l_actual_flag
172512  ,p_balance_type_code => l_balance_type_code
172513  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172514  
172515  , p_source_1 => l_array_source_1(Idx)
172516  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
172517  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
172518  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
172519  , p_source_16 => l_array_source_16(Idx)
172520  , p_source_17 => l_array_source_17(Idx)
172521  , p_source_17_meaning => l_array_source_17_meaning(Idx)
172522  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
172523  , p_source_25 => l_array_source_25(Idx)
172524  , p_source_28 => l_array_source_28(Idx)
172525  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172526  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
172527  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
172528  , p_source_54 => l_array_source_54(Idx)
172529  , p_source_54_meaning => l_array_source_54_meaning(Idx)
172530  , p_source_58 => l_array_source_58(Idx)
172531  , p_source_60 => l_array_source_60(Idx)
172532  , p_source_62 => l_array_source_62(Idx)
172533  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172534  , p_source_69 => l_array_source_69(Idx)
172535  , p_source_70 => l_array_source_70(Idx)
172536  , p_source_71 => l_array_source_71(Idx)
172537  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172538  , p_source_73 => l_array_source_73(Idx)
172539  , p_source_74 => l_array_source_74(Idx)
172540  , p_source_75 => l_array_source_75(Idx)
172541  , p_source_76 => l_array_source_76(Idx)
172542  , p_source_77 => l_array_source_77(Idx)
172543  , p_source_82 => l_array_source_82(Idx)
172544  , p_source_83 => l_array_source_83(Idx)
172545  , p_source_84 => l_array_source_84(Idx)
172546  , p_source_85 => l_array_source_85(Idx)
172547  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172548  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172549  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172550  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172551  , p_source_89 => l_array_source_89(Idx)
172552  , p_source_90 => l_array_source_90(Idx)
172553  , p_source_91 => l_array_source_91(Idx)
172554  , p_source_92 => l_array_source_92(Idx)
172555  , p_source_93 => l_array_source_93(Idx)
172556  , p_source_94 => l_array_source_94(Idx)
172557  , p_source_95 => l_array_source_95(Idx)
172558  , p_source_96 => l_array_source_96(Idx)
172559  , p_source_97 => l_array_source_97(Idx)
172560  , p_source_98 => l_array_source_98(Idx)
172561  , p_source_99 => l_array_source_99(Idx)
172562  , p_source_100 => l_array_source_100(Idx)
172563  );
172564 If(l_balance_type_code = 'A') THEN
172565   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172566 END IF;
172567 
172568 --
172569 
172570 
172571 --
172572 AcctLineType_109 (
172573  p_application_id  => p_application_id
172574  ,p_event_id     => l_event_id
172575  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172576  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172577  ,p_actual_flag => l_actual_flag
172578  ,p_balance_type_code => l_balance_type_code
172579  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172580  
172581  , p_source_1 => l_array_source_1(Idx)
172582  , p_source_16 => l_array_source_16(Idx)
172583  , p_source_25 => l_array_source_25(Idx)
172584  , p_source_28 => l_array_source_28(Idx)
172585  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172586  , p_source_58 => l_array_source_58(Idx)
172587  , p_source_60 => l_array_source_60(Idx)
172588  , p_source_62 => l_array_source_62(Idx)
172589  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172590  , p_source_69 => l_array_source_69(Idx)
172591  , p_source_70 => l_array_source_70(Idx)
172592  , p_source_71 => l_array_source_71(Idx)
172593  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172594  , p_source_73 => l_array_source_73(Idx)
172595  , p_source_74 => l_array_source_74(Idx)
172596  , p_source_75 => l_array_source_75(Idx)
172597  , p_source_76 => l_array_source_76(Idx)
172598  , p_source_77 => l_array_source_77(Idx)
172599  , p_source_78 => l_array_source_78(Idx)
172600  , p_source_82 => l_array_source_82(Idx)
172601  , p_source_83 => l_array_source_83(Idx)
172602  , p_source_84 => l_array_source_84(Idx)
172603  , p_source_85 => l_array_source_85(Idx)
172604  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172605  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172606  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172607  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172608  , p_source_89 => l_array_source_89(Idx)
172609  , p_source_90 => l_array_source_90(Idx)
172610  , p_source_91 => l_array_source_91(Idx)
172614  , p_source_95 => l_array_source_95(Idx)
172611  , p_source_92 => l_array_source_92(Idx)
172612  , p_source_93 => l_array_source_93(Idx)
172613  , p_source_94 => l_array_source_94(Idx)
172615  , p_source_96 => l_array_source_96(Idx)
172616  , p_source_97 => l_array_source_97(Idx)
172617  , p_source_98 => l_array_source_98(Idx)
172618  , p_source_99 => l_array_source_99(Idx)
172619  , p_source_100 => l_array_source_100(Idx)
172620  , p_source_140 => l_array_source_140(Idx)
172621  , p_source_140_meaning => l_array_source_140_meaning(Idx)
172622  , p_source_145 => l_array_source_145(Idx)
172623  , p_source_145_meaning => l_array_source_145_meaning(Idx)
172624  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
172625  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
172626  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
172627  );
172628 If(l_balance_type_code = 'A') THEN
172629   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172630 END IF;
172631 
172632 --
172633 
172634 
172635 --
172636 AcctLineType_119 (
172637  p_application_id  => p_application_id
172638  ,p_event_id     => l_event_id
172639  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172640  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172641  ,p_actual_flag => l_actual_flag
172642  ,p_balance_type_code => l_balance_type_code
172643  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172644  
172645  , p_source_1 => l_array_source_1(Idx)
172646  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
172647  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
172648  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
172649  , p_source_16 => l_array_source_16(Idx)
172650  , p_source_17 => l_array_source_17(Idx)
172651  , p_source_17_meaning => l_array_source_17_meaning(Idx)
172652  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
172653  , p_source_25 => l_array_source_25(Idx)
172654  , p_source_28 => l_array_source_28(Idx)
172655  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172656  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
172657  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
172658  , p_source_54 => l_array_source_54(Idx)
172659  , p_source_54_meaning => l_array_source_54_meaning(Idx)
172660  , p_source_58 => l_array_source_58(Idx)
172661  , p_source_60 => l_array_source_60(Idx)
172662  , p_source_62 => l_array_source_62(Idx)
172663  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172664  , p_source_69 => l_array_source_69(Idx)
172665  , p_source_70 => l_array_source_70(Idx)
172666  , p_source_71 => l_array_source_71(Idx)
172667  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172668  , p_source_73 => l_array_source_73(Idx)
172669  , p_source_74 => l_array_source_74(Idx)
172670  , p_source_75 => l_array_source_75(Idx)
172671  , p_source_76 => l_array_source_76(Idx)
172672  , p_source_77 => l_array_source_77(Idx)
172673  , p_source_78 => l_array_source_78(Idx)
172674  , p_source_82 => l_array_source_82(Idx)
172675  , p_source_83 => l_array_source_83(Idx)
172676  , p_source_84 => l_array_source_84(Idx)
172677  , p_source_85 => l_array_source_85(Idx)
172678  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172679  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172680  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172681  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172682  , p_source_89 => l_array_source_89(Idx)
172683  , p_source_90 => l_array_source_90(Idx)
172684  , p_source_91 => l_array_source_91(Idx)
172685  , p_source_92 => l_array_source_92(Idx)
172686  , p_source_93 => l_array_source_93(Idx)
172687  , p_source_94 => l_array_source_94(Idx)
172688  , p_source_95 => l_array_source_95(Idx)
172689  , p_source_96 => l_array_source_96(Idx)
172690  , p_source_97 => l_array_source_97(Idx)
172691  , p_source_98 => l_array_source_98(Idx)
172692  , p_source_99 => l_array_source_99(Idx)
172693  , p_source_100 => l_array_source_100(Idx)
172694  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
172695  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
172696  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
172697  );
172698 If(l_balance_type_code = 'A') THEN
172699   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172700 END IF;
172701 
172702 --
172703 
172704 
172705 --
172706 AcctLineType_128 (
172707  p_application_id  => p_application_id
172708  ,p_event_id     => l_event_id
172709  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172710  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172711  ,p_actual_flag => l_actual_flag
172712  ,p_balance_type_code => l_balance_type_code
172713  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172714  
172715  , p_source_1 => l_array_source_1(Idx)
172716  , p_source_16 => l_array_source_16(Idx)
172717  , p_source_25 => l_array_source_25(Idx)
172718  , p_source_28 => l_array_source_28(Idx)
172719  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172720  , p_source_58 => l_array_source_58(Idx)
172721  , p_source_60 => l_array_source_60(Idx)
172722  , p_source_62 => l_array_source_62(Idx)
172723  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172724  , p_source_69 => l_array_source_69(Idx)
172725  , p_source_70 => l_array_source_70(Idx)
172726  , p_source_71 => l_array_source_71(Idx)
172727  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172728  , p_source_73 => l_array_source_73(Idx)
172729  , p_source_74 => l_array_source_74(Idx)
172730  , p_source_75 => l_array_source_75(Idx)
172731  , p_source_76 => l_array_source_76(Idx)
172732  , p_source_77 => l_array_source_77(Idx)
172733  , p_source_78 => l_array_source_78(Idx)
172734  , p_source_82 => l_array_source_82(Idx)
172735  , p_source_83 => l_array_source_83(Idx)
172739  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172736  , p_source_84 => l_array_source_84(Idx)
172737  , p_source_85 => l_array_source_85(Idx)
172738  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172740  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172741  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172742  , p_source_89 => l_array_source_89(Idx)
172743  , p_source_90 => l_array_source_90(Idx)
172744  , p_source_91 => l_array_source_91(Idx)
172745  , p_source_92 => l_array_source_92(Idx)
172746  , p_source_93 => l_array_source_93(Idx)
172747  , p_source_94 => l_array_source_94(Idx)
172748  , p_source_95 => l_array_source_95(Idx)
172749  , p_source_96 => l_array_source_96(Idx)
172750  , p_source_97 => l_array_source_97(Idx)
172751  , p_source_98 => l_array_source_98(Idx)
172752  , p_source_99 => l_array_source_99(Idx)
172753  , p_source_100 => l_array_source_100(Idx)
172754  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
172755  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
172756  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
172757  );
172758 If(l_balance_type_code = 'A') THEN
172759   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172760 END IF;
172761 
172762 --
172763 
172764 
172765 --
172766 AcctLineType_150 (
172767  p_application_id  => p_application_id
172768  ,p_event_id     => l_event_id
172769  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172770  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172771  ,p_actual_flag => l_actual_flag
172772  ,p_balance_type_code => l_balance_type_code
172773  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172774  
172775  , p_source_1 => l_array_source_1(Idx)
172776  , p_source_16 => l_array_source_16(Idx)
172777  , p_source_25 => l_array_source_25(Idx)
172778  , p_source_28 => l_array_source_28(Idx)
172779  , p_source_28_meaning => l_array_source_28_meaning(Idx)
172780  , p_source_54 => l_array_source_54(Idx)
172781  , p_source_54_meaning => l_array_source_54_meaning(Idx)
172782  , p_source_58 => l_array_source_58(Idx)
172783  , p_source_60 => l_array_source_60(Idx)
172784  , p_source_62 => l_array_source_62(Idx)
172785  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172786  , p_source_69 => l_array_source_69(Idx)
172787  , p_source_70 => l_array_source_70(Idx)
172788  , p_source_71 => l_array_source_71(Idx)
172789  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172790  , p_source_73 => l_array_source_73(Idx)
172791  , p_source_74 => l_array_source_74(Idx)
172792  , p_source_75 => l_array_source_75(Idx)
172793  , p_source_76 => l_array_source_76(Idx)
172794  , p_source_77 => l_array_source_77(Idx)
172795  , p_source_78 => l_array_source_78(Idx)
172796  , p_source_82 => l_array_source_82(Idx)
172797  , p_source_83 => l_array_source_83(Idx)
172798  , p_source_84 => l_array_source_84(Idx)
172799  , p_source_85 => l_array_source_85(Idx)
172800  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172801  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172802  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172803  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172804  , p_source_89 => l_array_source_89(Idx)
172805  , p_source_90 => l_array_source_90(Idx)
172806  , p_source_91 => l_array_source_91(Idx)
172807  , p_source_92 => l_array_source_92(Idx)
172808  , p_source_93 => l_array_source_93(Idx)
172809  , p_source_94 => l_array_source_94(Idx)
172810  , p_source_95 => l_array_source_95(Idx)
172811  , p_source_96 => l_array_source_96(Idx)
172812  , p_source_97 => l_array_source_97(Idx)
172813  , p_source_98 => l_array_source_98(Idx)
172814  , p_source_99 => l_array_source_99(Idx)
172815  , p_source_100 => l_array_source_100(Idx)
172816  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
172817  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
172818  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
172819  );
172820 If(l_balance_type_code = 'A') THEN
172821   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172822 END IF;
172823 
172824 --
172825 
172826 
172827 --
172828 AcctLineType_167 (
172829  p_application_id  => p_application_id
172830  ,p_event_id     => l_event_id
172831  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172832  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172833  ,p_actual_flag => l_actual_flag
172834  ,p_balance_type_code => l_balance_type_code
172835  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172836  
172837  , p_source_1 => l_array_source_1(Idx)
172838  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
172839  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
172840  , p_source_16 => l_array_source_16(Idx)
172841  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
172842  , p_source_58 => l_array_source_58(Idx)
172843  , p_source_60 => l_array_source_60(Idx)
172844  , p_source_62 => l_array_source_62(Idx)
172845  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172846  , p_source_69 => l_array_source_69(Idx)
172847  , p_source_70 => l_array_source_70(Idx)
172848  , p_source_71 => l_array_source_71(Idx)
172849  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172850  , p_source_73 => l_array_source_73(Idx)
172851  , p_source_74 => l_array_source_74(Idx)
172852  , p_source_75 => l_array_source_75(Idx)
172853  , p_source_76 => l_array_source_76(Idx)
172854  , p_source_77 => l_array_source_77(Idx)
172855  , p_source_78 => l_array_source_78(Idx)
172856  , p_source_82 => l_array_source_82(Idx)
172857  , p_source_83 => l_array_source_83(Idx)
172858  , p_source_84 => l_array_source_84(Idx)
172859  , p_source_85 => l_array_source_85(Idx)
172860  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172861  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172865  , p_source_90 => l_array_source_90(Idx)
172862  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172863  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172864  , p_source_89 => l_array_source_89(Idx)
172866  , p_source_91 => l_array_source_91(Idx)
172867  , p_source_92 => l_array_source_92(Idx)
172868  , p_source_93 => l_array_source_93(Idx)
172869  , p_source_94 => l_array_source_94(Idx)
172870  , p_source_95 => l_array_source_95(Idx)
172871  , p_source_96 => l_array_source_96(Idx)
172872  , p_source_97 => l_array_source_97(Idx)
172873  , p_source_98 => l_array_source_98(Idx)
172874  , p_source_99 => l_array_source_99(Idx)
172875  , p_source_100 => l_array_source_100(Idx)
172876  , p_source_145 => l_array_source_145(Idx)
172877  , p_source_145_meaning => l_array_source_145_meaning(Idx)
172878  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
172879  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
172880  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
172881  );
172882 If(l_balance_type_code = 'A') THEN
172883   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172884 END IF;
172885 
172886 --
172887 
172888 
172889 --
172890 AcctLineType_168 (
172891  p_application_id  => p_application_id
172892  ,p_event_id     => l_event_id
172893  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172894  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172895  ,p_actual_flag => l_actual_flag
172896  ,p_balance_type_code => l_balance_type_code
172897  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172898  
172899  , p_source_1 => l_array_source_1(Idx)
172900  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
172901  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
172902  , p_source_16 => l_array_source_16(Idx)
172903  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
172904  , p_source_58 => l_array_source_58(Idx)
172905  , p_source_60 => l_array_source_60(Idx)
172906  , p_source_62 => l_array_source_62(Idx)
172907  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172908  , p_source_69 => l_array_source_69(Idx)
172909  , p_source_70 => l_array_source_70(Idx)
172910  , p_source_71 => l_array_source_71(Idx)
172911  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172912  , p_source_73 => l_array_source_73(Idx)
172913  , p_source_74 => l_array_source_74(Idx)
172914  , p_source_75 => l_array_source_75(Idx)
172915  , p_source_76 => l_array_source_76(Idx)
172916  , p_source_77 => l_array_source_77(Idx)
172917  , p_source_78 => l_array_source_78(Idx)
172918  , p_source_82 => l_array_source_82(Idx)
172919  , p_source_83 => l_array_source_83(Idx)
172920  , p_source_84 => l_array_source_84(Idx)
172921  , p_source_85 => l_array_source_85(Idx)
172922  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172923  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172924  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172925  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172926  , p_source_89 => l_array_source_89(Idx)
172927  , p_source_90 => l_array_source_90(Idx)
172928  , p_source_91 => l_array_source_91(Idx)
172929  , p_source_92 => l_array_source_92(Idx)
172930  , p_source_93 => l_array_source_93(Idx)
172931  , p_source_94 => l_array_source_94(Idx)
172932  , p_source_95 => l_array_source_95(Idx)
172933  , p_source_96 => l_array_source_96(Idx)
172934  , p_source_97 => l_array_source_97(Idx)
172935  , p_source_98 => l_array_source_98(Idx)
172936  , p_source_99 => l_array_source_99(Idx)
172937  , p_source_100 => l_array_source_100(Idx)
172938  , p_source_145 => l_array_source_145(Idx)
172939  , p_source_145_meaning => l_array_source_145_meaning(Idx)
172940  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
172941  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
172942  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
172943  );
172944 If(l_balance_type_code = 'A') THEN
172945   l_actual_gain_loss_ref := l_gain_or_loss_ref;
172946 END IF;
172947 
172948 --
172949 
172950 
172951 --
172952 AcctLineType_169 (
172953  p_application_id  => p_application_id
172954  ,p_event_id     => l_event_id
172955  ,p_calculate_acctd_flag => l_calculate_acctd_flag
172956  ,p_calculate_g_l_flag => l_calculate_g_l_flag
172957  ,p_actual_flag => l_actual_flag
172958  ,p_balance_type_code => l_balance_type_code
172959  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
172960  
172961  , p_source_1 => l_array_source_1(Idx)
172962  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
172963  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
172964  , p_source_16 => l_array_source_16(Idx)
172965  , p_source_29 => g_array_event(l_event_id).array_value_num('source_29')
172966  , p_source_58 => l_array_source_58(Idx)
172967  , p_source_60 => l_array_source_60(Idx)
172968  , p_source_62 => l_array_source_62(Idx)
172969  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
172970  , p_source_69 => l_array_source_69(Idx)
172971  , p_source_70 => l_array_source_70(Idx)
172972  , p_source_71 => l_array_source_71(Idx)
172973  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
172974  , p_source_73 => l_array_source_73(Idx)
172975  , p_source_74 => l_array_source_74(Idx)
172976  , p_source_75 => l_array_source_75(Idx)
172977  , p_source_76 => l_array_source_76(Idx)
172978  , p_source_77 => l_array_source_77(Idx)
172979  , p_source_78 => l_array_source_78(Idx)
172980  , p_source_82 => l_array_source_82(Idx)
172981  , p_source_83 => l_array_source_83(Idx)
172982  , p_source_84 => l_array_source_84(Idx)
172983  , p_source_85 => l_array_source_85(Idx)
172984  , p_source_85_meaning => l_array_source_85_meaning(Idx)
172985  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
172989  , p_source_90 => l_array_source_90(Idx)
172986  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
172987  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
172988  , p_source_89 => l_array_source_89(Idx)
172990  , p_source_91 => l_array_source_91(Idx)
172991  , p_source_92 => l_array_source_92(Idx)
172992  , p_source_93 => l_array_source_93(Idx)
172993  , p_source_94 => l_array_source_94(Idx)
172994  , p_source_95 => l_array_source_95(Idx)
172995  , p_source_96 => l_array_source_96(Idx)
172996  , p_source_97 => l_array_source_97(Idx)
172997  , p_source_98 => l_array_source_98(Idx)
172998  , p_source_99 => l_array_source_99(Idx)
172999  , p_source_100 => l_array_source_100(Idx)
173000  , p_source_145 => l_array_source_145(Idx)
173001  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173002  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173003  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173004  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173005  );
173006 If(l_balance_type_code = 'A') THEN
173007   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173008 END IF;
173009 
173010 --
173011 
173012 
173013 --
173014 AcctLineType_183 (
173015  p_application_id  => p_application_id
173016  ,p_event_id     => l_event_id
173017  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173018  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173019  ,p_actual_flag => l_actual_flag
173020  ,p_balance_type_code => l_balance_type_code
173021  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173022  
173023  , p_source_1 => l_array_source_1(Idx)
173024  , p_source_16 => l_array_source_16(Idx)
173025  , p_source_25 => l_array_source_25(Idx)
173026  , p_source_28 => l_array_source_28(Idx)
173027  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173028  , p_source_58 => l_array_source_58(Idx)
173029  , p_source_60 => l_array_source_60(Idx)
173030  , p_source_62 => l_array_source_62(Idx)
173031  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173032  , p_source_69 => l_array_source_69(Idx)
173033  , p_source_70 => l_array_source_70(Idx)
173034  , p_source_71 => l_array_source_71(Idx)
173035  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173036  , p_source_73 => l_array_source_73(Idx)
173037  , p_source_74 => l_array_source_74(Idx)
173038  , p_source_75 => l_array_source_75(Idx)
173039  , p_source_76 => l_array_source_76(Idx)
173040  , p_source_77 => l_array_source_77(Idx)
173041  , p_source_78 => l_array_source_78(Idx)
173042  , p_source_82 => l_array_source_82(Idx)
173043  , p_source_83 => l_array_source_83(Idx)
173044  , p_source_84 => l_array_source_84(Idx)
173045  , p_source_85 => l_array_source_85(Idx)
173046  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173047  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173048  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173049  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173050  , p_source_89 => l_array_source_89(Idx)
173051  , p_source_90 => l_array_source_90(Idx)
173052  , p_source_91 => l_array_source_91(Idx)
173053  , p_source_92 => l_array_source_92(Idx)
173054  , p_source_93 => l_array_source_93(Idx)
173055  , p_source_94 => l_array_source_94(Idx)
173056  , p_source_95 => l_array_source_95(Idx)
173057  , p_source_96 => l_array_source_96(Idx)
173058  , p_source_97 => l_array_source_97(Idx)
173059  , p_source_98 => l_array_source_98(Idx)
173060  , p_source_99 => l_array_source_99(Idx)
173061  , p_source_100 => l_array_source_100(Idx)
173062  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173063  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173064  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173065  );
173066 If(l_balance_type_code = 'A') THEN
173067   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173068 END IF;
173069 
173070 --
173071 
173072 
173073 --
173074 AcctLineType_190 (
173075  p_application_id  => p_application_id
173076  ,p_event_id     => l_event_id
173077  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173078  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173079  ,p_actual_flag => l_actual_flag
173080  ,p_balance_type_code => l_balance_type_code
173081  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173082  
173083  , p_source_1 => l_array_source_1(Idx)
173084  , p_source_16 => l_array_source_16(Idx)
173085  , p_source_25 => l_array_source_25(Idx)
173086  , p_source_28 => l_array_source_28(Idx)
173087  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173088  , p_source_54 => l_array_source_54(Idx)
173089  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173090  , p_source_58 => l_array_source_58(Idx)
173091  , p_source_60 => l_array_source_60(Idx)
173092  , p_source_62 => l_array_source_62(Idx)
173093  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173094  , p_source_69 => l_array_source_69(Idx)
173095  , p_source_70 => l_array_source_70(Idx)
173096  , p_source_71 => l_array_source_71(Idx)
173097  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173098  , p_source_73 => l_array_source_73(Idx)
173099  , p_source_74 => l_array_source_74(Idx)
173100  , p_source_75 => l_array_source_75(Idx)
173101  , p_source_76 => l_array_source_76(Idx)
173102  , p_source_77 => l_array_source_77(Idx)
173103  , p_source_78 => l_array_source_78(Idx)
173104  , p_source_82 => l_array_source_82(Idx)
173105  , p_source_83 => l_array_source_83(Idx)
173106  , p_source_84 => l_array_source_84(Idx)
173107  , p_source_85 => l_array_source_85(Idx)
173108  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173109  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173110  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173111  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173112  , p_source_89 => l_array_source_89(Idx)
173116  , p_source_93 => l_array_source_93(Idx)
173113  , p_source_90 => l_array_source_90(Idx)
173114  , p_source_91 => l_array_source_91(Idx)
173115  , p_source_92 => l_array_source_92(Idx)
173117  , p_source_94 => l_array_source_94(Idx)
173118  , p_source_95 => l_array_source_95(Idx)
173119  , p_source_96 => l_array_source_96(Idx)
173120  , p_source_97 => l_array_source_97(Idx)
173121  , p_source_98 => l_array_source_98(Idx)
173122  , p_source_99 => l_array_source_99(Idx)
173123  , p_source_100 => l_array_source_100(Idx)
173124  , p_source_145 => l_array_source_145(Idx)
173125  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173126  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173127  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173128  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173129  );
173130 If(l_balance_type_code = 'A') THEN
173131   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173132 END IF;
173133 
173134 --
173135 
173136 
173137 --
173138 AcctLineType_191 (
173139  p_application_id  => p_application_id
173140  ,p_event_id     => l_event_id
173141  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173142  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173143  ,p_actual_flag => l_actual_flag
173144  ,p_balance_type_code => l_balance_type_code
173145  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173146  
173147  , p_source_1 => l_array_source_1(Idx)
173148  , p_source_16 => l_array_source_16(Idx)
173149  , p_source_25 => l_array_source_25(Idx)
173150  , p_source_28 => l_array_source_28(Idx)
173151  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173152  , p_source_54 => l_array_source_54(Idx)
173153  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173154  , p_source_58 => l_array_source_58(Idx)
173155  , p_source_60 => l_array_source_60(Idx)
173156  , p_source_62 => l_array_source_62(Idx)
173157  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173158  , p_source_69 => l_array_source_69(Idx)
173159  , p_source_70 => l_array_source_70(Idx)
173160  , p_source_71 => l_array_source_71(Idx)
173161  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173162  , p_source_73 => l_array_source_73(Idx)
173163  , p_source_74 => l_array_source_74(Idx)
173164  , p_source_75 => l_array_source_75(Idx)
173165  , p_source_76 => l_array_source_76(Idx)
173166  , p_source_77 => l_array_source_77(Idx)
173167  , p_source_78 => l_array_source_78(Idx)
173168  , p_source_79 => l_array_source_79(Idx)
173169  , p_source_80 => l_array_source_80(Idx)
173170  , p_source_81 => l_array_source_81(Idx)
173171  , p_source_82 => l_array_source_82(Idx)
173172  , p_source_83 => l_array_source_83(Idx)
173173  , p_source_84 => l_array_source_84(Idx)
173174  , p_source_85 => l_array_source_85(Idx)
173175  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173176  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173177  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173178  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173179  , p_source_89 => l_array_source_89(Idx)
173180  , p_source_90 => l_array_source_90(Idx)
173181  , p_source_91 => l_array_source_91(Idx)
173182  , p_source_92 => l_array_source_92(Idx)
173183  , p_source_93 => l_array_source_93(Idx)
173184  , p_source_94 => l_array_source_94(Idx)
173185  , p_source_95 => l_array_source_95(Idx)
173186  , p_source_96 => l_array_source_96(Idx)
173187  , p_source_97 => l_array_source_97(Idx)
173188  , p_source_98 => l_array_source_98(Idx)
173189  , p_source_99 => l_array_source_99(Idx)
173190  , p_source_100 => l_array_source_100(Idx)
173191  , p_source_145 => l_array_source_145(Idx)
173192  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173193  );
173194 If(l_balance_type_code = 'A') THEN
173195   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173196 END IF;
173197 
173198 --
173199 
173200 
173201 --
173202 AcctLineType_194 (
173203  p_application_id  => p_application_id
173204  ,p_event_id     => l_event_id
173205  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173206  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173207  ,p_actual_flag => l_actual_flag
173208  ,p_balance_type_code => l_balance_type_code
173209  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173210  
173211  , p_source_1 => l_array_source_1(Idx)
173212  , p_source_16 => l_array_source_16(Idx)
173213  , p_source_25 => l_array_source_25(Idx)
173214  , p_source_26 => g_array_event(l_event_id).array_value_char('source_26')
173215  , p_source_26_meaning => g_array_event(l_event_id).array_value_char('source_26_meaning')
173216  , p_source_27 => l_array_source_27(Idx)
173217  , p_source_28 => l_array_source_28(Idx)
173218  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173219  , p_source_41 => l_array_source_41(Idx)
173220  , p_source_54 => l_array_source_54(Idx)
173221  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173222  , p_source_58 => l_array_source_58(Idx)
173223  , p_source_60 => l_array_source_60(Idx)
173224  , p_source_62 => l_array_source_62(Idx)
173225  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173226  , p_source_69 => l_array_source_69(Idx)
173227  , p_source_70 => l_array_source_70(Idx)
173228  , p_source_71 => l_array_source_71(Idx)
173229  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173230  , p_source_73 => l_array_source_73(Idx)
173231  , p_source_74 => l_array_source_74(Idx)
173232  , p_source_75 => l_array_source_75(Idx)
173233  , p_source_76 => l_array_source_76(Idx)
173234  , p_source_77 => l_array_source_77(Idx)
173235  , p_source_78 => l_array_source_78(Idx)
173236  , p_source_82 => l_array_source_82(Idx)
173237  , p_source_83 => l_array_source_83(Idx)
173238  , p_source_84 => l_array_source_84(Idx)
173239  , p_source_85 => l_array_source_85(Idx)
173240  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173241  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173245  , p_source_90 => l_array_source_90(Idx)
173242  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173243  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173244  , p_source_89 => l_array_source_89(Idx)
173246  , p_source_91 => l_array_source_91(Idx)
173247  , p_source_92 => l_array_source_92(Idx)
173248  , p_source_93 => l_array_source_93(Idx)
173249  , p_source_94 => l_array_source_94(Idx)
173250  , p_source_95 => l_array_source_95(Idx)
173251  , p_source_96 => l_array_source_96(Idx)
173252  , p_source_97 => l_array_source_97(Idx)
173253  , p_source_98 => l_array_source_98(Idx)
173254  , p_source_99 => l_array_source_99(Idx)
173255  , p_source_100 => l_array_source_100(Idx)
173256  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173257  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173258  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173259  );
173260 If(l_balance_type_code = 'A') THEN
173261   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173262 END IF;
173263 
173264 --
173265 
173266 
173267 --
173268 AcctLineType_199 (
173269  p_application_id  => p_application_id
173270  ,p_event_id     => l_event_id
173271  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173272  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173273  ,p_actual_flag => l_actual_flag
173274  ,p_balance_type_code => l_balance_type_code
173275  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173276  
173277  , p_source_1 => l_array_source_1(Idx)
173278  , p_source_16 => l_array_source_16(Idx)
173279  , p_source_25 => l_array_source_25(Idx)
173280  , p_source_28 => l_array_source_28(Idx)
173281  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173282  , p_source_58 => l_array_source_58(Idx)
173283  , p_source_60 => l_array_source_60(Idx)
173284  , p_source_62 => l_array_source_62(Idx)
173285  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173286  , p_source_69 => l_array_source_69(Idx)
173287  , p_source_70 => l_array_source_70(Idx)
173288  , p_source_71 => l_array_source_71(Idx)
173289  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173290  , p_source_73 => l_array_source_73(Idx)
173291  , p_source_74 => l_array_source_74(Idx)
173292  , p_source_75 => l_array_source_75(Idx)
173293  , p_source_76 => l_array_source_76(Idx)
173294  , p_source_77 => l_array_source_77(Idx)
173295  , p_source_78 => l_array_source_78(Idx)
173296  , p_source_82 => l_array_source_82(Idx)
173297  , p_source_83 => l_array_source_83(Idx)
173298  , p_source_84 => l_array_source_84(Idx)
173299  , p_source_85 => l_array_source_85(Idx)
173300  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173301  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173302  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173303  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173304  , p_source_89 => l_array_source_89(Idx)
173305  , p_source_90 => l_array_source_90(Idx)
173306  , p_source_91 => l_array_source_91(Idx)
173307  , p_source_92 => l_array_source_92(Idx)
173308  , p_source_93 => l_array_source_93(Idx)
173309  , p_source_94 => l_array_source_94(Idx)
173310  , p_source_95 => l_array_source_95(Idx)
173311  , p_source_96 => l_array_source_96(Idx)
173312  , p_source_97 => l_array_source_97(Idx)
173313  , p_source_98 => l_array_source_98(Idx)
173314  , p_source_99 => l_array_source_99(Idx)
173315  , p_source_100 => l_array_source_100(Idx)
173316  , p_source_140 => l_array_source_140(Idx)
173317  , p_source_140_meaning => l_array_source_140_meaning(Idx)
173318  , p_source_145 => l_array_source_145(Idx)
173319  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173320  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173321  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173322  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173323  );
173324 If(l_balance_type_code = 'A') THEN
173325   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173326 END IF;
173327 
173328 --
173329 
173330 
173331 --
173332 AcctLineType_204 (
173333  p_application_id  => p_application_id
173334  ,p_event_id     => l_event_id
173335  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173336  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173337  ,p_actual_flag => l_actual_flag
173338  ,p_balance_type_code => l_balance_type_code
173339  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173340  
173341  , p_source_1 => l_array_source_1(Idx)
173342  , p_source_16 => l_array_source_16(Idx)
173343  , p_source_28 => l_array_source_28(Idx)
173344  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173345  , p_source_46 => l_array_source_46(Idx)
173346  , p_source_54 => l_array_source_54(Idx)
173347  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173348  , p_source_58 => l_array_source_58(Idx)
173349  , p_source_60 => l_array_source_60(Idx)
173350  , p_source_62 => l_array_source_62(Idx)
173351  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173352  , p_source_69 => l_array_source_69(Idx)
173353  , p_source_70 => l_array_source_70(Idx)
173354  , p_source_71 => l_array_source_71(Idx)
173355  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173356  , p_source_73 => l_array_source_73(Idx)
173357  , p_source_74 => l_array_source_74(Idx)
173358  , p_source_75 => l_array_source_75(Idx)
173359  , p_source_76 => l_array_source_76(Idx)
173360  , p_source_77 => l_array_source_77(Idx)
173361  , p_source_78 => l_array_source_78(Idx)
173362  , p_source_82 => l_array_source_82(Idx)
173363  , p_source_83 => l_array_source_83(Idx)
173364  , p_source_84 => l_array_source_84(Idx)
173365  , p_source_85 => l_array_source_85(Idx)
173366  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173367  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173368  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173372  , p_source_91 => l_array_source_91(Idx)
173369  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173370  , p_source_89 => l_array_source_89(Idx)
173371  , p_source_90 => l_array_source_90(Idx)
173373  , p_source_92 => l_array_source_92(Idx)
173374  , p_source_93 => l_array_source_93(Idx)
173375  , p_source_94 => l_array_source_94(Idx)
173376  , p_source_95 => l_array_source_95(Idx)
173377  , p_source_96 => l_array_source_96(Idx)
173378  , p_source_97 => l_array_source_97(Idx)
173379  , p_source_98 => l_array_source_98(Idx)
173380  , p_source_99 => l_array_source_99(Idx)
173381  , p_source_100 => l_array_source_100(Idx)
173382  , p_source_145 => l_array_source_145(Idx)
173383  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173384  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173385  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173386  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173387  );
173388 If(l_balance_type_code = 'A') THEN
173389   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173390 END IF;
173391 
173392 --
173393 
173394 
173395 --
173396 AcctLineType_208 (
173397  p_application_id  => p_application_id
173398  ,p_event_id     => l_event_id
173399  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173400  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173401  ,p_actual_flag => l_actual_flag
173402  ,p_balance_type_code => l_balance_type_code
173403  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173404  
173405  , p_source_1 => l_array_source_1(Idx)
173406  , p_source_16 => l_array_source_16(Idx)
173407  , p_source_28 => l_array_source_28(Idx)
173408  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173409  , p_source_46 => l_array_source_46(Idx)
173410  , p_source_58 => l_array_source_58(Idx)
173411  , p_source_60 => l_array_source_60(Idx)
173412  , p_source_62 => l_array_source_62(Idx)
173413  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173414  , p_source_69 => l_array_source_69(Idx)
173415  , p_source_70 => l_array_source_70(Idx)
173416  , p_source_71 => l_array_source_71(Idx)
173417  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173418  , p_source_73 => l_array_source_73(Idx)
173419  , p_source_74 => l_array_source_74(Idx)
173420  , p_source_75 => l_array_source_75(Idx)
173421  , p_source_76 => l_array_source_76(Idx)
173422  , p_source_77 => l_array_source_77(Idx)
173423  , p_source_78 => l_array_source_78(Idx)
173424  , p_source_82 => l_array_source_82(Idx)
173425  , p_source_83 => l_array_source_83(Idx)
173426  , p_source_84 => l_array_source_84(Idx)
173427  , p_source_85 => l_array_source_85(Idx)
173428  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173429  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173430  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173431  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173432  , p_source_89 => l_array_source_89(Idx)
173433  , p_source_90 => l_array_source_90(Idx)
173434  , p_source_91 => l_array_source_91(Idx)
173435  , p_source_92 => l_array_source_92(Idx)
173436  , p_source_93 => l_array_source_93(Idx)
173437  , p_source_94 => l_array_source_94(Idx)
173438  , p_source_95 => l_array_source_95(Idx)
173439  , p_source_96 => l_array_source_96(Idx)
173440  , p_source_97 => l_array_source_97(Idx)
173441  , p_source_98 => l_array_source_98(Idx)
173442  , p_source_99 => l_array_source_99(Idx)
173443  , p_source_100 => l_array_source_100(Idx)
173444  , p_source_145 => l_array_source_145(Idx)
173445  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173446  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173447  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173448  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173449  );
173450 If(l_balance_type_code = 'A') THEN
173451   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173452 END IF;
173453 
173454 --
173455 
173456 
173457 --
173458 AcctLineType_215 (
173459  p_application_id  => p_application_id
173460  ,p_event_id     => l_event_id
173461  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173462  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173463  ,p_actual_flag => l_actual_flag
173464  ,p_balance_type_code => l_balance_type_code
173465  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173466  
173467  , p_source_1 => l_array_source_1(Idx)
173468  , p_source_16 => l_array_source_16(Idx)
173469  , p_source_28 => l_array_source_28(Idx)
173470  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173471  , p_source_47 => l_array_source_47(Idx)
173472  , p_source_58 => l_array_source_58(Idx)
173473  , p_source_60 => l_array_source_60(Idx)
173474  , p_source_62 => l_array_source_62(Idx)
173475  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173476  , p_source_69 => l_array_source_69(Idx)
173477  , p_source_70 => l_array_source_70(Idx)
173478  , p_source_71 => l_array_source_71(Idx)
173479  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173480  , p_source_73 => l_array_source_73(Idx)
173481  , p_source_74 => l_array_source_74(Idx)
173482  , p_source_75 => l_array_source_75(Idx)
173483  , p_source_76 => l_array_source_76(Idx)
173484  , p_source_77 => l_array_source_77(Idx)
173485  , p_source_78 => l_array_source_78(Idx)
173486  , p_source_82 => l_array_source_82(Idx)
173487  , p_source_83 => l_array_source_83(Idx)
173488  , p_source_84 => l_array_source_84(Idx)
173489  , p_source_85 => l_array_source_85(Idx)
173490  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173491  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173492  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173493  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173494  , p_source_89 => l_array_source_89(Idx)
173495  , p_source_90 => l_array_source_90(Idx)
173499  , p_source_94 => l_array_source_94(Idx)
173496  , p_source_91 => l_array_source_91(Idx)
173497  , p_source_92 => l_array_source_92(Idx)
173498  , p_source_93 => l_array_source_93(Idx)
173500  , p_source_95 => l_array_source_95(Idx)
173501  , p_source_96 => l_array_source_96(Idx)
173502  , p_source_97 => l_array_source_97(Idx)
173503  , p_source_98 => l_array_source_98(Idx)
173504  , p_source_99 => l_array_source_99(Idx)
173505  , p_source_100 => l_array_source_100(Idx)
173506  , p_source_145 => l_array_source_145(Idx)
173507  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173508  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173509  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173510  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173511  );
173512 If(l_balance_type_code = 'A') THEN
173513   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173514 END IF;
173515 
173516 --
173517 
173518 
173519 --
173520 AcctLineType_216 (
173521  p_application_id  => p_application_id
173522  ,p_event_id     => l_event_id
173523  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173524  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173525  ,p_actual_flag => l_actual_flag
173526  ,p_balance_type_code => l_balance_type_code
173527  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173528  
173529  , p_source_1 => l_array_source_1(Idx)
173530  , p_source_16 => l_array_source_16(Idx)
173531  , p_source_28 => l_array_source_28(Idx)
173532  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173533  , p_source_46 => l_array_source_46(Idx)
173534  , p_source_54 => l_array_source_54(Idx)
173535  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173536  , p_source_58 => l_array_source_58(Idx)
173537  , p_source_60 => l_array_source_60(Idx)
173538  , p_source_62 => l_array_source_62(Idx)
173539  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173540  , p_source_69 => l_array_source_69(Idx)
173541  , p_source_70 => l_array_source_70(Idx)
173542  , p_source_71 => l_array_source_71(Idx)
173543  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173544  , p_source_73 => l_array_source_73(Idx)
173545  , p_source_74 => l_array_source_74(Idx)
173546  , p_source_75 => l_array_source_75(Idx)
173547  , p_source_76 => l_array_source_76(Idx)
173548  , p_source_77 => l_array_source_77(Idx)
173549  , p_source_78 => l_array_source_78(Idx)
173550  , p_source_79 => l_array_source_79(Idx)
173551  , p_source_80 => l_array_source_80(Idx)
173552  , p_source_81 => l_array_source_81(Idx)
173553  , p_source_82 => l_array_source_82(Idx)
173554  , p_source_83 => l_array_source_83(Idx)
173555  , p_source_84 => l_array_source_84(Idx)
173556  , p_source_85 => l_array_source_85(Idx)
173557  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173558  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173559  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173560  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173561  , p_source_89 => l_array_source_89(Idx)
173562  , p_source_90 => l_array_source_90(Idx)
173563  , p_source_91 => l_array_source_91(Idx)
173564  , p_source_92 => l_array_source_92(Idx)
173565  , p_source_93 => l_array_source_93(Idx)
173566  , p_source_94 => l_array_source_94(Idx)
173567  , p_source_95 => l_array_source_95(Idx)
173568  , p_source_96 => l_array_source_96(Idx)
173569  , p_source_97 => l_array_source_97(Idx)
173570  , p_source_98 => l_array_source_98(Idx)
173571  , p_source_99 => l_array_source_99(Idx)
173572  , p_source_100 => l_array_source_100(Idx)
173573  , p_source_145 => l_array_source_145(Idx)
173574  , p_source_145_meaning => l_array_source_145_meaning(Idx)
173575  );
173576 If(l_balance_type_code = 'A') THEN
173577   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173578 END IF;
173579 
173580 --
173581 
173582 
173583 --
173584 AcctLineType_224 (
173585  p_application_id  => p_application_id
173586  ,p_event_id     => l_event_id
173587  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173588  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173589  ,p_actual_flag => l_actual_flag
173590  ,p_balance_type_code => l_balance_type_code
173591  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173592  
173593  , p_source_1 => l_array_source_1(Idx)
173594  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
173595  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
173596  , p_source_15 => g_array_event(l_event_id).array_value_num('source_15')
173597  , p_source_16 => l_array_source_16(Idx)
173598  , p_source_17 => l_array_source_17(Idx)
173599  , p_source_17_meaning => l_array_source_17_meaning(Idx)
173600  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
173601  , p_source_25 => l_array_source_25(Idx)
173602  , p_source_28 => l_array_source_28(Idx)
173603  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173604  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
173605  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
173606  , p_source_54 => l_array_source_54(Idx)
173607  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173608  , p_source_58 => l_array_source_58(Idx)
173609  , p_source_60 => l_array_source_60(Idx)
173610  , p_source_62 => l_array_source_62(Idx)
173611  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173612  , p_source_69 => l_array_source_69(Idx)
173613  , p_source_70 => l_array_source_70(Idx)
173614  , p_source_71 => l_array_source_71(Idx)
173615  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173616  , p_source_73 => l_array_source_73(Idx)
173617  , p_source_74 => l_array_source_74(Idx)
173618  , p_source_75 => l_array_source_75(Idx)
173619  , p_source_76 => l_array_source_76(Idx)
173620  , p_source_77 => l_array_source_77(Idx)
173621  , p_source_78 => l_array_source_78(Idx)
173622  , p_source_82 => l_array_source_82(Idx)
173626  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173623  , p_source_83 => l_array_source_83(Idx)
173624  , p_source_84 => l_array_source_84(Idx)
173625  , p_source_85 => l_array_source_85(Idx)
173627  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173628  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173629  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173630  , p_source_89 => l_array_source_89(Idx)
173631  , p_source_90 => l_array_source_90(Idx)
173632  , p_source_91 => l_array_source_91(Idx)
173633  , p_source_92 => l_array_source_92(Idx)
173634  , p_source_93 => l_array_source_93(Idx)
173635  , p_source_94 => l_array_source_94(Idx)
173636  , p_source_95 => l_array_source_95(Idx)
173637  , p_source_96 => l_array_source_96(Idx)
173638  , p_source_97 => l_array_source_97(Idx)
173639  , p_source_98 => l_array_source_98(Idx)
173640  , p_source_99 => l_array_source_99(Idx)
173641  , p_source_100 => l_array_source_100(Idx)
173642  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173643  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173644  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173645  );
173646 If(l_balance_type_code = 'A') THEN
173647   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173648 END IF;
173649 
173650 --
173651 
173652 
173653 --
173654 AcctLineType_228 (
173655  p_application_id  => p_application_id
173656  ,p_event_id     => l_event_id
173657  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173658  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173659  ,p_actual_flag => l_actual_flag
173660  ,p_balance_type_code => l_balance_type_code
173661  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173662  
173663  , p_source_1 => l_array_source_1(Idx)
173664  , p_source_16 => l_array_source_16(Idx)
173665  , p_source_25 => l_array_source_25(Idx)
173666  , p_source_28 => l_array_source_28(Idx)
173667  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173668  , p_source_54 => l_array_source_54(Idx)
173669  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173670  , p_source_58 => l_array_source_58(Idx)
173671  , p_source_60 => l_array_source_60(Idx)
173672  , p_source_62 => l_array_source_62(Idx)
173673  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173674  , p_source_69 => l_array_source_69(Idx)
173675  , p_source_70 => l_array_source_70(Idx)
173676  , p_source_71 => l_array_source_71(Idx)
173677  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173678  , p_source_73 => l_array_source_73(Idx)
173679  , p_source_74 => l_array_source_74(Idx)
173680  , p_source_75 => l_array_source_75(Idx)
173681  , p_source_76 => l_array_source_76(Idx)
173682  , p_source_77 => l_array_source_77(Idx)
173683  , p_source_78 => l_array_source_78(Idx)
173684  , p_source_82 => l_array_source_82(Idx)
173685  , p_source_83 => l_array_source_83(Idx)
173686  , p_source_84 => l_array_source_84(Idx)
173687  , p_source_85 => l_array_source_85(Idx)
173688  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173689  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173690  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173691  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173692  , p_source_89 => l_array_source_89(Idx)
173693  , p_source_90 => l_array_source_90(Idx)
173694  , p_source_91 => l_array_source_91(Idx)
173695  , p_source_92 => l_array_source_92(Idx)
173696  , p_source_93 => l_array_source_93(Idx)
173697  , p_source_94 => l_array_source_94(Idx)
173698  , p_source_95 => l_array_source_95(Idx)
173699  , p_source_96 => l_array_source_96(Idx)
173700  , p_source_97 => l_array_source_97(Idx)
173701  , p_source_98 => l_array_source_98(Idx)
173702  , p_source_99 => l_array_source_99(Idx)
173703  , p_source_100 => l_array_source_100(Idx)
173704  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173705  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173706  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173707  );
173708 If(l_balance_type_code = 'A') THEN
173709   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173710 END IF;
173711 
173712 --
173713 
173714 
173715 --
173716 AcctLineType_232 (
173717  p_application_id  => p_application_id
173718  ,p_event_id     => l_event_id
173719  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173720  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173721  ,p_actual_flag => l_actual_flag
173722  ,p_balance_type_code => l_balance_type_code
173723  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173724  
173725  , p_source_1 => l_array_source_1(Idx)
173726  , p_source_16 => l_array_source_16(Idx)
173727  , p_source_25 => l_array_source_25(Idx)
173728  , p_source_28 => l_array_source_28(Idx)
173729  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173730  , p_source_54 => l_array_source_54(Idx)
173731  , p_source_54_meaning => l_array_source_54_meaning(Idx)
173732  , p_source_58 => l_array_source_58(Idx)
173733  , p_source_60 => l_array_source_60(Idx)
173734  , p_source_62 => l_array_source_62(Idx)
173735  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173736  , p_source_69 => l_array_source_69(Idx)
173737  , p_source_70 => l_array_source_70(Idx)
173738  , p_source_71 => l_array_source_71(Idx)
173739  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173740  , p_source_73 => l_array_source_73(Idx)
173741  , p_source_74 => l_array_source_74(Idx)
173742  , p_source_75 => l_array_source_75(Idx)
173743  , p_source_76 => l_array_source_76(Idx)
173744  , p_source_77 => l_array_source_77(Idx)
173745  , p_source_78 => l_array_source_78(Idx)
173746  , p_source_82 => l_array_source_82(Idx)
173747  , p_source_83 => l_array_source_83(Idx)
173748  , p_source_84 => l_array_source_84(Idx)
173749  , p_source_85 => l_array_source_85(Idx)
173750  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173754  , p_source_89 => l_array_source_89(Idx)
173751  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173752  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173753  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173755  , p_source_90 => l_array_source_90(Idx)
173756  , p_source_91 => l_array_source_91(Idx)
173757  , p_source_92 => l_array_source_92(Idx)
173758  , p_source_93 => l_array_source_93(Idx)
173759  , p_source_94 => l_array_source_94(Idx)
173760  , p_source_95 => l_array_source_95(Idx)
173761  , p_source_96 => l_array_source_96(Idx)
173762  , p_source_97 => l_array_source_97(Idx)
173763  , p_source_98 => l_array_source_98(Idx)
173764  , p_source_99 => l_array_source_99(Idx)
173765  , p_source_100 => l_array_source_100(Idx)
173766  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173767  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173768  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173769  );
173770 If(l_balance_type_code = 'A') THEN
173771   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173772 END IF;
173773 
173774 --
173775 
173776 
173777 --
173778 AcctLineType_238 (
173779  p_application_id  => p_application_id
173780  ,p_event_id     => l_event_id
173781  ,p_calculate_acctd_flag => l_calculate_acctd_flag
173782  ,p_calculate_g_l_flag => l_calculate_g_l_flag
173783  ,p_actual_flag => l_actual_flag
173784  ,p_balance_type_code => l_balance_type_code
173785  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
173786  
173787  , p_source_1 => l_array_source_1(Idx)
173788  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
173789  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
173790  , p_source_16 => l_array_source_16(Idx)
173791  , p_source_25 => l_array_source_25(Idx)
173792  , p_source_28 => l_array_source_28(Idx)
173793  , p_source_28_meaning => l_array_source_28_meaning(Idx)
173794  , p_source_39 => l_array_source_39(Idx)
173795  , p_source_58 => l_array_source_58(Idx)
173796  , p_source_60 => l_array_source_60(Idx)
173797  , p_source_62 => l_array_source_62(Idx)
173798  , p_source_63 => g_array_event(l_event_id).array_value_num('source_63')
173799  , p_source_69 => l_array_source_69(Idx)
173800  , p_source_70 => l_array_source_70(Idx)
173801  , p_source_71 => l_array_source_71(Idx)
173802  , p_source_72 => g_array_event(l_event_id).array_value_char('source_72')
173803  , p_source_73 => l_array_source_73(Idx)
173804  , p_source_74 => l_array_source_74(Idx)
173805  , p_source_75 => l_array_source_75(Idx)
173806  , p_source_76 => l_array_source_76(Idx)
173807  , p_source_77 => l_array_source_77(Idx)
173808  , p_source_78 => l_array_source_78(Idx)
173809  , p_source_82 => l_array_source_82(Idx)
173810  , p_source_83 => l_array_source_83(Idx)
173811  , p_source_84 => l_array_source_84(Idx)
173812  , p_source_85 => l_array_source_85(Idx)
173813  , p_source_85_meaning => l_array_source_85_meaning(Idx)
173814  , p_source_86 => g_array_event(l_event_id).array_value_num('source_86')
173815  , p_source_87 => g_array_event(l_event_id).array_value_num('source_87')
173816  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
173817  , p_source_89 => l_array_source_89(Idx)
173818  , p_source_90 => l_array_source_90(Idx)
173819  , p_source_91 => l_array_source_91(Idx)
173820  , p_source_92 => l_array_source_92(Idx)
173821  , p_source_93 => l_array_source_93(Idx)
173822  , p_source_94 => l_array_source_94(Idx)
173823  , p_source_95 => l_array_source_95(Idx)
173824  , p_source_96 => l_array_source_96(Idx)
173825  , p_source_97 => l_array_source_97(Idx)
173826  , p_source_98 => l_array_source_98(Idx)
173827  , p_source_99 => l_array_source_99(Idx)
173828  , p_source_100 => l_array_source_100(Idx)
173829  , p_source_146 => g_array_event(l_event_id).array_value_date('source_146')
173830  , p_source_147 => g_array_event(l_event_id).array_value_num('source_147')
173831  , p_source_148 => g_array_event(l_event_id).array_value_char('source_148')
173832  );
173833 If(l_balance_type_code = 'A') THEN
173834   l_actual_gain_loss_ref := l_gain_or_loss_ref;
173835 END IF;
173836 
173837 --
173838 
173839       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
173840       -- or secondary ledger that has different currency with primary
173841       -- or alc that is calculated by sla
173842       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
173843             (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'))
173844 
173845 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
173846 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
173847           AND (l_actual_flag = 'A')) THEN
173848         XLA_AE_LINES_PKG.CreateGainOrLossLines(
173849           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
173850          ,p_application_id   => p_application_id
173851          ,p_amb_context_code => 'DEFAULT'
173852          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
173853          ,p_event_class_code => C_EVENT_CLASS_CODE
173854          ,p_event_type_code  => C_EVENT_TYPE_CODE
173855          
173856          ,p_gain_ccid        => -1
173857          ,p_loss_ccid        => -1
173858 
173859          ,p_actual_flag      => l_actual_flag
173860          ,p_enc_flag         => null
173861          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
173862          ,p_enc_g_l_ref      => null
173863          );
173864       END IF;
173865    END IF;
173866 END IF;
173867 
173868    ELSE
173869       --
173870       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
173871       --
173872       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
173873          trace
173877       END IF;
173874             (p_msg      => 'Trancaction revesal option is Y'
173875             ,p_level    => C_LEVEL_STATEMENT
173876             ,p_module   => l_log_module);
173878    END IF;
173879 
173880 END LOOP;
173881 l_result := XLA_AE_LINES_PKG.InsertLines ;
173882 end loop;
173883 close line_cur;
173884 
173885 
173886 --
173887 -- insert headers into xla_ae_headers_gt table
173888 --
173889 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
173890 
173891 -- insert into errors table here.
173892 
173893 END LOOP;
173894 
173895 --
173896 -- 4865292
173897 --
173898 -- Compare g_hdr_extract_count with event count in
173899 -- CreateHeadersAndLines.
173900 --
173901 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
173902 
173903 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
173904    trace (p_msg     => '# rows extracted from header extract objects '
173905                     || ' (running total): '
173906                     || g_hdr_extract_count
173907          ,p_level   => C_LEVEL_STATEMENT
173908          ,p_module  => l_log_module);
173909 END IF;
173910 
173911 CLOSE header_cur;
173912 --
173913 
173914 --
173915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
173916    trace
173917       (p_msg      => 'END of EventClass_254'
173918       ,p_level    => C_LEVEL_PROCEDURE
173919       ,p_module   => l_log_module);
173920 END IF;
173921 --
173922 RETURN l_result;
173923 EXCEPTION
173924 WHEN xla_exceptions_pkg.application_exception THEN
173925    
173926 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
173927 
173928    
173929 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
173930 
173931    RAISE;
173932 
173933 WHEN NO_DATA_FOUND THEN
173934 
173935 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
173936 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
173937 
173938 FOR header_record IN header_cur
173939 LOOP
173940     l_array_header_events(header_record.event_id) := header_record.event_id;
173941 END LOOP;
173942 
173943 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
173944 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
173945 
173946 fnd_file.put_line(fnd_file.LOG, '                    ');
173947 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
173948 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
173949 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
173950 
173951 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
173952 LOOP
173953 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
173954 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
173955         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
173956 	END IF;
173957 END LOOP;
173958 
173959 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
173960 fnd_file.put_line(fnd_file.LOG, '                    ');
173961 
173962 
173963 xla_exceptions_pkg.raise_message
173964       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_254');
173965 
173966 
173967 WHEN OTHERS THEN
173968    xla_exceptions_pkg.raise_message
173969       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_254');
173970 END EventClass_254;
173971 --
173972 
173973 ---------------------------------------
173974 --
173975 -- PRIVATE PROCEDURE
173976 --         insert_sources_255
173977 --
173978 ----------------------------------------
173979 --
173980 PROCEDURE insert_sources_255(
173981                                 p_target_ledger_id       IN NUMBER
173982                               , p_language               IN VARCHAR2
173983                               , p_sla_ledger_id          IN NUMBER
173984                               , p_pad_start_date         IN DATE
173985                               , p_pad_end_date           IN DATE
173986                          )
173987 IS
173988 
173989 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
173990 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
173991 p_apps_owner                   VARCHAR2(30);
173992 l_log_module                   VARCHAR2(240);
173993 BEGIN
173994 IF g_log_enabled THEN
173995       l_log_module := C_DEFAULT_MODULE||'.insert_sources_255';
173996 END IF;
173997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
173998 
173999       trace
174000          (p_msg      => 'BEGIN of insert_sources_255'
174001          ,p_level    => C_LEVEL_PROCEDURE
174002          ,p_module   => l_log_module);
174003 
174004 END IF;
174005 
174006 -- select APPS owner
174007 SELECT oracle_username
174008   INTO p_apps_owner
174009   FROM fnd_oracle_userid
174010  WHERE read_only_flag = 'U'
174011 ;
174012 
174013 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
174014       trace
174015          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
174016                         ' - p_language = '||p_language||
174017                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
174018                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
174019                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
174020                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
174021          ,p_level    => C_LEVEL_STATEMENT
174022          ,p_module   => l_log_module);
174023 END IF;
174024 
174025 
174026 --
174027 INSERT INTO xla_diag_sources --hdr2
174028 (
174029         event_id
174030       , ledger_id
174031       , sla_ledger_id
174032       , description_language
174033       , object_name
174037       , source_type_code
174034       , object_type_code
174035       , line_number
174036       , source_application_id
174038       , source_code
174039       , source_value
174040       , source_meaning
174041       , created_by
174042       , creation_date
174043       , last_update_date
174044       , last_updated_by
174045       , last_update_login
174046       , program_update_date
174047       , program_application_id
174048       , program_id
174049       , request_id
174050 )
174051 SELECT
174052         event_id
174053       , p_target_ledger_id
174054       , p_sla_ledger_id
174055       , p_language
174056       , object_name
174057       , object_type_code
174058       , line_number
174059       , source_application_id
174060       , source_type_code
174061       , source_code
174062       , SUBSTR(source_value ,1,1996)
174063       , SUBSTR(source_meaning ,1,200)
174064       , xla_environment_pkg.g_Usr_Id
174065       , TRUNC(SYSDATE)
174066       , TRUNC(SYSDATE)
174067       , xla_environment_pkg.g_Usr_Id
174068       , xla_environment_pkg.g_Login_Id
174069       , TRUNC(SYSDATE)
174070       , xla_environment_pkg.g_Prog_Appl_Id
174071       , xla_environment_pkg.g_Prog_Id
174072       , xla_environment_pkg.g_Req_Id
174073   FROM (
174074        SELECT xet.event_id                  event_id
174075             , 0                          line_number
174076             , CASE r
174077                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174078                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174079                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174080                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174081                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174082                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174083                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174084                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174085                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174086                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174087                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174088                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174089                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174090                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174091                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174092                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174093                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174094                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
174095                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174096                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174097                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174098                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174099                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174100                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174101                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174102                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174103                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174104                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174105                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174106                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174107                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174108                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174109                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
174110                 
174111                ELSE null
174112               END                           object_name
174113             , CASE r
174114                 WHEN 1 THEN 'HEADER' 
174115                 WHEN 2 THEN 'HEADER' 
174116                 WHEN 3 THEN 'HEADER' 
174117                 WHEN 4 THEN 'HEADER' 
174118                 WHEN 5 THEN 'HEADER' 
174119                 WHEN 6 THEN 'HEADER' 
174120                 WHEN 7 THEN 'HEADER' 
174121                 WHEN 8 THEN 'HEADER' 
174122                 WHEN 9 THEN 'HEADER' 
174123                 WHEN 10 THEN 'HEADER' 
174124                 WHEN 11 THEN 'HEADER' 
174125                 WHEN 12 THEN 'HEADER' 
174126                 WHEN 13 THEN 'HEADER' 
174127                 WHEN 14 THEN 'HEADER' 
174128                 WHEN 15 THEN 'HEADER' 
174129                 WHEN 16 THEN 'HEADER' 
174130                 WHEN 17 THEN 'HEADER' 
174131                 WHEN 18 THEN 'HEADER' 
174132                 WHEN 19 THEN 'HEADER' 
174133                 WHEN 20 THEN 'HEADER' 
174134                 WHEN 21 THEN 'HEADER' 
174135                 WHEN 22 THEN 'HEADER' 
174136                 WHEN 23 THEN 'HEADER' 
174137                 WHEN 24 THEN 'HEADER' 
174138                 WHEN 25 THEN 'HEADER' 
174139                 WHEN 26 THEN 'HEADER' 
174140                 WHEN 27 THEN 'HEADER' 
174141                 WHEN 28 THEN 'HEADER' 
174142                 WHEN 29 THEN 'HEADER' 
174143                 WHEN 30 THEN 'HEADER' 
174144                 WHEN 31 THEN 'HEADER' 
174145                 WHEN 32 THEN 'HEADER' 
174146                 WHEN 33 THEN 'HEADER' 
174147                 
174148                 ELSE null
174149               END                           object_type_code
174150             , CASE r
174151                 WHEN 1 THEN '200' 
174152                 WHEN 2 THEN '200' 
174153                 WHEN 3 THEN '200' 
174154                 WHEN 4 THEN '200' 
174155                 WHEN 5 THEN '200' 
174156                 WHEN 6 THEN '200' 
174157                 WHEN 7 THEN '200' 
174158                 WHEN 8 THEN '200' 
174159                 WHEN 9 THEN '200' 
174160                 WHEN 10 THEN '200' 
174161                 WHEN 11 THEN '200' 
174162                 WHEN 12 THEN '200' 
174163                 WHEN 13 THEN '200' 
174164                 WHEN 14 THEN '200' 
174165                 WHEN 15 THEN '200' 
174169                 WHEN 19 THEN '200' 
174166                 WHEN 16 THEN '200' 
174167                 WHEN 17 THEN '200' 
174168                 WHEN 18 THEN '200' 
174170                 WHEN 20 THEN '200' 
174171                 WHEN 21 THEN '200' 
174172                 WHEN 22 THEN '200' 
174173                 WHEN 23 THEN '200' 
174174                 WHEN 24 THEN '200' 
174175                 WHEN 25 THEN '200' 
174176                 WHEN 26 THEN '200' 
174177                 WHEN 27 THEN '200' 
174178                 WHEN 28 THEN '200' 
174179                 WHEN 29 THEN '200' 
174180                 WHEN 30 THEN '200' 
174181                 WHEN 31 THEN '200' 
174182                 WHEN 32 THEN '200' 
174183                 WHEN 33 THEN '200' 
174184                 
174185                 ELSE null
174186               END                           source_application_id
174187             , 'S'             source_type_code
174188             , CASE r
174189                 WHEN 1 THEN 'AC_DOC_SEQUENCE_VALUE' 
174190                 WHEN 2 THEN 'AC_CURRENCY_CODE' 
174191                 WHEN 3 THEN 'CGAC_BANK_CHARGES_CCID' 
174192                 WHEN 4 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
174193                 WHEN 5 THEN 'CGAC_BANK_ERRORS_CCID' 
174194                 WHEN 6 THEN 'CGAC_AP_ASSET_CCID' 
174195                 WHEN 7 THEN 'FSP_DISC_TAKEN_CCID' 
174196                 WHEN 8 THEN 'ASP_DISCOUNT_DIST_METHOD' 
174197                 WHEN 9 THEN 'ASP_INTEREST_CCID' 
174198                 WHEN 10 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
174199                 WHEN 11 THEN 'CGAC_GAIN_CCID' 
174200                 WHEN 12 THEN 'ASP_GAIN_CCID' 
174201                 WHEN 13 THEN 'CGAC_LOSS_CCID' 
174202                 WHEN 14 THEN 'ASP_LOSS_CCID' 
174203                 WHEN 15 THEN 'ASP_DISC_TAKEN_CCID' 
174204                 WHEN 16 THEN 'ASP_AUTO_OFFSET_FLAG' 
174205                 WHEN 17 THEN 'ASP_ROUNDING_ERROR_CCID' 
174206                 WHEN 18 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
174207                 WHEN 19 THEN 'THIRD_PARTY_TYPE' 
174208                 WHEN 20 THEN 'APH_BANK_CURRENCY_CODE' 
174209                 WHEN 21 THEN 'APH_BANK_TO_BASE_XRATE_DATE' 
174210                 WHEN 22 THEN 'APH_BANK_TO_BASE_XRATE' 
174211                 WHEN 23 THEN 'APH_BANK_TO_BASE_XRATE_TYPE' 
174212                 WHEN 24 THEN 'AC_VENDOR_ID' 
174213                 WHEN 25 THEN 'AC_VENDOR_SITE_ID' 
174214                 WHEN 26 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
174215                 WHEN 27 THEN 'AC_FUTURE_PAY_DUE_DATE' 
174216                 WHEN 28 THEN 'AC_EXCHANGE_DATE' 
174217                 WHEN 29 THEN 'AC_EXCHANGE_RATE' 
174218                 WHEN 30 THEN 'AC_EXCHANGE_RATE_TYPE' 
174219                 WHEN 31 THEN 'PAYMENT_TYPE' 
174220                 WHEN 32 THEN 'AC_DOC_CATEGORY_CODE' 
174221                 WHEN 33 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
174222                 
174223                 ELSE null
174224               END                           source_code
174225             , CASE r
174226                 WHEN 1 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
174227                 WHEN 2 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
174228                 WHEN 3 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
174229                 WHEN 4 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
174230                 WHEN 5 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
174231                 WHEN 6 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
174232                 WHEN 7 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
174233                 WHEN 8 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
174234                 WHEN 9 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
174235                 WHEN 10 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
174236                 WHEN 11 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
174237                 WHEN 12 THEN TO_CHAR(h3.ASP_GAIN_CCID)
174238                 WHEN 13 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
174239                 WHEN 14 THEN TO_CHAR(h3.ASP_LOSS_CCID)
174240                 WHEN 15 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
174241                 WHEN 16 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
174242                 WHEN 17 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
174243                 WHEN 18 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
174244                 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
174245                 WHEN 20 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
174246                 WHEN 21 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
174247                 WHEN 22 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
174248                 WHEN 23 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
174249                 WHEN 24 THEN TO_CHAR(h2.AC_VENDOR_ID)
174250                 WHEN 25 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
174251                 WHEN 26 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
174252                 WHEN 27 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
174253                 WHEN 28 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
174254                 WHEN 29 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
174255                 WHEN 30 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
174256                 WHEN 31 THEN TO_CHAR(h2.PAYMENT_TYPE)
174257                 WHEN 32 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
174258                 WHEN 33 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
174259                 
174260                 ELSE null
174261               END                           source_value
174262             , CASE r
174263                 WHEN 4 THEN fvl10.meaning
174264                 WHEN 8 THEN fvl14.meaning
174265                 WHEN 16 THEN fvl43.meaning
174266                 WHEN 26 THEN fvl116.meaning
174267                 WHEN 31 THEN fvl125.meaning
174268                 
174269                 ELSE null
174270               END               source_meaning
174271          FROM xla_events_gt     xet  
174272       , AP_PAYMENT_EXTRACT_HEADER_V  h2
174273       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
174274   , fnd_lookup_values    fvl10
174275   , fnd_lookup_values    fvl14
174276   , fnd_lookup_values    fvl43
174277   , fnd_lookup_values    fvl116
174278   , fnd_lookup_values    fvl125
174282               AND h2.event_id = xet.event_id
174279              ,(select rownum r from all_objects where rownum <= 33 and owner = p_apps_owner)
174280          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
174281            AND xet.event_class_code = C_EVENT_CLASS_CODE
174283  AND h3.asp_org_id = h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
174284   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
174285   AND fvl10.view_application_id(+) = 200
174286   AND fvl10.language(+)            = USERENV('LANG')
174287      AND fvl14.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
174288   AND fvl14.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
174289   AND fvl14.view_application_id(+) = 200
174290   AND fvl14.language(+)            = USERENV('LANG')
174291      AND fvl43.lookup_type(+)         = 'YES_NO'
174292   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
174293   AND fvl43.view_application_id(+) = 0
174294   AND fvl43.language(+)            = USERENV('LANG')
174295      AND fvl116.lookup_type(+)         = 'YES_NO'
174296   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
174297   AND fvl116.view_application_id(+) = 0
174298   AND fvl116.language(+)            = USERENV('LANG')
174299      AND fvl125.lookup_type(+)         = 'PAYMENT TYPE'
174300   AND fvl125.lookup_code(+)         = h2.PAYMENT_TYPE
174301   AND fvl125.view_application_id(+) = 200
174302   AND fvl125.language(+)            = USERENV('LANG')
174303   
174304 )
174305 ;
174306 --
174307 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
174308 
174309       trace
174310          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
174311          ,p_level    => C_LEVEL_STATEMENT
174312          ,p_module   => l_log_module);
174313 
174314 END IF;
174315 --
174316 
174317 
174318 
174319 --
174320 INSERT INTO xla_diag_sources  --line2
174321 (
174322         event_id
174323       , ledger_id
174324       , sla_ledger_id
174325       , description_language
174326       , object_name
174327       , object_type_code
174328       , line_number
174329       , source_application_id
174330       , source_type_code
174331       , source_code
174332       , source_value
174333       , source_meaning
174334       , created_by
174335       , creation_date
174336       , last_update_date
174337       , last_updated_by
174338       , last_update_login
174339       , program_update_date
174340       , program_application_id
174341       , program_id
174342       , request_id
174343 )
174344 SELECT  event_id
174345       , p_target_ledger_id
174346       , p_sla_ledger_id
174347       , p_language
174348       , object_name
174349       , object_type_code
174350       , line_number
174351       , source_application_id
174352       , source_type_code
174353       , source_code
174354       , SUBSTR(source_value,1,1996)
174355       , SUBSTR(source_meaning ,1,200)
174356       , xla_environment_pkg.g_Usr_Id
174357       , TRUNC(SYSDATE)
174358       , TRUNC(SYSDATE)
174359       , xla_environment_pkg.g_Usr_Id
174360       , xla_environment_pkg.g_Login_Id
174361       , TRUNC(SYSDATE)
174362       , xla_environment_pkg.g_Prog_Appl_Id
174363       , xla_environment_pkg.g_Prog_Id
174364       , xla_environment_pkg.g_Req_Id
174365   FROM (
174366        SELECT xet.event_id                  event_id
174367             , l1.line_number                 line_number
174368             , CASE r
174369                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174370                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174371                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174372                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174373                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174374                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
174375                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174376                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174377                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174378                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174379                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174380                 WHEN 12 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
174381                 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
174382                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174383                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174384                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174385                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174386                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174387                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174388                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174389                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174390                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174391                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174392                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174393                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174394                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174395                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174396                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174397                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174398                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174399                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174400                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
174401                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174402                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174403                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174404                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174405                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174406                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174410                 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174407                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174408                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174409                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
174411                 
174412                ELSE null
174413               END                           object_name
174414             , CASE r
174415                 WHEN 1 THEN 'LINE' 
174416                 WHEN 2 THEN 'LINE' 
174417                 WHEN 3 THEN 'LINE' 
174418                 WHEN 4 THEN 'LINE' 
174419                 WHEN 5 THEN 'LINE' 
174420                 WHEN 6 THEN 'LINE' 
174421                 WHEN 7 THEN 'LINE' 
174422                 WHEN 8 THEN 'LINE' 
174423                 WHEN 9 THEN 'LINE' 
174424                 WHEN 10 THEN 'LINE' 
174425                 WHEN 11 THEN 'LINE' 
174426                 WHEN 12 THEN 'LINE' 
174427                 WHEN 13 THEN 'LINE' 
174428                 WHEN 14 THEN 'LINE' 
174429                 WHEN 15 THEN 'LINE' 
174430                 WHEN 16 THEN 'LINE' 
174431                 WHEN 17 THEN 'LINE' 
174432                 WHEN 18 THEN 'LINE' 
174433                 WHEN 19 THEN 'LINE' 
174434                 WHEN 20 THEN 'LINE' 
174435                 WHEN 21 THEN 'LINE' 
174436                 WHEN 22 THEN 'LINE' 
174437                 WHEN 23 THEN 'LINE' 
174438                 WHEN 24 THEN 'LINE' 
174439                 WHEN 25 THEN 'LINE' 
174440                 WHEN 26 THEN 'LINE' 
174441                 WHEN 27 THEN 'LINE' 
174442                 WHEN 28 THEN 'LINE' 
174443                 WHEN 29 THEN 'LINE' 
174444                 WHEN 30 THEN 'LINE' 
174445                 WHEN 31 THEN 'LINE' 
174446                 WHEN 32 THEN 'LINE' 
174447                 WHEN 33 THEN 'LINE' 
174448                 WHEN 34 THEN 'LINE' 
174449                 WHEN 35 THEN 'LINE' 
174450                 WHEN 36 THEN 'LINE' 
174451                 WHEN 37 THEN 'LINE' 
174452                 WHEN 38 THEN 'LINE' 
174453                 WHEN 39 THEN 'LINE' 
174454                 WHEN 40 THEN 'LINE' 
174455                 WHEN 41 THEN 'LINE' 
174456                 WHEN 42 THEN 'LINE' 
174457                 
174458                 ELSE null
174459               END                           object_type_code
174460             , CASE r
174461                 WHEN 1 THEN '200' 
174462                 WHEN 2 THEN '200' 
174463                 WHEN 3 THEN '200' 
174464                 WHEN 4 THEN '200' 
174465                 WHEN 5 THEN '200' 
174466                 WHEN 6 THEN '200' 
174467                 WHEN 7 THEN '200' 
174468                 WHEN 8 THEN '200' 
174469                 WHEN 9 THEN '200' 
174470                 WHEN 10 THEN '200' 
174471                 WHEN 11 THEN '200' 
174472                 WHEN 12 THEN '200' 
174473                 WHEN 13 THEN '200' 
174474                 WHEN 14 THEN '200' 
174475                 WHEN 15 THEN '200' 
174476                 WHEN 16 THEN '200' 
174477                 WHEN 17 THEN '200' 
174478                 WHEN 18 THEN '200' 
174479                 WHEN 19 THEN '200' 
174480                 WHEN 20 THEN '200' 
174481                 WHEN 21 THEN '200' 
174482                 WHEN 22 THEN '200' 
174483                 WHEN 23 THEN '200' 
174484                 WHEN 24 THEN '200' 
174485                 WHEN 25 THEN '200' 
174486                 WHEN 26 THEN '200' 
174487                 WHEN 27 THEN '200' 
174488                 WHEN 28 THEN '200' 
174489                 WHEN 29 THEN '200' 
174490                 WHEN 30 THEN '200' 
174491                 WHEN 31 THEN '200' 
174492                 WHEN 32 THEN '200' 
174493                 WHEN 33 THEN '200' 
174494                 WHEN 34 THEN '200' 
174495                 WHEN 35 THEN '200' 
174496                 WHEN 36 THEN '200' 
174497                 WHEN 37 THEN '200' 
174498                 WHEN 38 THEN '200' 
174499                 WHEN 39 THEN '200' 
174500                 WHEN 40 THEN '200' 
174501                 WHEN 41 THEN '200' 
174502                 WHEN 42 THEN '200' 
174503                 
174504                 ELSE null
174505               END                           source_application_id
174506             , 'S'             source_type_code
174507             , CASE r
174508                 WHEN 1 THEN 'AID_DIST_CCID' 
174509                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
174510                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
174511                 WHEN 4 THEN 'POD_CCID' 
174512                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
174513                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
174514                 WHEN 7 THEN 'AI_INVOICE_TYPE_PAID' 
174515                 WHEN 8 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
174516                 WHEN 9 THEN 'DISTRIBUTION_LINK_TYPE' 
174517                 WHEN 10 THEN 'AI_INVOICE_CURRENCY_CODE' 
174518                 WHEN 11 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
174519                 WHEN 12 THEN 'TAX_LINE_ID' 
174520                 WHEN 13 THEN 'SUMMARY_TAX_LINE_ID' 
174521                 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID' 
174522                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE' 
174523                 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
174524                 WHEN 17 THEN 'BUS_FLOW_INV_DIST_ID' 
174525                 WHEN 18 THEN 'BUS_FLOW_INV_ID' 
174526                 WHEN 19 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
174527                 WHEN 20 THEN 'APHD_AMOUNT' 
174528                 WHEN 21 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
174529                 WHEN 22 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
174530                 WHEN 23 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
174531                 WHEN 24 THEN 'BUS_FLOW_PAYMENT_ID' 
174532                 WHEN 25 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
174533                 WHEN 26 THEN 'APHD_CLEARING_BASE_AMT' 
174534                 WHEN 27 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
174535                 WHEN 28 THEN 'APHD_PAYMENT_BASE_AMT' 
174539                 WHEN 32 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
174536                 WHEN 29 THEN 'APHD_INVOICE_BASE_AMT' 
174537                 WHEN 30 THEN 'BUS_FLOW_PAYMENT_MAT_DIST_ID' 
174538                 WHEN 31 THEN 'APHD_MATURED_BASE_AMOUNT' 
174540                 WHEN 33 THEN 'INV_EXCHANGE_DATE' 
174541                 WHEN 34 THEN 'INV_EXCHANGE_RATE' 
174542                 WHEN 35 THEN 'INV_EXCHANGE_RATE_TYPE' 
174543                 WHEN 36 THEN 'INV_CLR_GAIN_LOSS_INDICATOR' 
174544                 WHEN 37 THEN 'INV_CLR_BASE_AMT_DIFF' 
174545                 WHEN 38 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR' 
174546                 WHEN 39 THEN 'MAT_CLR_BASE_AMT_DIFF' 
174547                 WHEN 40 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR' 
174548                 WHEN 41 THEN 'PMT_CLR_BASE_AMT_DIFF' 
174549                 WHEN 42 THEN 'AWT_AT_PMT_TIME' 
174550                 
174551                 ELSE null
174552               END                           source_code
174553             , CASE r
174554                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
174555                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
174556                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
174557                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
174558                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
174559                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
174560                 WHEN 7 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
174561                 WHEN 8 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
174562                 WHEN 9 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
174563                 WHEN 10 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
174564                 WHEN 11 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
174565                 WHEN 12 THEN TO_CHAR(l4.TAX_LINE_ID)
174566                 WHEN 13 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
174567                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
174568                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
174569                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
174570                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
174571                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
174572                 WHEN 19 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
174573                 WHEN 20 THEN TO_CHAR(l1.APHD_AMOUNT)
174574                 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
174575                 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
174576                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
174577                 WHEN 24 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
174578                 WHEN 25 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
174579                 WHEN 26 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
174580                 WHEN 27 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
174581                 WHEN 28 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
174582                 WHEN 29 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
174583                 WHEN 30 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_MAT_DIST_ID)
174584                 WHEN 31 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
174585                 WHEN 32 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
174586                 WHEN 33 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
174587                 WHEN 34 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
174588                 WHEN 35 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
174589                 WHEN 36 THEN TO_CHAR(l1.INV_CLR_GAIN_LOSS_INDICATOR)
174590                 WHEN 37 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
174591                 WHEN 38 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
174592                 WHEN 39 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
174593                 WHEN 40 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
174594                 WHEN 41 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
174595                 WHEN 42 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
174596                 
174597                 ELSE null
174598               END                           source_value
174599             , CASE r
174600                 WHEN 2 THEN fvl28.meaning
174601                 WHEN 7 THEN fvl56.meaning
174602                 WHEN 11 THEN fvl85.meaning
174603                 WHEN 19 THEN fvl101.meaning
174604                 WHEN 32 THEN fvl140.meaning
174605                 WHEN 42 THEN fvl166.meaning
174606                 
174607                 ELSE null
174608               END               source_meaning
174609          FROM  xla_events_gt     xet  
174610         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
174611         , ZX_AP_DEF_TAX_EXTRACT_V  l4
174612   , fnd_lookup_values    fvl28
174613   , fnd_lookup_values    fvl56
174614   , fnd_lookup_values    fvl85
174615   , fnd_lookup_values    fvl101
174616   , fnd_lookup_values    fvl140
174617   , fnd_lookup_values    fvl166
174618             , (select rownum r from all_objects where rownum <= 42 and owner = p_apps_owner)
174619         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
174620           AND xet.event_class_code = C_EVENT_CLASS_CODE
174621             AND l1.event_id          = xet.event_id
174622  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
174623   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
174624   AND fvl28.view_application_id(+) = 200
174625   AND fvl28.language(+)            = USERENV('LANG')
174626      AND fvl56.lookup_type(+)         = 'INVOICE TYPE'
174627   AND fvl56.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
174628   AND fvl56.view_application_id(+) = 200
174629   AND fvl56.language(+)            = USERENV('LANG')
174630      AND fvl85.lookup_type(+)         = 'YES_NO'
174631   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
174632   AND fvl85.view_application_id(+) = 0
174633   AND fvl85.language(+)            = USERENV('LANG')
174634      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
174635   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
174636   AND fvl101.view_application_id(+) = 200
174637   AND fvl101.language(+)            = USERENV('LANG')
174638      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
174642      AND fvl166.lookup_type(+)         = 'YES_NO'
174639   AND fvl140.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
174640   AND fvl140.view_application_id(+) = 0
174641   AND fvl140.language(+)            = USERENV('LANG')
174643   AND fvl166.lookup_code(+)         = l1.AWT_AT_PMT_TIME
174644   AND fvl166.view_application_id(+) = 0
174645   AND fvl166.language(+)            = USERENV('LANG')
174646   
174647 )
174648 ;
174649 --
174650 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
174651 
174652       trace
174653          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
174654          ,p_level    => C_LEVEL_STATEMENT
174655          ,p_module   => l_log_module);
174656 
174657 END IF;
174658 
174659 
174660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
174661       trace
174662          (p_msg      => 'END of insert_sources_255'
174663          ,p_level    => C_LEVEL_PROCEDURE
174664          ,p_module   => l_log_module);
174665 END IF;
174666 EXCEPTION
174667   WHEN xla_exceptions_pkg.application_exception THEN
174668       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
174669             trace
174670                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
174671                ,p_level    => C_LEVEL_EXCEPTION
174672                ,p_module   => l_log_module);
174673       END IF;
174674       RAISE;
174675   WHEN OTHERS THEN
174676       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
174677             trace
174678                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
174679                ,p_level    => C_LEVEL_EXCEPTION
174680                ,p_module   => l_log_module);
174681        END IF;
174682        xla_exceptions_pkg.raise_message
174683            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_255');
174684 END insert_sources_255;
174685 --
174686 
174687 ---------------------------------------
174688 --
174689 -- PRIVATE FUNCTION
174690 --         EventClass_255
174691 --
174692 ----------------------------------------
174693 --
174694 FUNCTION EventClass_255
174695        (p_application_id         IN NUMBER
174696        ,p_base_ledger_id         IN NUMBER
174697        ,p_target_ledger_id       IN NUMBER
174698        ,p_language               IN VARCHAR2
174699        ,p_currency_code          IN VARCHAR2
174700        ,p_sla_ledger_id          IN NUMBER
174701        ,p_pad_start_date         IN DATE
174702        ,p_pad_end_date           IN DATE
174703        ,p_primary_ledger_id      IN NUMBER)
174704 RETURN BOOLEAN IS
174705 --
174706 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
174707 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
174708 
174709 l_calculate_acctd_flag   VARCHAR2(1) :='N';
174710 l_calculate_g_l_flag     VARCHAR2(1) :='N';
174711 --
174712 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174713 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174714 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
174715 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
174716 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174717 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
174718 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
174719 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174720 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
174721 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
174722 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174723 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174724 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174725 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
174726 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
174727 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
174728 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
174729 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
174730 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
174731 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
174732 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
174733 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
174734 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
174735 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
174736 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
174737 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
174738 
174739 l_event_id                             NUMBER;
174740 l_previous_event_id                    NUMBER;
174741 l_first_event_id                       NUMBER;
174742 l_last_event_id                        NUMBER;
174743 
174744 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
174745 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
174746 --
174747 --
174748 l_result                    BOOLEAN := TRUE;
174749 l_rows                      NUMBER  := 1000;
174750 l_event_type_name           VARCHAR2(80) := 'All';
174751 l_event_class_name          VARCHAR2(80) := 'Reconciled Payments';
174752 l_description               VARCHAR2(4000);
174753 l_transaction_reversal      NUMBER;
174754 l_ae_header_id              NUMBER;
174755 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
174756 l_log_module                VARCHAR2(240);
174757 --
174758 l_acct_reversal_source      VARCHAR2(30);
174759 l_trx_reversal_source       VARCHAR2(30);
174760 
174761 l_continue_with_lines       BOOLEAN := TRUE;
174762 --
174766 
174763 l_acc_rev_gl_date_source    DATE;                      -- 4262811
174764 --
174765 type t_array_event_id is table of number index by binary_integer;
174767 l_rec_array_event                    t_rec_array_event;
174768 l_null_rec_array_event               t_rec_array_event;
174769 l_array_ae_header_id                 xla_number_array_type;
174770 l_actual_flag                        VARCHAR2(1) := NULL;
174771 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
174772 l_balance_type_code                  VARCHAR2(1) :=NULL;
174773 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
174774 
174775 --
174776 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
174777 --
174778 
174779 TYPE t_array_source_4 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
174780 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
174781 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
174782 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
174783 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
174784 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
174785 TYPE t_array_source_13 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
174786 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
174787 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
174788 TYPE t_array_source_24 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
174789 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
174790 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
174791 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
174792 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
174793 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
174794 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
174795 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
174796 TYPE t_array_source_57 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
174797 TYPE t_array_source_88 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
174798 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
174799 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
174800 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
174801 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
174802 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
174803 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
174804 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
174805 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
174806 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
174807 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
174808 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
174809 TYPE t_array_source_125 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
174810 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
174811 TYPE t_array_source_176 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
174812 
174813 TYPE t_array_source_25 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
174814 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
174815 TYPE t_array_source_39 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
174816 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
174817 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
174818 TYPE t_array_source_48 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
174819 TYPE t_array_source_56 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
174820 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
174821 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
174822 TYPE t_array_source_72 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
174823 TYPE t_array_source_85 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
174824 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
174825 TYPE t_array_source_93 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
174826 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
174827 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
174831 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
174828 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
174829 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
174830 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
174832 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
174833 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
174834 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
174835 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
174836 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
174837 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
174838 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
174839 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
174840 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
174841 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
174842 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_MAT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
174843 TYPE t_array_source_124 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
174844 TYPE t_array_source_140 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
174845 TYPE t_array_source_146 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
174846 TYPE t_array_source_147 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
174847 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
174848 TYPE t_array_source_154 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
174849 TYPE t_array_source_155 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
174850 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
174851 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
174852 TYPE t_array_source_162 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
174853 TYPE t_array_source_163 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
174854 TYPE t_array_source_166 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
174855 
174856 l_array_source_4              t_array_source_4;
174857 l_array_source_8              t_array_source_8;
174858 l_array_source_9              t_array_source_9;
174859 l_array_source_10              t_array_source_10;
174860 l_array_source_10_meaning      t_array_lookup_meaning;
174861 l_array_source_11              t_array_source_11;
174862 l_array_source_12              t_array_source_12;
174863 l_array_source_13              t_array_source_13;
174864 l_array_source_14              t_array_source_14;
174865 l_array_source_14_meaning      t_array_lookup_meaning;
174866 l_array_source_23              t_array_source_23;
174867 l_array_source_24              t_array_source_24;
174868 l_array_source_31              t_array_source_31;
174869 l_array_source_32              t_array_source_32;
174870 l_array_source_33              t_array_source_33;
174871 l_array_source_34              t_array_source_34;
174872 l_array_source_40              t_array_source_40;
174873 l_array_source_43              t_array_source_43;
174874 l_array_source_43_meaning      t_array_lookup_meaning;
174875 l_array_source_45              t_array_source_45;
174876 l_array_source_57              t_array_source_57;
174877 l_array_source_88              t_array_source_88;
174878 l_array_source_108              t_array_source_108;
174879 l_array_source_109              t_array_source_109;
174880 l_array_source_110              t_array_source_110;
174881 l_array_source_111              t_array_source_111;
174882 l_array_source_113              t_array_source_113;
174883 l_array_source_114              t_array_source_114;
174884 l_array_source_116              t_array_source_116;
174885 l_array_source_116_meaning      t_array_lookup_meaning;
174886 l_array_source_117              t_array_source_117;
174887 l_array_source_120              t_array_source_120;
174888 l_array_source_121              t_array_source_121;
174889 l_array_source_122              t_array_source_122;
174890 l_array_source_125              t_array_source_125;
174891 l_array_source_125_meaning      t_array_lookup_meaning;
174892 l_array_source_175              t_array_source_175;
174893 l_array_source_176              t_array_source_176;
174894 
174895 l_array_source_25      t_array_source_25;
174896 l_array_source_28      t_array_source_28;
174897 l_array_source_28_meaning      t_array_lookup_meaning;
174898 l_array_source_39      t_array_source_39;
174899 l_array_source_41      t_array_source_41;
174900 l_array_source_42      t_array_source_42;
174901 l_array_source_48      t_array_source_48;
174902 l_array_source_56      t_array_source_56;
174903 l_array_source_56_meaning      t_array_lookup_meaning;
174904 l_array_source_58      t_array_source_58;
174905 l_array_source_60      t_array_source_60;
174906 l_array_source_72      t_array_source_72;
174907 l_array_source_85      t_array_source_85;
174908 l_array_source_85_meaning      t_array_lookup_meaning;
174909 l_array_source_91      t_array_source_91;
174910 l_array_source_93      t_array_source_93;
174911 l_array_source_96      t_array_source_96;
174915 l_array_source_100      t_array_source_100;
174912 l_array_source_97      t_array_source_97;
174913 l_array_source_98      t_array_source_98;
174914 l_array_source_99      t_array_source_99;
174916 l_array_source_101      t_array_source_101;
174917 l_array_source_101_meaning      t_array_lookup_meaning;
174918 l_array_source_102      t_array_source_102;
174919 l_array_source_103      t_array_source_103;
174920 l_array_source_104      t_array_source_104;
174921 l_array_source_105      t_array_source_105;
174922 l_array_source_106      t_array_source_106;
174923 l_array_source_107      t_array_source_107;
174924 l_array_source_112      t_array_source_112;
174925 l_array_source_115      t_array_source_115;
174926 l_array_source_118      t_array_source_118;
174927 l_array_source_119      t_array_source_119;
174928 l_array_source_123      t_array_source_123;
174929 l_array_source_124      t_array_source_124;
174930 l_array_source_140      t_array_source_140;
174931 l_array_source_140_meaning      t_array_lookup_meaning;
174932 l_array_source_146      t_array_source_146;
174933 l_array_source_147      t_array_source_147;
174934 l_array_source_148      t_array_source_148;
174935 l_array_source_154      t_array_source_154;
174936 l_array_source_155      t_array_source_155;
174937 l_array_source_159      t_array_source_159;
174938 l_array_source_160      t_array_source_160;
174939 l_array_source_162      t_array_source_162;
174940 l_array_source_163      t_array_source_163;
174941 l_array_source_166      t_array_source_166;
174942 l_array_source_166_meaning      t_array_lookup_meaning;
174943 
174944 --
174945 CURSOR header_cur
174946 IS
174947 SELECT /*+ leading(xet) cardinality(xet,1) */
174948 -- Event Class Code: RECONCILED PAYMENTS
174949     xet.entity_id
174950    ,xet.legal_entity_id
174951    ,xet.entity_code
174952    ,xet.transaction_number
174953    ,xet.event_id
174954    ,xet.event_class_code
174955    ,xet.event_type_code
174956    ,xet.event_number
174957    ,xet.event_date
174958    ,xet.transaction_date
174959    ,xet.reference_num_1
174960    ,xet.reference_num_2
174961    ,xet.reference_num_3
174962    ,xet.reference_num_4
174963    ,xet.reference_char_1
174964    ,xet.reference_char_2
174965    ,xet.reference_char_3
174966    ,xet.reference_char_4
174967    ,xet.reference_date_1
174968    ,xet.reference_date_2
174969    ,xet.reference_date_3
174970    ,xet.reference_date_4
174971    ,xet.event_created_by
174972    ,xet.budgetary_control_flag 
174973   , h2.AC_DOC_SEQUENCE_VALUE    source_4
174974   , h2.AC_CURRENCY_CODE    source_8
174975   , h2.CGAC_BANK_CHARGES_CCID    source_9
174976   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
174977   , fvl10.meaning   source_10_meaning
174978   , h2.CGAC_BANK_ERRORS_CCID    source_11
174979   , h2.CGAC_AP_ASSET_CCID    source_12
174980   , h3.FSP_DISC_TAKEN_CCID    source_13
174981   , h3.ASP_DISCOUNT_DIST_METHOD    source_14
174982   , fvl14.meaning   source_14_meaning
174983   , h3.ASP_INTEREST_CCID    source_23
174984   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_24
174985   , h2.CGAC_GAIN_CCID    source_31
174986   , h3.ASP_GAIN_CCID    source_32
174987   , h2.CGAC_LOSS_CCID    source_33
174988   , h3.ASP_LOSS_CCID    source_34
174989   , h3.ASP_DISC_TAKEN_CCID    source_40
174990   , h3.ASP_AUTO_OFFSET_FLAG    source_43
174991   , fvl43.meaning   source_43_meaning
174992   , h3.ASP_ROUNDING_ERROR_CCID    source_45
174993   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_57
174994   , h2.THIRD_PARTY_TYPE    source_88
174995   , h2.APH_BANK_CURRENCY_CODE    source_108
174996   , h2.APH_BANK_TO_BASE_XRATE_DATE    source_109
174997   , h2.APH_BANK_TO_BASE_XRATE    source_110
174998   , h2.APH_BANK_TO_BASE_XRATE_TYPE    source_111
174999   , h2.AC_VENDOR_ID    source_113
175000   , h2.AC_VENDOR_SITE_ID    source_114
175001   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_116
175002   , fvl116.meaning   source_116_meaning
175003   , h2.AC_FUTURE_PAY_DUE_DATE    source_117
175004   , h2.AC_EXCHANGE_DATE    source_120
175005   , h2.AC_EXCHANGE_RATE    source_121
175006   , h2.AC_EXCHANGE_RATE_TYPE    source_122
175007   , h2.PAYMENT_TYPE    source_125
175008   , fvl125.meaning   source_125_meaning
175009   , h2.AC_DOC_CATEGORY_CODE    source_175
175010   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_176
175011   FROM xla_events_gt     xet 
175012   , AP_PAYMENT_EXTRACT_HEADER_V  h2
175013   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
175014   , fnd_lookup_values    fvl10
175015   , fnd_lookup_values    fvl14
175016   , fnd_lookup_values    fvl43
175017   , fnd_lookup_values    fvl116
175018   , fnd_lookup_values    fvl125
175019  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
175020    and xet.event_class_code = C_EVENT_CLASS_CODE
175021    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
175022  AND h3.asp_org_id = h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
175023   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
175024   AND fvl10.view_application_id(+) = 200
175025   AND fvl10.language(+)            = USERENV('LANG')
175026      AND fvl14.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
175027   AND fvl14.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
175028   AND fvl14.view_application_id(+) = 200
175029   AND fvl14.language(+)            = USERENV('LANG')
175030      AND fvl43.lookup_type(+)         = 'YES_NO'
175031   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
175032   AND fvl43.view_application_id(+) = 0
175033   AND fvl43.language(+)            = USERENV('LANG')
175034      AND fvl116.lookup_type(+)         = 'YES_NO'
175035   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
175036   AND fvl116.view_application_id(+) = 0
175037   AND fvl116.language(+)            = USERENV('LANG')
175038      AND fvl125.lookup_type(+)         = 'PAYMENT TYPE'
175039   AND fvl125.lookup_code(+)         = h2.PAYMENT_TYPE
175040   AND fvl125.view_application_id(+) = 200
175041   AND fvl125.language(+)            = USERENV('LANG')
175042   
175046 
175043  ORDER BY event_id
175044 ;
175045 
175047 --
175048 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
175049 IS
175050 SELECT  /*+ leading(xet) cardinality(xet,1) */
175051 -- Event Class Code: RECONCILED PAYMENTS
175052     xet.entity_id
175053    ,xet.legal_entity_id
175054    ,xet.entity_code
175055    ,xet.transaction_number
175056    ,xet.event_id
175057    ,xet.event_class_code
175058    ,xet.event_type_code
175059    ,xet.event_number
175060    ,xet.event_date
175061    ,xet.transaction_date
175062    ,xet.reference_num_1
175063    ,xet.reference_num_2
175064    ,xet.reference_num_3
175065    ,xet.reference_num_4
175066    ,xet.reference_char_1
175067    ,xet.reference_char_2
175068    ,xet.reference_char_3
175069    ,xet.reference_char_4
175070    ,xet.reference_date_1
175071    ,xet.reference_date_2
175072    ,xet.reference_date_3
175073    ,xet.reference_date_4
175074    ,xet.event_created_by
175075    ,xet.budgetary_control_flag
175076  , l1.LINE_NUMBER  
175077   , l1.AID_DIST_CCID    source_25
175078   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
175079   , fvl28.meaning   source_28_meaning
175080   , l1.AWT_RELATED_DIST_ACCOUNT    source_39
175081   , l1.POD_CCID    source_41
175082   , l1.PO_VARIANCE_ACCOUNT    source_42
175083   , l4.TAX_ACCOUNT_CCID    source_48
175084   , l1.AI_INVOICE_TYPE_PAID    source_56
175085   , fvl56.meaning   source_56_meaning
175086   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
175087   , l1.DISTRIBUTION_LINK_TYPE    source_60
175088   , l1.AI_INVOICE_CURRENCY_CODE    source_72
175089   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
175090   , fvl85.meaning   source_85_meaning
175091   , l4.TAX_LINE_ID    source_91
175092   , l4.SUMMARY_TAX_LINE_ID    source_93
175093   , l1.BUS_FLOW_AP_APP_ID    source_96
175094   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
175095   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
175096   , l1.BUS_FLOW_INV_DIST_ID    source_99
175097   , l1.BUS_FLOW_INV_ID    source_100
175098   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_101
175099   , fvl101.meaning   source_101_meaning
175100   , l1.APHD_AMOUNT    source_102
175101   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_103
175102   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_104
175103   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_105
175104   , l1.BUS_FLOW_PAYMENT_ID    source_106
175105   , l1.APHD_PAYMENT_HIST_DIST_ID    source_107
175106   , l1.APHD_CLEARING_BASE_AMT    source_112
175107   , l1.APHD_REV_PAY_HIST_DIST_ID    source_115
175108   , l1.APHD_PAYMENT_BASE_AMT    source_118
175109   , l1.APHD_INVOICE_BASE_AMT    source_119
175110   , l1.BUS_FLOW_PAYMENT_MAT_DIST_ID    source_123
175111   , l1.APHD_MATURED_BASE_AMOUNT    source_124
175112   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_140
175113   , fvl140.meaning   source_140_meaning
175114   , l1.INV_EXCHANGE_DATE    source_146
175115   , l1.INV_EXCHANGE_RATE    source_147
175116   , l1.INV_EXCHANGE_RATE_TYPE    source_148
175117   , l1.INV_CLR_GAIN_LOSS_INDICATOR    source_154
175118   , l1.INV_CLR_BASE_AMT_DIFF    source_155
175119   , l1.MAT_CLR_GAIN_LOSS_INDICATOR    source_159
175120   , l1.MAT_CLR_BASE_AMT_DIFF    source_160
175121   , l1.PMT_CLR_GAIN_LOSS_INDICATOR    source_162
175122   , l1.PMT_CLR_BASE_AMT_DIFF    source_163
175123   , l1.AWT_AT_PMT_TIME    source_166
175124   , fvl166.meaning   source_166_meaning
175125   FROM xla_events_gt     xet 
175126   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
175127   , ZX_AP_DEF_TAX_EXTRACT_V  l4
175128   , fnd_lookup_values    fvl28
175129   , fnd_lookup_values    fvl56
175130   , fnd_lookup_values    fvl85
175131   , fnd_lookup_values    fvl101
175132   , fnd_lookup_values    fvl140
175133   , fnd_lookup_values    fvl166
175134  WHERE xet.event_id between x_first_event_id and x_last_event_id
175135    and xet.event_date between p_pad_start_date and p_pad_end_date
175136    and xet.event_class_code = C_EVENT_CLASS_CODE
175137    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
175138  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
175139   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
175140   AND fvl28.view_application_id(+) = 200
175141   AND fvl28.language(+)            = USERENV('LANG')
175142      AND fvl56.lookup_type(+)         = 'INVOICE TYPE'
175143   AND fvl56.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
175144   AND fvl56.view_application_id(+) = 200
175145   AND fvl56.language(+)            = USERENV('LANG')
175146      AND fvl85.lookup_type(+)         = 'YES_NO'
175147   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
175148   AND fvl85.view_application_id(+) = 0
175149   AND fvl85.language(+)            = USERENV('LANG')
175150      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
175151   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
175152   AND fvl101.view_application_id(+) = 200
175153   AND fvl101.language(+)            = USERENV('LANG')
175154      AND fvl140.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
175155   AND fvl140.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
175156   AND fvl140.view_application_id(+) = 0
175157   AND fvl140.language(+)            = USERENV('LANG')
175158      AND fvl166.lookup_type(+)         = 'YES_NO'
175159   AND fvl166.lookup_code(+)         = l1.AWT_AT_PMT_TIME
175160   AND fvl166.view_application_id(+) = 0
175161   AND fvl166.language(+)            = USERENV('LANG')
175162   ;
175163 
175164 --
175165 BEGIN
175166 IF g_log_enabled THEN
175167    l_log_module := C_DEFAULT_MODULE||'.EventClass_255';
175168 END IF;
175169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
175170    trace
175171       (p_msg      => 'BEGIN of EventClass_255'
175172       ,p_level    => C_LEVEL_PROCEDURE
175173       ,p_module   => l_log_module);
175174 END IF;
175175 
175176 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
175177    trace
175181                      ' - p_language = '||p_language||
175178       (p_msg      => 'p_application_id = '||p_application_id||
175179                      ' - p_base_ledger_id = '||p_base_ledger_id||
175180                      ' - p_target_ledger_id  = '||p_target_ledger_id||
175182                      ' - p_currency_code = '||p_currency_code||
175183                      ' - p_sla_ledger_id = '||p_sla_ledger_id
175184       ,p_level    => C_LEVEL_STATEMENT
175185       ,p_module   => l_log_module);
175186 END IF;
175187 --
175188 -- initialze arrays
175189 --
175190 g_array_event.DELETE;
175191 l_rec_array_event := l_null_rec_array_event;
175192 --
175193 --------------------------------------
175194 -- 4262811 Initialze MPA Line Number
175195 --------------------------------------
175196 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
175197 
175198 --
175199 
175200 --
175201 OPEN header_cur;
175202 --
175203 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
175204    trace
175205    (p_msg      => 'SQL - FETCH header_cur'
175206    ,p_level    => C_LEVEL_STATEMENT
175207    ,p_module   => l_log_module);
175208 END IF;
175209 --
175210 LOOP
175211 FETCH header_cur BULK COLLECT INTO
175212         l_array_entity_id
175213       , l_array_legal_entity_id
175214       , l_array_entity_code
175215       , l_array_transaction_num
175216       , l_array_event_id
175217       , l_array_class_code
175218       , l_array_event_type
175219       , l_array_event_number
175220       , l_array_event_date
175221       , l_array_transaction_date
175222       , l_array_reference_num_1
175223       , l_array_reference_num_2
175224       , l_array_reference_num_3
175225       , l_array_reference_num_4
175226       , l_array_reference_char_1
175227       , l_array_reference_char_2
175228       , l_array_reference_char_3
175229       , l_array_reference_char_4
175230       , l_array_reference_date_1
175231       , l_array_reference_date_2
175232       , l_array_reference_date_3
175233       , l_array_reference_date_4
175234       , l_array_event_created_by
175235       , l_array_budgetary_control_flag 
175236       , l_array_source_4
175237       , l_array_source_8
175238       , l_array_source_9
175239       , l_array_source_10
175240       , l_array_source_10_meaning
175241       , l_array_source_11
175242       , l_array_source_12
175243       , l_array_source_13
175244       , l_array_source_14
175245       , l_array_source_14_meaning
175246       , l_array_source_23
175247       , l_array_source_24
175248       , l_array_source_31
175249       , l_array_source_32
175250       , l_array_source_33
175251       , l_array_source_34
175252       , l_array_source_40
175253       , l_array_source_43
175254       , l_array_source_43_meaning
175255       , l_array_source_45
175256       , l_array_source_57
175257       , l_array_source_88
175258       , l_array_source_108
175259       , l_array_source_109
175260       , l_array_source_110
175261       , l_array_source_111
175262       , l_array_source_113
175263       , l_array_source_114
175264       , l_array_source_116
175265       , l_array_source_116_meaning
175266       , l_array_source_117
175267       , l_array_source_120
175268       , l_array_source_121
175269       , l_array_source_122
175270       , l_array_source_125
175271       , l_array_source_125_meaning
175272       , l_array_source_175
175273       , l_array_source_176
175274       LIMIT l_rows;
175275 --
175276 IF (C_LEVEL_EVENT >= g_log_level) THEN
175277    trace
175278    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
175279    ,p_level    => C_LEVEL_EVENT
175280    ,p_module   => l_log_module);
175281 END IF;
175282 --
175283 EXIT WHEN l_array_entity_id.COUNT = 0;
175284 
175285 -- initialize arrays
175286 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
175287 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
175288 
175289 --
175290 -- Bug 4458708
175291 --
175292 XLA_AE_LINES_PKG.g_LineNumber := 0;
175293 
175294 
175295 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
175296 g_last_hdr_idx := l_array_event_id.LAST;
175297 --
175298 -- loop for the headers. Each iteration is for each header extract row
175299 -- fetched in header cursor
175300 --
175301 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
175302 
175303 --
175304 -- set event info as cache for other routines to refer event attributes
175305 --
175306 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
175307    (p_application_id           => p_application_id
175308    ,p_primary_ledger_id        => p_primary_ledger_id
175309    ,p_base_ledger_id           => p_base_ledger_id
175310    ,p_target_ledger_id         => p_target_ledger_id
175311    ,p_entity_id                => l_array_entity_id(hdr_idx)
175312    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
175313    ,p_entity_code              => l_array_entity_code(hdr_idx)
175314    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
175315    ,p_event_id                 => l_array_event_id(hdr_idx)
175316    ,p_event_class_code         => l_array_class_code(hdr_idx)
175317    ,p_event_type_code          => l_array_event_type(hdr_idx)
175318    ,p_event_number             => l_array_event_number(hdr_idx)
175319    ,p_event_date               => l_array_event_date(hdr_idx)
175320    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
175321    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
175322    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
175323    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
175324    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
175325    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
175326    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
175330    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
175327    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
175328    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
175329    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
175331    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
175332    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
175333    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
175334    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
175335 
175336 --
175337 -- set the status of entry to C_VALID (0)
175338 --
175339 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
175340 
175341 --
175342 -- initialize a row for ae header
175343 --
175344 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
175345 
175346 l_event_id := l_array_event_id(hdr_idx);
175347 
175348 --
175349 -- storing the hdr_idx for event. May be used by line cursor.
175350 --
175351 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
175352 
175353 --
175354 -- store sources from header extract. This can be improved to
175355 -- store only those sources from header extract that may be used in lines
175356 --
175357 
175358 g_array_event(l_event_id).array_value_num('source_4') := l_array_source_4(hdr_idx);
175359 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
175360 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
175361 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
175362 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
175363 g_array_event(l_event_id).array_value_num('source_11') := l_array_source_11(hdr_idx);
175364 g_array_event(l_event_id).array_value_num('source_12') := l_array_source_12(hdr_idx);
175365 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
175366 g_array_event(l_event_id).array_value_char('source_14') := l_array_source_14(hdr_idx);
175367 g_array_event(l_event_id).array_value_char('source_14_meaning') := l_array_source_14_meaning(hdr_idx);
175368 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
175369 g_array_event(l_event_id).array_value_char('source_24') := l_array_source_24(hdr_idx);
175370 g_array_event(l_event_id).array_value_num('source_31') := l_array_source_31(hdr_idx);
175371 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
175372 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
175373 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
175374 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
175375 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
175376 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
175377 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
175378 g_array_event(l_event_id).array_value_char('source_57') := l_array_source_57(hdr_idx);
175379 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
175380 g_array_event(l_event_id).array_value_char('source_108') := l_array_source_108(hdr_idx);
175381 g_array_event(l_event_id).array_value_date('source_109') := l_array_source_109(hdr_idx);
175382 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
175383 g_array_event(l_event_id).array_value_char('source_111') := l_array_source_111(hdr_idx);
175384 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
175385 g_array_event(l_event_id).array_value_num('source_114') := l_array_source_114(hdr_idx);
175386 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
175387 g_array_event(l_event_id).array_value_char('source_116_meaning') := l_array_source_116_meaning(hdr_idx);
175388 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
175389 g_array_event(l_event_id).array_value_date('source_120') := l_array_source_120(hdr_idx);
175390 g_array_event(l_event_id).array_value_num('source_121') := l_array_source_121(hdr_idx);
175391 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
175392 g_array_event(l_event_id).array_value_char('source_125') := l_array_source_125(hdr_idx);
175393 g_array_event(l_event_id).array_value_char('source_125_meaning') := l_array_source_125_meaning(hdr_idx);
175394 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
175395 g_array_event(l_event_id).array_value_num('source_176') := l_array_source_176(hdr_idx);
175396 
175397 --
175398 -- initilaize the status of ae headers for diffrent balance types
175399 -- the status is initialised to C_NOT_CREATED (2)
175400 --
175401 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
175402 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
175403 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
175404 
175405 --
175406 -- call api to validate and store accounting attributes for header
175407 --
175408 
175409 ------------------------------------------------------------
175410 -- Accrual Reversal : to get date for Standard Source (NONE)
175411 ------------------------------------------------------------
175412 l_acc_rev_gl_date_source := NULL;
175413 
175414      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
175415       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_175');
175416      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
175417       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_176');
175418      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
175419       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_4');
175423    p_source_code           => 'XLA_EVENT_DATE'
175420      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
175421       l_rec_acct_attrs.array_date_value(4) := 
175422 xla_ae_sources_pkg.GetSystemSourceDate(
175424  , p_source_type_code      => 'Y'
175425  , p_source_application_id =>  602
175426 );
175427 
175428 
175429 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
175430 
175431 XLA_AE_HEADER_PKG.SetJeCategoryName;
175432 
175433 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
175434 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
175435 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
175436 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
175437 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
175438 
175439 
175440 -- No header level analytical criteria
175441 
175442 --
175443 --accounting attribute enhancement, bug 3612931
175444 --
175445 l_trx_reversal_source := SUBSTR(NULL, 1,30);
175446 
175447 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
175448    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
175449 
175450    xla_accounting_err_pkg.build_message
175451       (p_appli_s_name            => 'XLA'
175452       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
175453       ,p_token_1                 => 'ACCT_ATTR_NAME'
175454       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
175455       ,p_token_2                 => 'PRODUCT_NAME'
175456       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
175457       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
175458       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
175459       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
175460 
175461 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
175462    --
175463    -- following sets the accounting attributes needed to reverse
175464    -- accounting for a distributeion
175465    --
175466    xla_ae_lines_pkg.SetTrxReversalAttrs
175467       (p_event_id              => l_event_id
175468       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
175469       ,p_trx_reversal_source   => l_trx_reversal_source);
175470 
175471 END IF;
175472 
175473 
175474 ----------------------------------------------------------------
175475 -- 4262811 -  update the header statuses to invalid in need be
175476 ----------------------------------------------------------------
175477 --
175478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
175479 
175480 
175481   -----------------------------------------------
175482   -- No accrual reversal for the event class/type
175483   -----------------------------------------------
175484 ----------------------------------------------------------------
175485 
175486 --
175487 -- this ends the header loop iteration for one bulk fetch
175488 --
175489 END LOOP;
175490 
175491 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
175492 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
175493 
175494 --
175495 -- insert dummy rows into lines gt table that were created due to
175496 -- transaction reversals
175497 --
175498 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
175499    l_result := XLA_AE_LINES_PKG.InsertLines;
175500 END IF;
175501 
175502 --
175503 -- reset the temp_line_num for each set of events fetched from header
175504 -- cursor rather than doing it for each new event in line cursor
175505 -- Bug 3939231
175506 --
175507 xla_ae_lines_pkg.g_temp_line_num := 0;
175508 
175509 
175510 
175511 --
175512 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
175513 --
175514 --
175515 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
175516 
175517       trace
175518          (p_msg      => 'SQL - FETCH line_cur'
175519          ,p_level    => C_LEVEL_STATEMENT
175520          ,p_module   => l_log_module);
175521 
175522 END IF;
175523 --
175524 --
175525 LOOP
175526   --
175527   FETCH line_cur BULK COLLECT INTO
175528         l_array_entity_id
175529       , l_array_legal_entity_id
175530       , l_array_entity_code
175531       , l_array_transaction_num
175532       , l_array_event_id
175533       , l_array_class_code
175534       , l_array_event_type
175535       , l_array_event_number
175536       , l_array_event_date
175537       , l_array_transaction_date
175538       , l_array_reference_num_1
175539       , l_array_reference_num_2
175540       , l_array_reference_num_3
175541       , l_array_reference_num_4
175542       , l_array_reference_char_1
175543       , l_array_reference_char_2
175544       , l_array_reference_char_3
175545       , l_array_reference_char_4
175546       , l_array_reference_date_1
175547       , l_array_reference_date_2
175548       , l_array_reference_date_3
175549       , l_array_reference_date_4
175550       , l_array_event_created_by
175551       , l_array_budgetary_control_flag
175552       , l_array_extract_line_num 
175553       , l_array_source_25
175554       , l_array_source_28
175555       , l_array_source_28_meaning
175556       , l_array_source_39
175557       , l_array_source_41
175558       , l_array_source_42
175559       , l_array_source_48
175560       , l_array_source_56
175561       , l_array_source_56_meaning
175562       , l_array_source_58
175563       , l_array_source_60
175564       , l_array_source_72
175565       , l_array_source_85
175566       , l_array_source_85_meaning
175567       , l_array_source_91
175571       , l_array_source_98
175568       , l_array_source_93
175569       , l_array_source_96
175570       , l_array_source_97
175572       , l_array_source_99
175573       , l_array_source_100
175574       , l_array_source_101
175575       , l_array_source_101_meaning
175576       , l_array_source_102
175577       , l_array_source_103
175578       , l_array_source_104
175579       , l_array_source_105
175580       , l_array_source_106
175581       , l_array_source_107
175582       , l_array_source_112
175583       , l_array_source_115
175584       , l_array_source_118
175585       , l_array_source_119
175586       , l_array_source_123
175587       , l_array_source_124
175588       , l_array_source_140
175589       , l_array_source_140_meaning
175590       , l_array_source_146
175591       , l_array_source_147
175592       , l_array_source_148
175593       , l_array_source_154
175594       , l_array_source_155
175595       , l_array_source_159
175596       , l_array_source_160
175597       , l_array_source_162
175598       , l_array_source_163
175599       , l_array_source_166
175600       , l_array_source_166_meaning
175601       LIMIT l_rows;
175602 
175603   --
175604   IF (C_LEVEL_EVENT >= g_log_level) THEN
175605             trace
175606                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
175607                ,p_level    => C_LEVEL_EVENT
175608                ,p_module   => l_log_module);
175609   END IF;
175610   --
175611   EXIT WHEN l_array_entity_id.count = 0;
175612 
175613   XLA_AE_LINES_PKG.g_rec_lines := null;
175614 
175615 --
175616 -- Bug 4458708
175617 --
175618 XLA_AE_LINES_PKG.g_LineNumber := 0;
175619 --
175620 --
175621 
175622 FOR Idx IN 1..l_array_event_id.count LOOP
175623    --
175624    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
175625    --
175626    l_event_id := l_array_event_id(idx);  -- 5648433
175627 
175628    --
175629    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
175630    --
175631 
175632    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
175633              (g_array_event(l_event_id).array_value_num('header_index'))
175634          ,'N'
175635          ) <> 'Y'
175636    THEN
175637       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
175638          trace
175639             (p_msg      => 'Trancaction revesal option is not Y '
175640             ,p_level    => C_LEVEL_STATEMENT
175641             ,p_module   => l_log_module);
175642       END IF;
175643 
175644 --
175645 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
175646 --
175647 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
175648 --
175649 -- set event info as cache for other routines to refer event attributes
175650 --
175651 
175652 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
175653    l_previous_event_id := l_event_id;
175654 
175655    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
175656       (p_application_id           => p_application_id
175657       ,p_primary_ledger_id        => p_primary_ledger_id
175658       ,p_base_ledger_id           => p_base_ledger_id
175659       ,p_target_ledger_id         => p_target_ledger_id
175660       ,p_entity_id                => l_array_entity_id(Idx)
175661       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
175662       ,p_entity_code              => l_array_entity_code(Idx)
175663       ,p_transaction_num          => l_array_transaction_num(Idx)
175664       ,p_event_id                 => l_array_event_id(Idx)
175665       ,p_event_class_code         => l_array_class_code(Idx)
175666       ,p_event_type_code          => l_array_event_type(Idx)
175667       ,p_event_number             => l_array_event_number(Idx)
175668       ,p_event_date               => l_array_event_date(Idx)
175669       ,p_transaction_date         => l_array_transaction_date(Idx)
175670       ,p_reference_num_1          => l_array_reference_num_1(Idx)
175671       ,p_reference_num_2          => l_array_reference_num_2(Idx)
175672       ,p_reference_num_3          => l_array_reference_num_3(Idx)
175673       ,p_reference_num_4          => l_array_reference_num_4(Idx)
175674       ,p_reference_char_1         => l_array_reference_char_1(Idx)
175675       ,p_reference_char_2         => l_array_reference_char_2(Idx)
175676       ,p_reference_char_3         => l_array_reference_char_3(Idx)
175677       ,p_reference_char_4         => l_array_reference_char_4(Idx)
175678       ,p_reference_date_1         => l_array_reference_date_1(Idx)
175679       ,p_reference_date_2         => l_array_reference_date_2(Idx)
175680       ,p_reference_date_3         => l_array_reference_date_3(Idx)
175681       ,p_reference_date_4         => l_array_reference_date_4(Idx)
175682       ,p_event_created_by         => l_array_event_created_by(Idx)
175683       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
175684        --
175685 END IF;
175686 
175687 
175688 
175689 --
175690 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
175691 
175692 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
175693 
175694 IF l_continue_with_lines THEN
175695    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
175696       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
175697 
175698       xla_accounting_err_pkg.build_message
175699          (p_appli_s_name            => 'XLA'
175700          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
175701          ,p_token_1                 => 'LINE_NUMBER'
175702          ,p_value_1                 => l_array_extract_line_num(Idx)
175703          ,p_token_2                 => 'PRODUCT_NAME'
175704          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
175708 
175705          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
175706          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
175707          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
175709    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
175710       --
175711       -- following sets the accounting attributes needed to reverse
175712       -- accounting for a distributeion
175713       --
175714 
175715       --
175716       -- 5217187
175717       --
175718       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
175719       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
175720                                        g_array_event(l_event_id).array_value_num('header_index'));
175721       --
175722       --
175723 
175724       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
175725       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
175726       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
175727       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_107(Idx);
175728       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
175729       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
175730       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
175731       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_88');
175732       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
175733       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_115(Idx);
175734       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
175735       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
175736       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
175737       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_91(Idx);
175738       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
175739       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_91(Idx);
175740       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
175741       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_93(Idx);
175742 
175743 
175744       xla_ae_lines_pkg.SetAcctReversalAttrs
175745          (p_event_id             => l_event_id
175746          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
175747          ,p_calculate_acctd_flag => l_calculate_acctd_flag
175748          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
175749    END IF;
175750 
175751    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
175752        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
175753 
175754 --
175755 AcctLineType_68 (
175756  p_application_id  => p_application_id
175757  ,p_event_id     => l_event_id
175758  ,p_calculate_acctd_flag => l_calculate_acctd_flag
175759  ,p_calculate_g_l_flag => l_calculate_g_l_flag
175760  ,p_actual_flag => l_actual_flag
175761  ,p_balance_type_code => l_balance_type_code
175762  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
175763  
175764  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
175765  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
175766  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
175767  , p_source_25 => l_array_source_25(Idx)
175768  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
175769  , p_source_58 => l_array_source_58(Idx)
175770  , p_source_60 => l_array_source_60(Idx)
175771  , p_source_85 => l_array_source_85(Idx)
175772  , p_source_85_meaning => l_array_source_85_meaning(Idx)
175773  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
175774  , p_source_91 => l_array_source_91(Idx)
175775  , p_source_93 => l_array_source_93(Idx)
175776  , p_source_96 => l_array_source_96(Idx)
175777  , p_source_101 => l_array_source_101(Idx)
175778  , p_source_101_meaning => l_array_source_101_meaning(Idx)
175779  , p_source_102 => l_array_source_102(Idx)
175780  , p_source_103 => l_array_source_103(Idx)
175781  , p_source_104 => l_array_source_104(Idx)
175782  , p_source_105 => l_array_source_105(Idx)
175783  , p_source_106 => l_array_source_106(Idx)
175784  , p_source_107 => l_array_source_107(Idx)
175785  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
175786  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
175787  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
175788  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
175789  , p_source_112 => l_array_source_112(Idx)
175790  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
175791  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
175792  , p_source_115 => l_array_source_115(Idx)
175793  );
175794 If(l_balance_type_code = 'A') THEN
175795   l_actual_gain_loss_ref := l_gain_or_loss_ref;
175796 END IF;
175797 
175798 --
175799 
175800 
175801 --
175802 AcctLineType_69 (
175803  p_application_id  => p_application_id
175804  ,p_event_id     => l_event_id
175805  ,p_calculate_acctd_flag => l_calculate_acctd_flag
175806  ,p_calculate_g_l_flag => l_calculate_g_l_flag
175807  ,p_actual_flag => l_actual_flag
175808  ,p_balance_type_code => l_balance_type_code
175809  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
175810  
175811  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
175812  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
175813  , p_source_11 => g_array_event(l_event_id).array_value_num('source_11')
175814  , p_source_25 => l_array_source_25(Idx)
175815  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
175816  , p_source_58 => l_array_source_58(Idx)
175817  , p_source_60 => l_array_source_60(Idx)
175818  , p_source_85 => l_array_source_85(Idx)
175822  , p_source_93 => l_array_source_93(Idx)
175819  , p_source_85_meaning => l_array_source_85_meaning(Idx)
175820  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
175821  , p_source_91 => l_array_source_91(Idx)
175823  , p_source_96 => l_array_source_96(Idx)
175824  , p_source_101 => l_array_source_101(Idx)
175825  , p_source_101_meaning => l_array_source_101_meaning(Idx)
175826  , p_source_102 => l_array_source_102(Idx)
175827  , p_source_103 => l_array_source_103(Idx)
175828  , p_source_104 => l_array_source_104(Idx)
175829  , p_source_105 => l_array_source_105(Idx)
175830  , p_source_106 => l_array_source_106(Idx)
175831  , p_source_107 => l_array_source_107(Idx)
175832  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
175833  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
175834  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
175835  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
175836  , p_source_112 => l_array_source_112(Idx)
175837  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
175838  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
175839  , p_source_115 => l_array_source_115(Idx)
175840  );
175841 If(l_balance_type_code = 'A') THEN
175842   l_actual_gain_loss_ref := l_gain_or_loss_ref;
175843 END IF;
175844 
175845 --
175846 
175847 
175848 --
175849 AcctLineType_70 (
175850  p_application_id  => p_application_id
175851  ,p_event_id     => l_event_id
175852  ,p_calculate_acctd_flag => l_calculate_acctd_flag
175853  ,p_calculate_g_l_flag => l_calculate_g_l_flag
175854  ,p_actual_flag => l_actual_flag
175855  ,p_balance_type_code => l_balance_type_code
175856  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
175857  
175858  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
175859  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
175860  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
175861  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
175862  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
175863  , p_source_58 => l_array_source_58(Idx)
175864  , p_source_60 => l_array_source_60(Idx)
175865  , p_source_85 => l_array_source_85(Idx)
175866  , p_source_85_meaning => l_array_source_85_meaning(Idx)
175867  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
175868  , p_source_91 => l_array_source_91(Idx)
175869  , p_source_93 => l_array_source_93(Idx)
175870  , p_source_96 => l_array_source_96(Idx)
175871  , p_source_101 => l_array_source_101(Idx)
175872  , p_source_101_meaning => l_array_source_101_meaning(Idx)
175873  , p_source_102 => l_array_source_102(Idx)
175874  , p_source_103 => l_array_source_103(Idx)
175875  , p_source_104 => l_array_source_104(Idx)
175876  , p_source_105 => l_array_source_105(Idx)
175877  , p_source_106 => l_array_source_106(Idx)
175878  , p_source_107 => l_array_source_107(Idx)
175879  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
175880  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
175881  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
175882  , p_source_112 => l_array_source_112(Idx)
175883  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
175884  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
175885  , p_source_115 => l_array_source_115(Idx)
175886  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
175887  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
175888  );
175889 If(l_balance_type_code = 'A') THEN
175890   l_actual_gain_loss_ref := l_gain_or_loss_ref;
175891 END IF;
175892 
175893 --
175894 
175895 
175896 --
175897 AcctLineType_71 (
175898  p_application_id  => p_application_id
175899  ,p_event_id     => l_event_id
175900  ,p_calculate_acctd_flag => l_calculate_acctd_flag
175901  ,p_calculate_g_l_flag => l_calculate_g_l_flag
175902  ,p_actual_flag => l_actual_flag
175903  ,p_balance_type_code => l_balance_type_code
175904  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
175905  
175906  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
175907  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
175908  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
175909  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
175910  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
175911  , p_source_58 => l_array_source_58(Idx)
175912  , p_source_60 => l_array_source_60(Idx)
175913  , p_source_85 => l_array_source_85(Idx)
175914  , p_source_85_meaning => l_array_source_85_meaning(Idx)
175915  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
175916  , p_source_91 => l_array_source_91(Idx)
175917  , p_source_93 => l_array_source_93(Idx)
175918  , p_source_96 => l_array_source_96(Idx)
175919  , p_source_101 => l_array_source_101(Idx)
175920  , p_source_101_meaning => l_array_source_101_meaning(Idx)
175921  , p_source_102 => l_array_source_102(Idx)
175922  , p_source_103 => l_array_source_103(Idx)
175923  , p_source_104 => l_array_source_104(Idx)
175924  , p_source_105 => l_array_source_105(Idx)
175925  , p_source_106 => l_array_source_106(Idx)
175926  , p_source_107 => l_array_source_107(Idx)
175927  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
175928  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
175929  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
175930  , p_source_112 => l_array_source_112(Idx)
175931  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
175932  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
175933  , p_source_115 => l_array_source_115(Idx)
175934  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
175938   l_actual_gain_loss_ref := l_gain_or_loss_ref;
175935  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
175936  );
175937 If(l_balance_type_code = 'A') THEN
175939 END IF;
175940 
175941 --
175942 
175943 
175944 --
175945 AcctLineType_72 (
175946  p_application_id  => p_application_id
175947  ,p_event_id     => l_event_id
175948  ,p_calculate_acctd_flag => l_calculate_acctd_flag
175949  ,p_calculate_g_l_flag => l_calculate_g_l_flag
175950  ,p_actual_flag => l_actual_flag
175951  ,p_balance_type_code => l_balance_type_code
175952  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
175953  
175954  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
175955  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
175956  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
175957  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
175958  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
175959  , p_source_58 => l_array_source_58(Idx)
175960  , p_source_60 => l_array_source_60(Idx)
175961  , p_source_85 => l_array_source_85(Idx)
175962  , p_source_85_meaning => l_array_source_85_meaning(Idx)
175963  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
175964  , p_source_91 => l_array_source_91(Idx)
175965  , p_source_93 => l_array_source_93(Idx)
175966  , p_source_96 => l_array_source_96(Idx)
175967  , p_source_101 => l_array_source_101(Idx)
175968  , p_source_101_meaning => l_array_source_101_meaning(Idx)
175969  , p_source_102 => l_array_source_102(Idx)
175970  , p_source_103 => l_array_source_103(Idx)
175971  , p_source_104 => l_array_source_104(Idx)
175972  , p_source_105 => l_array_source_105(Idx)
175973  , p_source_106 => l_array_source_106(Idx)
175974  , p_source_107 => l_array_source_107(Idx)
175975  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
175976  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
175977  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
175978  , p_source_112 => l_array_source_112(Idx)
175979  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
175980  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
175981  , p_source_115 => l_array_source_115(Idx)
175982  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
175983  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
175984  );
175985 If(l_balance_type_code = 'A') THEN
175986   l_actual_gain_loss_ref := l_gain_or_loss_ref;
175987 END IF;
175988 
175989 --
175990 
175991 
175992 --
175993 AcctLineType_73 (
175994  p_application_id  => p_application_id
175995  ,p_event_id     => l_event_id
175996  ,p_calculate_acctd_flag => l_calculate_acctd_flag
175997  ,p_calculate_g_l_flag => l_calculate_g_l_flag
175998  ,p_actual_flag => l_actual_flag
175999  ,p_balance_type_code => l_balance_type_code
176000  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176001  
176002  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176003  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176004  , p_source_58 => l_array_source_58(Idx)
176005  , p_source_60 => l_array_source_60(Idx)
176006  , p_source_85 => l_array_source_85(Idx)
176007  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176008  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176009  , p_source_91 => l_array_source_91(Idx)
176010  , p_source_93 => l_array_source_93(Idx)
176011  , p_source_96 => l_array_source_96(Idx)
176012  , p_source_101 => l_array_source_101(Idx)
176013  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176014  , p_source_102 => l_array_source_102(Idx)
176015  , p_source_103 => l_array_source_103(Idx)
176016  , p_source_104 => l_array_source_104(Idx)
176017  , p_source_105 => l_array_source_105(Idx)
176018  , p_source_106 => l_array_source_106(Idx)
176019  , p_source_107 => l_array_source_107(Idx)
176020  , p_source_115 => l_array_source_115(Idx)
176021  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176022  , p_source_118 => l_array_source_118(Idx)
176023  );
176024 If(l_balance_type_code = 'A') THEN
176025   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176026 END IF;
176027 
176028 --
176029 
176030 
176031 --
176032 AcctLineType_74 (
176033  p_application_id  => p_application_id
176034  ,p_event_id     => l_event_id
176035  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176036  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176037  ,p_actual_flag => l_actual_flag
176038  ,p_balance_type_code => l_balance_type_code
176039  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176040  
176041  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176042  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176043  , p_source_58 => l_array_source_58(Idx)
176044  , p_source_60 => l_array_source_60(Idx)
176045  , p_source_85 => l_array_source_85(Idx)
176046  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176047  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176048  , p_source_91 => l_array_source_91(Idx)
176049  , p_source_93 => l_array_source_93(Idx)
176050  , p_source_96 => l_array_source_96(Idx)
176051  , p_source_101 => l_array_source_101(Idx)
176052  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176053  , p_source_102 => l_array_source_102(Idx)
176054  , p_source_103 => l_array_source_103(Idx)
176055  , p_source_104 => l_array_source_104(Idx)
176056  , p_source_105 => l_array_source_105(Idx)
176057  , p_source_106 => l_array_source_106(Idx)
176058  , p_source_107 => l_array_source_107(Idx)
176059  , p_source_115 => l_array_source_115(Idx)
176060  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176061  , p_source_119 => l_array_source_119(Idx)
176062  );
176063 If(l_balance_type_code = 'A') THEN
176067 --
176064   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176065 END IF;
176066 
176068 
176069 
176070 --
176071 AcctLineType_77 (
176072  p_application_id  => p_application_id
176073  ,p_event_id     => l_event_id
176074  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176075  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176076  ,p_actual_flag => l_actual_flag
176077  ,p_balance_type_code => l_balance_type_code
176078  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176079  
176080  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176081  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176082  , p_source_58 => l_array_source_58(Idx)
176083  , p_source_60 => l_array_source_60(Idx)
176084  , p_source_85 => l_array_source_85(Idx)
176085  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176086  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176087  , p_source_91 => l_array_source_91(Idx)
176088  , p_source_93 => l_array_source_93(Idx)
176089  , p_source_96 => l_array_source_96(Idx)
176090  , p_source_101 => l_array_source_101(Idx)
176091  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176092  , p_source_102 => l_array_source_102(Idx)
176093  , p_source_103 => l_array_source_103(Idx)
176094  , p_source_104 => l_array_source_104(Idx)
176095  , p_source_106 => l_array_source_106(Idx)
176096  , p_source_107 => l_array_source_107(Idx)
176097  , p_source_115 => l_array_source_115(Idx)
176098  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176099  , p_source_123 => l_array_source_123(Idx)
176100  , p_source_124 => l_array_source_124(Idx)
176101  );
176102 If(l_balance_type_code = 'A') THEN
176103   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176104 END IF;
176105 
176106 --
176107 
176108 
176109 --
176110 AcctLineType_104 (
176111  p_application_id  => p_application_id
176112  ,p_event_id     => l_event_id
176113  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176114  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176115  ,p_actual_flag => l_actual_flag
176116  ,p_balance_type_code => l_balance_type_code
176117  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176118  
176119  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176120  , p_source_28 => l_array_source_28(Idx)
176121  , p_source_28_meaning => l_array_source_28_meaning(Idx)
176122  , p_source_48 => l_array_source_48(Idx)
176123  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176124  , p_source_58 => l_array_source_58(Idx)
176125  , p_source_60 => l_array_source_60(Idx)
176126  , p_source_85 => l_array_source_85(Idx)
176127  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176128  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176129  , p_source_91 => l_array_source_91(Idx)
176130  , p_source_93 => l_array_source_93(Idx)
176131  , p_source_96 => l_array_source_96(Idx)
176132  , p_source_101 => l_array_source_101(Idx)
176133  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176134  , p_source_102 => l_array_source_102(Idx)
176135  , p_source_103 => l_array_source_103(Idx)
176136  , p_source_104 => l_array_source_104(Idx)
176137  , p_source_105 => l_array_source_105(Idx)
176138  , p_source_106 => l_array_source_106(Idx)
176139  , p_source_107 => l_array_source_107(Idx)
176140  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176141  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176142  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176143  , p_source_112 => l_array_source_112(Idx)
176144  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176145  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176146  , p_source_115 => l_array_source_115(Idx)
176147  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
176148  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
176149  , p_source_140 => l_array_source_140(Idx)
176150  , p_source_140_meaning => l_array_source_140_meaning(Idx)
176151  );
176152 If(l_balance_type_code = 'A') THEN
176153   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176154 END IF;
176155 
176156 --
176157 
176158 
176159 --
176160 AcctLineType_105 (
176161  p_application_id  => p_application_id
176162  ,p_event_id     => l_event_id
176163  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176164  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176165  ,p_actual_flag => l_actual_flag
176166  ,p_balance_type_code => l_balance_type_code
176167  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176168  
176169  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176170  , p_source_28 => l_array_source_28(Idx)
176171  , p_source_28_meaning => l_array_source_28_meaning(Idx)
176172  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176173  , p_source_58 => l_array_source_58(Idx)
176174  , p_source_60 => l_array_source_60(Idx)
176175  , p_source_85 => l_array_source_85(Idx)
176176  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176177  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176178  , p_source_91 => l_array_source_91(Idx)
176179  , p_source_93 => l_array_source_93(Idx)
176180  , p_source_96 => l_array_source_96(Idx)
176181  , p_source_99 => l_array_source_99(Idx)
176182  , p_source_100 => l_array_source_100(Idx)
176183  , p_source_101 => l_array_source_101(Idx)
176184  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176185  , p_source_102 => l_array_source_102(Idx)
176186  , p_source_103 => l_array_source_103(Idx)
176187  , p_source_104 => l_array_source_104(Idx)
176188  , p_source_107 => l_array_source_107(Idx)
176189  , p_source_115 => l_array_source_115(Idx)
176190  , p_source_119 => l_array_source_119(Idx)
176191  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
176195  );
176192  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
176193  , p_source_140 => l_array_source_140(Idx)
176194  , p_source_140_meaning => l_array_source_140_meaning(Idx)
176196 If(l_balance_type_code = 'A') THEN
176197   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176198 END IF;
176199 
176200 --
176201 
176202 
176203 --
176204 AcctLineType_113 (
176205  p_application_id  => p_application_id
176206  ,p_event_id     => l_event_id
176207  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176208  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176209  ,p_actual_flag => l_actual_flag
176210  ,p_balance_type_code => l_balance_type_code
176211  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176212  
176213  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176214  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176215  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
176216  , p_source_14 => g_array_event(l_event_id).array_value_char('source_14')
176217  , p_source_14_meaning => g_array_event(l_event_id).array_value_char('source_14_meaning')
176218  , p_source_25 => l_array_source_25(Idx)
176219  , p_source_28 => l_array_source_28(Idx)
176220  , p_source_28_meaning => l_array_source_28_meaning(Idx)
176221  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
176222  , p_source_41 => l_array_source_41(Idx)
176223  , p_source_42 => l_array_source_42(Idx)
176224  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176225  , p_source_58 => l_array_source_58(Idx)
176226  , p_source_60 => l_array_source_60(Idx)
176227  , p_source_72 => l_array_source_72(Idx)
176228  , p_source_85 => l_array_source_85(Idx)
176229  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176230  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176231  , p_source_91 => l_array_source_91(Idx)
176232  , p_source_93 => l_array_source_93(Idx)
176233  , p_source_96 => l_array_source_96(Idx)
176234  , p_source_101 => l_array_source_101(Idx)
176235  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176236  , p_source_102 => l_array_source_102(Idx)
176237  , p_source_103 => l_array_source_103(Idx)
176238  , p_source_104 => l_array_source_104(Idx)
176239  , p_source_105 => l_array_source_105(Idx)
176240  , p_source_106 => l_array_source_106(Idx)
176241  , p_source_107 => l_array_source_107(Idx)
176242  , p_source_112 => l_array_source_112(Idx)
176243  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176244  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176245  , p_source_115 => l_array_source_115(Idx)
176246  , p_source_146 => l_array_source_146(Idx)
176247  , p_source_147 => l_array_source_147(Idx)
176248  , p_source_148 => l_array_source_148(Idx)
176249  );
176250 If(l_balance_type_code = 'A') THEN
176251   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176252 END IF;
176253 
176254 --
176255 
176256 
176257 --
176258 AcctLineType_121 (
176259  p_application_id  => p_application_id
176260  ,p_event_id     => l_event_id
176261  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176262  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176263  ,p_actual_flag => l_actual_flag
176264  ,p_balance_type_code => l_balance_type_code
176265  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176266  
176267  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176268  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176269  , p_source_25 => l_array_source_25(Idx)
176270  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
176271  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176272  , p_source_58 => l_array_source_58(Idx)
176273  , p_source_60 => l_array_source_60(Idx)
176274  , p_source_72 => l_array_source_72(Idx)
176275  , p_source_85 => l_array_source_85(Idx)
176276  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176277  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176278  , p_source_91 => l_array_source_91(Idx)
176279  , p_source_93 => l_array_source_93(Idx)
176280  , p_source_96 => l_array_source_96(Idx)
176281  , p_source_101 => l_array_source_101(Idx)
176282  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176283  , p_source_102 => l_array_source_102(Idx)
176284  , p_source_103 => l_array_source_103(Idx)
176285  , p_source_104 => l_array_source_104(Idx)
176286  , p_source_105 => l_array_source_105(Idx)
176287  , p_source_106 => l_array_source_106(Idx)
176288  , p_source_107 => l_array_source_107(Idx)
176289  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176290  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176291  , p_source_115 => l_array_source_115(Idx)
176292  , p_source_119 => l_array_source_119(Idx)
176293  , p_source_146 => l_array_source_146(Idx)
176294  , p_source_147 => l_array_source_147(Idx)
176295  , p_source_148 => l_array_source_148(Idx)
176296  );
176297 If(l_balance_type_code = 'A') THEN
176298   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176299 END IF;
176300 
176301 --
176302 
176303 
176304 --
176305 AcctLineType_133 (
176306  p_application_id  => p_application_id
176307  ,p_event_id     => l_event_id
176308  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176309  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176310  ,p_actual_flag => l_actual_flag
176311  ,p_balance_type_code => l_balance_type_code
176312  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176313  
176314  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176315  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176316  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176317  , p_source_25 => l_array_source_25(Idx)
176318  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
176322  , p_source_60 => l_array_source_60(Idx)
176319  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
176320  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176321  , p_source_58 => l_array_source_58(Idx)
176323  , p_source_85 => l_array_source_85(Idx)
176324  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176325  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176326  , p_source_91 => l_array_source_91(Idx)
176327  , p_source_93 => l_array_source_93(Idx)
176328  , p_source_96 => l_array_source_96(Idx)
176329  , p_source_101 => l_array_source_101(Idx)
176330  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176331  , p_source_102 => l_array_source_102(Idx)
176332  , p_source_103 => l_array_source_103(Idx)
176333  , p_source_104 => l_array_source_104(Idx)
176334  , p_source_105 => l_array_source_105(Idx)
176335  , p_source_106 => l_array_source_106(Idx)
176336  , p_source_107 => l_array_source_107(Idx)
176337  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176338  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176339  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176340  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176341  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176342  , p_source_115 => l_array_source_115(Idx)
176343  , p_source_154 => l_array_source_154(Idx)
176344  , p_source_155 => l_array_source_155(Idx)
176345  );
176346 If(l_balance_type_code = 'A') THEN
176347   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176348 END IF;
176349 
176350 --
176351 
176352 
176353 --
176354 AcctLineType_134 (
176355  p_application_id  => p_application_id
176356  ,p_event_id     => l_event_id
176357  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176358  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176359  ,p_actual_flag => l_actual_flag
176360  ,p_balance_type_code => l_balance_type_code
176361  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176362  
176363  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176364  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176365  , p_source_25 => l_array_source_25(Idx)
176366  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
176367  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
176368  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
176369  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
176370  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176371  , p_source_58 => l_array_source_58(Idx)
176372  , p_source_60 => l_array_source_60(Idx)
176373  , p_source_85 => l_array_source_85(Idx)
176374  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176375  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176376  , p_source_91 => l_array_source_91(Idx)
176377  , p_source_93 => l_array_source_93(Idx)
176378  , p_source_96 => l_array_source_96(Idx)
176379  , p_source_101 => l_array_source_101(Idx)
176380  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176381  , p_source_102 => l_array_source_102(Idx)
176382  , p_source_103 => l_array_source_103(Idx)
176383  , p_source_104 => l_array_source_104(Idx)
176384  , p_source_105 => l_array_source_105(Idx)
176385  , p_source_106 => l_array_source_106(Idx)
176386  , p_source_107 => l_array_source_107(Idx)
176387  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176388  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176389  , p_source_115 => l_array_source_115(Idx)
176390  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176391  , p_source_155 => l_array_source_155(Idx)
176392  );
176393 If(l_balance_type_code = 'A') THEN
176394   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176395 END IF;
176396 
176397 --
176398 
176399 
176400 --
176401 AcctLineType_139 (
176402  p_application_id  => p_application_id
176403  ,p_event_id     => l_event_id
176404  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176405  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176406  ,p_actual_flag => l_actual_flag
176407  ,p_balance_type_code => l_balance_type_code
176408  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176409  
176410  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176411  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176412  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176413  , p_source_25 => l_array_source_25(Idx)
176414  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
176415  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
176416  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176417  , p_source_58 => l_array_source_58(Idx)
176418  , p_source_60 => l_array_source_60(Idx)
176419  , p_source_85 => l_array_source_85(Idx)
176420  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176421  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176422  , p_source_91 => l_array_source_91(Idx)
176423  , p_source_93 => l_array_source_93(Idx)
176424  , p_source_96 => l_array_source_96(Idx)
176425  , p_source_101 => l_array_source_101(Idx)
176426  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176427  , p_source_102 => l_array_source_102(Idx)
176428  , p_source_103 => l_array_source_103(Idx)
176429  , p_source_104 => l_array_source_104(Idx)
176430  , p_source_105 => l_array_source_105(Idx)
176431  , p_source_106 => l_array_source_106(Idx)
176432  , p_source_107 => l_array_source_107(Idx)
176433  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176434  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176435  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176436  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176440  , p_source_159 => l_array_source_159(Idx)
176437  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176438  , p_source_115 => l_array_source_115(Idx)
176439  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176441  , p_source_160 => l_array_source_160(Idx)
176442  );
176443 If(l_balance_type_code = 'A') THEN
176444   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176445 END IF;
176446 
176447 --
176448 
176449 
176450 --
176451 AcctLineType_141 (
176452  p_application_id  => p_application_id
176453  ,p_event_id     => l_event_id
176454  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176455  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176456  ,p_actual_flag => l_actual_flag
176457  ,p_balance_type_code => l_balance_type_code
176458  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176459  
176460  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176461  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176462  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176463  , p_source_25 => l_array_source_25(Idx)
176464  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
176465  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
176466  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176467  , p_source_58 => l_array_source_58(Idx)
176468  , p_source_60 => l_array_source_60(Idx)
176469  , p_source_85 => l_array_source_85(Idx)
176470  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176471  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176472  , p_source_91 => l_array_source_91(Idx)
176473  , p_source_93 => l_array_source_93(Idx)
176474  , p_source_96 => l_array_source_96(Idx)
176475  , p_source_101 => l_array_source_101(Idx)
176476  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176477  , p_source_102 => l_array_source_102(Idx)
176478  , p_source_103 => l_array_source_103(Idx)
176479  , p_source_104 => l_array_source_104(Idx)
176480  , p_source_105 => l_array_source_105(Idx)
176481  , p_source_106 => l_array_source_106(Idx)
176482  , p_source_107 => l_array_source_107(Idx)
176483  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176484  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176485  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176486  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176487  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176488  , p_source_115 => l_array_source_115(Idx)
176489  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176490  , p_source_162 => l_array_source_162(Idx)
176491  , p_source_163 => l_array_source_163(Idx)
176492  );
176493 If(l_balance_type_code = 'A') THEN
176494   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176495 END IF;
176496 
176497 --
176498 
176499 
176500 --
176501 AcctLineType_145 (
176502  p_application_id  => p_application_id
176503  ,p_event_id     => l_event_id
176504  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176505  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176506  ,p_actual_flag => l_actual_flag
176507  ,p_balance_type_code => l_balance_type_code
176508  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176509  
176510  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176511  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
176512  , p_source_24 => g_array_event(l_event_id).array_value_char('source_24')
176513  , p_source_25 => l_array_source_25(Idx)
176514  , p_source_28 => l_array_source_28(Idx)
176515  , p_source_28_meaning => l_array_source_28_meaning(Idx)
176516  , p_source_56 => l_array_source_56(Idx)
176517  , p_source_56_meaning => l_array_source_56_meaning(Idx)
176518  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176519  , p_source_58 => l_array_source_58(Idx)
176520  , p_source_60 => l_array_source_60(Idx)
176521  , p_source_85 => l_array_source_85(Idx)
176522  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176523  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176524  , p_source_91 => l_array_source_91(Idx)
176525  , p_source_93 => l_array_source_93(Idx)
176526  , p_source_96 => l_array_source_96(Idx)
176527  , p_source_101 => l_array_source_101(Idx)
176528  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176529  , p_source_102 => l_array_source_102(Idx)
176530  , p_source_103 => l_array_source_103(Idx)
176531  , p_source_104 => l_array_source_104(Idx)
176532  , p_source_105 => l_array_source_105(Idx)
176533  , p_source_106 => l_array_source_106(Idx)
176534  , p_source_107 => l_array_source_107(Idx)
176535  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176536  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176537  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176538  , p_source_112 => l_array_source_112(Idx)
176539  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176540  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176541  , p_source_115 => l_array_source_115(Idx)
176542  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
176543  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
176544  );
176545 If(l_balance_type_code = 'A') THEN
176546   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176547 END IF;
176548 
176549 --
176550 
176551 
176552 --
176553 AcctLineType_154 (
176554  p_application_id  => p_application_id
176555  ,p_event_id     => l_event_id
176556  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176557  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176558  ,p_actual_flag => l_actual_flag
176559  ,p_balance_type_code => l_balance_type_code
176560  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176561  
176565  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176562  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176563  , p_source_56 => l_array_source_56(Idx)
176564  , p_source_56_meaning => l_array_source_56_meaning(Idx)
176566  , p_source_58 => l_array_source_58(Idx)
176567  , p_source_60 => l_array_source_60(Idx)
176568  , p_source_85 => l_array_source_85(Idx)
176569  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176570  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176571  , p_source_91 => l_array_source_91(Idx)
176572  , p_source_93 => l_array_source_93(Idx)
176573  , p_source_96 => l_array_source_96(Idx)
176574  , p_source_97 => l_array_source_97(Idx)
176575  , p_source_98 => l_array_source_98(Idx)
176576  , p_source_99 => l_array_source_99(Idx)
176577  , p_source_100 => l_array_source_100(Idx)
176578  , p_source_101 => l_array_source_101(Idx)
176579  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176580  , p_source_102 => l_array_source_102(Idx)
176581  , p_source_107 => l_array_source_107(Idx)
176582  , p_source_115 => l_array_source_115(Idx)
176583  , p_source_119 => l_array_source_119(Idx)
176584  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
176585  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
176586  , p_source_166 => l_array_source_166(Idx)
176587  , p_source_166_meaning => l_array_source_166_meaning(Idx)
176588  );
176589 If(l_balance_type_code = 'A') THEN
176590   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176591 END IF;
176592 
176593 --
176594 
176595 
176596 --
176597 AcctLineType_156 (
176598  p_application_id  => p_application_id
176599  ,p_event_id     => l_event_id
176600  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176601  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176602  ,p_actual_flag => l_actual_flag
176603  ,p_balance_type_code => l_balance_type_code
176604  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176605  
176606  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176607  , p_source_56 => l_array_source_56(Idx)
176608  , p_source_56_meaning => l_array_source_56_meaning(Idx)
176609  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176610  , p_source_58 => l_array_source_58(Idx)
176611  , p_source_60 => l_array_source_60(Idx)
176612  , p_source_85 => l_array_source_85(Idx)
176613  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176614  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176615  , p_source_91 => l_array_source_91(Idx)
176616  , p_source_93 => l_array_source_93(Idx)
176617  , p_source_96 => l_array_source_96(Idx)
176618  , p_source_97 => l_array_source_97(Idx)
176619  , p_source_98 => l_array_source_98(Idx)
176620  , p_source_99 => l_array_source_99(Idx)
176621  , p_source_100 => l_array_source_100(Idx)
176622  , p_source_101 => l_array_source_101(Idx)
176623  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176624  , p_source_102 => l_array_source_102(Idx)
176625  , p_source_107 => l_array_source_107(Idx)
176626  , p_source_115 => l_array_source_115(Idx)
176627  , p_source_119 => l_array_source_119(Idx)
176628  );
176629 If(l_balance_type_code = 'A') THEN
176630   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176631 END IF;
176632 
176633 --
176634 
176635 
176636 --
176637 AcctLineType_172 (
176638  p_application_id  => p_application_id
176639  ,p_event_id     => l_event_id
176640  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176641  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176642  ,p_actual_flag => l_actual_flag
176643  ,p_balance_type_code => l_balance_type_code
176644  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176645  
176646  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176647  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176648  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176649  , p_source_25 => l_array_source_25(Idx)
176650  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
176651  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
176652  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176653  , p_source_58 => l_array_source_58(Idx)
176654  , p_source_60 => l_array_source_60(Idx)
176655  , p_source_85 => l_array_source_85(Idx)
176656  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176657  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176658  , p_source_91 => l_array_source_91(Idx)
176659  , p_source_93 => l_array_source_93(Idx)
176660  , p_source_96 => l_array_source_96(Idx)
176661  , p_source_101 => l_array_source_101(Idx)
176662  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176663  , p_source_102 => l_array_source_102(Idx)
176664  , p_source_103 => l_array_source_103(Idx)
176665  , p_source_104 => l_array_source_104(Idx)
176666  , p_source_105 => l_array_source_105(Idx)
176667  , p_source_106 => l_array_source_106(Idx)
176668  , p_source_107 => l_array_source_107(Idx)
176669  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176670  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176671  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176672  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176673  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176674  , p_source_115 => l_array_source_115(Idx)
176675  , p_source_154 => l_array_source_154(Idx)
176676  , p_source_155 => l_array_source_155(Idx)
176677  );
176678 If(l_balance_type_code = 'A') THEN
176679   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176680 END IF;
176681 
176682 --
176683 
176684 
176685 --
176686 AcctLineType_173 (
176687  p_application_id  => p_application_id
176688  ,p_event_id     => l_event_id
176689  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176693  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176690  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176691  ,p_actual_flag => l_actual_flag
176692  ,p_balance_type_code => l_balance_type_code
176694  
176695  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176696  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176697  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176698  , p_source_25 => l_array_source_25(Idx)
176699  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
176700  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
176701  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176702  , p_source_58 => l_array_source_58(Idx)
176703  , p_source_60 => l_array_source_60(Idx)
176704  , p_source_85 => l_array_source_85(Idx)
176705  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176706  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176707  , p_source_91 => l_array_source_91(Idx)
176708  , p_source_93 => l_array_source_93(Idx)
176709  , p_source_96 => l_array_source_96(Idx)
176710  , p_source_101 => l_array_source_101(Idx)
176711  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176712  , p_source_102 => l_array_source_102(Idx)
176713  , p_source_103 => l_array_source_103(Idx)
176714  , p_source_104 => l_array_source_104(Idx)
176715  , p_source_105 => l_array_source_105(Idx)
176716  , p_source_106 => l_array_source_106(Idx)
176717  , p_source_107 => l_array_source_107(Idx)
176718  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176719  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176720  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176721  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176722  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176723  , p_source_115 => l_array_source_115(Idx)
176724  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176725  , p_source_159 => l_array_source_159(Idx)
176726  , p_source_160 => l_array_source_160(Idx)
176727  );
176728 If(l_balance_type_code = 'A') THEN
176729   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176730 END IF;
176731 
176732 --
176733 
176734 
176735 --
176736 AcctLineType_175 (
176737  p_application_id  => p_application_id
176738  ,p_event_id     => l_event_id
176739  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176740  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176741  ,p_actual_flag => l_actual_flag
176742  ,p_balance_type_code => l_balance_type_code
176743  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176744  
176745  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176746  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176747  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176748  , p_source_25 => l_array_source_25(Idx)
176749  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
176750  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
176751  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176752  , p_source_58 => l_array_source_58(Idx)
176753  , p_source_60 => l_array_source_60(Idx)
176754  , p_source_85 => l_array_source_85(Idx)
176755  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176756  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176757  , p_source_91 => l_array_source_91(Idx)
176758  , p_source_93 => l_array_source_93(Idx)
176759  , p_source_96 => l_array_source_96(Idx)
176760  , p_source_101 => l_array_source_101(Idx)
176761  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176762  , p_source_102 => l_array_source_102(Idx)
176763  , p_source_103 => l_array_source_103(Idx)
176764  , p_source_104 => l_array_source_104(Idx)
176765  , p_source_105 => l_array_source_105(Idx)
176766  , p_source_106 => l_array_source_106(Idx)
176767  , p_source_107 => l_array_source_107(Idx)
176768  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176769  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176770  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176771  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176772  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176773  , p_source_115 => l_array_source_115(Idx)
176774  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176775  , p_source_162 => l_array_source_162(Idx)
176776  , p_source_163 => l_array_source_163(Idx)
176777  );
176778 If(l_balance_type_code = 'A') THEN
176779   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176780 END IF;
176781 
176782 --
176783 
176784 
176785 --
176786 AcctLineType_179 (
176787  p_application_id  => p_application_id
176788  ,p_event_id     => l_event_id
176789  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176790  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176791  ,p_actual_flag => l_actual_flag
176792  ,p_balance_type_code => l_balance_type_code
176793  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176794  
176795  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176796  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176797  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176798  , p_source_25 => l_array_source_25(Idx)
176799  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
176800  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176801  , p_source_58 => l_array_source_58(Idx)
176802  , p_source_60 => l_array_source_60(Idx)
176803  , p_source_85 => l_array_source_85(Idx)
176804  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176805  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176806  , p_source_91 => l_array_source_91(Idx)
176807  , p_source_93 => l_array_source_93(Idx)
176811  , p_source_102 => l_array_source_102(Idx)
176808  , p_source_96 => l_array_source_96(Idx)
176809  , p_source_101 => l_array_source_101(Idx)
176810  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176812  , p_source_103 => l_array_source_103(Idx)
176813  , p_source_104 => l_array_source_104(Idx)
176814  , p_source_105 => l_array_source_105(Idx)
176815  , p_source_106 => l_array_source_106(Idx)
176816  , p_source_107 => l_array_source_107(Idx)
176817  , p_source_109 => g_array_event(l_event_id).array_value_date('source_109')
176818  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
176819  , p_source_111 => g_array_event(l_event_id).array_value_char('source_111')
176820  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176821  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176822  , p_source_115 => l_array_source_115(Idx)
176823  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176824  , p_source_124 => l_array_source_124(Idx)
176825  );
176826 If(l_balance_type_code = 'A') THEN
176827   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176828 END IF;
176829 
176830 --
176831 
176832 
176833 --
176834 AcctLineType_193 (
176835  p_application_id  => p_application_id
176836  ,p_event_id     => l_event_id
176837  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176838  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176839  ,p_actual_flag => l_actual_flag
176840  ,p_balance_type_code => l_balance_type_code
176841  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176842  
176843  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176844  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176845  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176846  , p_source_25 => l_array_source_25(Idx)
176847  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
176848  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176849  , p_source_58 => l_array_source_58(Idx)
176850  , p_source_60 => l_array_source_60(Idx)
176851  , p_source_85 => l_array_source_85(Idx)
176852  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176853  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176854  , p_source_91 => l_array_source_91(Idx)
176855  , p_source_93 => l_array_source_93(Idx)
176856  , p_source_96 => l_array_source_96(Idx)
176857  , p_source_101 => l_array_source_101(Idx)
176858  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176859  , p_source_102 => l_array_source_102(Idx)
176860  , p_source_103 => l_array_source_103(Idx)
176861  , p_source_104 => l_array_source_104(Idx)
176862  , p_source_105 => l_array_source_105(Idx)
176863  , p_source_106 => l_array_source_106(Idx)
176864  , p_source_107 => l_array_source_107(Idx)
176865  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176866  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176867  , p_source_115 => l_array_source_115(Idx)
176868  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
176869  , p_source_118 => l_array_source_118(Idx)
176870  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
176871  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
176872  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
176873  );
176874 If(l_balance_type_code = 'A') THEN
176875   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176876 END IF;
176877 
176878 --
176879 
176880 
176881 --
176882 AcctLineType_233 (
176883  p_application_id  => p_application_id
176884  ,p_event_id     => l_event_id
176885  ,p_calculate_acctd_flag => l_calculate_acctd_flag
176886  ,p_calculate_g_l_flag => l_calculate_g_l_flag
176887  ,p_actual_flag => l_actual_flag
176888  ,p_balance_type_code => l_balance_type_code
176889  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
176890  
176891  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
176892  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
176893  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
176894  , p_source_25 => l_array_source_25(Idx)
176895  , p_source_39 => l_array_source_39(Idx)
176896  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
176897  , p_source_58 => l_array_source_58(Idx)
176898  , p_source_60 => l_array_source_60(Idx)
176899  , p_source_85 => l_array_source_85(Idx)
176900  , p_source_85_meaning => l_array_source_85_meaning(Idx)
176901  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
176902  , p_source_91 => l_array_source_91(Idx)
176903  , p_source_93 => l_array_source_93(Idx)
176904  , p_source_96 => l_array_source_96(Idx)
176905  , p_source_101 => l_array_source_101(Idx)
176906  , p_source_101_meaning => l_array_source_101_meaning(Idx)
176907  , p_source_102 => l_array_source_102(Idx)
176908  , p_source_103 => l_array_source_103(Idx)
176909  , p_source_104 => l_array_source_104(Idx)
176910  , p_source_105 => l_array_source_105(Idx)
176911  , p_source_106 => l_array_source_106(Idx)
176912  , p_source_107 => l_array_source_107(Idx)
176913  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
176914  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
176915  , p_source_115 => l_array_source_115(Idx)
176916  , p_source_119 => l_array_source_119(Idx)
176917  , p_source_146 => l_array_source_146(Idx)
176918  , p_source_147 => l_array_source_147(Idx)
176919  , p_source_148 => l_array_source_148(Idx)
176920  , p_source_166 => l_array_source_166(Idx)
176921  , p_source_166_meaning => l_array_source_166_meaning(Idx)
176922  );
176923 If(l_balance_type_code = 'A') THEN
176924   l_actual_gain_loss_ref := l_gain_or_loss_ref;
176925 END IF;
176926 
176927 --
176928 
176929       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
176930       -- or secondary ledger that has different currency with primary
176934 
176931       -- or alc that is calculated by sla
176932       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
176933             (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'))
176935 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
176936 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
176937           AND (l_actual_flag = 'A')) THEN
176938         XLA_AE_LINES_PKG.CreateGainOrLossLines(
176939           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
176940          ,p_application_id   => p_application_id
176941          ,p_amb_context_code => 'DEFAULT'
176942          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
176943          ,p_event_class_code => C_EVENT_CLASS_CODE
176944          ,p_event_type_code  => C_EVENT_TYPE_CODE
176945          
176946          ,p_gain_ccid        => -1
176947          ,p_loss_ccid        => -1
176948 
176949          ,p_actual_flag      => l_actual_flag
176950          ,p_enc_flag         => null
176951          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
176952          ,p_enc_g_l_ref      => null
176953          );
176954       END IF;
176955    END IF;
176956 END IF;
176957 
176958    ELSE
176959       --
176960       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
176961       --
176962       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
176963          trace
176964             (p_msg      => 'Trancaction revesal option is Y'
176965             ,p_level    => C_LEVEL_STATEMENT
176966             ,p_module   => l_log_module);
176967       END IF;
176968    END IF;
176969 
176970 END LOOP;
176971 l_result := XLA_AE_LINES_PKG.InsertLines ;
176972 end loop;
176973 close line_cur;
176974 
176975 
176976 --
176977 -- insert headers into xla_ae_headers_gt table
176978 --
176979 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
176980 
176981 -- insert into errors table here.
176982 
176983 END LOOP;
176984 
176985 --
176986 -- 4865292
176987 --
176988 -- Compare g_hdr_extract_count with event count in
176989 -- CreateHeadersAndLines.
176990 --
176991 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
176992 
176993 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
176994    trace (p_msg     => '# rows extracted from header extract objects '
176995                     || ' (running total): '
176996                     || g_hdr_extract_count
176997          ,p_level   => C_LEVEL_STATEMENT
176998          ,p_module  => l_log_module);
176999 END IF;
177000 
177001 CLOSE header_cur;
177002 --
177003 
177004 --
177005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
177006    trace
177007       (p_msg      => 'END of EventClass_255'
177008       ,p_level    => C_LEVEL_PROCEDURE
177009       ,p_module   => l_log_module);
177010 END IF;
177011 --
177012 RETURN l_result;
177013 EXCEPTION
177014 WHEN xla_exceptions_pkg.application_exception THEN
177015    
177016 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
177017 
177018    
177019 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
177020 
177021    RAISE;
177022 
177023 WHEN NO_DATA_FOUND THEN
177024 
177025 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
177026 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
177027 
177028 FOR header_record IN header_cur
177029 LOOP
177030     l_array_header_events(header_record.event_id) := header_record.event_id;
177031 END LOOP;
177032 
177033 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
177034 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
177035 
177036 fnd_file.put_line(fnd_file.LOG, '                    ');
177037 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
177038 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
177039 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
177040 
177041 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
177042 LOOP
177043 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
177044 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
177045         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
177046 	END IF;
177047 END LOOP;
177048 
177049 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
177050 fnd_file.put_line(fnd_file.LOG, '                    ');
177051 
177052 
177053 xla_exceptions_pkg.raise_message
177054       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_255');
177055 
177056 
177057 WHEN OTHERS THEN
177058    xla_exceptions_pkg.raise_message
177059       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_255');
177060 END EventClass_255;
177061 --
177062 
177063 ---------------------------------------
177064 --
177065 -- PRIVATE PROCEDURE
177066 --         insert_sources_256
177067 --
177068 ----------------------------------------
177069 --
177070 PROCEDURE insert_sources_256(
177071                                 p_target_ledger_id       IN NUMBER
177072                               , p_language               IN VARCHAR2
177073                               , p_sla_ledger_id          IN NUMBER
177074                               , p_pad_start_date         IN DATE
177075                               , p_pad_end_date           IN DATE
177076                          )
177077 IS
177078 
177079 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
177083 BEGIN
177080 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'REFUNDS';
177081 p_apps_owner                   VARCHAR2(30);
177082 l_log_module                   VARCHAR2(240);
177084 IF g_log_enabled THEN
177085       l_log_module := C_DEFAULT_MODULE||'.insert_sources_256';
177086 END IF;
177087 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
177088 
177089       trace
177090          (p_msg      => 'BEGIN of insert_sources_256'
177091          ,p_level    => C_LEVEL_PROCEDURE
177092          ,p_module   => l_log_module);
177093 
177094 END IF;
177095 
177096 -- select APPS owner
177097 SELECT oracle_username
177098   INTO p_apps_owner
177099   FROM fnd_oracle_userid
177100  WHERE read_only_flag = 'U'
177101 ;
177102 
177103 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
177104       trace
177105          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
177106                         ' - p_language = '||p_language||
177107                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
177108                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
177109                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
177110                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
177111          ,p_level    => C_LEVEL_STATEMENT
177112          ,p_module   => l_log_module);
177113 END IF;
177114 
177115 
177116 --
177117 INSERT INTO xla_diag_sources --hdr2
177118 (
177119         event_id
177120       , ledger_id
177121       , sla_ledger_id
177122       , description_language
177123       , object_name
177124       , object_type_code
177125       , line_number
177126       , source_application_id
177127       , source_type_code
177128       , source_code
177129       , source_value
177130       , source_meaning
177131       , created_by
177132       , creation_date
177133       , last_update_date
177134       , last_updated_by
177135       , last_update_login
177136       , program_update_date
177137       , program_application_id
177138       , program_id
177139       , request_id
177140 )
177141 SELECT
177142         event_id
177143       , p_target_ledger_id
177144       , p_sla_ledger_id
177145       , p_language
177146       , object_name
177147       , object_type_code
177148       , line_number
177149       , source_application_id
177150       , source_type_code
177151       , source_code
177152       , SUBSTR(source_value ,1,1996)
177153       , SUBSTR(source_meaning ,1,200)
177154       , xla_environment_pkg.g_Usr_Id
177155       , TRUNC(SYSDATE)
177156       , TRUNC(SYSDATE)
177157       , xla_environment_pkg.g_Usr_Id
177158       , xla_environment_pkg.g_Login_Id
177159       , TRUNC(SYSDATE)
177160       , xla_environment_pkg.g_Prog_Appl_Id
177161       , xla_environment_pkg.g_Prog_Id
177162       , xla_environment_pkg.g_Req_Id
177163   FROM (
177164        SELECT xet.event_id                  event_id
177165             , 0                          line_number
177166             , CASE r
177167                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177168                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177169                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177170                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177171                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177172                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177173                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177174                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177175                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177176                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177177                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177178                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177179                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177180                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177181                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
177182                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177183                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177184                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177185                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177186                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177187                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177188                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177189                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177190                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177191                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177192                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177193                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
177194                 
177195                ELSE null
177196               END                           object_name
177197             , CASE r
177198                 WHEN 1 THEN 'HEADER' 
177199                 WHEN 2 THEN 'HEADER' 
177200                 WHEN 3 THEN 'HEADER' 
177201                 WHEN 4 THEN 'HEADER' 
177202                 WHEN 5 THEN 'HEADER' 
177203                 WHEN 6 THEN 'HEADER' 
177204                 WHEN 7 THEN 'HEADER' 
177205                 WHEN 8 THEN 'HEADER' 
177206                 WHEN 9 THEN 'HEADER' 
177207                 WHEN 10 THEN 'HEADER' 
177208                 WHEN 11 THEN 'HEADER' 
177209                 WHEN 12 THEN 'HEADER' 
177210                 WHEN 13 THEN 'HEADER' 
177211                 WHEN 14 THEN 'HEADER' 
177212                 WHEN 15 THEN 'HEADER' 
177213                 WHEN 16 THEN 'HEADER' 
177214                 WHEN 17 THEN 'HEADER' 
177215                 WHEN 18 THEN 'HEADER' 
177216                 WHEN 19 THEN 'HEADER' 
177217                 WHEN 20 THEN 'HEADER' 
177218                 WHEN 21 THEN 'HEADER' 
177219                 WHEN 22 THEN 'HEADER' 
177223                 WHEN 26 THEN 'HEADER' 
177220                 WHEN 23 THEN 'HEADER' 
177221                 WHEN 24 THEN 'HEADER' 
177222                 WHEN 25 THEN 'HEADER' 
177224                 WHEN 27 THEN 'HEADER' 
177225                 
177226                 ELSE null
177227               END                           object_type_code
177228             , CASE r
177229                 WHEN 1 THEN '200' 
177230                 WHEN 2 THEN '200' 
177231                 WHEN 3 THEN '200' 
177232                 WHEN 4 THEN '200' 
177233                 WHEN 5 THEN '200' 
177234                 WHEN 6 THEN '200' 
177235                 WHEN 7 THEN '200' 
177236                 WHEN 8 THEN '200' 
177237                 WHEN 9 THEN '200' 
177238                 WHEN 10 THEN '200' 
177239                 WHEN 11 THEN '200' 
177240                 WHEN 12 THEN '200' 
177241                 WHEN 13 THEN '200' 
177242                 WHEN 14 THEN '200' 
177243                 WHEN 15 THEN '200' 
177244                 WHEN 16 THEN '200' 
177245                 WHEN 17 THEN '200' 
177246                 WHEN 18 THEN '200' 
177247                 WHEN 19 THEN '200' 
177248                 WHEN 20 THEN '200' 
177249                 WHEN 21 THEN '200' 
177250                 WHEN 22 THEN '200' 
177251                 WHEN 23 THEN '200' 
177252                 WHEN 24 THEN '200' 
177253                 WHEN 25 THEN '200' 
177254                 WHEN 26 THEN '200' 
177255                 WHEN 27 THEN '200' 
177256                 
177257                 ELSE null
177258               END                           source_application_id
177259             , 'S'             source_type_code
177260             , CASE r
177261                 WHEN 1 THEN 'AC_DOC_SEQUENCE_VALUE' 
177262                 WHEN 2 THEN 'AC_CURRENCY_CODE' 
177263                 WHEN 3 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
177264                 WHEN 4 THEN 'CGAC_AP_ASSET_CCID' 
177265                 WHEN 5 THEN 'FSP_DISC_TAKEN_CCID' 
177266                 WHEN 6 THEN 'ASP_DISCOUNT_DIST_METHOD' 
177267                 WHEN 7 THEN 'CGAC_CASH_CLEARING_CCID' 
177268                 WHEN 8 THEN 'CGAC_GAIN_CCID' 
177269                 WHEN 9 THEN 'ASP_GAIN_CCID' 
177270                 WHEN 10 THEN 'CGAC_LOSS_CCID' 
177271                 WHEN 11 THEN 'ASP_LOSS_CCID' 
177272                 WHEN 12 THEN 'ASP_DISC_TAKEN_CCID' 
177273                 WHEN 13 THEN 'ASP_AUTO_OFFSET_FLAG' 
177274                 WHEN 14 THEN 'ASP_ROUNDING_ERROR_CCID' 
177275                 WHEN 15 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
177276                 WHEN 16 THEN 'THIRD_PARTY_TYPE' 
177277                 WHEN 17 THEN 'AC_VENDOR_ID' 
177278                 WHEN 18 THEN 'AC_VENDOR_SITE_ID' 
177279                 WHEN 19 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
177280                 WHEN 20 THEN 'AC_FUTURE_PAY_DUE_DATE' 
177281                 WHEN 21 THEN 'AC_EXCHANGE_DATE' 
177282                 WHEN 22 THEN 'AC_EXCHANGE_RATE' 
177283                 WHEN 23 THEN 'AC_EXCHANGE_RATE_TYPE' 
177284                 WHEN 24 THEN 'PAYMENT_TYPE' 
177285                 WHEN 25 THEN 'AC_DOC_CATEGORY_CODE' 
177286                 WHEN 26 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
177287                 WHEN 27 THEN 'TRANSAC_REVERSAL_FLAG' 
177288                 
177289                 ELSE null
177290               END                           source_code
177291             , CASE r
177292                 WHEN 1 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
177293                 WHEN 2 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
177294                 WHEN 3 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
177295                 WHEN 4 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
177296                 WHEN 5 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
177297                 WHEN 6 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
177298                 WHEN 7 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
177299                 WHEN 8 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
177300                 WHEN 9 THEN TO_CHAR(h3.ASP_GAIN_CCID)
177301                 WHEN 10 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
177302                 WHEN 11 THEN TO_CHAR(h3.ASP_LOSS_CCID)
177303                 WHEN 12 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
177304                 WHEN 13 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
177305                 WHEN 14 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
177306                 WHEN 15 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
177307                 WHEN 16 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
177308                 WHEN 17 THEN TO_CHAR(h2.AC_VENDOR_ID)
177309                 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
177310                 WHEN 19 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
177311                 WHEN 20 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
177312                 WHEN 21 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
177313                 WHEN 22 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
177314                 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
177315                 WHEN 24 THEN TO_CHAR(h2.PAYMENT_TYPE)
177316                 WHEN 25 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
177317                 WHEN 26 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
177318                 WHEN 27 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
177319                 
177320                 ELSE null
177321               END                           source_value
177322             , CASE r
177323                 WHEN 3 THEN fvl10.meaning
177324                 WHEN 6 THEN fvl14.meaning
177325                 WHEN 13 THEN fvl43.meaning
177326                 WHEN 19 THEN fvl116.meaning
177327                 WHEN 24 THEN fvl125.meaning
177328                 WHEN 27 THEN fvl177.meaning
177329                 
177330                 ELSE null
177331               END               source_meaning
177332          FROM xla_events_gt     xet  
177333       , AP_PAYMENT_EXTRACT_HEADER_V  h2
177334       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
177335   , fnd_lookup_values    fvl10
177336   , fnd_lookup_values    fvl14
177337   , fnd_lookup_values    fvl43
177338   , fnd_lookup_values    fvl116
177339   , fnd_lookup_values    fvl125
177343            AND xet.event_class_code = C_EVENT_CLASS_CODE
177340   , fnd_lookup_values    fvl177
177341              ,(select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
177342          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
177344               AND h2.event_id = xet.event_id
177345  AND h3.asp_org_id = h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
177346   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
177347   AND fvl10.view_application_id(+) = 200
177348   AND fvl10.language(+)            = USERENV('LANG')
177349      AND fvl14.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
177350   AND fvl14.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
177351   AND fvl14.view_application_id(+) = 200
177352   AND fvl14.language(+)            = USERENV('LANG')
177353      AND fvl43.lookup_type(+)         = 'YES_NO'
177354   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
177355   AND fvl43.view_application_id(+) = 0
177356   AND fvl43.language(+)            = USERENV('LANG')
177357      AND fvl116.lookup_type(+)         = 'YES_NO'
177358   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
177359   AND fvl116.view_application_id(+) = 0
177360   AND fvl116.language(+)            = USERENV('LANG')
177361      AND fvl125.lookup_type(+)         = 'PAYMENT TYPE'
177362   AND fvl125.lookup_code(+)         = h2.PAYMENT_TYPE
177363   AND fvl125.view_application_id(+) = 200
177364   AND fvl125.language(+)            = USERENV('LANG')
177365      AND fvl177.lookup_type(+)         = 'YES_NO'
177366   AND fvl177.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
177367   AND fvl177.view_application_id(+) = 0
177368   AND fvl177.language(+)            = USERENV('LANG')
177369   
177370 )
177371 ;
177372 --
177373 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
177374 
177375       trace
177376          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
177377          ,p_level    => C_LEVEL_STATEMENT
177378          ,p_module   => l_log_module);
177379 
177380 END IF;
177381 --
177382 
177383 
177384 
177385 --
177386 INSERT INTO xla_diag_sources  --line2
177387 (
177388         event_id
177389       , ledger_id
177390       , sla_ledger_id
177391       , description_language
177392       , object_name
177393       , object_type_code
177394       , line_number
177395       , source_application_id
177396       , source_type_code
177397       , source_code
177398       , source_value
177399       , source_meaning
177400       , created_by
177401       , creation_date
177402       , last_update_date
177403       , last_updated_by
177404       , last_update_login
177405       , program_update_date
177406       , program_application_id
177407       , program_id
177408       , request_id
177409 )
177410 SELECT  event_id
177411       , p_target_ledger_id
177412       , p_sla_ledger_id
177413       , p_language
177414       , object_name
177415       , object_type_code
177416       , line_number
177417       , source_application_id
177418       , source_type_code
177419       , source_code
177420       , SUBSTR(source_value,1,1996)
177421       , SUBSTR(source_meaning ,1,200)
177422       , xla_environment_pkg.g_Usr_Id
177423       , TRUNC(SYSDATE)
177424       , TRUNC(SYSDATE)
177425       , xla_environment_pkg.g_Usr_Id
177426       , xla_environment_pkg.g_Login_Id
177427       , TRUNC(SYSDATE)
177428       , xla_environment_pkg.g_Prog_Appl_Id
177429       , xla_environment_pkg.g_Prog_Id
177430       , xla_environment_pkg.g_Req_Id
177431   FROM (
177432        SELECT xet.event_id                  event_id
177433             , l1.line_number                 line_number
177434             , CASE r
177435                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177436                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177437                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177438                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177439                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177440                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177441                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177442                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177443                 WHEN 9 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
177444                 WHEN 10 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
177445                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
177446                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177447                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177448                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177449                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177450                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177451                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177452                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177453                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177454                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177455                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177456                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177457                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177458                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177459                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177460                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177461                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
177462                 
177463                ELSE null
177464               END                           object_name
177465             , CASE r
177466                 WHEN 1 THEN 'LINE' 
177467                 WHEN 2 THEN 'LINE' 
177468                 WHEN 3 THEN 'LINE' 
177469                 WHEN 4 THEN 'LINE' 
177470                 WHEN 5 THEN 'LINE' 
177471                 WHEN 6 THEN 'LINE' 
177472                 WHEN 7 THEN 'LINE' 
177476                 WHEN 11 THEN 'LINE' 
177473                 WHEN 8 THEN 'LINE' 
177474                 WHEN 9 THEN 'LINE' 
177475                 WHEN 10 THEN 'LINE' 
177477                 WHEN 12 THEN 'LINE' 
177478                 WHEN 13 THEN 'LINE' 
177479                 WHEN 14 THEN 'LINE' 
177480                 WHEN 15 THEN 'LINE' 
177481                 WHEN 16 THEN 'LINE' 
177482                 WHEN 17 THEN 'LINE' 
177483                 WHEN 18 THEN 'LINE' 
177484                 WHEN 19 THEN 'LINE' 
177485                 WHEN 20 THEN 'LINE' 
177486                 WHEN 21 THEN 'LINE' 
177487                 WHEN 22 THEN 'LINE' 
177488                 WHEN 23 THEN 'LINE' 
177489                 WHEN 24 THEN 'LINE' 
177490                 WHEN 25 THEN 'LINE' 
177491                 WHEN 26 THEN 'LINE' 
177492                 WHEN 27 THEN 'LINE' 
177493                 
177494                 ELSE null
177495               END                           object_type_code
177496             , CASE r
177497                 WHEN 1 THEN '200' 
177498                 WHEN 2 THEN '200' 
177499                 WHEN 3 THEN '200' 
177500                 WHEN 4 THEN '200' 
177501                 WHEN 5 THEN '200' 
177502                 WHEN 6 THEN '200' 
177503                 WHEN 7 THEN '200' 
177504                 WHEN 8 THEN '200' 
177505                 WHEN 9 THEN '200' 
177506                 WHEN 10 THEN '200' 
177507                 WHEN 11 THEN '200' 
177508                 WHEN 12 THEN '200' 
177509                 WHEN 13 THEN '200' 
177510                 WHEN 14 THEN '200' 
177511                 WHEN 15 THEN '200' 
177512                 WHEN 16 THEN '200' 
177513                 WHEN 17 THEN '200' 
177514                 WHEN 18 THEN '200' 
177515                 WHEN 19 THEN '200' 
177516                 WHEN 20 THEN '200' 
177517                 WHEN 21 THEN '200' 
177518                 WHEN 22 THEN '200' 
177519                 WHEN 23 THEN '200' 
177520                 WHEN 24 THEN '200' 
177521                 WHEN 25 THEN '200' 
177522                 WHEN 26 THEN '200' 
177523                 WHEN 27 THEN '200' 
177524                 
177525                 ELSE null
177526               END                           source_application_id
177527             , 'S'             source_type_code
177528             , CASE r
177529                 WHEN 1 THEN 'AID_DIST_CCID' 
177530                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
177531                 WHEN 3 THEN 'POD_CCID' 
177532                 WHEN 4 THEN 'PO_VARIANCE_ACCOUNT' 
177533                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
177534                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
177535                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
177536                 WHEN 8 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
177537                 WHEN 9 THEN 'TAX_LINE_ID' 
177538                 WHEN 10 THEN 'REC_NREC_TAX_DIST_ID' 
177539                 WHEN 11 THEN 'SUMMARY_TAX_LINE_ID' 
177540                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
177541                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
177542                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
177543                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
177544                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
177545                 WHEN 17 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
177546                 WHEN 18 THEN 'APHD_AMOUNT' 
177547                 WHEN 19 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
177548                 WHEN 20 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
177549                 WHEN 21 THEN 'APHD_PAYMENT_BASE_AMT' 
177550                 WHEN 22 THEN 'APHD_INVOICE_BASE_AMT' 
177551                 WHEN 23 THEN 'INV_EXCHANGE_DATE' 
177552                 WHEN 24 THEN 'INV_EXCHANGE_RATE' 
177553                 WHEN 25 THEN 'INV_EXCHANGE_RATE_TYPE' 
177554                 WHEN 26 THEN 'INV_PMT_BASE_AMT_DIFF' 
177555                 WHEN 27 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
177556                 
177557                 ELSE null
177558               END                           source_code
177559             , CASE r
177560                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
177561                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
177562                 WHEN 3 THEN TO_CHAR(l1.POD_CCID)
177563                 WHEN 4 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
177564                 WHEN 5 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
177565                 WHEN 6 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
177566                 WHEN 7 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
177567                 WHEN 8 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
177568                 WHEN 9 THEN TO_CHAR(l4.TAX_LINE_ID)
177569                 WHEN 10 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
177570                 WHEN 11 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
177571                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
177572                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
177573                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
177574                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
177575                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
177576                 WHEN 17 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
177577                 WHEN 18 THEN TO_CHAR(l1.APHD_AMOUNT)
177578                 WHEN 19 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
177579                 WHEN 20 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
177580                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
177581                 WHEN 22 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
177582                 WHEN 23 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
177583                 WHEN 24 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
177584                 WHEN 25 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
177585                 WHEN 26 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
177586                 WHEN 27 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
177587                 
177588                 ELSE null
177589               END                           source_value
177590             , CASE r
177591                 WHEN 2 THEN fvl28.meaning
177595                 ELSE null
177592                 WHEN 8 THEN fvl85.meaning
177593                 WHEN 17 THEN fvl101.meaning
177594                 
177596               END               source_meaning
177597          FROM  xla_events_gt     xet  
177598         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
177599         , ZX_AP_DEF_TAX_EXTRACT_V  l4
177600         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
177601   , fnd_lookup_values    fvl28
177602   , fnd_lookup_values    fvl85
177603   , fnd_lookup_values    fvl101
177604             , (select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
177605         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
177606           AND xet.event_class_code = C_EVENT_CLASS_CODE
177607             AND l1.event_id          = xet.event_id
177608  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)  AND l1.aid_detail_tax_dist_id = l5.rec_nrec_tax_dist_id (+)    AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
177609   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
177610   AND fvl28.view_application_id(+) = 200
177611   AND fvl28.language(+)            = USERENV('LANG')
177612      AND fvl85.lookup_type(+)         = 'YES_NO'
177613   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
177614   AND fvl85.view_application_id(+) = 0
177615   AND fvl85.language(+)            = USERENV('LANG')
177616      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
177617   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
177618   AND fvl101.view_application_id(+) = 200
177619   AND fvl101.language(+)            = USERENV('LANG')
177620   
177621 )
177622 ;
177623 --
177624 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
177625 
177626       trace
177627          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
177628          ,p_level    => C_LEVEL_STATEMENT
177629          ,p_module   => l_log_module);
177630 
177631 END IF;
177632 
177633 
177634 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
177635       trace
177636          (p_msg      => 'END of insert_sources_256'
177637          ,p_level    => C_LEVEL_PROCEDURE
177638          ,p_module   => l_log_module);
177639 END IF;
177640 EXCEPTION
177641   WHEN xla_exceptions_pkg.application_exception THEN
177642       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
177643             trace
177644                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
177645                ,p_level    => C_LEVEL_EXCEPTION
177646                ,p_module   => l_log_module);
177647       END IF;
177648       RAISE;
177649   WHEN OTHERS THEN
177650       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
177651             trace
177652                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
177653                ,p_level    => C_LEVEL_EXCEPTION
177654                ,p_module   => l_log_module);
177655        END IF;
177656        xla_exceptions_pkg.raise_message
177657            (p_location => 'XLA_00200_AAD_S_000012_PKG.insert_sources_256');
177658 END insert_sources_256;
177659 --
177660 
177661 ---------------------------------------
177662 --
177663 -- PRIVATE FUNCTION
177664 --         EventClass_256
177665 --
177666 ----------------------------------------
177667 --
177668 FUNCTION EventClass_256
177669        (p_application_id         IN NUMBER
177670        ,p_base_ledger_id         IN NUMBER
177671        ,p_target_ledger_id       IN NUMBER
177672        ,p_language               IN VARCHAR2
177673        ,p_currency_code          IN VARCHAR2
177674        ,p_sla_ledger_id          IN NUMBER
177675        ,p_pad_start_date         IN DATE
177676        ,p_pad_end_date           IN DATE
177677        ,p_primary_ledger_id      IN NUMBER)
177678 RETURN BOOLEAN IS
177679 --
177680 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
177681 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'REFUNDS';
177682 
177683 l_calculate_acctd_flag   VARCHAR2(1) :='N';
177684 l_calculate_g_l_flag     VARCHAR2(1) :='N';
177685 --
177686 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177687 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177688 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
177689 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
177690 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177691 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
177692 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
177693 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177694 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
177695 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
177696 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177697 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177698 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177699 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
177700 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
177701 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
177702 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
177703 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
177704 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
177705 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
177706 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
177707 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
177708 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
177709 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
177710 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
177714 l_previous_event_id                    NUMBER;
177711 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
177712 
177713 l_event_id                             NUMBER;
177715 l_first_event_id                       NUMBER;
177716 l_last_event_id                        NUMBER;
177717 
177718 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
177719 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
177720 --
177721 --
177722 l_result                    BOOLEAN := TRUE;
177723 l_rows                      NUMBER  := 1000;
177724 l_event_type_name           VARCHAR2(80) := 'All';
177725 l_event_class_name          VARCHAR2(80) := 'Refunds';
177726 l_description               VARCHAR2(4000);
177727 l_transaction_reversal      NUMBER;
177728 l_ae_header_id              NUMBER;
177729 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
177730 l_log_module                VARCHAR2(240);
177731 --
177732 l_acct_reversal_source      VARCHAR2(30);
177733 l_trx_reversal_source       VARCHAR2(30);
177734 
177735 l_continue_with_lines       BOOLEAN := TRUE;
177736 --
177737 l_acc_rev_gl_date_source    DATE;                      -- 4262811
177738 --
177739 type t_array_event_id is table of number index by binary_integer;
177740 
177741 l_rec_array_event                    t_rec_array_event;
177742 l_null_rec_array_event               t_rec_array_event;
177743 l_array_ae_header_id                 xla_number_array_type;
177744 l_actual_flag                        VARCHAR2(1) := NULL;
177745 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
177746 l_balance_type_code                  VARCHAR2(1) :=NULL;
177747 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
177748 
177749 --
177750 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
177751 --
177752 
177753 TYPE t_array_source_4 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
177754 TYPE t_array_source_8 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
177755 TYPE t_array_source_10 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
177756 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
177757 TYPE t_array_source_13 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
177758 TYPE t_array_source_14 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
177759 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
177760 TYPE t_array_source_31 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
177761 TYPE t_array_source_32 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
177762 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
177763 TYPE t_array_source_34 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
177764 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
177765 TYPE t_array_source_43 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
177766 TYPE t_array_source_45 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
177767 TYPE t_array_source_57 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
177768 TYPE t_array_source_88 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
177769 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
177770 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
177771 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
177772 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
177773 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
177774 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
177775 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
177776 TYPE t_array_source_125 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
177777 TYPE t_array_source_175 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
177778 TYPE t_array_source_176 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
177779 TYPE t_array_source_177 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
177780 
177781 TYPE t_array_source_25 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
177782 TYPE t_array_source_28 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
177783 TYPE t_array_source_41 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
177784 TYPE t_array_source_42 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
177785 TYPE t_array_source_58 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
177786 TYPE t_array_source_60 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
177787 TYPE t_array_source_72 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
177788 TYPE t_array_source_85 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
177789 TYPE t_array_source_91 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
177790 TYPE t_array_source_92 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
177791 TYPE t_array_source_93 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
177795 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
177792 TYPE t_array_source_96 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
177793 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
177794 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
177796 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
177797 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
177798 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
177799 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
177800 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
177801 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
177802 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
177803 TYPE t_array_source_146 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
177804 TYPE t_array_source_147 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
177805 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
177806 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
177807 TYPE t_array_source_161 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
177808 
177809 l_array_source_4              t_array_source_4;
177810 l_array_source_8              t_array_source_8;
177811 l_array_source_10              t_array_source_10;
177812 l_array_source_10_meaning      t_array_lookup_meaning;
177813 l_array_source_12              t_array_source_12;
177814 l_array_source_13              t_array_source_13;
177815 l_array_source_14              t_array_source_14;
177816 l_array_source_14_meaning      t_array_lookup_meaning;
177817 l_array_source_30              t_array_source_30;
177818 l_array_source_31              t_array_source_31;
177819 l_array_source_32              t_array_source_32;
177820 l_array_source_33              t_array_source_33;
177821 l_array_source_34              t_array_source_34;
177822 l_array_source_40              t_array_source_40;
177823 l_array_source_43              t_array_source_43;
177824 l_array_source_43_meaning      t_array_lookup_meaning;
177825 l_array_source_45              t_array_source_45;
177826 l_array_source_57              t_array_source_57;
177827 l_array_source_88              t_array_source_88;
177828 l_array_source_113              t_array_source_113;
177829 l_array_source_114              t_array_source_114;
177830 l_array_source_116              t_array_source_116;
177831 l_array_source_116_meaning      t_array_lookup_meaning;
177832 l_array_source_117              t_array_source_117;
177833 l_array_source_120              t_array_source_120;
177834 l_array_source_121              t_array_source_121;
177835 l_array_source_122              t_array_source_122;
177836 l_array_source_125              t_array_source_125;
177837 l_array_source_125_meaning      t_array_lookup_meaning;
177838 l_array_source_175              t_array_source_175;
177839 l_array_source_176              t_array_source_176;
177840 l_array_source_177              t_array_source_177;
177841 l_array_source_177_meaning      t_array_lookup_meaning;
177842 
177843 l_array_source_25      t_array_source_25;
177844 l_array_source_28      t_array_source_28;
177845 l_array_source_28_meaning      t_array_lookup_meaning;
177846 l_array_source_41      t_array_source_41;
177847 l_array_source_42      t_array_source_42;
177848 l_array_source_58      t_array_source_58;
177849 l_array_source_60      t_array_source_60;
177850 l_array_source_72      t_array_source_72;
177851 l_array_source_85      t_array_source_85;
177852 l_array_source_85_meaning      t_array_lookup_meaning;
177853 l_array_source_91      t_array_source_91;
177854 l_array_source_92      t_array_source_92;
177855 l_array_source_93      t_array_source_93;
177856 l_array_source_96      t_array_source_96;
177857 l_array_source_97      t_array_source_97;
177858 l_array_source_98      t_array_source_98;
177859 l_array_source_99      t_array_source_99;
177860 l_array_source_100      t_array_source_100;
177861 l_array_source_101      t_array_source_101;
177862 l_array_source_101_meaning      t_array_lookup_meaning;
177863 l_array_source_102      t_array_source_102;
177864 l_array_source_107      t_array_source_107;
177865 l_array_source_115      t_array_source_115;
177866 l_array_source_118      t_array_source_118;
177867 l_array_source_119      t_array_source_119;
177868 l_array_source_146      t_array_source_146;
177869 l_array_source_147      t_array_source_147;
177870 l_array_source_148      t_array_source_148;
177871 l_array_source_156      t_array_source_156;
177872 l_array_source_161      t_array_source_161;
177873 
177874 --
177875 CURSOR header_cur
177876 IS
177877 SELECT /*+ leading(xet) cardinality(xet,1) */
177878 -- Event Class Code: REFUNDS
177879     xet.entity_id
177880    ,xet.legal_entity_id
177881    ,xet.entity_code
177882    ,xet.transaction_number
177883    ,xet.event_id
177884    ,xet.event_class_code
177885    ,xet.event_type_code
177886    ,xet.event_number
177887    ,xet.event_date
177888    ,xet.transaction_date
177889    ,xet.reference_num_1
177890    ,xet.reference_num_2
177891    ,xet.reference_num_3
177892    ,xet.reference_num_4
177893    ,xet.reference_char_1
177894    ,xet.reference_char_2
177895    ,xet.reference_char_3
177896    ,xet.reference_char_4
177897    ,xet.reference_date_1
177898    ,xet.reference_date_2
177899    ,xet.reference_date_3
177900    ,xet.reference_date_4
177901    ,xet.event_created_by
177905   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_10
177902    ,xet.budgetary_control_flag 
177903   , h2.AC_DOC_SEQUENCE_VALUE    source_4
177904   , h2.AC_CURRENCY_CODE    source_8
177906   , fvl10.meaning   source_10_meaning
177907   , h2.CGAC_AP_ASSET_CCID    source_12
177908   , h3.FSP_DISC_TAKEN_CCID    source_13
177909   , h3.ASP_DISCOUNT_DIST_METHOD    source_14
177910   , fvl14.meaning   source_14_meaning
177911   , h2.CGAC_CASH_CLEARING_CCID    source_30
177912   , h2.CGAC_GAIN_CCID    source_31
177913   , h3.ASP_GAIN_CCID    source_32
177914   , h2.CGAC_LOSS_CCID    source_33
177915   , h3.ASP_LOSS_CCID    source_34
177916   , h3.ASP_DISC_TAKEN_CCID    source_40
177917   , h3.ASP_AUTO_OFFSET_FLAG    source_43
177918   , fvl43.meaning   source_43_meaning
177919   , h3.ASP_ROUNDING_ERROR_CCID    source_45
177920   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_57
177921   , h2.THIRD_PARTY_TYPE    source_88
177922   , h2.AC_VENDOR_ID    source_113
177923   , h2.AC_VENDOR_SITE_ID    source_114
177924   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_116
177925   , fvl116.meaning   source_116_meaning
177926   , h2.AC_FUTURE_PAY_DUE_DATE    source_117
177927   , h2.AC_EXCHANGE_DATE    source_120
177928   , h2.AC_EXCHANGE_RATE    source_121
177929   , h2.AC_EXCHANGE_RATE_TYPE    source_122
177930   , h2.PAYMENT_TYPE    source_125
177931   , fvl125.meaning   source_125_meaning
177932   , h2.AC_DOC_CATEGORY_CODE    source_175
177933   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_176
177934   , h2.TRANSAC_REVERSAL_FLAG    source_177
177935   , fvl177.meaning   source_177_meaning
177936   FROM xla_events_gt     xet 
177937   , AP_PAYMENT_EXTRACT_HEADER_V  h2
177938   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
177939   , fnd_lookup_values    fvl10
177940   , fnd_lookup_values    fvl14
177941   , fnd_lookup_values    fvl43
177942   , fnd_lookup_values    fvl116
177943   , fnd_lookup_values    fvl125
177944   , fnd_lookup_values    fvl177
177945  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
177946    and xet.event_class_code = C_EVENT_CLASS_CODE
177947    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
177948  AND h3.asp_org_id = h2.ac_org_id   AND fvl10.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
177949   AND fvl10.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
177950   AND fvl10.view_application_id(+) = 200
177951   AND fvl10.language(+)            = USERENV('LANG')
177952      AND fvl14.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
177953   AND fvl14.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
177954   AND fvl14.view_application_id(+) = 200
177955   AND fvl14.language(+)            = USERENV('LANG')
177956      AND fvl43.lookup_type(+)         = 'YES_NO'
177957   AND fvl43.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
177958   AND fvl43.view_application_id(+) = 0
177959   AND fvl43.language(+)            = USERENV('LANG')
177960      AND fvl116.lookup_type(+)         = 'YES_NO'
177961   AND fvl116.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
177962   AND fvl116.view_application_id(+) = 0
177963   AND fvl116.language(+)            = USERENV('LANG')
177964      AND fvl125.lookup_type(+)         = 'PAYMENT TYPE'
177965   AND fvl125.lookup_code(+)         = h2.PAYMENT_TYPE
177966   AND fvl125.view_application_id(+) = 200
177967   AND fvl125.language(+)            = USERENV('LANG')
177968      AND fvl177.lookup_type(+)         = 'YES_NO'
177969   AND fvl177.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
177970   AND fvl177.view_application_id(+) = 0
177971   AND fvl177.language(+)            = USERENV('LANG')
177972   
177973  ORDER BY event_id
177974 ;
177975 
177976 
177977 --
177978 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
177979 IS
177980 SELECT  /*+ leading(xet) cardinality(xet,1) */
177981 -- Event Class Code: REFUNDS
177982     xet.entity_id
177983    ,xet.legal_entity_id
177984    ,xet.entity_code
177985    ,xet.transaction_number
177986    ,xet.event_id
177987    ,xet.event_class_code
177988    ,xet.event_type_code
177989    ,xet.event_number
177990    ,xet.event_date
177991    ,xet.transaction_date
177992    ,xet.reference_num_1
177993    ,xet.reference_num_2
177994    ,xet.reference_num_3
177995    ,xet.reference_num_4
177996    ,xet.reference_char_1
177997    ,xet.reference_char_2
177998    ,xet.reference_char_3
177999    ,xet.reference_char_4
178000    ,xet.reference_date_1
178001    ,xet.reference_date_2
178002    ,xet.reference_date_3
178003    ,xet.reference_date_4
178004    ,xet.event_created_by
178005    ,xet.budgetary_control_flag
178006  , l1.LINE_NUMBER  
178007   , l1.AID_DIST_CCID    source_25
178008   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_28
178009   , fvl28.meaning   source_28_meaning
178010   , l1.POD_CCID    source_41
178011   , l1.PO_VARIANCE_ACCOUNT    source_42
178012   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_58
178013   , l1.DISTRIBUTION_LINK_TYPE    source_60
178014   , l1.AI_INVOICE_CURRENCY_CODE    source_72
178015   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_85
178016   , fvl85.meaning   source_85_meaning
178017   , l4.TAX_LINE_ID    source_91
178018   , l5.REC_NREC_TAX_DIST_ID    source_92
178019   , l4.SUMMARY_TAX_LINE_ID    source_93
178020   , l1.BUS_FLOW_AP_APP_ID    source_96
178021   , l1.BUS_FLOW_INV_DIST_TYPE    source_97
178022   , l1.BUS_FLOW_INV_ENTITY_CODE    source_98
178023   , l1.BUS_FLOW_INV_DIST_ID    source_99
178024   , l1.BUS_FLOW_INV_ID    source_100
178025   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_101
178026   , fvl101.meaning   source_101_meaning
178027   , l1.APHD_AMOUNT    source_102
178028   , l1.APHD_PAYMENT_HIST_DIST_ID    source_107
178029   , l1.APHD_REV_PAY_HIST_DIST_ID    source_115
178030   , l1.APHD_PAYMENT_BASE_AMT    source_118
178031   , l1.APHD_INVOICE_BASE_AMT    source_119
178032   , l1.INV_EXCHANGE_DATE    source_146
178033   , l1.INV_EXCHANGE_RATE    source_147
178034   , l1.INV_EXCHANGE_RATE_TYPE    source_148
178035   , l1.INV_PMT_BASE_AMT_DIFF    source_156
178039   , ZX_AP_DEF_TAX_EXTRACT_V  l4
178036   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_161
178037   FROM xla_events_gt     xet 
178038   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
178040   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
178041   , fnd_lookup_values    fvl28
178042   , fnd_lookup_values    fvl85
178043   , fnd_lookup_values    fvl101
178044  WHERE xet.event_id between x_first_event_id and x_last_event_id
178045    and xet.event_date between p_pad_start_date and p_pad_end_date
178046    and xet.event_class_code = C_EVENT_CLASS_CODE
178047    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
178048  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)  AND l1.AID_DETAIL_TAX_DIST_ID = l5.REC_NREC_TAX_DIST_ID (+)    AND fvl28.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
178049   AND fvl28.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
178050   AND fvl28.view_application_id(+) = 200
178051   AND fvl28.language(+)            = USERENV('LANG')
178052      AND fvl85.lookup_type(+)         = 'YES_NO'
178053   AND fvl85.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
178054   AND fvl85.view_application_id(+) = 0
178055   AND fvl85.language(+)            = USERENV('LANG')
178056      AND fvl101.lookup_type(+)         = 'PAY_DIST_TYPES'
178057   AND fvl101.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
178058   AND fvl101.view_application_id(+) = 200
178059   AND fvl101.language(+)            = USERENV('LANG')
178060   ;
178061 
178062 --
178063 BEGIN
178064 IF g_log_enabled THEN
178065    l_log_module := C_DEFAULT_MODULE||'.EventClass_256';
178066 END IF;
178067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
178068    trace
178069       (p_msg      => 'BEGIN of EventClass_256'
178070       ,p_level    => C_LEVEL_PROCEDURE
178071       ,p_module   => l_log_module);
178072 END IF;
178073 
178074 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
178075    trace
178076       (p_msg      => 'p_application_id = '||p_application_id||
178077                      ' - p_base_ledger_id = '||p_base_ledger_id||
178078                      ' - p_target_ledger_id  = '||p_target_ledger_id||
178079                      ' - p_language = '||p_language||
178080                      ' - p_currency_code = '||p_currency_code||
178081                      ' - p_sla_ledger_id = '||p_sla_ledger_id
178082       ,p_level    => C_LEVEL_STATEMENT
178083       ,p_module   => l_log_module);
178084 END IF;
178085 --
178086 -- initialze arrays
178087 --
178088 g_array_event.DELETE;
178089 l_rec_array_event := l_null_rec_array_event;
178090 --
178091 --------------------------------------
178092 -- 4262811 Initialze MPA Line Number
178093 --------------------------------------
178094 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
178095 
178096 --
178097 
178098 --
178099 OPEN header_cur;
178100 --
178101 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
178102    trace
178103    (p_msg      => 'SQL - FETCH header_cur'
178104    ,p_level    => C_LEVEL_STATEMENT
178105    ,p_module   => l_log_module);
178106 END IF;
178107 --
178108 LOOP
178109 FETCH header_cur BULK COLLECT INTO
178110         l_array_entity_id
178111       , l_array_legal_entity_id
178112       , l_array_entity_code
178113       , l_array_transaction_num
178114       , l_array_event_id
178115       , l_array_class_code
178116       , l_array_event_type
178117       , l_array_event_number
178118       , l_array_event_date
178119       , l_array_transaction_date
178120       , l_array_reference_num_1
178121       , l_array_reference_num_2
178122       , l_array_reference_num_3
178123       , l_array_reference_num_4
178124       , l_array_reference_char_1
178125       , l_array_reference_char_2
178126       , l_array_reference_char_3
178127       , l_array_reference_char_4
178128       , l_array_reference_date_1
178129       , l_array_reference_date_2
178130       , l_array_reference_date_3
178131       , l_array_reference_date_4
178132       , l_array_event_created_by
178133       , l_array_budgetary_control_flag 
178134       , l_array_source_4
178135       , l_array_source_8
178136       , l_array_source_10
178137       , l_array_source_10_meaning
178138       , l_array_source_12
178139       , l_array_source_13
178140       , l_array_source_14
178141       , l_array_source_14_meaning
178142       , l_array_source_30
178143       , l_array_source_31
178144       , l_array_source_32
178145       , l_array_source_33
178146       , l_array_source_34
178147       , l_array_source_40
178148       , l_array_source_43
178149       , l_array_source_43_meaning
178150       , l_array_source_45
178151       , l_array_source_57
178152       , l_array_source_88
178153       , l_array_source_113
178154       , l_array_source_114
178155       , l_array_source_116
178156       , l_array_source_116_meaning
178157       , l_array_source_117
178158       , l_array_source_120
178159       , l_array_source_121
178160       , l_array_source_122
178161       , l_array_source_125
178162       , l_array_source_125_meaning
178163       , l_array_source_175
178164       , l_array_source_176
178165       , l_array_source_177
178166       , l_array_source_177_meaning
178167       LIMIT l_rows;
178168 --
178169 IF (C_LEVEL_EVENT >= g_log_level) THEN
178170    trace
178171    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
178172    ,p_level    => C_LEVEL_EVENT
178173    ,p_module   => l_log_module);
178174 END IF;
178175 --
178176 EXIT WHEN l_array_entity_id.COUNT = 0;
178177 
178178 -- initialize arrays
178179 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
178180 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
178181 
178182 --
178183 -- Bug 4458708
178184 --
178185 XLA_AE_LINES_PKG.g_LineNumber := 0;
178186 
178187 
178188 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
178192 -- fetched in header cursor
178189 g_last_hdr_idx := l_array_event_id.LAST;
178190 --
178191 -- loop for the headers. Each iteration is for each header extract row
178193 --
178194 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
178195 
178196 --
178197 -- set event info as cache for other routines to refer event attributes
178198 --
178199 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
178200    (p_application_id           => p_application_id
178201    ,p_primary_ledger_id        => p_primary_ledger_id
178202    ,p_base_ledger_id           => p_base_ledger_id
178203    ,p_target_ledger_id         => p_target_ledger_id
178204    ,p_entity_id                => l_array_entity_id(hdr_idx)
178205    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
178206    ,p_entity_code              => l_array_entity_code(hdr_idx)
178207    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
178208    ,p_event_id                 => l_array_event_id(hdr_idx)
178209    ,p_event_class_code         => l_array_class_code(hdr_idx)
178210    ,p_event_type_code          => l_array_event_type(hdr_idx)
178211    ,p_event_number             => l_array_event_number(hdr_idx)
178212    ,p_event_date               => l_array_event_date(hdr_idx)
178213    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
178214    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
178215    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
178216    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
178217    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
178218    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
178219    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
178220    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
178221    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
178222    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
178223    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
178224    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
178225    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
178226    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
178227    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
178228 
178229 --
178230 -- set the status of entry to C_VALID (0)
178231 --
178232 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
178233 
178234 --
178235 -- initialize a row for ae header
178236 --
178237 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
178238 
178239 l_event_id := l_array_event_id(hdr_idx);
178240 
178241 --
178242 -- storing the hdr_idx for event. May be used by line cursor.
178243 --
178244 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
178245 
178246 --
178247 -- store sources from header extract. This can be improved to
178248 -- store only those sources from header extract that may be used in lines
178249 --
178250 
178251 g_array_event(l_event_id).array_value_num('source_4') := l_array_source_4(hdr_idx);
178252 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
178253 g_array_event(l_event_id).array_value_char('source_10') := l_array_source_10(hdr_idx);
178254 g_array_event(l_event_id).array_value_char('source_10_meaning') := l_array_source_10_meaning(hdr_idx);
178255 g_array_event(l_event_id).array_value_num('source_12') := l_array_source_12(hdr_idx);
178256 g_array_event(l_event_id).array_value_num('source_13') := l_array_source_13(hdr_idx);
178257 g_array_event(l_event_id).array_value_char('source_14') := l_array_source_14(hdr_idx);
178258 g_array_event(l_event_id).array_value_char('source_14_meaning') := l_array_source_14_meaning(hdr_idx);
178259 g_array_event(l_event_id).array_value_num('source_30') := l_array_source_30(hdr_idx);
178260 g_array_event(l_event_id).array_value_num('source_31') := l_array_source_31(hdr_idx);
178261 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
178262 g_array_event(l_event_id).array_value_num('source_33') := l_array_source_33(hdr_idx);
178263 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
178264 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
178265 g_array_event(l_event_id).array_value_char('source_43') := l_array_source_43(hdr_idx);
178266 g_array_event(l_event_id).array_value_char('source_43_meaning') := l_array_source_43_meaning(hdr_idx);
178267 g_array_event(l_event_id).array_value_num('source_45') := l_array_source_45(hdr_idx);
178268 g_array_event(l_event_id).array_value_char('source_57') := l_array_source_57(hdr_idx);
178269 g_array_event(l_event_id).array_value_char('source_88') := l_array_source_88(hdr_idx);
178270 g_array_event(l_event_id).array_value_num('source_113') := l_array_source_113(hdr_idx);
178271 g_array_event(l_event_id).array_value_num('source_114') := l_array_source_114(hdr_idx);
178272 g_array_event(l_event_id).array_value_char('source_116') := l_array_source_116(hdr_idx);
178273 g_array_event(l_event_id).array_value_char('source_116_meaning') := l_array_source_116_meaning(hdr_idx);
178274 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
178275 g_array_event(l_event_id).array_value_date('source_120') := l_array_source_120(hdr_idx);
178276 g_array_event(l_event_id).array_value_num('source_121') := l_array_source_121(hdr_idx);
178277 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
178278 g_array_event(l_event_id).array_value_char('source_125') := l_array_source_125(hdr_idx);
178279 g_array_event(l_event_id).array_value_char('source_125_meaning') := l_array_source_125_meaning(hdr_idx);
178280 g_array_event(l_event_id).array_value_char('source_175') := l_array_source_175(hdr_idx);
178281 g_array_event(l_event_id).array_value_num('source_176') := l_array_source_176(hdr_idx);
178282 g_array_event(l_event_id).array_value_char('source_177') := l_array_source_177(hdr_idx);
178283 g_array_event(l_event_id).array_value_char('source_177_meaning') := l_array_source_177_meaning(hdr_idx);
178284 
178285 --
178286 -- initilaize the status of ae headers for diffrent balance types
178290 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
178287 -- the status is initialised to C_NOT_CREATED (2)
178288 --
178289 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
178291 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
178292 
178293 --
178294 -- call api to validate and store accounting attributes for header
178295 --
178296 
178297 ------------------------------------------------------------
178298 -- Accrual Reversal : to get date for Standard Source (NONE)
178299 ------------------------------------------------------------
178300 l_acc_rev_gl_date_source := NULL;
178301 
178302      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
178303       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_175');
178304      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
178305       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_176');
178306      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
178307       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_4');
178308      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
178309       l_rec_acct_attrs.array_date_value(4) := 
178310 xla_ae_sources_pkg.GetSystemSourceDate(
178311    p_source_code           => 'XLA_EVENT_DATE'
178312  , p_source_type_code      => 'Y'
178313  , p_source_application_id =>  602
178314 );
178315      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
178316       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_177');
178317 
178318 
178319 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
178320 
178321 XLA_AE_HEADER_PKG.SetJeCategoryName;
178322 
178323 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
178324 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
178325 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
178326 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
178327 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
178328 
178329 
178330 -- No header level analytical criteria
178331 
178332 --
178333 --accounting attribute enhancement, bug 3612931
178334 --
178335 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_177'), 1,30);
178336 
178337 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
178338    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
178339 
178340    xla_accounting_err_pkg.build_message
178341       (p_appli_s_name            => 'XLA'
178342       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
178343       ,p_token_1                 => 'ACCT_ATTR_NAME'
178344       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
178345       ,p_token_2                 => 'PRODUCT_NAME'
178346       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178347       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
178348       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
178349       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
178350 
178351 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
178352    --
178353    -- following sets the accounting attributes needed to reverse
178354    -- accounting for a distributeion
178355    --
178356    xla_ae_lines_pkg.SetTrxReversalAttrs
178357       (p_event_id              => l_event_id
178358       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
178359       ,p_trx_reversal_source   => l_trx_reversal_source);
178360 
178361 END IF;
178362 
178363 
178364 ----------------------------------------------------------------
178365 -- 4262811 -  update the header statuses to invalid in need be
178366 ----------------------------------------------------------------
178367 --
178368 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
178369 
178370 
178371   -----------------------------------------------
178372   -- No accrual reversal for the event class/type
178373   -----------------------------------------------
178374 ----------------------------------------------------------------
178375 
178376 --
178377 -- this ends the header loop iteration for one bulk fetch
178378 --
178379 END LOOP;
178380 
178381 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
178382 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
178383 
178384 --
178385 -- insert dummy rows into lines gt table that were created due to
178386 -- transaction reversals
178387 --
178388 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
178389    l_result := XLA_AE_LINES_PKG.InsertLines;
178390 END IF;
178391 
178392 --
178393 -- reset the temp_line_num for each set of events fetched from header
178394 -- cursor rather than doing it for each new event in line cursor
178395 -- Bug 3939231
178396 --
178397 xla_ae_lines_pkg.g_temp_line_num := 0;
178398 
178399 
178400 
178401 --
178402 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
178403 --
178404 --
178405 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
178406 
178407       trace
178408          (p_msg      => 'SQL - FETCH line_cur'
178409          ,p_level    => C_LEVEL_STATEMENT
178410          ,p_module   => l_log_module);
178411 
178412 END IF;
178413 --
178414 --
178415 LOOP
178416   --
178417   FETCH line_cur BULK COLLECT INTO
178418         l_array_entity_id
178422       , l_array_event_id
178419       , l_array_legal_entity_id
178420       , l_array_entity_code
178421       , l_array_transaction_num
178423       , l_array_class_code
178424       , l_array_event_type
178425       , l_array_event_number
178426       , l_array_event_date
178427       , l_array_transaction_date
178428       , l_array_reference_num_1
178429       , l_array_reference_num_2
178430       , l_array_reference_num_3
178431       , l_array_reference_num_4
178432       , l_array_reference_char_1
178433       , l_array_reference_char_2
178434       , l_array_reference_char_3
178435       , l_array_reference_char_4
178436       , l_array_reference_date_1
178437       , l_array_reference_date_2
178438       , l_array_reference_date_3
178439       , l_array_reference_date_4
178440       , l_array_event_created_by
178441       , l_array_budgetary_control_flag
178442       , l_array_extract_line_num 
178443       , l_array_source_25
178444       , l_array_source_28
178445       , l_array_source_28_meaning
178446       , l_array_source_41
178447       , l_array_source_42
178448       , l_array_source_58
178449       , l_array_source_60
178450       , l_array_source_72
178451       , l_array_source_85
178452       , l_array_source_85_meaning
178453       , l_array_source_91
178454       , l_array_source_92
178455       , l_array_source_93
178456       , l_array_source_96
178457       , l_array_source_97
178458       , l_array_source_98
178459       , l_array_source_99
178460       , l_array_source_100
178461       , l_array_source_101
178462       , l_array_source_101_meaning
178463       , l_array_source_102
178464       , l_array_source_107
178465       , l_array_source_115
178466       , l_array_source_118
178467       , l_array_source_119
178468       , l_array_source_146
178469       , l_array_source_147
178470       , l_array_source_148
178471       , l_array_source_156
178472       , l_array_source_161
178473       LIMIT l_rows;
178474 
178475   --
178476   IF (C_LEVEL_EVENT >= g_log_level) THEN
178477             trace
178478                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
178479                ,p_level    => C_LEVEL_EVENT
178480                ,p_module   => l_log_module);
178481   END IF;
178482   --
178483   EXIT WHEN l_array_entity_id.count = 0;
178484 
178485   XLA_AE_LINES_PKG.g_rec_lines := null;
178486 
178487 --
178488 -- Bug 4458708
178489 --
178490 XLA_AE_LINES_PKG.g_LineNumber := 0;
178491 --
178492 --
178493 
178494 FOR Idx IN 1..l_array_event_id.count LOOP
178495    --
178496    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
178497    --
178498    l_event_id := l_array_event_id(idx);  -- 5648433
178499 
178500    --
178501    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
178502    --
178503 
178504    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
178505              (g_array_event(l_event_id).array_value_num('header_index'))
178506          ,'N'
178507          ) <> 'Y'
178508    THEN
178509       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
178510          trace
178511             (p_msg      => 'Trancaction revesal option is not Y '
178512             ,p_level    => C_LEVEL_STATEMENT
178513             ,p_module   => l_log_module);
178514       END IF;
178515 
178516 --
178517 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
178518 --
178519 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
178520 --
178521 -- set event info as cache for other routines to refer event attributes
178522 --
178523 
178524 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
178525    l_previous_event_id := l_event_id;
178526 
178527    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
178528       (p_application_id           => p_application_id
178529       ,p_primary_ledger_id        => p_primary_ledger_id
178530       ,p_base_ledger_id           => p_base_ledger_id
178531       ,p_target_ledger_id         => p_target_ledger_id
178532       ,p_entity_id                => l_array_entity_id(Idx)
178533       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
178534       ,p_entity_code              => l_array_entity_code(Idx)
178535       ,p_transaction_num          => l_array_transaction_num(Idx)
178536       ,p_event_id                 => l_array_event_id(Idx)
178537       ,p_event_class_code         => l_array_class_code(Idx)
178538       ,p_event_type_code          => l_array_event_type(Idx)
178539       ,p_event_number             => l_array_event_number(Idx)
178540       ,p_event_date               => l_array_event_date(Idx)
178541       ,p_transaction_date         => l_array_transaction_date(Idx)
178542       ,p_reference_num_1          => l_array_reference_num_1(Idx)
178543       ,p_reference_num_2          => l_array_reference_num_2(Idx)
178544       ,p_reference_num_3          => l_array_reference_num_3(Idx)
178545       ,p_reference_num_4          => l_array_reference_num_4(Idx)
178546       ,p_reference_char_1         => l_array_reference_char_1(Idx)
178547       ,p_reference_char_2         => l_array_reference_char_2(Idx)
178548       ,p_reference_char_3         => l_array_reference_char_3(Idx)
178549       ,p_reference_char_4         => l_array_reference_char_4(Idx)
178550       ,p_reference_date_1         => l_array_reference_date_1(Idx)
178551       ,p_reference_date_2         => l_array_reference_date_2(Idx)
178552       ,p_reference_date_3         => l_array_reference_date_3(Idx)
178553       ,p_reference_date_4         => l_array_reference_date_4(Idx)
178554       ,p_event_created_by         => l_array_event_created_by(Idx)
178555       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
178556        --
178557 END IF;
178558 
178559 
178560 
178561 --
178565 
178562 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
178563 
178564 l_acct_reversal_source := SUBSTR(l_array_source_58(Idx), 1,30);
178566 IF l_continue_with_lines THEN
178567    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
178568       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
178569 
178570       xla_accounting_err_pkg.build_message
178571          (p_appli_s_name            => 'XLA'
178572          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
178573          ,p_token_1                 => 'LINE_NUMBER'
178574          ,p_value_1                 => l_array_extract_line_num(Idx)
178575          ,p_token_2                 => 'PRODUCT_NAME'
178576          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
178577          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
178578          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
178579          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
178580 
178581    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
178582       --
178583       -- following sets the accounting attributes needed to reverse
178584       -- accounting for a distributeion
178585       --
178586 
178587       --
178588       -- 5217187
178589       --
178590       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
178591       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
178592                                        g_array_event(l_event_id).array_value_num('header_index'));
178593       --
178594       --
178595 
178596       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
178597       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_58(Idx);
178598       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
178599       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_107(Idx);
178600       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
178601       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_60(Idx);
178602       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
178603       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_88');
178604       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
178605       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_115(Idx);
178606       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
178607       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_60(Idx);
178608       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
178609       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_91(Idx);
178610       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
178611       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_92(Idx);
178612       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
178613       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_93(Idx);
178614 
178615 
178616       xla_ae_lines_pkg.SetAcctReversalAttrs
178617          (p_event_id             => l_event_id
178618          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
178619          ,p_calculate_acctd_flag => l_calculate_acctd_flag
178620          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
178621    END IF;
178622 
178623    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
178624        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
178625 
178626 --
178627 AcctLineType_88 (
178628  p_application_id  => p_application_id
178629  ,p_event_id     => l_event_id
178630  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178631  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178632  ,p_actual_flag => l_actual_flag
178633  ,p_balance_type_code => l_balance_type_code
178634  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178635  
178636  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178637  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
178638  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
178639  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
178640  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178641  , p_source_58 => l_array_source_58(Idx)
178642  , p_source_60 => l_array_source_60(Idx)
178643  , p_source_85 => l_array_source_85(Idx)
178644  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178645  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178646  , p_source_91 => l_array_source_91(Idx)
178647  , p_source_92 => l_array_source_92(Idx)
178648  , p_source_93 => l_array_source_93(Idx)
178649  , p_source_96 => l_array_source_96(Idx)
178650  , p_source_97 => l_array_source_97(Idx)
178651  , p_source_98 => l_array_source_98(Idx)
178652  , p_source_99 => l_array_source_99(Idx)
178653  , p_source_100 => l_array_source_100(Idx)
178654  , p_source_101 => l_array_source_101(Idx)
178655  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178656  , p_source_102 => l_array_source_102(Idx)
178657  , p_source_107 => l_array_source_107(Idx)
178658  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178659  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178660  , p_source_115 => l_array_source_115(Idx)
178661  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178662  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178663  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178664  , p_source_118 => l_array_source_118(Idx)
178665  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178666  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178667  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178671 If(l_balance_type_code = 'A') THEN
178668  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178669  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178670  );
178672   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178673 END IF;
178674 
178675 --
178676 
178677 
178678 --
178679 AcctLineType_89 (
178680  p_application_id  => p_application_id
178681  ,p_event_id     => l_event_id
178682  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178683  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178684  ,p_actual_flag => l_actual_flag
178685  ,p_balance_type_code => l_balance_type_code
178686  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178687  
178688  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178689  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
178690  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
178691  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
178692  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178693  , p_source_58 => l_array_source_58(Idx)
178694  , p_source_60 => l_array_source_60(Idx)
178695  , p_source_85 => l_array_source_85(Idx)
178696  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178697  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178698  , p_source_91 => l_array_source_91(Idx)
178699  , p_source_92 => l_array_source_92(Idx)
178700  , p_source_93 => l_array_source_93(Idx)
178701  , p_source_96 => l_array_source_96(Idx)
178702  , p_source_97 => l_array_source_97(Idx)
178703  , p_source_98 => l_array_source_98(Idx)
178704  , p_source_99 => l_array_source_99(Idx)
178705  , p_source_100 => l_array_source_100(Idx)
178706  , p_source_101 => l_array_source_101(Idx)
178707  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178708  , p_source_102 => l_array_source_102(Idx)
178709  , p_source_107 => l_array_source_107(Idx)
178710  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178711  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178712  , p_source_115 => l_array_source_115(Idx)
178713  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178714  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178715  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178716  , p_source_118 => l_array_source_118(Idx)
178717  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178718  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178719  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178720  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178721  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178722  );
178723 If(l_balance_type_code = 'A') THEN
178724   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178725 END IF;
178726 
178727 --
178728 
178729 
178730 --
178731 AcctLineType_90 (
178732  p_application_id  => p_application_id
178733  ,p_event_id     => l_event_id
178734  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178735  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178736  ,p_actual_flag => l_actual_flag
178737  ,p_balance_type_code => l_balance_type_code
178738  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178739  
178740  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178741  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
178742  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
178743  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
178744  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178745  , p_source_58 => l_array_source_58(Idx)
178746  , p_source_60 => l_array_source_60(Idx)
178747  , p_source_85 => l_array_source_85(Idx)
178748  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178749  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178750  , p_source_91 => l_array_source_91(Idx)
178751  , p_source_92 => l_array_source_92(Idx)
178752  , p_source_93 => l_array_source_93(Idx)
178753  , p_source_96 => l_array_source_96(Idx)
178754  , p_source_97 => l_array_source_97(Idx)
178755  , p_source_98 => l_array_source_98(Idx)
178756  , p_source_99 => l_array_source_99(Idx)
178757  , p_source_100 => l_array_source_100(Idx)
178758  , p_source_101 => l_array_source_101(Idx)
178759  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178760  , p_source_102 => l_array_source_102(Idx)
178761  , p_source_107 => l_array_source_107(Idx)
178762  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178763  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178764  , p_source_115 => l_array_source_115(Idx)
178765  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178766  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178767  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178768  , p_source_118 => l_array_source_118(Idx)
178769  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178770  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178771  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178772  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178773  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178774  );
178775 If(l_balance_type_code = 'A') THEN
178776   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178777 END IF;
178778 
178779 --
178780 
178781 
178782 --
178783 AcctLineType_91 (
178784  p_application_id  => p_application_id
178785  ,p_event_id     => l_event_id
178786  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178787  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178791  
178788  ,p_actual_flag => l_actual_flag
178789  ,p_balance_type_code => l_balance_type_code
178790  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178792  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178793  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
178794  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
178795  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
178796  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178797  , p_source_58 => l_array_source_58(Idx)
178798  , p_source_60 => l_array_source_60(Idx)
178799  , p_source_85 => l_array_source_85(Idx)
178800  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178801  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178802  , p_source_91 => l_array_source_91(Idx)
178803  , p_source_92 => l_array_source_92(Idx)
178804  , p_source_93 => l_array_source_93(Idx)
178805  , p_source_96 => l_array_source_96(Idx)
178806  , p_source_97 => l_array_source_97(Idx)
178807  , p_source_98 => l_array_source_98(Idx)
178808  , p_source_99 => l_array_source_99(Idx)
178809  , p_source_100 => l_array_source_100(Idx)
178810  , p_source_101 => l_array_source_101(Idx)
178811  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178812  , p_source_102 => l_array_source_102(Idx)
178813  , p_source_107 => l_array_source_107(Idx)
178814  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178815  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178816  , p_source_115 => l_array_source_115(Idx)
178817  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178818  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178819  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178820  , p_source_119 => l_array_source_119(Idx)
178821  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178822  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178823  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178824  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178825  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178826  );
178827 If(l_balance_type_code = 'A') THEN
178828   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178829 END IF;
178830 
178831 --
178832 
178833 
178834 --
178835 AcctLineType_92 (
178836  p_application_id  => p_application_id
178837  ,p_event_id     => l_event_id
178838  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178839  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178840  ,p_actual_flag => l_actual_flag
178841  ,p_balance_type_code => l_balance_type_code
178842  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178843  
178844  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178845  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
178846  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
178847  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
178848  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178849  , p_source_58 => l_array_source_58(Idx)
178850  , p_source_60 => l_array_source_60(Idx)
178851  , p_source_85 => l_array_source_85(Idx)
178852  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178853  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178854  , p_source_91 => l_array_source_91(Idx)
178855  , p_source_92 => l_array_source_92(Idx)
178856  , p_source_93 => l_array_source_93(Idx)
178857  , p_source_96 => l_array_source_96(Idx)
178858  , p_source_97 => l_array_source_97(Idx)
178859  , p_source_98 => l_array_source_98(Idx)
178860  , p_source_99 => l_array_source_99(Idx)
178861  , p_source_100 => l_array_source_100(Idx)
178862  , p_source_101 => l_array_source_101(Idx)
178863  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178864  , p_source_102 => l_array_source_102(Idx)
178865  , p_source_107 => l_array_source_107(Idx)
178866  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178867  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178868  , p_source_115 => l_array_source_115(Idx)
178869  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178870  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178871  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178872  , p_source_119 => l_array_source_119(Idx)
178873  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178874  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178875  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178876  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178877  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178878  );
178879 If(l_balance_type_code = 'A') THEN
178880   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178881 END IF;
178882 
178883 --
178884 
178885 
178886 --
178887 AcctLineType_93 (
178888  p_application_id  => p_application_id
178889  ,p_event_id     => l_event_id
178890  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178891  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178892  ,p_actual_flag => l_actual_flag
178893  ,p_balance_type_code => l_balance_type_code
178894  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178895  
178896  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178897  , p_source_30 => g_array_event(l_event_id).array_value_num('source_30')
178898  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
178899  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
178900  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178901  , p_source_58 => l_array_source_58(Idx)
178905  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178902  , p_source_60 => l_array_source_60(Idx)
178903  , p_source_85 => l_array_source_85(Idx)
178904  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178906  , p_source_91 => l_array_source_91(Idx)
178907  , p_source_92 => l_array_source_92(Idx)
178908  , p_source_93 => l_array_source_93(Idx)
178909  , p_source_96 => l_array_source_96(Idx)
178910  , p_source_97 => l_array_source_97(Idx)
178911  , p_source_98 => l_array_source_98(Idx)
178912  , p_source_99 => l_array_source_99(Idx)
178913  , p_source_100 => l_array_source_100(Idx)
178914  , p_source_101 => l_array_source_101(Idx)
178915  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178916  , p_source_102 => l_array_source_102(Idx)
178917  , p_source_107 => l_array_source_107(Idx)
178918  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178919  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178920  , p_source_115 => l_array_source_115(Idx)
178921  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178922  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178923  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178924  , p_source_119 => l_array_source_119(Idx)
178925  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178926  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178927  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178928  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178929  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178930  );
178931 If(l_balance_type_code = 'A') THEN
178932   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178933 END IF;
178934 
178935 --
178936 
178937 
178938 --
178939 AcctLineType_100 (
178940  p_application_id  => p_application_id
178941  ,p_event_id     => l_event_id
178942  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178943  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178944  ,p_actual_flag => l_actual_flag
178945  ,p_balance_type_code => l_balance_type_code
178946  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178947  
178948  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
178949  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
178950  , p_source_43 => g_array_event(l_event_id).array_value_char('source_43')
178951  , p_source_43_meaning => g_array_event(l_event_id).array_value_char('source_43_meaning')
178952  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
178953  , p_source_58 => l_array_source_58(Idx)
178954  , p_source_60 => l_array_source_60(Idx)
178955  , p_source_85 => l_array_source_85(Idx)
178956  , p_source_85_meaning => l_array_source_85_meaning(Idx)
178957  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
178958  , p_source_91 => l_array_source_91(Idx)
178959  , p_source_92 => l_array_source_92(Idx)
178960  , p_source_93 => l_array_source_93(Idx)
178961  , p_source_96 => l_array_source_96(Idx)
178962  , p_source_97 => l_array_source_97(Idx)
178963  , p_source_98 => l_array_source_98(Idx)
178964  , p_source_99 => l_array_source_99(Idx)
178965  , p_source_100 => l_array_source_100(Idx)
178966  , p_source_101 => l_array_source_101(Idx)
178967  , p_source_101_meaning => l_array_source_101_meaning(Idx)
178968  , p_source_102 => l_array_source_102(Idx)
178969  , p_source_107 => l_array_source_107(Idx)
178970  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
178971  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
178972  , p_source_115 => l_array_source_115(Idx)
178973  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
178974  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
178975  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
178976  , p_source_118 => l_array_source_118(Idx)
178977  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
178978  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
178979  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
178980  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
178981  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
178982  );
178983 If(l_balance_type_code = 'A') THEN
178984   l_actual_gain_loss_ref := l_gain_or_loss_ref;
178985 END IF;
178986 
178987 --
178988 
178989 
178990 --
178991 AcctLineType_101 (
178992  p_application_id  => p_application_id
178993  ,p_event_id     => l_event_id
178994  ,p_calculate_acctd_flag => l_calculate_acctd_flag
178995  ,p_calculate_g_l_flag => l_calculate_g_l_flag
178996  ,p_actual_flag => l_actual_flag
178997  ,p_balance_type_code => l_balance_type_code
178998  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
178999  
179000  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
179001  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179002  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179003  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
179004  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179005  , p_source_58 => l_array_source_58(Idx)
179006  , p_source_60 => l_array_source_60(Idx)
179007  , p_source_85 => l_array_source_85(Idx)
179008  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179009  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179010  , p_source_91 => l_array_source_91(Idx)
179011  , p_source_92 => l_array_source_92(Idx)
179012  , p_source_93 => l_array_source_93(Idx)
179013  , p_source_96 => l_array_source_96(Idx)
179014  , p_source_97 => l_array_source_97(Idx)
179015  , p_source_98 => l_array_source_98(Idx)
179016  , p_source_99 => l_array_source_99(Idx)
179017  , p_source_100 => l_array_source_100(Idx)
179021  , p_source_107 => l_array_source_107(Idx)
179018  , p_source_101 => l_array_source_101(Idx)
179019  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179020  , p_source_102 => l_array_source_102(Idx)
179022  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179023  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179024  , p_source_115 => l_array_source_115(Idx)
179025  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
179026  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
179027  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
179028  , p_source_118 => l_array_source_118(Idx)
179029  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
179030  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
179031  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
179032  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179033  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179034  );
179035 If(l_balance_type_code = 'A') THEN
179036   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179037 END IF;
179038 
179039 --
179040 
179041 
179042 --
179043 AcctLineType_102 (
179044  p_application_id  => p_application_id
179045  ,p_event_id     => l_event_id
179046  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179047  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179048  ,p_actual_flag => l_actual_flag
179049  ,p_balance_type_code => l_balance_type_code
179050  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179051  
179052  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
179053  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179054  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179055  , p_source_12 => g_array_event(l_event_id).array_value_num('source_12')
179056  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179057  , p_source_58 => l_array_source_58(Idx)
179058  , p_source_60 => l_array_source_60(Idx)
179059  , p_source_85 => l_array_source_85(Idx)
179060  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179061  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179062  , p_source_91 => l_array_source_91(Idx)
179063  , p_source_92 => l_array_source_92(Idx)
179064  , p_source_93 => l_array_source_93(Idx)
179065  , p_source_96 => l_array_source_96(Idx)
179066  , p_source_97 => l_array_source_97(Idx)
179067  , p_source_98 => l_array_source_98(Idx)
179068  , p_source_99 => l_array_source_99(Idx)
179069  , p_source_100 => l_array_source_100(Idx)
179070  , p_source_101 => l_array_source_101(Idx)
179071  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179072  , p_source_102 => l_array_source_102(Idx)
179073  , p_source_107 => l_array_source_107(Idx)
179074  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179075  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179076  , p_source_115 => l_array_source_115(Idx)
179077  , p_source_116 => g_array_event(l_event_id).array_value_char('source_116')
179078  , p_source_116_meaning => g_array_event(l_event_id).array_value_char('source_116_meaning')
179079  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
179080  , p_source_118 => l_array_source_118(Idx)
179081  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
179082  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
179083  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
179084  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179085  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179086  );
179087 If(l_balance_type_code = 'A') THEN
179088   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179089 END IF;
179090 
179091 --
179092 
179093 
179094 --
179095 AcctLineType_115 (
179096  p_application_id  => p_application_id
179097  ,p_event_id     => l_event_id
179098  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179099  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179100  ,p_actual_flag => l_actual_flag
179101  ,p_balance_type_code => l_balance_type_code
179102  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179103  
179104  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
179105  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179106  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179107  , p_source_13 => g_array_event(l_event_id).array_value_num('source_13')
179108  , p_source_14 => g_array_event(l_event_id).array_value_char('source_14')
179109  , p_source_14_meaning => g_array_event(l_event_id).array_value_char('source_14_meaning')
179110  , p_source_25 => l_array_source_25(Idx)
179111  , p_source_28 => l_array_source_28(Idx)
179112  , p_source_28_meaning => l_array_source_28_meaning(Idx)
179113  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
179114  , p_source_41 => l_array_source_41(Idx)
179115  , p_source_42 => l_array_source_42(Idx)
179116  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179117  , p_source_58 => l_array_source_58(Idx)
179118  , p_source_60 => l_array_source_60(Idx)
179119  , p_source_85 => l_array_source_85(Idx)
179120  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179121  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179122  , p_source_91 => l_array_source_91(Idx)
179123  , p_source_92 => l_array_source_92(Idx)
179124  , p_source_93 => l_array_source_93(Idx)
179125  , p_source_96 => l_array_source_96(Idx)
179126  , p_source_97 => l_array_source_97(Idx)
179127  , p_source_98 => l_array_source_98(Idx)
179128  , p_source_99 => l_array_source_99(Idx)
179129  , p_source_100 => l_array_source_100(Idx)
179130  , p_source_101 => l_array_source_101(Idx)
179131  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179135  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179132  , p_source_102 => l_array_source_102(Idx)
179133  , p_source_107 => l_array_source_107(Idx)
179134  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179136  , p_source_115 => l_array_source_115(Idx)
179137  , p_source_119 => l_array_source_119(Idx)
179138  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179139  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179140  , p_source_146 => l_array_source_146(Idx)
179141  , p_source_147 => l_array_source_147(Idx)
179142  , p_source_148 => l_array_source_148(Idx)
179143  );
179144 If(l_balance_type_code = 'A') THEN
179145   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179146 END IF;
179147 
179148 --
179149 
179150 
179151 --
179152 AcctLineType_123 (
179153  p_application_id  => p_application_id
179154  ,p_event_id     => l_event_id
179155  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179156  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179157  ,p_actual_flag => l_actual_flag
179158  ,p_balance_type_code => l_balance_type_code
179159  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179160  
179161  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179162  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179163  , p_source_25 => l_array_source_25(Idx)
179164  , p_source_45 => g_array_event(l_event_id).array_value_num('source_45')
179165  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179166  , p_source_58 => l_array_source_58(Idx)
179167  , p_source_60 => l_array_source_60(Idx)
179168  , p_source_72 => l_array_source_72(Idx)
179169  , p_source_85 => l_array_source_85(Idx)
179170  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179171  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179172  , p_source_91 => l_array_source_91(Idx)
179173  , p_source_92 => l_array_source_92(Idx)
179174  , p_source_93 => l_array_source_93(Idx)
179175  , p_source_96 => l_array_source_96(Idx)
179176  , p_source_97 => l_array_source_97(Idx)
179177  , p_source_98 => l_array_source_98(Idx)
179178  , p_source_99 => l_array_source_99(Idx)
179179  , p_source_100 => l_array_source_100(Idx)
179180  , p_source_101 => l_array_source_101(Idx)
179181  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179182  , p_source_102 => l_array_source_102(Idx)
179183  , p_source_107 => l_array_source_107(Idx)
179184  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179185  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179186  , p_source_115 => l_array_source_115(Idx)
179187  , p_source_119 => l_array_source_119(Idx)
179188  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179189  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179190  , p_source_146 => l_array_source_146(Idx)
179191  , p_source_147 => l_array_source_147(Idx)
179192  , p_source_148 => l_array_source_148(Idx)
179193  );
179194 If(l_balance_type_code = 'A') THEN
179195   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179196 END IF;
179197 
179198 --
179199 
179200 
179201 --
179202 AcctLineType_138 (
179203  p_application_id  => p_application_id
179204  ,p_event_id     => l_event_id
179205  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179206  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179207  ,p_actual_flag => l_actual_flag
179208  ,p_balance_type_code => l_balance_type_code
179209  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179210  
179211  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179212  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179213  , p_source_25 => l_array_source_25(Idx)
179214  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
179215  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
179216  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
179217  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
179218  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179219  , p_source_58 => l_array_source_58(Idx)
179220  , p_source_60 => l_array_source_60(Idx)
179221  , p_source_85 => l_array_source_85(Idx)
179222  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179223  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179224  , p_source_91 => l_array_source_91(Idx)
179225  , p_source_92 => l_array_source_92(Idx)
179226  , p_source_93 => l_array_source_93(Idx)
179227  , p_source_96 => l_array_source_96(Idx)
179228  , p_source_97 => l_array_source_97(Idx)
179229  , p_source_98 => l_array_source_98(Idx)
179230  , p_source_99 => l_array_source_99(Idx)
179231  , p_source_100 => l_array_source_100(Idx)
179232  , p_source_101 => l_array_source_101(Idx)
179233  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179234  , p_source_107 => l_array_source_107(Idx)
179235  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179236  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179237  , p_source_115 => l_array_source_115(Idx)
179238  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179239  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179240  , p_source_156 => l_array_source_156(Idx)
179241  );
179242 If(l_balance_type_code = 'A') THEN
179243   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179244 END IF;
179245 
179246 --
179247 
179248 
179249 --
179250 AcctLineType_144 (
179251  p_application_id  => p_application_id
179252  ,p_event_id     => l_event_id
179253  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179254  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179255  ,p_actual_flag => l_actual_flag
179256  ,p_balance_type_code => l_balance_type_code
179257  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179258  
179262  , p_source_25 => l_array_source_25(Idx)
179259  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
179260  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179261  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179263  , p_source_31 => g_array_event(l_event_id).array_value_num('source_31')
179264  , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
179265  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179266  , p_source_58 => l_array_source_58(Idx)
179267  , p_source_60 => l_array_source_60(Idx)
179268  , p_source_85 => l_array_source_85(Idx)
179269  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179270  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179271  , p_source_91 => l_array_source_91(Idx)
179272  , p_source_92 => l_array_source_92(Idx)
179273  , p_source_93 => l_array_source_93(Idx)
179274  , p_source_96 => l_array_source_96(Idx)
179275  , p_source_97 => l_array_source_97(Idx)
179276  , p_source_98 => l_array_source_98(Idx)
179277  , p_source_99 => l_array_source_99(Idx)
179278  , p_source_100 => l_array_source_100(Idx)
179279  , p_source_101 => l_array_source_101(Idx)
179280  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179281  , p_source_102 => l_array_source_102(Idx)
179282  , p_source_107 => l_array_source_107(Idx)
179283  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179284  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179285  , p_source_115 => l_array_source_115(Idx)
179286  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
179287  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
179288  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
179289  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179290  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179291  , p_source_156 => l_array_source_156(Idx)
179292  , p_source_161 => l_array_source_161(Idx)
179293  );
179294 If(l_balance_type_code = 'A') THEN
179295   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179296 END IF;
179297 
179298 --
179299 
179300 
179301 --
179302 AcctLineType_171 (
179303  p_application_id  => p_application_id
179304  ,p_event_id     => l_event_id
179305  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179306  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179307  ,p_actual_flag => l_actual_flag
179308  ,p_balance_type_code => l_balance_type_code
179309  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179310  
179311  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
179312  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179313  , p_source_58 => l_array_source_58(Idx)
179314  , p_source_60 => l_array_source_60(Idx)
179315  , p_source_85 => l_array_source_85(Idx)
179316  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179317  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179318  , p_source_91 => l_array_source_91(Idx)
179319  , p_source_92 => l_array_source_92(Idx)
179320  , p_source_93 => l_array_source_93(Idx)
179321  , p_source_96 => l_array_source_96(Idx)
179322  , p_source_97 => l_array_source_97(Idx)
179323  , p_source_98 => l_array_source_98(Idx)
179324  , p_source_99 => l_array_source_99(Idx)
179325  , p_source_100 => l_array_source_100(Idx)
179326  , p_source_101 => l_array_source_101(Idx)
179327  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179328  , p_source_102 => l_array_source_102(Idx)
179329  , p_source_107 => l_array_source_107(Idx)
179330  , p_source_115 => l_array_source_115(Idx)
179331  , p_source_119 => l_array_source_119(Idx)
179332  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179333  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179334  );
179335 If(l_balance_type_code = 'A') THEN
179336   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179337 END IF;
179338 
179339 --
179340 
179341 
179342 --
179343 AcctLineType_178 (
179344  p_application_id  => p_application_id
179345  ,p_event_id     => l_event_id
179346  ,p_calculate_acctd_flag => l_calculate_acctd_flag
179347  ,p_calculate_g_l_flag => l_calculate_g_l_flag
179348  ,p_actual_flag => l_actual_flag
179349  ,p_balance_type_code => l_balance_type_code
179350  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
179351  
179352  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
179353  , p_source_10 => g_array_event(l_event_id).array_value_char('source_10')
179354  , p_source_10_meaning => g_array_event(l_event_id).array_value_char('source_10_meaning')
179355  , p_source_25 => l_array_source_25(Idx)
179356  , p_source_33 => g_array_event(l_event_id).array_value_num('source_33')
179357  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
179358  , p_source_57 => g_array_event(l_event_id).array_value_char('source_57')
179359  , p_source_58 => l_array_source_58(Idx)
179360  , p_source_60 => l_array_source_60(Idx)
179361  , p_source_85 => l_array_source_85(Idx)
179362  , p_source_85_meaning => l_array_source_85_meaning(Idx)
179363  , p_source_88 => g_array_event(l_event_id).array_value_char('source_88')
179364  , p_source_91 => l_array_source_91(Idx)
179365  , p_source_92 => l_array_source_92(Idx)
179366  , p_source_93 => l_array_source_93(Idx)
179367  , p_source_96 => l_array_source_96(Idx)
179368  , p_source_97 => l_array_source_97(Idx)
179369  , p_source_98 => l_array_source_98(Idx)
179370  , p_source_99 => l_array_source_99(Idx)
179371  , p_source_100 => l_array_source_100(Idx)
179372  , p_source_101 => l_array_source_101(Idx)
179373  , p_source_101_meaning => l_array_source_101_meaning(Idx)
179374  , p_source_102 => l_array_source_102(Idx)
179375  , p_source_107 => l_array_source_107(Idx)
179376  , p_source_113 => g_array_event(l_event_id).array_value_num('source_113')
179377  , p_source_114 => g_array_event(l_event_id).array_value_num('source_114')
179381  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
179378  , p_source_115 => l_array_source_115(Idx)
179379  , p_source_120 => g_array_event(l_event_id).array_value_date('source_120')
179380  , p_source_121 => g_array_event(l_event_id).array_value_num('source_121')
179382  , p_source_125 => g_array_event(l_event_id).array_value_char('source_125')
179383  , p_source_125_meaning => g_array_event(l_event_id).array_value_char('source_125_meaning')
179384  , p_source_156 => l_array_source_156(Idx)
179385  , p_source_161 => l_array_source_161(Idx)
179386  );
179387 If(l_balance_type_code = 'A') THEN
179388   l_actual_gain_loss_ref := l_gain_or_loss_ref;
179389 END IF;
179390 
179391 --
179392 
179393       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
179394       -- or secondary ledger that has different currency with primary
179395       -- or alc that is calculated by sla
179396       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
179397             (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'))
179398 
179399 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
179400 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
179401           AND (l_actual_flag = 'A')) THEN
179402         XLA_AE_LINES_PKG.CreateGainOrLossLines(
179403           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
179404          ,p_application_id   => p_application_id
179405          ,p_amb_context_code => 'DEFAULT'
179406          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
179407          ,p_event_class_code => C_EVENT_CLASS_CODE
179408          ,p_event_type_code  => C_EVENT_TYPE_CODE
179409          
179410          ,p_gain_ccid        => -1
179411          ,p_loss_ccid        => -1
179412 
179413          ,p_actual_flag      => l_actual_flag
179414          ,p_enc_flag         => null
179415          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
179416          ,p_enc_g_l_ref      => null
179417          );
179418       END IF;
179419    END IF;
179420 END IF;
179421 
179422    ELSE
179423       --
179424       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
179425       --
179426       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179427          trace
179428             (p_msg      => 'Trancaction revesal option is Y'
179429             ,p_level    => C_LEVEL_STATEMENT
179430             ,p_module   => l_log_module);
179431       END IF;
179432    END IF;
179433 
179434 END LOOP;
179435 l_result := XLA_AE_LINES_PKG.InsertLines ;
179436 end loop;
179437 close line_cur;
179438 
179439 
179440 --
179441 -- insert headers into xla_ae_headers_gt table
179442 --
179443 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
179444 
179445 -- insert into errors table here.
179446 
179447 END LOOP;
179448 
179449 --
179450 -- 4865292
179451 --
179452 -- Compare g_hdr_extract_count with event count in
179453 -- CreateHeadersAndLines.
179454 --
179455 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
179456 
179457 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179458    trace (p_msg     => '# rows extracted from header extract objects '
179459                     || ' (running total): '
179460                     || g_hdr_extract_count
179461          ,p_level   => C_LEVEL_STATEMENT
179462          ,p_module  => l_log_module);
179463 END IF;
179464 
179465 CLOSE header_cur;
179466 --
179467 
179468 --
179469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179470    trace
179471       (p_msg      => 'END of EventClass_256'
179472       ,p_level    => C_LEVEL_PROCEDURE
179473       ,p_module   => l_log_module);
179474 END IF;
179475 --
179476 RETURN l_result;
179477 EXCEPTION
179478 WHEN xla_exceptions_pkg.application_exception THEN
179479    
179480 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
179481 
179482    
179483 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
179484 
179485    RAISE;
179486 
179487 WHEN NO_DATA_FOUND THEN
179488 
179489 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
179490 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
179491 
179492 FOR header_record IN header_cur
179493 LOOP
179494     l_array_header_events(header_record.event_id) := header_record.event_id;
179495 END LOOP;
179496 
179497 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
179498 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
179499 
179500 fnd_file.put_line(fnd_file.LOG, '                    ');
179501 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
179502 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
179503 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
179504 
179505 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
179506 LOOP
179507 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
179508 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
179509         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
179510 	END IF;
179511 END LOOP;
179512 
179513 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
179514 fnd_file.put_line(fnd_file.LOG, '                    ');
179515 
179516 
179517 xla_exceptions_pkg.raise_message
179518       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_256');
179519 
179520 
179521 WHEN OTHERS THEN
179522    xla_exceptions_pkg.raise_message
179526 
179523       (p_location => 'XLA_00200_AAD_S_000012_PKG.EventClass_256');
179524 END EventClass_256;
179525 --
179527 --
179528 --+============================================+
179529 --|                                            |
179530 --|  PRIVATE FUNCTION                          |
179531 --|                                            |
179532 --+============================================+
179533 --
179534 FUNCTION CreateHeadersAndLines
179535        (p_application_id         IN NUMBER
179536        ,p_base_ledger_id         IN NUMBER
179537        ,p_target_ledger_id       IN NUMBER
179538        ,p_pad_start_date         IN DATE
179539        ,p_pad_end_date           IN DATE
179540        ,p_primary_ledger_id      IN NUMBER)
179541 RETURN BOOLEAN IS
179542 l_created                   BOOLEAN:=FALSE;
179543 l_event_id                  NUMBER;
179544 l_event_date                DATE;
179545 l_language                  VARCHAR2(30);
179546 l_currency_code             VARCHAR2(30);
179547 l_sla_ledger_id             NUMBER;
179548 l_log_module                VARCHAR2(240);
179549 
179550 BEGIN
179551 --
179552 IF g_log_enabled THEN
179553    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
179554 END IF;
179555 --
179556 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179557    trace
179558       (p_msg      => 'BEGIN of CreateHeadersAndLines'
179559       ,p_level    => C_LEVEL_PROCEDURE
179560       ,p_module   => l_log_module);
179561 END IF;
179562 
179563 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
179564 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
179565 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
179566 
179567 --
179568 -- initialize array of lines with NULL
179569 --
179570 xla_ae_lines_pkg.SetNullLine;
179571 
179572 --
179573 -- initialize header extract count -- Bug 4865292
179574 --
179575 g_hdr_extract_count:= 0;
179576 
179577 
179578 l_created := EventClass_248(
179579    p_application_id         => p_application_id
179580  , p_base_ledger_id         => p_base_ledger_id
179581  , p_target_ledger_id       => p_target_ledger_id
179582  , p_language               => l_language
179583  , p_currency_code          => l_currency_code
179584  , p_sla_ledger_id          => l_sla_ledger_id
179585  , p_pad_start_date         => p_pad_start_date
179586  , p_pad_end_date           => p_pad_end_date
179587  , p_primary_ledger_id      => p_primary_ledger_id
179588 );
179589 
179590 
179591 
179592      IF ( g_diagnostics_mode ='Y' ) THEN
179593 
179594          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179595           trace
179596               (p_msg      => 'CALL Transaction Objects Diagnostics'
179597               ,p_level    => C_LEVEL_STATEMENT
179598               ,p_module   => l_log_module);
179599 
179600          END IF;
179601 
179602          insert_sources_248(
179603                           p_target_ledger_id => p_target_ledger_id
179604                         , p_language         => l_language
179605                         , p_sla_ledger_id    => l_sla_ledger_id
179606                         , p_pad_start_date   => p_pad_start_date
179607                         , p_pad_end_date     => p_pad_end_date
179608                           );
179609 
179610      END IF;
179611 
179612 l_created := EventClass_249(
179613    p_application_id         => p_application_id
179614  , p_base_ledger_id         => p_base_ledger_id
179615  , p_target_ledger_id       => p_target_ledger_id
179616  , p_language               => l_language
179617  , p_currency_code          => l_currency_code
179618  , p_sla_ledger_id          => l_sla_ledger_id
179619  , p_pad_start_date         => p_pad_start_date
179620  , p_pad_end_date           => p_pad_end_date
179621  , p_primary_ledger_id      => p_primary_ledger_id
179622 );
179623 
179624 
179625 
179626      IF ( g_diagnostics_mode ='Y' ) THEN
179627 
179628          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179629           trace
179630               (p_msg      => 'CALL Transaction Objects Diagnostics'
179631               ,p_level    => C_LEVEL_STATEMENT
179632               ,p_module   => l_log_module);
179633 
179634          END IF;
179635 
179636          insert_sources_249(
179637                           p_target_ledger_id => p_target_ledger_id
179638                         , p_language         => l_language
179639                         , p_sla_ledger_id    => l_sla_ledger_id
179640                         , p_pad_start_date   => p_pad_start_date
179641                         , p_pad_end_date     => p_pad_end_date
179642                           );
179643 
179644      END IF;
179645 
179646 l_created := EventClass_250(
179647    p_application_id         => p_application_id
179648  , p_base_ledger_id         => p_base_ledger_id
179649  , p_target_ledger_id       => p_target_ledger_id
179650  , p_language               => l_language
179651  , p_currency_code          => l_currency_code
179652  , p_sla_ledger_id          => l_sla_ledger_id
179653  , p_pad_start_date         => p_pad_start_date
179654  , p_pad_end_date           => p_pad_end_date
179655  , p_primary_ledger_id      => p_primary_ledger_id
179656 );
179657 
179658 
179659 
179660      IF ( g_diagnostics_mode ='Y' ) THEN
179661 
179662          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179663           trace
179664               (p_msg      => 'CALL Transaction Objects Diagnostics'
179665               ,p_level    => C_LEVEL_STATEMENT
179666               ,p_module   => l_log_module);
179667 
179668          END IF;
179669 
179670          insert_sources_250(
179671                           p_target_ledger_id => p_target_ledger_id
179672                         , p_language         => l_language
179676                           );
179673                         , p_sla_ledger_id    => l_sla_ledger_id
179674                         , p_pad_start_date   => p_pad_start_date
179675                         , p_pad_end_date     => p_pad_end_date
179677 
179678      END IF;
179679 
179680 l_created := EventClass_251(
179681    p_application_id         => p_application_id
179682  , p_base_ledger_id         => p_base_ledger_id
179683  , p_target_ledger_id       => p_target_ledger_id
179684  , p_language               => l_language
179685  , p_currency_code          => l_currency_code
179686  , p_sla_ledger_id          => l_sla_ledger_id
179687  , p_pad_start_date         => p_pad_start_date
179688  , p_pad_end_date           => p_pad_end_date
179689  , p_primary_ledger_id      => p_primary_ledger_id
179690 );
179691 
179692 
179693 
179694      IF ( g_diagnostics_mode ='Y' ) THEN
179695 
179696          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179697           trace
179698               (p_msg      => 'CALL Transaction Objects Diagnostics'
179699               ,p_level    => C_LEVEL_STATEMENT
179700               ,p_module   => l_log_module);
179701 
179702          END IF;
179703 
179704          insert_sources_251(
179705                           p_target_ledger_id => p_target_ledger_id
179706                         , p_language         => l_language
179707                         , p_sla_ledger_id    => l_sla_ledger_id
179708                         , p_pad_start_date   => p_pad_start_date
179709                         , p_pad_end_date     => p_pad_end_date
179710                           );
179711 
179712      END IF;
179713 
179714 l_created := EventClass_252(
179715    p_application_id         => p_application_id
179716  , p_base_ledger_id         => p_base_ledger_id
179717  , p_target_ledger_id       => p_target_ledger_id
179718  , p_language               => l_language
179719  , p_currency_code          => l_currency_code
179720  , p_sla_ledger_id          => l_sla_ledger_id
179721  , p_pad_start_date         => p_pad_start_date
179722  , p_pad_end_date           => p_pad_end_date
179723  , p_primary_ledger_id      => p_primary_ledger_id
179724 );
179725 
179726 
179727 
179728      IF ( g_diagnostics_mode ='Y' ) THEN
179729 
179730          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179731           trace
179732               (p_msg      => 'CALL Transaction Objects Diagnostics'
179733               ,p_level    => C_LEVEL_STATEMENT
179734               ,p_module   => l_log_module);
179735 
179736          END IF;
179737 
179738          insert_sources_252(
179739                           p_target_ledger_id => p_target_ledger_id
179740                         , p_language         => l_language
179741                         , p_sla_ledger_id    => l_sla_ledger_id
179742                         , p_pad_start_date   => p_pad_start_date
179743                         , p_pad_end_date     => p_pad_end_date
179744                           );
179745 
179746      END IF;
179747 
179748 l_created := EventClass_253(
179749    p_application_id         => p_application_id
179750  , p_base_ledger_id         => p_base_ledger_id
179751  , p_target_ledger_id       => p_target_ledger_id
179752  , p_language               => l_language
179753  , p_currency_code          => l_currency_code
179754  , p_sla_ledger_id          => l_sla_ledger_id
179755  , p_pad_start_date         => p_pad_start_date
179756  , p_pad_end_date           => p_pad_end_date
179757  , p_primary_ledger_id      => p_primary_ledger_id
179758 );
179759 
179760 
179761 
179762      IF ( g_diagnostics_mode ='Y' ) THEN
179763 
179764          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179765           trace
179766               (p_msg      => 'CALL Transaction Objects Diagnostics'
179767               ,p_level    => C_LEVEL_STATEMENT
179768               ,p_module   => l_log_module);
179769 
179770          END IF;
179771 
179772          insert_sources_253(
179773                           p_target_ledger_id => p_target_ledger_id
179774                         , p_language         => l_language
179775                         , p_sla_ledger_id    => l_sla_ledger_id
179776                         , p_pad_start_date   => p_pad_start_date
179777                         , p_pad_end_date     => p_pad_end_date
179778                           );
179779 
179780      END IF;
179781 
179782 l_created := EventClass_254(
179783    p_application_id         => p_application_id
179784  , p_base_ledger_id         => p_base_ledger_id
179785  , p_target_ledger_id       => p_target_ledger_id
179786  , p_language               => l_language
179787  , p_currency_code          => l_currency_code
179788  , p_sla_ledger_id          => l_sla_ledger_id
179789  , p_pad_start_date         => p_pad_start_date
179790  , p_pad_end_date           => p_pad_end_date
179791  , p_primary_ledger_id      => p_primary_ledger_id
179792 );
179793 
179794 
179795 
179796      IF ( g_diagnostics_mode ='Y' ) THEN
179797 
179798          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179799           trace
179800               (p_msg      => 'CALL Transaction Objects Diagnostics'
179801               ,p_level    => C_LEVEL_STATEMENT
179802               ,p_module   => l_log_module);
179803 
179804          END IF;
179805 
179806          insert_sources_254(
179807                           p_target_ledger_id => p_target_ledger_id
179808                         , p_language         => l_language
179809                         , p_sla_ledger_id    => l_sla_ledger_id
179810                         , p_pad_start_date   => p_pad_start_date
179811                         , p_pad_end_date     => p_pad_end_date
179812                           );
179813 
179814      END IF;
179815 
179816 l_created := EventClass_255(
179817    p_application_id         => p_application_id
179818  , p_base_ledger_id         => p_base_ledger_id
179822  , p_sla_ledger_id          => l_sla_ledger_id
179819  , p_target_ledger_id       => p_target_ledger_id
179820  , p_language               => l_language
179821  , p_currency_code          => l_currency_code
179823  , p_pad_start_date         => p_pad_start_date
179824  , p_pad_end_date           => p_pad_end_date
179825  , p_primary_ledger_id      => p_primary_ledger_id
179826 );
179827 
179828 
179829 
179830      IF ( g_diagnostics_mode ='Y' ) THEN
179831 
179832          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179833           trace
179834               (p_msg      => 'CALL Transaction Objects Diagnostics'
179835               ,p_level    => C_LEVEL_STATEMENT
179836               ,p_module   => l_log_module);
179837 
179838          END IF;
179839 
179840          insert_sources_255(
179841                           p_target_ledger_id => p_target_ledger_id
179842                         , p_language         => l_language
179843                         , p_sla_ledger_id    => l_sla_ledger_id
179844                         , p_pad_start_date   => p_pad_start_date
179845                         , p_pad_end_date     => p_pad_end_date
179846                           );
179847 
179848      END IF;
179849 
179850 l_created := EventClass_256(
179851    p_application_id         => p_application_id
179852  , p_base_ledger_id         => p_base_ledger_id
179853  , p_target_ledger_id       => p_target_ledger_id
179854  , p_language               => l_language
179855  , p_currency_code          => l_currency_code
179856  , p_sla_ledger_id          => l_sla_ledger_id
179857  , p_pad_start_date         => p_pad_start_date
179858  , p_pad_end_date           => p_pad_end_date
179859  , p_primary_ledger_id      => p_primary_ledger_id
179860 );
179861 
179862 
179863 
179864      IF ( g_diagnostics_mode ='Y' ) THEN
179865 
179866          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179867           trace
179868               (p_msg      => 'CALL Transaction Objects Diagnostics'
179869               ,p_level    => C_LEVEL_STATEMENT
179870               ,p_module   => l_log_module);
179871 
179872          END IF;
179873 
179874          insert_sources_256(
179875                           p_target_ledger_id => p_target_ledger_id
179876                         , p_language         => l_language
179877                         , p_sla_ledger_id    => l_sla_ledger_id
179878                         , p_pad_start_date   => p_pad_start_date
179879                         , p_pad_end_date     => p_pad_end_date
179880                           );
179881 
179882      END IF;
179883 
179884 
179885  --
179886  -- Bug 4865292
179887  -- When the number of events and that of header extract do not match,
179888  -- set the no header extract flag to indicate there are some issues
179889  -- in header extract.
179890  --
179891  -- Event count context is set in xla_accounting_pkg.unit_processor.
179892  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
179893  -- to report it as a general error.
179894  --
179895  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
179896  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
179897 
179898      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179899         trace
179900           (p_msg      => '# of extracted headers and events does not match'
179901           ,p_level    => C_LEVEL_STATEMENT
179902           ,p_module   => l_log_module);
179903 
179904         trace
179905           (p_msg      => '# of extracted headers: '
179906                          ||g_hdr_extract_count
179907           ,p_level    => C_LEVEL_STATEMENT
179908           ,p_module   => l_log_module);
179909 
179910         trace
179911           (p_msg      => '# of events in xla_events_gt: '
179912                          ||xla_context_pkg.get_event_count_context
179913           ,p_level    => C_LEVEL_STATEMENT
179914           ,p_module   => l_log_module);
179915 
179916         trace
179917           (p_msg      => 'Event No Header Extract Context: '
179918                          ||xla_context_pkg.get_event_nohdr_context
179919           ,p_level    => C_LEVEL_STATEMENT
179920           ,p_module   => l_log_module);
179921 
179922      END IF;
179923 
179924 
179925      xla_context_pkg.set_event_nohdr_context
179926        (p_nohdr_extract_flag => 'Y'
179927        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
179928 
179929      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179930         trace
179931           (p_msg      => 'No Header Extract Flag is set to Y'
179932           ,p_level    => C_LEVEL_STATEMENT
179933           ,p_module   => l_log_module);
179934      END IF;
179935 
179936  END IF;
179937 
179938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179939    trace
179940       (p_msg      => 'END of CreateHeadersAndLines'
179941       ,p_level    => C_LEVEL_PROCEDURE
179942       ,p_module   => l_log_module);
179943 END IF;
179944 
179945 RETURN l_created;
179946 EXCEPTION
179947 WHEN xla_exceptions_pkg.application_exception THEN
179948    RAISE;
179949 WHEN OTHERS THEN
179950    xla_exceptions_pkg.raise_message
179951       (p_location => 'XLA_00200_AAD_S_000012_PKG.CreateHeadersAndLines');
179952 END CreateHeadersAndLines;
179953 --
179954 --
179955 
179956 --
179957 --+============================================+
179958 --|                                            |
179959 --|  PUBLIC FUNCTION                           |
179960 --|                                            |
179961 --+============================================+
179962 --
179963 FUNCTION CreateJournalEntries
179964        (p_application_id         IN NUMBER
179965        ,p_base_ledger_id         IN NUMBER
179966        ,p_pad_start_date         IN DATE
179967        ,p_pad_end_date           IN DATE
179968        ,p_primary_ledger_id      IN NUMBER)
179969 RETURN NUMBER IS
179973 l_result                       NUMBER;
179970 l_log_module                   VARCHAR2(240);
179971 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
179972 l_temp_result                  BOOLEAN;
179974 BEGIN
179975 --
179976 IF g_log_enabled THEN
179977    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
179978 END IF;
179979 --
179980 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
179981    trace
179982       (p_msg      => 'BEGIN of CreateJournalEntries'||
179983                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
179984       ,p_level    => C_LEVEL_PROCEDURE
179985       ,p_module   => l_log_module);
179986 
179987 END IF;
179988 
179989 --
179990 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
179991 
179992 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
179993    trace
179994       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
179995       ,p_level    => C_LEVEL_STATEMENT
179996       ,p_module   => l_log_module);
179997 END IF;
179998 --
179999 xla_ae_journal_entry_pkg.SetProductAcctDefinition
180000    (p_product_rule_code      => 'FV_PAYABLES_AAD'
180001    ,p_product_rule_type_code => 'S'
180002    ,p_product_rule_version   => ''
180003    ,p_product_rule_name      => 'Federal Payables AAD'
180004    ,p_amb_context_code       => 'DEFAULT'
180005    );
180006 
180007 l_array_ledgers :=
180008    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
180009       (p_base_ledger_id  => p_base_ledger_id);
180010 
180011 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
180012    l_temp_result :=
180013       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
180014          (p_application_id           => p_application_id
180015          ,p_base_ledger_id           => p_base_ledger_id
180016          ,p_target_ledger_id         => l_array_ledgers(Idx)
180017          ,p_primary_ledger_id        => p_primary_ledger_id
180018          ,p_pad_start_date           => p_pad_start_date
180019          ,p_pad_end_date             => p_pad_end_date);
180020 
180021    l_temp_result :=
180022       l_temp_result AND
180023       CreateHeadersAndLines
180024          (p_application_id             => p_application_id
180025          ,p_base_ledger_id             => p_base_ledger_id
180026          ,p_target_ledger_id           => l_array_ledgers(Idx)
180027          ,p_pad_start_date             => p_pad_start_date
180028          ,p_pad_end_date               => p_pad_end_date
180029          ,p_primary_ledger_id          => p_primary_ledger_id
180030          );
180031 END LOOP;
180032 
180033 
180034 IF (g_diagnostics_mode = 'Y' AND
180035     C_LEVEL_UNEXPECTED >= g_log_level AND
180036     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
180037 
180038    xla_accounting_dump_pkg.acctg_event_extract_log(
180039     p_application_id  => p_application_id
180040     ,p_request_id     => xla_environment_pkg.g_Req_Id
180041    );
180042 
180043 END IF;
180044 
180045 CASE l_temp_result
180046   WHEN TRUE THEN l_result := 0;
180047   ELSE l_result := 2;
180048 END CASE;
180049 
180050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180051    trace
180052       (p_msg      => 'return value. = '||TO_CHAR(l_result)
180053       ,p_level    => C_LEVEL_PROCEDURE
180054       ,p_module   => l_log_module);
180055    trace
180056       (p_msg      => 'END of CreateJournalEntries '
180057       ,p_level    => C_LEVEL_PROCEDURE
180058       ,p_module   => l_log_module);
180059 END IF;
180060 
180061 RETURN l_result;
180062 EXCEPTION
180063 WHEN xla_exceptions_pkg.application_exception THEN
180064    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180065    trace
180066       (p_msg      => 'ERROR. = '||sqlerrm
180067       ,p_level    => C_LEVEL_PROCEDURE
180068       ,p_module   => l_log_module);
180069    END IF;
180070    RAISE;
180071 WHEN OTHERS THEN
180072    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
180073    trace
180074       (p_msg      => 'ERROR. = '||sqlerrm
180075       ,p_level    => C_LEVEL_PROCEDURE
180076       ,p_module   => l_log_module);
180077    END IF;
180078    xla_exceptions_pkg.raise_message
180079       (p_location => 'XLA_00200_AAD_S_000012_PKG.CreateJournalEntries');
180080 END CreateJournalEntries;
180081 --
180082 --=============================================================================
180083 --
180084 --
180085 --
180086 --
180087 --
180088 --
180089 --
180090 --
180091 --
180092 --
180093 --
180094 --
180095 --
180096 --
180097 --
180098 --
180099 --
180100 --
180101 --
180102 --
180103 --
180104 --
180105 --=============================================================================
180106 --=============================================================================
180107 --          *********** Initialization routine **********
180108 --=============================================================================
180109 
180110 BEGIN
180111    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
180112    g_log_enabled    := fnd_log.test
180113                           (log_level  => g_log_level
180114                           ,module     => C_DEFAULT_MODULE);
180115 
180116    IF NOT g_log_enabled  THEN
180117       g_log_level := C_LEVEL_LOG_DISABLED;
180118    END IF;
180119 --
180120 END XLA_00200_AAD_S_000012_PKG;
180121 --